diff --git a/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py new file mode 100644 index 0000000000000..b956b5405eae0 --- /dev/null +++ b/bindings/pyroot/pythonizations/python/ROOT/_pythonization/_tmva/_rmodel_keras.py @@ -0,0 +1,1012 @@ +from tensorflow import keras +import os +import ROOT +import numpy as np +import math +import time +from .. import pythonization +from cppyy import gbl as gbl_namespace + +def MakeKerasIdentity(layer): + input = layer['layerInput'] + output = layer['layerOutput'] + fLayerType = layer_data['layerDType'] + fLayerInputName = input[0] + fLayerOutputName = output[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Identity('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type " + fLayerDType + ) + +def MakeKerasBinary(layer): + input = layer['layerInput'] + output = layer['layerOutput'] + fLayerType = layer_data['layerType'] + fLayerDType = layer_data['layerDType'] + fX1 = input[0] + fX2 = input[1] + fY = output[0] + op = None + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fLayerType == "Add": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Add')(fX1, fX2, fY) + elif fLayerType == "Subtract": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Sub')(fX1, fX2, fY) + else: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Mul')(fX1, fX2, fY) + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type " + fLayerDType + ) + return op + + +def MakeKerasConcat(layer): + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + input = [str(i) for i in finput] + output = str(foutput[0]) + axis = int(attributes["axis"]) + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Concat('float')(inputs, axis, 0, output) + return op + +def MakeKerasReshape(layer): + """ + Create a Keras-compatible reshaping operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible reshaping operation using the SOFIE framework. Assumes layerDtype is float. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + name, data type, and other relevant information. + + Returns: + ROperator_Reshape: A SOFIE framework operator representing the reshaping operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + flayername = attributes['_name'] + fOpMode =gbl_namespace.TMVA.Experimental.SOFIE.ReshapeOpMode.Reshape + fLayerDType = layer['layerDType'] + fNameData = finput[0] + fNameOutput = foutput[0] + fNameShape = flayername + "ReshapeAxes" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput) + return op + +def MakeKerasFlatten(layer): + """ + Create a Keras-compatible flattening operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible flattening operation using the SOFIE framework. + Flattening is the process of converting a multi-dimensional tensor into a + one-dimensional tensor. Assumes layerDtype is float. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + name, data type, and other relevant information. + + Returns: + ROperator_Reshape: A SOFIE framework operator representing the flattening operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + flayername = attributes['_name'] + fOpMode =gbl_namespace.TMVA.Experimental.SOFIE.ReshapeOpMode.Flatten + fLayerDType = layer['layerDType'] + fNameData = finput[0] + fNameOutput = foutput[0] + fNameShape = flayername + "ReshapeAxes" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput) + return op + + +def MakeKerasBatchNorm(layer): + """ + Create a Keras-compatible batch normalization operation using SOFIE framework. + + This function takes a dictionary representing a batch normalization layer and its + attributes and constructs a Keras-compatible batch normalization operation using + the SOFIE framework. Batch normalization is used to normalize the activations of + a neural network, typically applied after the convolutional or dense layers. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + gamma, beta, moving mean, moving variance, epsilon, + momentum, data type (assumed to be float), and other relevant information. + + Returns: + ROperator_BatchNormalization: A SOFIE framework operator representing the batch normalization operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + gamma = attributes["gamma"] + beta = attributes["beta"] + moving_mean = attributes["moving_mean"] + moving_variance = attributes["moving_variance"] + fLayerDType = layer["layerDType"] + fNX = str(finput[0]) + fNY = str(foutput[0]) + fNScale = str(gamma.name) + fNB = str(beta.name) + fNMean = str(moving_mean.name) + fNVar = str(moving_variance.name) + epsilon = attributes["epsilon"] + momentum = attributes["momentum"] + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_BatchNormalization('float')(epsilon, momentum, 0, fNX, fNScale, fNB, fNMean, fNVar, fNY) + return op + +def MakeKerasActivation(layer): + attributes = layer['layerAttributes'] + activation = attributes['activation'] + fLayerActivation = str(activation.__name__) + if fLayerActivation in mapKerasLayer.keys(): + return mapKerasLayer[fLayerActivation](layer) + else: + raise Exception("TMVA.SOFIE - parsing keras activation layer " + fLayerActivation + " is not yet supported") + +def MakeKerasReLU(layer): + """ + Create a Keras-compatible rectified linear unit (ReLU) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible ReLU activation operation using the SOFIE framework. + ReLU is a popular activation function that replaces all negative values in a tensor + with zero, while leaving positive values unchanged. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type, which must be float. + + Returns: + ROperator_Relu: A SOFIE framework operator representing the ReLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Relu('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Relu does not yet support input type " + fLayerDType + ) + + +def MakeKerasSeLU(layer): + """ + Create a Keras-compatible scaled exponential linear unit (SeLU) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible SeLU activation operation using the SOFIE framework. + SeLU is a type of activation function that introduces self-normalizing properties + to the neural network. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float32. + + Returns: + ROperator_Selu: A SOFIE framework operator representing the SeLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Selu('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Selu does not yet support input type " + fLayerDType + ) + + +def MakeKerasSigmoid(layer): + """ + Create a Keras-compatible sigmoid activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible sigmoid activation operation using the SOFIE framework. + Sigmoid is a commonly used activation function that maps input values to the range + between 0 and 1, providing a way to introduce non-linearity in neural networks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Sigmoid: A SOFIE framework operator representing the sigmoid activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Sigmoid('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Sigmoid does not yet support input type " + fLayerDType + ) + + +def MakeKerasSoftmax(layer): + """ + Create a Keras-compatible softmax activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible softmax activation operation using the SOFIE framework. + Softmax is an activation function that converts input values into a probability + distribution, often used in the output layer of a neural network for multi-class + classification tasks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Softmax: A SOFIE framework operator representing the softmax activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Softmax('float')(-1, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Softmax does not yet support input type " + fLayerDType + ) + + +def MakeKerasLeakyRelu(layer): + """ + Create a Keras-compatible Leaky ReLU activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible Leaky ReLU activation operation using the SOFIE framework. + Leaky ReLU is a variation of the ReLU activation function that allows small negative + values to pass through, introducing non-linearity while preventing "dying" neurons. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + attributes, and data type - must be float. + + Returns: + ROperator_LeakyRelu: A SOFIE framework operator representing the Leaky ReLU activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fAlpha = float(attributes["alpha"]) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_LeakyRelu('float')(fAlpha, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator LeakyRelu does not yet support input type " + fLayerDType + ) + + +def MakeKerasTanh(layer): + """ + Create a Keras-compatible hyperbolic tangent (tanh) activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible tanh activation operation using the SOFIE framework. + Tanh is an activation function that squashes input values to the range between -1 and 1, + introducing non-linearity in neural networks. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type - must be float. + + Returns: + ROperator_Tanh: A SOFIE framework operator representing the tanh activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Tanh('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Tanh does not yet support input type " + fLayerDType + ) + + +def MakeKerasSwish(layer): + """ + Create a Keras-compatible swish activation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible swish activation operation using the SOFIE framework. + Swish is an activation function that aims to combine the benefits of ReLU and sigmoid, + allowing some non-linearity while still keeping positive values unbounded. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + and data type. + + Returns: + ROperator_Swish: A SOFIE framework operator representing the swish activation operation. + """ + + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Swish('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Swish does not yet support input type " + fLayerDType + ) + + +def MakeKerasPermute(layer): + """ + Create a Keras-compatible permutation operation using SOFIE framework. + + This function takes a dictionary representing a layer and its attributes and + constructs a Keras-compatible permutation operation using the SOFIE framework. + Permutation is an operation that rearranges the dimensions of a tensor based on + specified dimensions. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + attributes, and data type - must be float. + + Returns: + ROperator_Transpose: A SOFIE framework operator representing the permutation operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fAttributePermute = np.asarray(attributes["dims"]) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if len(fAttributePermute) > 0: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fPermuteDims, fLayerInputName, fLayerOutputName) + else: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Transpose does not yet support input type " + fLayerDType + ) + + +def MakeKerasDense(layer): + """ + Create a Keras-compatible dense (fully connected) layer operation using SOFIE framework. + + This function takes a dictionary representing a dense layer and its attributes and + constructs a Keras-compatible dense (fully connected) layer operation using the SOFIE framework. + A dense layer applies a matrix multiplication between the input tensor and weight matrix, + and adds a bias term. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer weight names, and data type - must be float. + + Returns: + ROperator_Gemm: A SOFIE framework operator representing the dense layer operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + fWeightNames = layer["layerWeight"] + fKernelName = fWeightNames[0] + fBiasName = fWeightNames[1] + attr_alpha = 1.0 + attr_beta = 1.0 + attr_transA = 0 + attr_transB = 0 + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Gemm['float'](attr_alpha, attr_beta, attr_transA, attr_transB, fLayerInputName, fKernelName, fBiasName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type " + fLayerDType + ) + + +def MakeKerasConv(layer): + """ + Create a Keras-compatible convolutional layer operation using SOFIE framework. + + This function takes a dictionary representing a convolutional layer and its attributes and + constructs a Keras-compatible convolutional layer operation using the SOFIE framework. + A convolutional layer applies a convolution operation between the input tensor and a set + of learnable filters (kernels). + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + data type (must be float), weight and bias name, kernel size, dilations, padding and strides. + When padding is same (keep in the same dimensions), the padding shape is calculated. + + Returns: + ROperator_Conv: A SOFIE framework operator representing the convolutional layer operation. + """ + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerDType = layer['layerDType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + attributes = layer['layerAttributes'] + fWeightNames = layer["layerWeight"] + fKernelName = fWeightNames[0] + fBiasName = fWeightNames[1] + fAttrDilations = attributes["dilation_rate"] + fAttrGroup = int(attributes["groups"]) + fAttrKernelShape = attributes["kernel_size"] + fKerasPadding = str(attributes["padding"]) + fAttrStrides = attributes["strides"] + + if fKerasPadding == 'valid': + fAttrAutopad = 'VALID' + elif fKerasPadding == 'same': + fAttrAutopad = 'NOTSET' + fInputShape = attributes['_build_input_shape'] + inputHeight = fInputShape[1] + inputWidth = fInputShape[2] + outputHeight = math.ceil(float(inputHeight) / float(fAttrStrides[0])) + outputWidth = math.ceil(float(inputWidth) / float(fAttrStrides[1])) + padding_height = max((outputHeight - 1) * fAttrStrides[0] + fAttrKernelShape[0] - inputHeight, 0) + padding_width = max((outputWidth - 1) * fAttrStrides[1] + fAttrKernelShape[1] - inputWidth, 0) + padding_top = math.floor(padding_height / 2) + padding_bottom = padding_height - padding_top + padding_left = math.floor(padding_width / 2) + padding_right = padding_width - padding_left + fAttrPads = [padding_top, padding_bottom, padding_left, padding_right] + else: + raise RuntimeError( + "TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding " + fKerasPadding + ) + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Conv['float'](fAttrAutopad, fAttrDilations, fAttrGroup, + fAttrKernelShape, fAttrPads, fAttrStrides, + fLayerInputName, fKernelName, fBiasName, + fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type " + fLayerDType + ) + + +def MakeKerasPooling(layer): + """ + Create a Keras-compatible pooling layer operation using SOFIE framework. + + This function takes a dictionary representing a pooling layer and its attributes and + constructs a Keras-compatible pooling layer operation using the SOFIE framework. + Pooling layers downsample the input tensor by selecting a representative value from + a group of neighboring values, either by taking the maximum or the average. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer type (the selection rule), the pool size, padding, strides, and data type. + + Returns: + ROperator_Pool: A SOFIE framework operator representing the pooling layer operation. + """ + + #extract attributes from layer data + fLayerDType = layer['layerDType'] + finput = layer['layerInput'] + foutput = layer['layerOutput'] + fLayerType = layer['layerType'] + fLayerInputName = finput[0] + fLayerOutputName = foutput[0] + pool_atrr =gbl_namespace.TMVA.Experimental.SOFIE.RAttributes_Pool() + attributes = layer['layerAttributes'] + fAttrKernelShape = attributes["pool_size"] + fKerasPadding = str(attributes["padding"]) + fAttrStrides = attributes["strides"] + if fKerasPadding == 'valid': + fAttrAutopad = 'VALID' + elif fKerasPadding == 'same': + fAttrAutopad = 'NOTSET' + else: + raise RuntimeError( + "TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding " + fKerasPadding + ) + pool_atrr.dilations = list(fAttrDilations) + pool_atrr.strides = list(fAttrStrides) + pool_atrr.pads = fpads + pool_atrr.kernel_shape = list(fAttrKernelShape) + pool_atrr.auto_pad = fAttrAutopad + + #choose pooling type + if fLayerType.startswith("Max"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.MaxPool + elif fLayerType.startswith("AveragePool"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.AveragePool + elif fLayerType.startswith("GlobalAverage"): + PoolMode = gbl_namespace.TMVA.Experimental.SOFIE.PoolOpMode.GloabalAveragePool + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator poolong does not yet support pooling type " + fLayerType + ) + + #Set default values + fAttrDilations = (1,1) + fpads = [0,0,0,0,0,0] + pool_atrr.ceil_mode = 0 + pool_atrr.count_include_pad = 0 + pool_atrr.storage_order = 0 + + #create operator + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Pool['float'](PoolMode, pool_atrr, fLayerInputName, fLayerOutputName) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator Pooling does not yet support input type " + fLayerDType + ) + + +def MakeKerasRNN(layer): + """ + Create a Keras-compatible RNN (Recurrent Neural Network) layer operation using SOFIE framework. + + This function takes a dictionary representing an RNN layer and its attributes and + constructs a Keras-compatible RNN layer operation using the SOFIE framework. + RNN layers are used to model sequences, and they maintain internal states that are + updated through recurrent connections. + + Parameters: + layer (dict): A dictionary containing layer information including input, output, + layer type, attributes, weights, and data type - must be float. + + Returns: + ROperator_RNN: A SOFIE framework operator representing the RNN layer operation. + """ + + # Extract required information from the layer dictionary + fLayerDType = layer['layerDType'] + finput = layer['layerInput'] + foutput = layer['layerOutput'] + attributes = layer['layerAttributes'] + direction = attributes['direction'] + hidden_size = attributes["hidden_size"] + layout = int(attributes["layout"]) + nameX = finput[0] + nameY = foutput[0] + nameW = layer["layerWeight"][0] + nameR = layer["layerWeight"][1] + if len(layer["layerWeight"]) > 2: + nameB = layer["layerWeight"][2] + else: + nameB = "" + + # Check if the provided activation function is supported + fPActivation = attributes['activation'] + if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support activation function " + fPActivation.__name__ + ) + activations = [fPActivation.__name__[0].upper()+fPActivation.__name__[1:]] + + #set default values + activation_alpha = {} + activation_beta = {} + clip = 0.0 + nameY_h = "" + nameInitial_h = "" + name_seq_len = "" + + if gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if layer['layerType'] == "SimpleRNN": + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_RNN['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h) + + elif layer['layerType'] == "GRU": + #an additional activation function is required, given by the user + activations.insert(0,attributes['recurrent_activation']) + + #new variable needed: + linear_before_reset = attributes['linear_before_reset'] + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_GRU['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h) + + elif layer['layerType'] == "LSTM": + #an additional activation function is required, the first given by the user, the second set to tanh as default + fPRecurrentActivation = attributes['recurrent_activation'] + if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support recurrent activation function " + fPActivation.__name__ + ) + fPRecurrentActivationName = fPRecurrentActivation.__name__[0].upper()+fPRecurrentActivation.__name__[1:] + activations.insert(0,fPRecurrentActivationName) + activations.insert(2,'Tanh') + + #new variables needed: + input_forget = 0 + nameInitial_c = "" + nameP = "" #No peephole connections in keras LSTM model + nameY_c = "" + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_LSTM['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameInitial_c, nameP, nameY, nameY_h, nameY_c) + + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support operator type " + layer['layerType'] + ) + return op + else: + raise RuntimeError( + "TMVA::SOFIE - Unsupported - Operator RNN does not yet support input type " + fLayerDType + ) + +#Set global dictionaries, mapping layers to corresponding functions that create their ROperator instances +mapKerasLayer = {"Activation": MakeKerasActivation, + "Permute": MakeKerasPermute, + "BatchNormalization": MakeKerasBatchNorm, + "Reshape": MakeKerasReshape, + "Flatten": MakeKerasFlatten, + "Concatenate": MakeKerasConcat, + "swish": MakeKerasSwish, + "Add": MakeKerasBinary, + "Subtract": MakeKerasBinary, + "Multiply": MakeKerasBinary, + "Softmax": MakeKerasSoftmax, + "tanh": MakeKerasTanh, + "Identity": MakeKerasIdentity, + "Dropout": MakeKerasIdentity, + "ReLU": MakeKerasReLU, + "relu": MakeKerasReLU, + "selu": MakeKerasSeLU, + "sigmoid": MakeKerasSigmoid, + "LeakyReLU": MakeKerasLeakyRelu, + "softmax": MakeKerasSoftmax, + "MaxPooling2D": MakeKerasPooling, + "SimpleRNN": MakeKerasRNN, + "GRU": MakeKerasRNN, + "LSTM": MakeKerasRNN, + } + +mapKerasLayerWithActivation = {"Dense": MakeKerasDense,"Conv2D": MakeKerasConv} + + +def add_layer_into_RModel(rmodel, layer_data): + """ + Add a Keras layer operation to an existing RModel using the SOFIE framework. + + This function takes an existing RModel and a dictionary representing a Keras layer + and its attributes, and adds the corresponding layer operation to the RModel using + the SOFIE framework. The function supports various types of Keras layers, including + those with or without activation functions. + + Parameters: + rmodel (RModel): An existing RModel to which the layer operation will be added. + layer_data (dict): A dictionary containing layer information including type, + attributes, input, output, and layer data type. + + Returns: + RModel: The updated RModel after adding the layer operation. + + Raises exception: If the provided layer type or activation function is not supported. + """ + + fLayerType = layer_data['layerType'] + + #reshape and flatten layers don't have weights, but they are needed inside the list of initialized tensor list in the Rmodel + if fLayerType == "Reshape" or fLayerType == "Flatten": + Attributes = layer_data['layerAttributes'] + LayerName = Attributes['_name'] + if fLayerType == "Reshape": + TargetShape = np.asarray(Attributes['target_shape']).astype("int") + TargetShape = np.insert(TargetShape,0,0) + else: + input_shape = layer_data['layerAttributes']['_build_input_shape'] + TargetShape = [gbl_namespace.TMVA.Experimental.SOFIE.ConvertShapeToLength(input_shape[1:])] + TargetShape = np.asarray(TargetShape) + + #since the AddInitializedTensor method in RModel requires unique pointer, we call a helper function in c++ that does the conversion from a regular pointer to unique one in c++ + rmodel.AddInitializedTensorFromPy['long'](LayerName+"ReshapeAxes",gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.INT64,[len(TargetShape)], TargetShape) + + #These layers only have one operator - excluding the recurrent layers, in which the activation function(s) are included in the recurrent operator + if fLayerType in mapKerasLayer.keys(): + Attribues = layer_data['layerAttributes'] + inputs = layer_data['layerInput'] + outputs = layer_data['layerOutput'] + LayerName = Attribues['_name'] + + #Pooling layers in keras by default assume the channels dimension is the last one, + #while in onnx (and the RModel) it is the first one (other than batch size), + #so a transpose is needed before and after the pooling, if the data format is channels last (can be set to channels first by the user). + if fLayerType == 'MaxPooling2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+"PreTrans") + rmodel.AddOperatorFromPy(op) + inputs[0] = LayerName+"PreTrans" + layer_data["layerInput"] = inputs + outputs[0] = LayerName+fLayerType + layer_data['layerOutput'] = outputs + rmodel.AddOperatorFromPy(mapKerasLayer[fLayerType](layer_data)) + if fLayerType == 'MaxPooling2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+"PostTrans") + rmodel.AddOperatorFromPy(op) + return rmodel + + #These layers require two operators - dense/conv and their activation funciton + elif fLayerType in mapKerasLayerWithActivation.keys(): + Attribues = layer_data['layerAttributes'] + LayerName = Attribues['_name'] + fPActivation = Attribues['activation'] + LayerActivation = fPActivation.__name__ + if LayerActivation in ['selu', 'sigmoid']: + rmodel.AddNeededStdLib("cmath") + + #if there is an activation function after the layer + if LayerActivation != 'linear': + outputs = layer_data['layerOutput'] + inputs = layer_data['layerInput'] + fActivationLayerOutput = outputs[0] + + #like pooling, convolutional layer from keras requires transpose before and after to match the onnx format + # if the data format is channels last (can be set to channels first by the user). + if fLayerType == 'Conv2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+"PreTrans") + rmodel.AddOperatorFromPy(op) + inputs[0] = LayerName+"PreTrans" + layer_data["layerInput"] = inputs + outputs[0] = LayerName+fLayerType + layer_data['layerOutput'] = outputs + op = mapKerasLayerWithActivation[fLayerType](layer_data) + rmodel.AddOperatorFromPy(op) + Activation_layer_input = LayerName+fLayerType + if fLayerType == 'Conv2D': + if layer_data['channels_last']: + op = gbl_namespace.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+"PostTrans") + rmodel.AddOperatorFromPy(op) + Activation_layer_input = LayerName + "PostTrans" + + #Adding the activation function + inputs[0] = Activation_layer_input + outputs[0] = fActivationLayerOutput + layer_data['layerInput'] = inputs + layer_data['layerOutput'] = outputs + if not LayerActivation in mapKerasLayer.keys(): + raise Exception("TMVA.SOFIE - parsing keras activation function " + LayerActivation + " is not yet supported") + rmodel.AddOperatorFromPy(mapKerasLayer[LayerActivation](layer_data)) + + else: #there is a bug here if it is conv and the activation is linear, need to add transpose before and after + rmodel.AddOperatorFromPy(mapKerasLayerWithActivation[fLayerType](layer_data)) + return rmodel + else: + raise Exception("TMVA.SOFIE - parsing keras layer " + fLayerType + " is not yet supported") + + +def Keras_Parser_into_RModel(filename): + #Check if file exists + if not os.path.exists(filename): + raise RuntimeError("Model file {} not found!".format(filename)) + + #load model + keras_model = keras.models.load_model(modelFile) + keras_model.load_weights(modelFile) + + #create new RModel object + sep = '/' + if os.name == 'nt': + sep = '\\' + + isep = filename.rfind(sep) + filename_nodir = filename + if isep != -1: + filename_nodir = filename[isep+1:] + + ttime = time.time() + gmt_time = time.gmtime(ttime) + parsetime = time.asctime(gmt_time) + + rmodel = gbl_namespace.TMVA.Experimental.SOFIE.RModel.RModel(filename_nodir, parsetime) + + #iterate over the layers and add them to the RModel + for layer in keras_model.layers: + layer_data={} + layer_data['layerType']=layer.__class__.__name__ + layer_data['layerAttributes']=layer.__dict__ + layer_data['layerInput']=[x.name for x in layer.input] if isinstance(layer.input,list) else [layer.input.name] + layer_data['layerOutput']=[x.name for x in layer.output] if isinstance(layer.output,list) else [layer.output.name] + layer_data['layerDType']=layer.dtype + layer_data['layerWeight']=[x.name for x in layer.weights] + + #for convolutional and pooling layers we need to know the format of the data + if layer_data['layerType'] in ['Conv2D', 'MaxPooling2D']: + layer_data['channels_last'] = True if layer.data_format == 'channels_last' else False + + #for recurrent type layers we need to extract additional unique information + if layer_data['layerType'] in ["SimpleRNN", "LSTM", "GRU"]: + layer_data['layerAttributes']['activation'] = layer.activation + layer_data['layerAttributes']['direction'] = 'backward' if layer.go_backwards else 'forward' + layer_data['layerAttributes']["units"] = layer.units + layer_data['layerAttributes']["layout"] = layer.input.shape[0] is None + layer_data['layerAttributes']["hidden_size"] = layer.output.shape[-1] + + #for GRU and LSTM we need to extract an additional activation function + if layer_data['layerType'] != "SimpleRNN": + layer_data['layerAttributes']['recurrent_activation'] = layer.recurrent_activation + + #for GRU there are two variants of the reset gate location, we need to know which one is it + if layer_data['layerType'] == "GRU": + layer_data['layerAttributes']['linear_before_reset'] = 1 if layer.reset_after and layer.recurrent_activation.__name__ == "sigmoid" else 0 + + if layer_data['layerInput'][0].startswith('max_pooling2d'): + pooling_layer_name = layer_data['layerInput'][0].split('/')[0] + layer_data['layerInput'][0] = pooling_layer_name + 'PostTrans' + + fLayerType = layer_data['layerType'] + #Ignoring the input layer for models built using Keras Functional API + #NEED TO TEST KERAS FUNCTIONAL API + if(fLayerType == "InputLayer"): + continue; + + #Adding any required routines depending on the Layer types for generating inference code. + elif (fLayerType == "Dense"): + rmodel.AddBlasRoutines({"Gemm", "Gemv"}) + elif (fLayerType == "BatchNormalization"): + rmodel.AddBlasRoutines({"Copy", "Axpy"}) + elif (fLayerType == "Conv1D" or fLayerType == "Conv2D" or fLayerType == "Conv3D"): + rmodel.AddBlasRoutines({"Gemm", "Axpy"}) + rmodel = add_layer_into_RModel(rmodel, layer_data) + + # Extracting model's weights + weight = [] + for idx in range(len(keras_model.get_weights())): + weightProp = {} + weightProp['name'] = keras_model.weights[idx].name + weightProp['dtype'] = keras_model.get_weights()[idx].dtype.name + if 'conv' in keras_model.weights[idx].name and keras_model.weights[idx].shape.ndims == 4: + weightProp['value'] = keras_model.get_weights()[idx].transpose((3, 2, 0, 1)).copy() + else: + weightProp['value'] = keras_model.get_weights()[idx] + weight.append(weightProp) + + # Traversing through all the Weight tensors + for weightIter in range(len(weight)): + fWeightTensor = weight[weightIter] + fWeightName = fWeightTensor['name'] + fWeightDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fWeightTensor['dtype']) + fWeightTensorValue = fWeightTensor['value'] + fWeightTensorSize = 1 + fWeightTensorShape = [] + + #IS IT BATCH SIZE? CHECK ONNX + if fWeightName.startswith("simple_rnn") or fWeightName.startswith("lstm") or (fWeightName.startswith("gru") and not 'bias' in fWeightName): + fWeightTensorShape.append(1) + + # Building the shape vector and finding the tensor size + for j in range(len(fWeightTensorValue.shape)): + fWeightTensorShape.append(fWeightTensorValue.shape[j]) + fWeightTensorSize *= fWeightTensorValue.shape[j] + + if fWeightDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + fWeightArray = fWeightTensorValue + + #weights conversion format between keras and onnx for lstm: the order of the different elements (input, output, forget, cell) inside the vector/matrix is different + if fWeightName.startswith("lstm"): + if 'kernel' in fWeightName: + units = int(fWeightArray.shape[1]/4) + W_i = fWeightArray[:, :units].copy() + W_f = fWeightArray[:, units: units * 2].copy() + W_c = fWeightArray[:, units * 2: units * 3].copy() + W_o = fWeightArray[:, units * 3:].copy() + fWeightArray[:, units: units * 2] = W_o + fWeightArray[:, units * 2: units * 3] = W_f + fWeightArray[:, units * 3:] = W_c + else: #bias + units = int(fWeightArray.shape[0]/4) + W_i = fWeightArray[:units].copy() + W_f = fWeightArray[units: units * 2].copy() + W_c = fWeightArray[units * 2: units * 3].copy() + W_o = fWeightArray[units * 3:].copy() + fWeightArray[units: units * 2] = W_o + fWeightArray[units * 2: units * 3] = W_f + fWeightArray[units * 3:] = W_c + + #need to make specific adjustments for recurrent weights and biases + if (fWeightName.startswith("simple_rnn") or fWeightName.startswith("lstm") or fWeightName.startswith("gru")): + #reshaping weight matrices for recurrent layers due to keras-onnx inconsistencies + if 'kernel' in fWeightName: + fWeightArray = np.transpose(fWeightArray) + fWeightTensorShape[1], fWeightTensorShape[2] = fWeightTensorShape[2], fWeightTensorShape[1] + + fData = fWeightArray.flatten() + + #the recurrent bias and the cell bias can be the same, in which case we need to add a vector of zeros for the recurrent bias + if 'bias' in fWeightName and len(fData.shape) == 1: + fWeightTensorShape[1] *= 2 + fRbias = fData.copy()*0 + fData = np.concatenate((fData,fRbias)) + + else: + fData = fWeightArray.flatten() + + rmodel.AddInitializedTensorFromPy['float'](fWeightName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fWeightTensorShape, fData) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data layer type: " + fWeightDType) + + # Extracting input tensor info + fPInputs = keras_model.input_names + fPInputShape = keras_model.input_shape if isinstance(keras_model.input_shape, list) else [keras_model.input_shape] + fPInputDType = [] + for idx in range(len(keras_model.inputs)): + fPInputDType.append(keras_model.inputs[idx].dtype.__str__()[9:-2]) + + if len(fPInputShape) == 1: + fInputName = fPInputs[0] + fInputDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fPInputDType[0]) + if fInputDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fPInputShape[0][0] is None or fPInputShape[0][0] <= 0: + fPInputShape = list(fPInputShape[0]) + fPInputShape[0] = 1 + rmodel.AddInputTensorInfo(fInputName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fPInputShape) + rmodel.AddInputTensorName(fInputName) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data type "+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) + else: + #Iterating through multiple input tensors + for fInputName, fInputDType, fInputShapeTuple in zip(fPInputs, fPInputDType, fPInputShape): + fInputDType =gbl_namespace.TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType) + if fInputDType == gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT: + if fInputShapeTuple[0] is None or fInputShapeTuple[0] <= 0: + fInputShapeTuple = list(fInputShapeTuple) + fInputShapeTuple[0] = 1 + print("Model does not have a defined batch size. Assuming it is 1 - input shape: ", fInputShapeTuple) + rmodel.AddInputTensorInfo(fInputName, gbl_namespace.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fInputShapeTuple) + rmodel.AddInputTensorName(fInputName) + else: + raise TypeError("Type error: TMVA SOFIE does not yet support data type "+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) + + # Adding OutputTensorInfos + outputNames = [] + for layerName in keras_model.output_names: + outputNames.append(keras_model.get_layer(layerName).output.name) + rmodel.AddOutputTensorNameList(outputNames) + return rmodel + +@pythonization("Keras_Parser_into_RModel", ns="TMVA::Experimental") +def Keras_Parser_into_RModel(klass): + # Parameters: + # klass: class to be pythonized + klass.__init__ = Keras_Parser_into_RModel + diff --git a/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat new file mode 100644 index 0000000000000..07d67c52cd1b6 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.dat @@ -0,0 +1,12 @@ +tensor_batchnormalization1movingvariance0 64 +0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 0.999500394 +tensor_batchnormalization1beta0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_batchnormalization1gamma0 64 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_dense17kernel0 448 +0.0108048618 0.215931386 0.0123945177 0.285069078 -0.104697779 -0.209598348 0.00423592329 -0.2823928 0.116487086 -0.12513034 0.0747551024 -0.00770813227 0.239529043 0.159453094 -0.28320843 -0.00874188542 -0.157378957 0.0602476597 -0.205106258 0.228819519 0.156571299 -0.234788939 -0.0700670928 -0.263461113 0.143216401 0.0773885548 -0.00458329916 -0.170526713 -0.145017579 0.122938514 -0.290278703 0.0688058138 0.0361943543 -0.0493358076 -0.00392708182 -0.284400582 0.166610718 0.122950584 -0.0912979394 -0.0632623136 -0.19157052 -0.0420778245 -0.0250469148 0.277549595 -0.246620253 0.153357059 -0.193938583 0.0913421512 0.17182675 -0.161206797 -0.146403342 0.168200165 0.0514654517 0.285589248 0.177236408 0.239046842 0.271209925 -0.0295130908 0.243002325 -0.177540243 -0.168115333 -0.228779823 0.0283973515 0.179595679 -0.198399067 0.215017587 0.0389697552 -0.0777019709 -0.0739576519 -0.0860316157 -0.0285128355 -0.142276645 -0.137453258 -0.157670751 0.11001423 -0.251886994 -0.290008962 0.238182813 -0.156130373 -0.248245955 -0.124903694 -0.129840136 0.0469535887 -0.156804115 0.0401303768 0.221745759 -0.0454875827 0.179246753 -0.0117903352 0.0204212666 -0.268830091 0.218235701 -0.264822543 0.151397437 -0.220389888 0.217418164 0.253188759 0.0389984548 0.202692091 0.0823853612 -0.223403066 0.273629099 0.230908662 -0.107497707 -0.110331237 -0.120720729 -0.235759467 0.0507353544 -0.122409225 0.112901539 -0.189501375 -0.118903041 -0.269068241 0.0767331123 -0.209109575 -0.0241218507 0.249974757 0.228964657 0.251895219 -0.0699959695 0.245350212 -0.271214575 -0.226293862 0.245217532 0.0605310798 -0.105240524 -0.181201681 0.276239663 -0.154074326 0.0106938779 0.230460852 0.115790337 0.161239386 0.154280871 0.215945214 0.287186056 -0.226439416 -0.244549721 0.25764963 0.132598132 -0.167660266 -0.124990329 0.0322424471 -0.144228578 -0.0685434043 -0.263268828 0.287399143 -0.167323902 -0.175259233 -0.220007718 0.247749418 0.249331802 0.0275261402 0.285681635 0.224241287 0.279460758 0.0549612343 0.136446476 -0.1061299 -0.211200207 0.190035731 -0.148243546 -0.000311821699 0.231444687 -0.0228230059 -0.199860305 -0.269175649 0.0455857217 -0.259420276 -0.131201625 -0.117612928 -0.189057663 0.185323805 0.0275135934 0.0949172378 -0.0632302165 0.187787294 0.021389991 -0.122828677 -0.231739581 -0.0210861564 0.130167186 0.230645269 -0.204621851 -0.0380035043 0.0184370279 0.0357265174 0.274054497 0.154319197 -0.280433387 0.276268095 0.192360759 0.181914926 -0.10357748 -0.0122078657 0.0994132161 -0.189529791 0.14017576 0.194115937 -0.0822871476 0.190085024 0.28514728 0.196474433 -0.126136974 0.0876276493 0.22874549 -0.0943528563 -0.21709615 -0.166011333 -0.204499945 -0.228483602 -0.029565841 -0.221954465 0.169807643 0.116328508 0.10293144 0.238334745 0.0139791071 -0.279547811 -0.057903856 0.116980433 0.211231321 -0.0950945914 0.0762212574 -0.122185215 -0.2635867 -0.189521894 -0.133030325 0.276025444 -0.274003267 0.0397931337 -0.0262677968 -0.0421609879 -0.205390483 0.265192062 0.169212639 -0.0588397384 -0.113253638 -0.286851257 -0.173200786 0.0343206823 -0.128531307 0.120894819 0.16205284 -0.26693207 -0.103117675 -0.0463741124 0.234895021 0.0869942904 -0.195388302 -0.243550718 0.111745328 0.259278566 0.232909232 0.269730121 0.128117055 -0.285545975 -0.015607506 0.0385112166 0.223638445 0.236599356 0.191709965 -0.19348073 0.067645669 -0.14132981 0.241881877 -0.254734188 -0.228491291 -0.239838064 -0.0670351833 0.154426962 -0.0801543146 0.132534206 -0.157252058 0.139873505 0.103443086 -0.184833378 0.231345206 0.272313625 0.144612879 -0.0427127481 -0.116279498 0.266867608 0.148977041 -0.11838904 -0.243089601 -0.220981985 0.273647815 0.265305191 -0.108035192 -0.00552237034 0.0897967219 0.0963402092 0.257930547 0.00589051843 0.24955228 -0.287052602 -0.216473341 -0.118245646 -0.229325905 0.00889033079 -0.141335711 0.16459924 -0.279934347 0.264600664 0.189448148 0.20955357 0.0990448296 -0.027635932 0.0795616508 0.243308693 0.0665873885 -0.193698078 0.178786546 0.0275886059 0.19980213 0.0518908501 -0.227167904 -0.0288101733 -0.217772186 0.0663120151 0.0809931457 0.23769322 -0.284707844 -0.277737409 0.202413201 -0.0784830749 0.200194508 -0.191186607 -0.163768932 -0.0959100127 -0.24673669 -0.11973758 -0.18587245 0.237517565 0.266499251 -0.0500470549 0.0682872534 -0.114201352 -0.203679815 0.0936342776 -0.0233978629 -0.0219255388 0.190061122 -0.156872734 0.167493641 -0.229817986 -0.132643729 -0.282223672 0.0858635902 -0.12809591 0.14055869 -0.203111768 -0.153313249 -0.0905048549 0.032363534 0.0640204847 -0.11933282 -0.0381491482 0.288048357 0.0544538796 0.0737758577 -0.186934054 -0.0764555931 -0.118738636 0.0113504529 -0.23289682 -0.24103862 0.183179826 -0.0324722826 0.0281182528 -0.106172249 0.137558669 -0.101038292 -0.0941964239 -0.109811425 0.205613256 -0.0358462334 -0.202844858 0.259382457 0.00479933619 0.279637247 -0.250478655 0.201448083 0.0918923318 0.0203225613 0.133025885 -0.160158649 -0.139158651 0.103551477 -0.0765164495 0.235947281 0.0446474254 0.0191914439 -0.115890756 -0.239997402 0.0594975352 -0.206928521 0.283032924 -0.15147914 0.251403838 -0.049104169 -0.129442304 -0.115165785 0.0916467011 -0.0739351213 -0.00163686275 0.0691559017 -0.0499850214 0.13808167 -0.151729494 0.08843413 0.257064074 -0.224859029 -0.0825117826 -0.0263075829 -0.257945806 -0.198194474 0.200157225 -0.120868146 -0.17015183 -0.268784493 0.235713631 0.208676606 -0.0274443626 -0.278948426 -0.220054567 0.093952328 -0.00847533345 0.169271052 -0.109093592 0.111329764 -0.232666582 -0.130706757 0.0706871152 -0.215322942 -0.287200451 -0.0953007936 0.101649582 0.0647162497 -0.266912311 -0.0801778883 -0.205314517 -0.285931677 0.214427441 0.217154175 0.148746103 0.0555344224 +tensor_dense17bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_batchnormalization1movingmean0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 new file mode 100644 index 0000000000000..72eaebfd02514 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.hxx b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.hxx new file mode 100644 index 0000000000000..b34f638c3d5ab --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/BatchNormalizationtest.hxx @@ -0,0 +1,160 @@ +//Code generated automatically by TMVA for Inference of Model file [BatchNormalizationtest.h5] at [Thu Aug 24 08:55:44 202] + +#ifndef ROOT_TMVA_SOFIE_BATCHNORMALIZATIONTEST +#define ROOT_TMVA_SOFIE_BATCHNORMALIZATIONTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_BatchNormalizationtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void scopy_(const int *n, const float* x, const int *incx, float* y, const int* incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_batchnormalization1movingvariance0 = std::vector(64); +float * tensor_batchnormalization1movingvariance0 = fTensor_batchnormalization1movingvariance0.data(); +std::vector fTensor_batchnormalization1beta0 = std::vector(64); +float * tensor_batchnormalization1beta0 = fTensor_batchnormalization1beta0.data(); +std::vector fTensor_batchnormalization1gamma0 = std::vector(64); +float * tensor_batchnormalization1gamma0 = fTensor_batchnormalization1gamma0.data(); +std::vector fTensor_dense17kernel0 = std::vector(448); +float * tensor_dense17kernel0 = fTensor_dense17kernel0.data(); +std::vector fTensor_dense17bias0 = std::vector(64); +float * tensor_dense17bias0 = fTensor_dense17bias0.data(); +std::vector fTensor_batchnormalization1movingmean0 = std::vector(64); +float * tensor_batchnormalization1movingmean0 = fTensor_batchnormalization1movingmean0.data(); +std::vector fTensor_batchnormalization1batchnormadd10 = std::vector(64); +float * tensor_batchnormalization1batchnormadd10 = fTensor_batchnormalization1batchnormadd10.data(); +std::vector fTensor_dense17BiasAdd0 = std::vector(64); +float * tensor_dense17BiasAdd0 = fTensor_dense17BiasAdd0.data(); +std::vector fTensor_dense17bias0bcast = std::vector(64); +float * tensor_dense17bias0bcast = fTensor_dense17bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "BatchNormalizationtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1movingvariance0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1movingvariance0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1movingvariance0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1beta0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1beta0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1beta0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1gamma0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1gamma0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1gamma0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense17kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense17kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense17kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense17bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense17bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense17bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_batchnormalization1movingmean0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_batchnormalization1movingmean0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_batchnormalization1movingmean0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense17bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense17bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense17input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense17bias0bcast, tensor_dense17bias0bcast + 64, tensor_dense17BiasAdd0); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense17kernel0, &op_0_ldb, tensor_dense17input, &op_0_lda, &op_0_beta, tensor_dense17BiasAdd0, &op_0_n); + constexpr int op_1_N =64; + constexpr int op_1_incx = 1; + constexpr int op_1_incy = 1; + BLAS::scopy_(&op_1_N, tensor_dense17BiasAdd0, &op_1_incx,tensor_batchnormalization1batchnormadd10, &op_1_incy); + + float op_1_alpha = -1; + BLAS::saxpy_(&op_1_N, &op_1_alpha, tensor_batchnormalization1movingmean0, &op_1_incx,tensor_batchnormalization1batchnormadd10, &op_1_incy); + + for (size_t i = 0; i < 64; i++) { + tensor_batchnormalization1batchnormadd10[i] *= tensor_batchnormalization1gamma0[i] * tensor_batchnormalization1movingvariance0[i]; + } + op_1_alpha = 1; + BLAS::saxpy_(&op_1_N, &op_1_alpha, tensor_batchnormalization1beta0, &op_1_incx, tensor_batchnormalization1batchnormadd10, &op_1_incy); + + std::vector ret (tensor_batchnormalization1batchnormadd10, tensor_batchnormalization1batchnormadd10 + 64); + return ret; +} +}; +} //TMVA_SOFIE_BatchNormalizationtest + +#endif // ROOT_TMVA_SOFIE_BATCHNORMALIZATIONTEST diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.dat b/tmva/sofie/test/KerasParserTest/CNNtest.dat new file mode 100644 index 0000000000000..7da61896f3cad --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/CNNtest.dat @@ -0,0 +1,12 @@ +tensor_dense1bias0 2 +0 0 +tensor_dense1kernel0 128 +-0.273429334 -0.242458299 -0.271134526 0.22176069 0.160095453 0.0573874414 -0.237070233 0.0986026525 0.293885887 0.0136824846 -0.261926591 0.0828011334 -0.287304819 0.0939099491 -0.136848629 0.111558884 0.134410113 0.0811731219 -0.181930214 -0.0225485265 -0.230313241 0.0897078514 0.230362654 0.0779522955 0.254732788 0.221711457 -0.201655641 0.0791558027 0.0297540128 0.263908505 0.251250803 -0.247956917 -0.217679292 -0.0698667765 -0.198423147 0.273819745 -0.0885926932 -0.236000419 0.0682967901 0.108136594 0.288755059 -0.0210249722 0.267940283 0.112079054 -0.0369003415 0.0997010171 -0.258126408 0.100490808 -0.0256198645 -0.176111266 0.187079191 0.0780341029 0.0748235285 -0.15443702 -0.0103217959 -0.0204695165 -0.219308376 -0.280591965 0.0768744349 0.292846203 0.0968263745 -0.253676087 0.105917633 -0.100127727 0.0324001312 0.0904945731 -0.00262001157 0.131956577 -0.203090906 -0.255756974 0.184198797 0.24737227 -0.229076236 0.169514298 0.28614068 0.217840016 -0.117445901 0.294710577 -0.187424093 0.198880672 -0.188419074 0.0236699581 0.118036002 -0.241595954 -0.170471609 0.0886412859 -0.00834918022 -0.262962162 0.216530263 0.0690090358 0.00374668837 0.0464490652 -0.269823551 0.12741375 -0.172189385 -0.261488438 -0.295124441 -0.112968922 -0.0254932642 -0.0596192181 -0.087402761 -0.292161942 -0.242644906 0.15951246 0.206225097 0.218320549 0.199845254 -0.100934356 0.273027062 -0.286521971 -0.0618494153 -0.265791684 -0.127135262 -0.104222134 0.0622035861 -0.236902088 -0.0503375232 -0.207609594 0.259485722 -0.100060374 0.0632984042 -0.239267349 0.27381587 0.116547674 -0.228086352 -0.251814395 0.0626878142 -0.0723151416 +tensor_densebias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_conv2dkernel0 90 +0.00920188054 0.0839131102 0.01429867 -0.0311637055 -0.0144039365 -0.0424352661 0.00577064464 -0.099428229 -0.0117422352 0.0585242175 0.0400683992 0.000320953986 -0.00437914161 0.0651558638 -0.0441484414 0.0430999361 0.013847338 0.0222443771 -0.0806622431 -0.00505291671 -0.049329564 -0.0366222598 0.048805818 0.035817977 0.0155720478 0.0833889544 0.0714531094 -0.0807194188 0.0463105068 -0.0372469053 0.0316770934 -0.0160574447 0.0227629077 0.0317016579 0.0435244404 0.00589957414 -0.0711666569 0.0614454858 0.0759042427 -0.0562249497 -0.0255881995 0.00843326189 0.0776767656 -0.0164612681 -0.0554594882 0.0295275599 0.0416304208 -0.0365259014 -0.0276708398 -0.0370529629 0.0961797461 -0.0374306515 0.00593554974 0.0727296397 -0.0241174363 0.0646661893 -0.00330106961 4.24884856e-05 -0.0355032571 0.00215339637 0.0440903865 -0.0426049381 0.014920773 -0.0233879443 -0.0233479049 -0.0553915277 -0.0109824827 0.0267938133 -0.0721504912 0.0418764763 -0.0136704268 0.0422013476 -0.00263763079 -0.0445093177 0.0491298959 -0.0294470638 0.0202196185 -0.0397402719 0.0453890488 -0.0287147891 0.00617681304 -0.044607386 -0.00576408301 0.0793464705 0.0111119598 0.0170671605 -0.0600193702 0.0348663181 -0.0753527805 -0.0201753732 +tensor_densekernel0 40960 +-0.0221337974 0.04323598 -0.074028708 -0.0519530587 -0.0547263138 -0.0736082196 -0.0797883868 -0.0649054945 -0.0403959751 -0.0112537369 -0.0463001989 -0.0436933003 0.0521038994 -0.0902238786 -0.0593602657 -0.0457693934 -0.0354193412 0.0283417627 -0.0887995139 0.0331479684 -0.0105886459 0.000131733716 -0.0556173176 -0.0371342674 0.00819852948 0.0556585267 -0.0739444941 0.0607088879 -0.0673547983 -0.0360101908 0.0861660466 -0.0075031966 -0.080121778 0.0649235919 0.0505026057 0.0408254638 -0.0376461856 -0.0406097434 0.086936675 0.0589003786 0.0295939147 -0.0696576461 0.0833167359 0.0258793011 0.0290675387 0.0484126285 0.0855892375 -0.0681120679 0.0843675807 0.00114542246 0.0678722933 -0.0222658142 0.0253355503 -0.042885337 0.0912477896 -0.0587367527 0.0517774597 0.0752786174 0.0471837148 -0.0494426973 -0.0551629141 0.0673886016 0.0564077869 -0.0445684344 0.0614354089 0.0870144442 0.0102852061 0.0508862957 -0.010736905 -0.0265141875 0.0415811911 -0.0812525004 -0.0598369464 0.0898458883 0.00690405071 -0.00427104533 0.0358195826 0.0281906426 0.0659860298 -0.0596695356 -0.0763747096 0.00127889961 0.0616201982 -0.0472184308 -0.0908396915 -0.0385754444 -0.0381811485 0.0779133067 -0.0427177288 0.048133187 -0.0668561757 0.055018343 -0.0537151955 0.0630124584 -0.0590246059 -0.0493057705 0.0132616609 -0.0655003339 0.0636265054 -0.0811076015 -0.0639499128 -0.0311464928 -0.0840623528 -0.000759206712 -0.0538675077 -0.0754759386 0.0193076506 0.0533018336 -0.0439671986 0.0870276764 0.00708354264 -0.0303171612 0.00141712278 0.0570398495 -0.0285481364 0.0217671692 -0.0238844231 -0.0363960564 0.0106511787 0.0216306373 0.0110794529 -0.0601745211 -0.0544049814 -0.0782554224 -0.00666858256 0.0344982073 -0.058073137 0.030979082 0.0334448293 0.0178535059 0.0608868673 -0.0629392117 -0.053561803 -0.0429395512 -0.065682888 0.0235836506 -0.0855694562 -0.0859874114 -0.0308545902 -0.0170087218 0.0696802214 -0.0570755117 -0.0472504981 0.0230257735 0.0613549873 -0.0110641792 -0.0763232559 -0.0611640438 -0.0856784061 0.0775463805 0.0217078328 -0.0212909281 -0.0452604666 0.0785960481 0.0779047683 -0.0224326774 -0.0528332368 -0.0866917744 -0.00950370729 -0.0189820528 0.0624495223 0.0386962816 -0.0687293783 0.0377494171 0.0534660444 -0.0333467051 -0.00359891355 -0.0672701448 0.0468237177 -0.0814165846 0.0209558606 0.0907890871 0.00697533786 0.0628104731 0.0353089646 -0.0731189027 0.056611903 0.0841169134 -0.0251050368 0.0846051946 -0.0603278466 0.0429712012 0.0656820759 0.0561810061 -0.0168688521 -0.0389778204 0.0294996053 0.0371190533 -0.0665191486 0.0475167409 0.0165059194 -0.0713730976 -0.0281019583 -0.0723218843 -0.0728693902 -0.0829819068 0.0448343381 0.0505690202 -0.0916505978 -0.0704301 0.00537139177 0.0471286103 -0.00964668393 0.0319344699 0.0343484059 0.0855069086 -0.0392959788 -0.081404306 0.0553572699 0.0363217965 0.0576886162 0.0549551323 0.0674760714 -0.0694880113 0.0318767577 0.0425072685 -0.00830637664 0.0731699839 0.00605710596 0.0772894248 -0.0850552022 0.0293270871 0.0803381875 -0.0496339053 -0.0748673901 0.0840652362 0.0104187205 0.0052048862 0.0766167864 0.0256285518 -0.0331775546 0.0751029328 0.00801427662 -0.0248098299 -0.0128577724 0.0393099114 0.0870745406 -0.020016171 -0.0585613959 0.0626208708 -0.0839986578 0.0677014366 0.0804293081 0.0648956522 -0.0335948952 -0.0684137195 -0.0756282955 0.0359907523 -0.0487053245 0.00394077599 -0.0497863702 -0.0189026147 -0.00565123558 0.0138135552 0.0451611802 -0.0576910563 -0.0863848329 -0.0841667056 -0.0261433795 0.0243364722 -0.0528305285 0.0457531437 -0.00161706656 0.0118920803 -0.0727223828 0.0648328438 0.0815579668 -0.0868494734 -0.072903946 -0.0214751363 0.0797358826 0.0361481681 0.0601060912 0.0505511388 -0.039972581 -0.0646228343 0.0418927744 0.0127923787 0.0195574313 0.0147296488 -0.0289703608 0.0637282208 -0.0112974271 0.0816302672 -0.0575665683 0.0872423872 -0.00251179188 -0.0383488275 0.00998562574 0.0818716064 0.0823104307 0.0817868635 0.00359120965 0.0213027894 -0.0461196452 0.059216775 0.0426172242 -0.0290498435 -0.0179122314 0.0417522117 -0.0616638362 0.055693455 0.0321777686 -0.0809392259 0.0041718632 0.00438349694 0.0655662045 -0.0178182051 -0.0423379838 -0.0136142671 -0.0666181296 0.0371067747 0.057333447 -0.0831905454 -0.049538292 0.00565087795 -0.0556082949 -0.0844091773 -0.0520585328 0.0103510618 -0.0276780352 0.0517474785 0.0744122639 0.0537680015 0.0659692362 0.00971526653 -0.0770918131 -0.0217285007 -0.0645005479 0.0675668642 0.0534142628 0.0436166599 0.00501658022 -0.0223056152 0.086269699 -0.0637897402 0.0781883821 0.00616748631 0.0377523676 0.0212417543 0.0655713752 0.0512356237 -0.0861788392 0.00916744769 -0.0177442282 -0.0793812573 -0.0729112774 0.0776932761 -0.016224429 0.0857650861 -0.0688306466 -0.0842788294 0.0836601183 0.054269515 -0.0452863723 0.0565057918 -0.0173346773 -0.0241310745 -0.0819981918 0.0419862345 -0.078298673 0.00216908753 -0.000968880951 -0.0341262035 0.0374309644 -0.0336751454 0.0272287577 0.0555795059 -0.0785456523 -0.0264414251 0.0404999033 0.0652526841 0.0173598602 0.0442333445 0.0270933509 -0.00613304228 0.00398303568 0.0346938148 -0.0389189646 0.00290776044 -0.0382316411 -0.0899209082 0.0785527155 -0.0421273634 0.0344761685 0.0108838454 -0.0501037389 -0.0296238065 -0.0429782234 0.0559576228 0.0101453513 0.0495597497 0.0428745523 0.0485873297 0.0352251008 -0.0605716556 -0.090189606 -0.0619447604 0.0452660099 -0.0188380852 -0.00597665459 0.0149677396 0.0600590333 0.0618368164 0.0724831894 -0.00233900547 0.0531092659 -0.0615601242 -0.0779776052 -0.0573202707 -0.0217294022 0.0686290935 -0.0243336335 -0.0615019947 -0.0914429501 0.0309879929 -0.00654800236 0.0880224332 -0.0744362772 -0.036440473 -0.0883274153 -0.0857174098 0.0675213113 -0.0491170101 0.0468185022 0.0250290781 0.00187762827 0.07780727 -0.0108569115 -0.0765093714 0.0161783397 -0.0438922308 0.0125854984 -0.0653838739 0.0747712925 0.0644012168 -0.0558946058 0.0429392383 -0.0707680285 0.0215432569 -0.0309091993 0.0354498252 -0.00966561586 -0.0431347154 -0.0781382844 -0.0121639967 -0.0514301769 -0.0836036131 -0.0726314187 -0.0465376675 0.059663929 -0.0120561942 0.0277566165 -0.067552276 0.0501976535 -0.0762242526 -0.00109010935 0.0208827034 -0.00983128697 -0.0629281849 -0.0596067831 0.00559704006 -0.0713821426 -0.0504876226 0.0754675791 0.0494334474 0.0327502713 0.0446631685 -0.0223760679 0.0529638007 0.0611090884 -0.0311723538 0.0745229945 -0.0474210158 -0.0214181691 0.0604245141 0.00767855346 0.0847745761 0.00503978133 0.0543075874 -0.0152748972 0.0614232644 0.0272988603 0.0365655199 -0.0822426155 -0.0870367214 -0.05411385 0.0401513353 0.00126703084 0.0595964417 0.0780038014 -0.000617153943 0.076945506 0.0156025663 -0.0587389544 0.0660532787 0.0252426863 -0.0388120785 -0.0612305179 -0.0290651396 0.0346153602 0.0408210829 -0.0895498767 -0.043648839 -0.0491830409 -0.0491188131 -0.0383964777 -0.0645617843 -0.0715185404 -0.00754072517 0.0122821108 0.0283284932 -0.0125727132 0.0402082875 0.0475428179 -0.0690454021 -0.045923885 -0.0586945377 -0.0436244272 0.0855727419 -0.0595415011 -0.0167974904 -0.08771649 -0.0366320983 0.0884172544 0.0387737229 0.0783086494 0.0220544264 0.067603983 0.0894738361 -0.00101529807 0.0191664323 -0.052042421 -0.0278094634 -0.025492996 0.0281988531 0.0561148599 0.047000967 0.014219515 -0.0809525847 -0.0206311643 0.0905399248 0.0513894185 0.0669635162 -0.0477558151 -0.0236778334 0.0800149217 -0.0790690184 0.0123075992 0.00281122327 0.0435074642 -0.00272247195 -0.0671346486 0.000970683992 0.00118570775 0.029692702 0.0275551304 0.0400213525 -0.0743061677 0.0768330768 0.0871990845 0.0796096399 -0.0251114443 0.00488962978 -0.0445567034 -0.0100695267 -0.0489600301 0.0638914928 -0.0582591929 0.0741942748 -0.00455973297 0.0341798887 -0.0514563061 0.0768220797 -0.053691797 -0.0189579278 0.0902773812 -0.0457181074 -0.0900042355 -0.0632647723 0.0544343218 0.0419459566 -0.0867286399 -0.0563285872 0.0105139166 0.0374283418 0.0598774627 0.0832743421 -0.0351996571 -0.0609860681 -0.0612202808 0.0284832716 0.00745928288 -0.0723288357 0.042607896 0.0047481209 0.069684498 -0.066986829 -0.00810784101 -0.0612817556 0.000164441764 0.0851833448 0.0721376315 -0.0651869252 -0.050282795 -0.00756449252 0.0134463757 0.0381545648 0.0813645795 0.0117290094 -0.0510220826 0.0601391718 -0.0181408748 -0.0876815841 0.0489594564 -0.0530342795 -0.00281424075 0.0471898839 0.0716542378 0.0745561644 0.0834620669 0.0797327831 -0.0585361719 -0.0356764905 -0.0292404965 -0.0800149813 -0.00144727528 -0.0726844147 0.0682476833 -0.0483914353 -0.0466427691 0.00932595134 -0.0061621815 -0.0871984959 -0.0514881536 -0.0403326526 0.00171644241 0.0881891474 0.0770928338 -0.0832390785 0.0665261224 -0.0451612882 -0.0357641801 0.0383828953 -0.0329282619 0.0288667828 0.0759614184 -0.0192143694 -0.0791255161 0.0081935972 0.0649652556 0.0514863208 -0.0574741438 0.0485284999 0.0415972695 0.0407589749 0.0143969432 0.0555175021 -0.0895604193 0.0186218545 0.0818816945 -0.0291478336 0.0807771608 -0.0922219455 0.0270140916 0.0679773614 0.0787012801 0.0254364461 -0.0582951568 -0.0809522793 0.0546847954 -0.0668790042 0.0631763265 0.0321367905 0.0459016934 0.0337537155 -0.0695319027 -0.0311587304 -0.0288554654 0.022936672 -0.0291262195 0.0767771974 0.0721644685 -0.0600859076 0.0592204407 -0.0369080193 0.0227153152 -0.0528996401 0.0158179998 -0.0688801035 0.045056738 0.0681117848 0.0265867114 0.0138872415 -0.0464796051 -0.0325151272 -0.00737450272 0.0452144369 -0.0558094941 0.0250638798 -0.0021302402 -0.0748179331 -0.00743159652 0.0812299624 0.0224295557 0.0114999861 0.0601947978 0.0369486734 0.0584277734 0.0858404264 0.0621971712 -0.0219153017 0.0808677152 -0.0867797434 -0.0343727432 0.0910524651 0.0718490705 -0.00150109082 0.0797882304 0.0503951833 -0.0725474656 0.0904843286 0.0264841914 0.0470935479 -0.0057509169 0.0800207779 0.061369054 0.0157303587 0.0340678617 -0.050488703 -0.0922572538 0.0260500312 -0.0155156255 -0.0543931834 -0.0595838912 0.0139859617 0.0597556159 0.0422235653 0.0723632649 0.00775662065 -0.00275610387 -0.0472933762 -0.0441396944 -0.0580694601 -0.00610493869 -0.0693074167 0.040008612 0.0409487858 -0.0399514735 -0.0488402061 0.0386506096 0.0876981094 -0.0366831832 0.032767646 -0.0399391688 -0.0560081378 -0.0670159906 0.0284129679 -0.0319919139 0.00831573457 -0.088916637 0.0872463956 -0.000182665884 0.0739420131 -0.0168310553 0.011853829 -0.060397882 -0.0217178464 0.0524467751 0.0180385262 -0.0834406242 -0.0649743676 -0.0875592902 0.00394447148 -0.0329950415 0.0440288261 -0.0153730363 -0.000412650406 0.0284364522 0.0560420826 0.0300864875 0.00375736505 -0.0461275019 -0.0270189568 -0.0171740875 -0.0172421262 0.0760389939 0.0283014849 -0.030104056 -0.0247077495 -0.0411288366 -0.0134316683 0.0129240453 -0.0351540931 -0.0128855258 -0.0716865733 0.0133730546 0.0484088287 -0.0502680913 -0.000109791756 -0.03102649 -0.082609728 0.0614123866 -0.0246398449 -0.0522357821 -0.0918365195 -0.0508448109 -0.0306014679 0.041772835 0.083213307 -0.0433522463 -0.0378756002 -0.00741834193 0.0294093564 0.0532175824 -0.0731508881 0.0009072721 -0.0226721093 0.0347410664 -0.0454476215 0.0249019861 0.0486162975 0.0873794481 -0.0123571604 -0.0149468482 0.0103318244 -0.0789020658 -0.0678140968 -0.0866947174 0.00868073106 0.0441511348 -0.0234866962 0.0740881488 -0.0414299853 -0.0482853651 0.0436872467 0.028892003 -0.0775709376 -0.0574369691 0.0337006971 -0.0712451935 0.0684306249 -0.0836716443 -0.00558821857 0.0657768026 -0.0915156528 -0.0905161127 -0.0753169358 0.0332622752 -0.000986970961 -0.0613625795 -0.0384552479 0.0776538923 -0.0646809638 0.083871223 -0.0319224484 -0.0532831289 -0.00665803254 -0.00685641915 0.00412277877 0.0206411108 0.0577491596 0.0591159984 -0.0428899825 0.0637789145 -0.0322978608 -0.0409661569 0.0581448749 -0.0380194597 -0.0692962781 0.0500789061 0.0921062008 -0.0499891527 -0.0144857317 0.0744706914 0.0603210703 -0.0656231269 0.0604206696 -0.0680049881 -0.0101026744 -0.0762470961 0.0810612962 -0.000277422369 0.0647490248 0.0600247458 0.0691318139 0.0757296309 -0.060285233 -0.0246615708 -0.0567747839 0.0527016595 -0.00208908319 0.00417692959 0.0796266124 0.0121849328 -0.0827711374 -0.0292562544 -0.0160188898 -0.00294935703 0.0231194496 -0.0503094047 0.0913202688 0.0636470094 0.0876444653 -0.0449221879 0.0399569497 -0.0231893137 0.0404098406 -0.0482074916 0.00384063274 0.0113992468 -0.0153965056 -0.0282625929 0.0768380538 0.0844767019 0.0339728519 0.0531674698 -0.066739589 -0.0402105153 0.0298937038 -0.0436995924 -0.0758031681 -0.0718760639 0.0613586679 -0.00348091125 0.0524508879 0.0342166945 0.0631354824 0.0153503045 0.00588234514 0.0591234788 -0.00324804336 0.0750042126 -0.0316745453 0.0490564629 0.079463847 0.00768953562 0.051561676 -0.0710498989 0.0278150737 -0.0141058117 0.0451352671 -0.00072876364 0.0326464176 0.0403941646 0.0343731567 -0.0359990112 0.0369168743 0.0238652974 -0.0680631623 0.0768123493 -0.0119087249 0.047822468 0.0554679558 0.0121040866 -0.0683264285 0.067724444 0.0909912512 -0.0768719316 -0.0104082003 0.0392761305 -0.00367017835 0.012720339 0.0334547684 0.07291881 -0.0817821175 -0.0249081999 -0.0220031664 0.0242020786 -0.00953689963 -0.064276062 -0.059518721 0.0253261551 0.0520008728 -0.0457456 0.0422567204 -0.016717419 -0.0468026958 0.00989130884 0.0137525424 -0.0904748216 -0.0299047939 -0.0132626742 -0.0684522837 0.0921372995 -0.0876158401 -0.0610275604 -0.0539608113 0.0320537612 0.0494208261 0.0897636339 -0.024082385 -0.0611645505 -0.0882255286 -0.0178249851 -0.0444332473 -0.000134415925 0.0481837913 -0.000495016575 0.0246677101 -0.0731916875 -0.0787048116 0.0586143062 -0.0368276164 0.0643786564 -0.0682953298 -0.0676159561 0.0298679695 -0.064115189 0.0419744179 0.0333618745 0.0884719416 -0.0716283545 0.0903654769 -0.0821844041 -0.0816550031 0.00562376529 0.0796209946 0.0321303383 0.00988633186 0.0222929344 -0.0464964211 0.0205747709 0.0881750807 -0.0418485776 0.04901921 0.0495116338 -0.0233878642 -0.0480912328 0.0025909394 0.0477866158 -0.0597427413 -0.0670740753 0.0734970942 -0.0337406024 -0.0492592193 -0.0569454767 0.0579986796 -0.0253301114 -0.0872512758 0.0820451155 0.0131725222 0.0144312978 -0.0863711461 0.0222201198 -0.0837066025 0.0126065463 -0.0388442613 0.00465513021 -0.000924110413 -0.0123017654 0.0897136107 0.0921508595 0.0410474017 0.0517209992 -0.00716797262 0.0361148342 -0.00290648639 -0.0871737599 0.074056901 0.076156728 -0.00321000814 -0.0859024078 -0.0357244089 -0.00346621126 0.0534153953 -0.0085586831 -0.0262571946 0.0168385878 0.000254109502 -0.0767596811 0.0363092199 -0.0419454239 0.0556014255 -0.0628971756 -0.0431985706 -0.0266029388 0.0824861452 0.0391274467 -0.0258400738 -0.0101898834 0.023228094 0.0742765442 -0.0379718319 -0.0213608593 0.0272808373 0.0518747643 0.0432917252 0.0297561139 -0.0556210168 -0.0508744791 -0.000623181462 -0.0764092505 0.066812776 0.0746410415 -0.0023669824 0.0701403543 0.0603911951 -0.0378237218 0.029822737 -0.0564464331 -0.0098118484 -0.0342160277 -0.0730453879 -0.0100700334 0.0798946992 -0.0250654817 -0.0397460498 0.0580153987 0.056641005 -0.0911232755 0.0865050182 -0.0285121724 0.0276130661 -0.0172336251 -0.062329039 0.0683983341 -0.0588936657 -0.0593833774 0.0548533723 0.0536629632 -0.0120288134 -0.0551397353 -0.0643973202 -0.0640382841 -0.0540810302 -0.0527012832 0.000532567501 0.0476050004 0.0226823017 0.0887172893 0.0384460911 0.050964959 0.0253047347 -0.0371343754 -0.0401015431 -0.0777662173 -0.049233865 0.0365895703 0.0253041834 0.0662887916 0.0518268123 0.0665481165 0.0712357685 -0.0503987446 -0.0429980978 -0.0627239048 -0.0512839854 -0.0503749736 -0.037529882 -0.0114875734 0.0907890424 0.0226122141 0.0523797795 0.0588642135 -0.00745921582 0.00505881757 -0.0875509083 -0.0622214302 0.053151004 -0.0235826373 -0.054971464 -0.0543217622 -0.074725382 -0.0263909772 -0.070951201 0.0530366972 0.0381404683 -0.0889715701 -0.0903230831 -0.0166699216 -0.00132118165 0.0156514049 0.043097876 -0.0585044324 -0.0826112479 0.0524866208 -0.0901681259 0.0762354508 -0.0728501081 0.031221129 -0.0244246051 -0.0268855318 0.0327817872 0.00126797706 0.0171894282 0.00342938304 0.0249531865 -0.0655075312 -0.0446991324 0.0218043029 0.0848480389 -0.0773252174 0.0394227579 0.00571195781 0.0366305634 -0.0292530656 0.0113353059 -0.0338203907 -0.0469245911 0.0691550151 0.0789580569 -0.00365327299 0.0245315507 -0.0838573501 0.073111929 -0.019250229 -0.0804239586 0.058057867 -0.0430054702 -0.0326459333 -0.0263987705 -0.0819822103 0.0759046152 -0.0475890003 0.024586603 0.0510866866 -0.0041315183 0.0147486925 0.0891279504 0.0421473905 -0.051982332 -0.0749100447 -0.0423417911 0.0140340775 -0.0620062128 0.0184324086 0.0572543517 0.0838971063 0.0177480802 0.0398134068 -0.088158682 -0.0503422022 -0.0262115449 -0.0455072932 -0.0669791028 -0.0169358477 0.0658250526 0.0886001065 0.0635558143 -0.0674596131 -0.0095563978 -0.0776658282 -0.0837657005 0.0508744195 -0.0229096487 -0.0450248681 -0.0658202916 0.0198295861 0.00362184644 -0.0584340207 -0.082134679 -0.0453580618 -0.0704216063 0.0836719945 0.071498163 -0.0854616091 0.0465548113 -0.0825536922 -0.0495433323 -0.0824001729 0.0766019747 -0.0522716381 -0.0241967067 0.058755137 -0.0230292082 0.00805973262 0.0922737643 0.0412545577 0.0453356728 0.0164121762 0.0718773827 -0.0635614246 -0.00849124789 -0.032382492 0.0361184403 -0.0922128782 0.0367006436 -0.0554607362 -0.000386126339 0.0323703885 -0.0841270462 -0.0170120895 0.0670132861 0.0166917294 -0.036364384 0.0669984743 -0.0598043948 0.0381590351 -0.00296364725 -0.0230879337 0.0431650206 -0.0269301906 -0.0764369816 -0.0338453278 -0.0620229393 -0.0435984544 -0.0529011376 -0.090439342 0.0228217766 0.0345306471 0.00144752115 0.0748783126 0.0799877718 0.0712645426 -0.0663520023 0.04075066 -0.0207602382 -0.0544899851 -0.0370815285 -0.0171501413 -0.0563346185 -0.085417673 0.054713808 0.05043035 -0.0573676564 -0.0453559272 0.0801491812 0.0480493978 -0.0383647829 -0.0902967975 -0.0804613084 0.0459641144 0.0800023451 -0.0706923828 0.0440580621 -0.0724178031 -0.0645233542 0.0297136083 0.0917731598 -0.00379935652 2.579391e-05 0.00244095922 -0.0526949018 0.0435508266 -0.0476148166 0.0103714466 -0.02870965 1.95428729e-05 0.00248064846 -0.0625121668 0.0543275699 -0.0849474221 0.052239202 0.0915064588 0.0273547471 0.0628054962 0.030546248 -0.0394574478 0.043961741 -0.0333479792 0.0094878599 -0.0630623847 -0.0135958716 -0.0176922828 -0.0503013507 0.0110135376 0.0746975318 -0.00396921486 0.048343502 0.0721883252 -0.00790715218 0.0362962112 0.086551629 0.0142392144 -0.0468645468 -0.0812661871 -0.0307185203 0.0453557894 0.0446589366 0.052357398 -9.57921147e-05 0.0156711265 -0.044783432 -0.00548003614 -0.00484069437 0.0395728871 -0.0383845493 0.0763569251 -0.0076347962 0.0674668178 0.0783863589 0.0218963251 0.0682634339 -0.0114218518 0.0910366103 -0.0112773925 -0.00286642462 -0.0675863922 0.0267459825 0.0888823196 -0.0561274104 -0.0419059843 -0.0361370817 -0.00261871517 0.033339791 -0.0680090189 0.0664575174 -0.0865488574 0.0900586471 0.0297995582 -0.0746837407 0.0840651765 0.0645783618 0.046513252 -0.0647894591 0.0521011427 -0.0444920808 -0.00446044654 0.0284601822 -0.0755621791 -0.0452511124 0.0848732665 0.0097739473 -0.0784656629 -0.0538709201 0.0621014014 -0.0796338469 -0.0628756285 -0.0449644029 -0.0218869075 0.00830780715 0.0840780959 0.0768559352 -0.071536243 -0.0502669029 0.0823509321 -0.0504056364 0.0659406111 0.02060581 0.0343575552 -0.0615339316 -0.0197582319 0.0184792876 0.0113521442 -0.00382493436 0.0501234159 0.071533449 0.0129137412 -0.0665634349 -0.0049212575 0.0920312628 0.00837234408 0.0126298517 0.00702303648 0.02302441 0.0291452557 0.0288247392 0.0834879205 0.0790823326 0.0383776352 -0.0418619402 0.0575244352 0.0460972115 0.00198787451 -0.033788871 0.0315936357 -0.0502065942 0.0849436596 -0.0356972255 -0.0854775831 -0.0605461672 -0.019297488 -0.0346155427 -0.028069295 -0.0472282469 0.0304352716 0.0259633809 -0.0773643255 0.0908062086 -0.0676310062 0.00977920741 0.0548634455 -0.0638682097 0.0640398636 0.0678609982 -0.0718793422 -0.0270019397 -0.0625938475 -0.00817431509 0.0730543062 0.0437494889 0.0683690831 -0.0613850541 0.0124744326 0.0913607702 -0.0238640383 0.0102300942 -0.055480171 0.0858275518 0.0810378566 -0.0757072866 0.0653581396 0.0824360922 0.0589628443 0.0680078939 -0.0252311155 0.0049739033 0.084975414 -0.0599709451 0.0320213437 0.0321654901 0.0433384255 0.0810298845 0.0513349101 -0.0833620504 0.0518045947 -0.0912890583 0.00676348805 0.0137061849 0.0224105343 -0.0556969084 -0.0157945156 -0.0524613895 -0.044346679 0.0422825888 -0.0621429831 0.063141726 0.0644035712 0.0611688718 -0.0739704669 -0.0413691029 0.00379779935 0.0274552703 -0.0898985192 0.00207153708 -0.0803094581 -0.0644039214 0.0245209411 0.0151694193 -0.0375756845 0.0703468099 -0.0050509423 -0.0878437757 0.0150228739 0.0115320757 0.0448116586 -0.00581406802 0.00577966124 -0.0826723948 -0.0185840353 -0.0643019676 0.0742878094 -0.0427944586 0.0833752528 -0.0216807574 -0.0777673796 -0.050620459 -0.0827102512 -0.0242789388 0.00855648518 0.0823662505 -0.0886503533 0.0114488825 0.0874739811 0.0833512619 -0.0365757719 0.0466228053 -0.086405918 -0.0823646411 0.0810143277 -0.020251967 -0.0545742214 -0.0873931795 0.0782028362 0.0392102972 -0.0533761457 0.0612542704 -0.0434998274 0.0354094878 0.0720430985 -0.0323349051 -0.0689317584 0.00382418931 0.0607749894 -0.0636621714 -0.0672971532 0.0468292609 -0.0349145532 0.0626872852 0.0165822282 0.0351827219 0.0453275517 0.0635829046 -0.0168523863 -0.0284960791 0.0734884217 -0.0680963993 0.0652899966 0.0597398654 -0.0369976461 0.01941403 -0.085111022 0.0201863348 0.0626561865 0.0546021983 -0.0683944002 0.0158385634 -0.0815305784 0.0095942989 0.0538776591 -0.0886906534 -0.0645411164 0.0559246913 -0.00377497077 -0.0564662404 -0.00139977783 0.0493003353 0.0432886854 0.0514147952 0.0867680088 -0.0182905942 -0.0418303087 0.0530543998 0.0178795233 -0.0558001176 -0.0525076799 -0.0757509395 -0.0871629491 -0.0119733214 0.0299612284 0.0445440039 0.0565827861 0.0831186399 0.0774956867 0.00560817868 -0.0382772684 0.0651116744 -0.0600001775 0.0184660181 0.0586278066 -0.0792088285 0.059972547 0.0885886326 0.089556627 -0.0683524907 0.0832121149 -0.00662918389 0.0726729706 -0.0159938857 -0.0590090007 0.0408034101 0.0503027365 0.0298633054 -0.0823688284 0.00610392541 0.0441638604 0.0842178389 0.0195655748 -0.0757575408 0.00930809975 -0.0807818696 -0.0719104409 -0.0120878667 0.078352578 0.00654523075 0.0465859398 -0.0881329924 0.0782173648 0.0249723792 -0.0161815956 0.0152498931 0.0197824165 0.0366295651 0.0682447925 0.0515095964 0.0332215056 -0.0127227604 -0.0883509666 -0.0729850382 -0.0781012177 0.0318307132 0.0677679405 -0.0129507631 -0.0139890462 0.054706268 0.051769577 0.014760375 -0.0204227716 0.0339918956 0.0706416443 -0.0426718593 -0.059652146 0.0338458195 -0.0209414437 0.0397285745 0.00316154212 0.0044837296 0.00925474614 -0.0358822457 -0.0102547929 0.0570362434 -0.0634696186 -0.0462009534 0.0902699754 -0.0145743415 -0.081182152 0.0329345837 -0.00336249918 0.0172612965 -0.0719642118 -0.034769129 -0.030648727 -0.0570716597 0.0877969339 -0.0869738385 -0.043430008 -0.0132900104 -0.0352154374 0.0304517746 -0.0204996318 -0.0595503263 -0.0771315843 0.0727022067 -0.0830627084 -0.00466240942 -0.0501608327 0.0743778422 -0.0343054794 0.00377288461 -0.070044741 0.0223034546 -0.0509367697 0.0065029487 -0.00602340698 -0.0517288148 0.0759624168 -0.0277823657 0.032380335 0.0110386685 -0.0789320245 0.0120702609 0.0330957696 -0.0064182356 0.0315100849 0.057309024 0.0374833271 0.0109075978 -0.073596023 -0.0895601511 -0.0148975477 -0.0166800618 -0.0824837238 -0.063604854 -0.0430667922 -0.0588623025 -0.00700730085 0.0473304465 -0.0234849304 -0.00936376303 -0.0801298097 0.0667422339 -0.0867770165 0.036755003 -0.00698911399 -0.0285914093 0.0180505887 0.0535447076 -0.0328592174 -0.0134464651 -0.0663404465 -0.0108752847 -0.00349841267 -0.0905798748 -0.050628446 0.0190238729 -0.0920117274 0.0677005574 -0.0166446269 0.0645952746 -0.0729345232 0.0116832256 0.0689262822 -0.0774235353 0.0524437651 0.054302521 0.0113095343 -0.0383329988 -0.05981135 -0.00976087153 -0.0552027747 0.00631991029 -0.0756401345 -0.0778476298 0.0890765116 0.0914600715 0.0347813293 -0.0513972715 0.035251461 -0.040226277 -0.00312568247 0.0344975814 -0.0833607092 -0.015786767 0.0363906845 0.0720918104 0.0344014391 -0.0644274279 -0.0369438753 0.035732545 -0.0474388227 0.0108362436 0.0325207636 -0.0539137535 0.0568775907 -0.0168843195 -0.0446366444 0.07435406 -0.0902612284 0.0199831128 0.0631320402 0.0792714879 -0.0789034292 -0.0687675849 0.0385306254 -0.0603554249 0.0521456525 0.0278890058 0.0599347129 -0.0549240559 0.0718255714 0.0625853017 0.0883392766 0.0181603581 0.0673177317 -0.00820761919 -0.084137544 0.0552559569 0.035374172 -0.00133515894 -0.0404902697 -0.0488032512 0.0521800742 -0.0702349991 -0.0860080793 0.00847209245 0.0415183529 0.0885259286 -0.0501223169 0.0315193534 -0.0792748109 0.0592451021 -0.0576211289 0.0762941167 0.0216013864 -0.0332340524 -0.0223567411 -0.0769214109 -0.0374721922 0.0742693469 0.0216701478 -0.0115170702 0.0885658786 0.000158630311 0.0579675362 0.0376497582 0.0286120996 -0.0426645502 -0.00687904656 0.057133846 0.00578433275 -0.0384932794 0.0145920888 -0.0885349289 0.0742831007 -0.0861733332 -0.0241078287 -0.0860323384 -0.0753745809 0.0109143332 0.0384745076 0.0730092749 -0.0324819349 0.0666725561 0.041418381 0.0561554506 0.0849100873 -0.0602797978 0.0343223885 -0.00545465946 -0.0878550038 -0.0225811154 -0.0107028782 0.046854876 -0.0827064887 0.0562618002 -0.00968009979 -0.0598392375 -0.0580735542 -0.0554438978 -0.0105074272 -0.0880759433 -0.0219227374 -0.0656406283 -0.00682641566 -0.063898012 0.026212804 -0.0109958798 0.00738053024 -0.0412557945 -0.0791324303 -0.0386441611 0.000423572958 0.00338400155 -0.0636376515 0.0231873095 -0.0697125643 -0.0194131508 0.01328706 -0.0478222892 0.0843408033 0.0294826105 0.0597448125 -0.0194123387 -0.0384798981 -0.068062216 0.0208751708 -0.0684221536 -0.0850162655 -0.0873245969 -0.0337873958 0.0107837245 0.0795967653 -0.0376224369 0.0424476638 -0.0369258486 -0.048605334 -0.0346849412 -0.0835071877 -0.0788954198 0.0358029827 -0.01942233 -0.0551875867 -2.64793634e-05 0.0532726273 0.0304867104 -0.0789638311 0.0546437725 0.0867949054 0.0286765844 -0.0107122809 -0.0899544507 -0.000328332186 0.0914741233 0.0894938335 -0.0705610886 -0.0328763612 0.0745409057 0.0622053668 -0.00761401653 -0.0331244208 -0.0853171945 -0.00473377109 0.0315505415 0.0443716422 0.0699930862 0.0371377841 -0.0267350897 -0.0528372638 -0.00999343395 -0.0168473199 -0.029237017 0.0771296546 -0.0509002768 0.0347330347 0.0499237403 -0.0798668936 -0.0385666639 0.0591904745 -0.0243784264 0.0131788775 -0.0645645112 -0.0348605178 0.0235556737 0.0912810192 0.0501758084 0.0657168701 -0.0627605543 0.00238520652 -0.0479009748 0.020145528 0.0485960022 -0.0911846608 0.0880737826 -0.0153536275 -0.0249862447 0.0437489823 -0.0775802284 0.0148172081 -0.0280747786 0.0238979608 -0.0235797316 0.0423610881 0.0545268133 -0.074753575 0.0495893285 0.0751602873 -0.0343606807 -0.0698071197 -0.0199304819 0.00846558064 0.0688513294 -0.078879416 0.0704642609 0.0568299368 0.072301738 0.0113207996 0.0677503571 -0.0162104741 -0.0239943415 -0.012167789 -0.0532049946 -0.0272085294 -0.037605729 -0.0100759342 0.0548598096 -0.00675292313 -0.0739073604 0.0346606597 0.00559066236 0.0425145552 -0.0755540729 -0.0766796693 -0.0624428317 -0.0873144716 0.0151550472 -0.0291267484 -0.0044953078 0.0334587619 -0.0102402866 -0.0859285146 -0.0787902325 0.0762132928 0.0360028222 0.0477723256 0.0430506989 0.00563113391 -0.0182368457 0.0431398675 -0.0150470436 0.0320593789 -0.0859002322 0.0565301403 0.046321325 0.0527548715 -0.0439660735 0.0170066357 0.0368816033 0.0287948251 -0.0685198605 -0.00872035325 -0.0832144022 -0.0191608891 0.0258956105 0.0782479569 0.0585964099 -0.0224545598 0.0722927675 -0.0429841205 0.0427661464 0.00829707086 -0.0134962052 0.072605066 0.0263223276 -0.086547628 -0.0467049927 -0.0873330906 -0.0696011484 -0.065603137 -0.0847358555 -0.0635682717 0.0377923772 0.0406199768 0.0520705953 0.0455263034 0.0448635444 0.059092246 -0.00217203796 0.0212884173 0.0710569397 -0.0221928284 0.0490217432 0.0830393806 0.0732303634 0.015966922 0.0254063606 -0.0065818131 0.0128223971 0.0894278213 0.0300100073 0.0413382426 0.0877172425 -0.0791815817 -0.00518324971 0.0465569571 -0.0763559639 -0.0672130287 0.0729581341 -0.0590248704 0.0383064076 -0.0863678455 -0.0801677778 -0.0539518073 -0.071651198 -0.0901680589 0.0902542397 0.00978200138 0.0411270484 -0.0331972316 -0.0909473225 0.0654508993 -0.0129559338 -0.0567379817 0.000111550093 -0.0850081891 0.0704492703 0.0405879989 -0.0243087187 -0.0832649842 0.0282706693 -0.0691337287 -0.0148332119 0.0361058936 -0.00105238706 0.0524713472 -0.0525640473 -0.0251871794 0.0664029941 0.0341072753 0.0455153063 0.0903442726 -0.00433415174 -0.0248609856 -0.0273317918 0.0252463669 -0.0116087645 -0.00739283115 0.0439102724 0.00388379395 0.0682206675 0.0102329552 -0.0712830275 -0.08628764 0.0173220411 0.0097746104 -0.0252792239 -0.0723928437 0.0596740916 -0.0755312964 -0.0394033492 -0.0670061558 0.0136760324 0.0753665641 0.0465443656 0.0178189501 0.0606936589 0.0457171425 0.0370092466 -0.0315037891 -0.0406271294 0.0728816763 -0.00625885278 -0.0735865831 0.0762740895 -0.0392402932 -0.0567026995 0.0289262086 -0.0157414526 -0.0497767515 0.082434006 0.0407827422 0.0206246302 -0.0550914444 -0.0161072612 -0.0278953239 0.0729065612 -0.0267276242 -0.0466956608 0.0766743198 0.0457128957 -0.0274234191 -0.00514582545 0.0164132565 -0.0791077986 -0.0677751973 -0.00741090626 -0.0354556367 -0.0288223624 -0.0507757626 0.039964281 0.0721436366 -0.0467522256 0.0172968879 -0.0472698025 0.0401768163 0.0416387096 -0.0451174416 0.0586451069 0.0645661876 0.0136304274 -0.0663179979 0.00867712498 0.0531602427 0.0348475501 0.0690153763 -0.0452078171 -0.0686492622 0.0303287804 -0.0773709938 -0.0837596431 0.0760012791 0.00130845606 -0.0839452595 0.0182308778 -0.066039674 0.0869883224 0.0726511404 -0.063937895 -0.059213873 0.0517520532 0.0395690277 -0.0519238301 -0.0683356747 -0.0777670294 0.0902865604 -0.0761081874 -0.091015555 -0.0722072944 -0.010894455 -0.0285403654 -0.0275504664 -0.043528419 0.0414698943 0.00239031762 -0.0863899216 0.0815801397 0.0391281024 -0.0685287043 0.00518606603 0.0239017233 -0.0822739154 0.0180915967 -0.0031882599 -0.0667519569 0.0578839406 0.0174611509 0.0474205241 -0.06812644 0.0298026204 0.0439173803 0.055877544 0.0494619086 0.0408850983 0.0479241237 -0.0257571638 -0.0553201102 0.0603898987 0.0810571983 -0.0778900906 0.0685311332 0.0786246732 0.0858890042 -0.0232823491 0.00444772094 -0.0919344872 0.0591870919 0.0430614278 0.0789828524 0.0744216368 0.0845257267 0.0443737581 -0.0485875271 0.0407883152 -0.0702462494 -0.0868332759 0.0740564242 0.0203997716 -0.0466897376 0.0339844152 -0.0262346342 -0.0559345335 0.0730093196 0.0436624363 0.00573548675 -0.00769189 0.0371897742 -0.0735037103 0.0441830084 0.0174924284 -0.0592786744 -0.0625611395 -0.00885802507 0.0791314319 0.0666788593 -0.0119850785 0.0169042647 0.0673163459 0.082608901 -0.00612214953 -0.0678882673 -0.0117842779 0.0698744431 0.0266057998 0.0622432902 0.0617404506 -0.0652317777 -0.033939071 -0.0853756517 0.0587819144 0.0395478234 -0.0454042628 0.00954899937 0.0849023238 0.0475104675 0.0225743577 0.0444375202 -0.0654035956 -0.0569657683 -0.00743487477 0.0697758868 0.0429002866 -0.0813921764 -0.059548039 -0.0381722786 0.0667618588 0.0367716476 -0.0610602684 0.0822200999 0.0705335513 -0.0819016993 0.0165972859 -0.0329931267 -0.0773605853 0.0319423229 -0.0584283434 -0.0404892787 -0.0810907185 0.0597451851 0.0875014737 0.0556807294 -0.0548267029 0.0329673514 -0.0680285618 -0.0449994206 0.0798448399 0.0233391151 -0.0157138035 -0.0508487485 0.0380008891 0.0866763815 -0.0237916261 -0.00439821929 -0.0338865779 -0.0185492858 -0.0517390072 0.0210607424 -0.00962654501 -0.045723699 -0.0575838462 0.0529660955 0.0151753426 -0.0354081839 0.0177148432 -0.0241093263 -0.0464472063 0.0611472353 -0.0530370548 0.0272361338 0.0121341944 -0.0272767022 0.0749008879 0.0356596485 -0.0600278452 0.0719001219 0.080045484 0.0771159455 -0.0830738246 -0.0909068435 0.00475928187 -0.0871810168 -0.014836669 0.0349788889 0.0921716765 -0.0326863229 0.0774501935 -0.0230629295 -0.0170200393 -0.0125868246 0.0150965005 0.0672705248 0.0617188886 -0.0627322495 0.0186981633 0.0735785738 -0.0125852823 0.0417616442 0.0059876442 0.02279526 -0.0860958844 -0.0811378881 0.0749780163 0.0895198807 0.0779669359 -0.0121312067 -0.0726186037 0.0903589949 0.079365097 -0.0212768391 0.00752458721 0.0837609246 0.0497834012 -0.0379050076 0.0378382728 -0.0500029102 0.0626485273 -0.00446471572 0.00115370005 -0.0813632086 -0.0764618516 0.00635715574 -0.0474912077 0.0825098678 -0.0632979199 -0.038359236 0.0651732162 -0.09186095 -0.0143064559 -0.0661027133 0.00323168933 -0.0355503261 0.0423760638 -0.0533205718 0.0553757027 -0.0797672346 -0.0644726157 0.0877504721 -0.0503118932 -0.0366881564 0.0793092623 0.0475819185 -0.00526023656 -0.076581195 -0.0440602563 -0.029390648 -0.00797466189 0.0314865783 3.88473272e-05 -0.0920035839 -0.00968889892 -0.0584854595 -0.0707947314 0.0299844742 0.0150627792 0.00785518438 -0.0120450109 -0.0852452666 -0.0263449103 0.0356615707 -0.0296610072 0.0391167328 0.0836243108 0.0224058256 -0.0392866246 -0.033738073 0.0220622197 -0.0596127026 -0.0711985305 -0.0732484981 0.0299924165 0.0417387709 -0.0124093294 0.084061034 -0.0164033026 -0.00938854367 -0.0739352703 -0.0888442174 -0.0168338716 -0.00297491252 0.0739211366 0.0517646447 -0.0454659127 0.0126442909 0.0788915232 0.08587908 -0.0645450354 -0.0113503635 -0.0482499935 -0.0511419736 -0.0717962533 -0.0830877572 -0.0838730857 -0.080396533 0.0918465778 -0.0013699308 0.0202357471 0.0384325907 -0.0713760704 0.0229366943 0.0802701488 -0.00412487239 0.0268583223 -0.0500585511 -0.0920251086 0.0846249238 -0.0427050963 -0.0182267651 0.0131154433 -0.0308570787 -0.0511263683 -0.0085870102 0.0606918558 -0.0530840904 0.0273889974 -0.030999992 -0.0610135607 0.0169222057 -0.023894988 -0.0789259449 -0.0442623347 0.0676499233 0.0195761845 -0.0832430422 -0.0222747996 -0.0423766114 0.0734846666 0.0302481353 0.0475275293 -0.0206588954 0.0389728174 0.0213156044 0.0035244897 -0.0609762743 0.0638430491 -0.0856974944 0.0916200951 0.0488593802 -0.0546988882 0.0652744099 0.00424958766 -0.0142629594 -0.0151884779 0.0806055292 -0.0048032105 -0.0119495317 -0.0332325138 0.0618970171 0.0592256561 -0.020162411 0.0106062293 0.0131795406 0.0105688795 -0.086195983 0.00039742142 -0.0480310805 0.0198219493 -0.0779237226 -0.0192020237 -0.0707916245 0.045349054 -0.0677372515 -0.0584088862 0.0410115197 -0.0644164234 -0.0728033409 -0.0662006363 0.0276045203 -0.0180610269 -0.00161471218 -0.0408114903 -0.00704726577 0.0495241657 0.0475253835 0.0245626345 -0.0291164443 -0.00186663866 -0.0684454218 0.0491081998 0.0830223337 0.0528355911 -0.0446632132 0.0212101936 -0.00682152808 0.0785125867 -0.0397419333 -0.00531321764 -0.0861603916 -0.0508424975 -0.0212416053 -0.014720425 -0.0744534209 0.0674430802 0.0522578433 0.07759092 0.0872658268 0.0821558908 0.0711892918 -0.0506614633 0.0496394113 0.0688685849 -0.0106595606 0.0556154028 0.0499112085 -0.0817356706 0.034572728 -0.0370480716 -0.0395320654 0.0875857547 -0.0516916625 0.0464991555 0.0349177048 0.0349461809 0.053716056 0.0265475586 -0.0670096576 -0.0583047532 -0.0237135589 0.0882081166 0.0905500576 0.0349741802 -0.0454492941 0.0061994046 -0.00787279755 0.0173461661 -0.0758761764 0.0803108439 -0.0206862986 0.0119568631 0.0641182438 0.0372840241 0.0736004934 -0.0284255147 0.0889350995 0.0858561024 0.0376604423 -0.0618746988 -0.0810649917 -0.0233350843 0.0792289004 -0.0355126671 0.00113457441 0.0736971572 -0.0490746163 0.0885375664 -0.057371445 0.02126652 0.0164860189 0.00293965638 -0.0667630881 -0.0678194389 -0.0489798188 0.00691419095 0.0881966278 -0.0437642597 0.0528842732 -0.0297073573 0.0661598668 0.0881750062 0.0471898541 -0.0347070619 -0.0200014859 0.0148249343 -0.0342128612 0.0784707889 -0.0343291648 0.00293096155 -0.0122582242 -0.0472674929 0.0179302841 0.0654226169 0.0760348961 0.0889784619 0.0394875333 0.0150074661 -0.0327433534 -0.0157290772 -0.0715309158 -0.0702274069 0.0338020399 -0.0448647626 -0.0353790186 -0.0455203429 0.00317474455 0.0457089767 0.0503674522 0.0216949731 0.0629805252 0.0507614836 -0.0689154714 -0.0719908625 -0.0352144465 0.0117092878 0.0792061463 -0.04318358 0.0547791645 -0.0267570317 -0.0418404788 -0.053702496 0.08251407 0.0720417574 0.0451261625 0.0754668042 0.0502500013 -0.0884301811 0.0446458831 -0.0141647086 -0.0355575457 0.080662109 -0.0737155825 0.0541240796 0.0307764336 -0.0312810205 -0.0560528859 -0.0283514708 -0.0662083402 -0.0564194247 0.0595171526 -0.0733004883 -0.0907513797 -0.0617045127 0.0638531968 0.0197080225 -0.0250399709 -0.0461801291 0.0109282881 -0.0726963431 0.0750423148 -0.071572952 -0.0271332338 -0.0482617915 0.0441628769 0.0636094138 0.0341657177 -0.0587126315 0.0727150366 -0.00849879533 0.0375838801 0.0518121943 -0.00665424764 -0.0528039858 -0.0396299437 -0.0722134113 0.0728666559 0.0723533407 0.0668781176 0.0761623308 -0.0601798482 0.0432642326 -0.0593289249 0.0663428679 -0.0816545635 -0.0372391231 0.0828007534 0.0677074566 -0.00546927005 0.000244885683 0.0638382509 -0.0284989402 0.0536360666 0.0590456054 0.0569435135 0.00993792713 -0.00803346932 0.0796413943 0.0815834478 0.0579874739 -0.0230784416 0.0691599622 0.0696178451 0.0589292571 -0.0703392923 0.050733991 0.0905753598 0.0634291843 0.0742493793 0.0912298486 -0.0247509331 -0.00589288771 -0.0346336551 -0.0916547403 -0.0682289451 0.0314105973 0.0551488325 -0.0914136767 0.0531133786 0.00916146487 0.0855608508 -0.0615053847 -0.0190767199 -0.0719489157 0.0891045853 0.0484726354 0.0412534848 0.0895915702 0.0454182997 -0.0877648294 0.0598480031 0.0633044317 0.0537819043 -0.0489723124 0.0889716372 0.0624059811 0.0441901013 -0.0317150019 0.0565573052 -0.000371649861 0.0193441212 0.0446381196 0.0505843982 0.0801885352 -0.0681618601 -0.0872240737 0.0208319873 0.0287901387 -0.031449642 0.0312169269 -0.0414363444 0.0677929893 -0.00395043939 -0.0277537778 -0.0643297881 -0.0809412077 -0.0279186368 -0.0284003988 -0.0333935656 -0.0594896451 -0.0131950155 0.028135702 -0.0730711371 -0.0913408697 -0.0823875368 0.020656921 -0.0765333921 -0.0627294779 -0.0138360709 -0.040317595 0.0402534083 0.00431884825 0.0358801559 -0.089386493 0.0763774589 0.0145444125 0.0163671672 0.0909400508 0.029236488 0.0348135307 -0.0605163872 0.089790456 -0.0311919898 -0.0150801688 -0.0651359484 0.0684242025 0.0589336082 0.00550539047 0.000235579908 0.0697477981 -0.0217342228 -0.0065998435 -0.0291817263 0.0336481407 -0.0553844683 -0.0013198331 0.0350424275 0.0724518821 -0.0751603544 -0.0292239413 -0.0272438824 -0.000759489834 -0.0819199458 -0.0403381549 -0.0620305985 -0.0678554922 0.0176531225 -0.041260615 0.0485669747 0.046262078 -0.0178228021 0.0808942541 -0.0116704181 0.0335009322 0.00842037052 0.0866486952 -0.0157326236 0.0122642145 -0.0139008015 -0.0453291163 -0.0577568486 -0.0542825833 -0.0237362459 0.0298951119 0.00231922418 0.0719948038 0.0837561861 0.0653707162 -0.0295219421 -0.0378490984 0.0579676703 0.0128119439 -0.00456701964 -0.0102160498 0.0250423253 0.0864775255 -0.0445775054 -0.0610076822 0.0650118366 -0.0190016404 0.0126091391 -0.0429160222 0.0681528524 0.0493566766 0.0788932219 -0.014991425 -0.0202770606 -0.00803674757 0.0334930941 -0.00511263311 -0.0270061269 -0.0686542094 0.01247067 -0.0060833618 0.0734292939 0.0330564752 0.0558489636 0.0743354037 0.00350545347 -0.051856719 -0.075300321 0.076124616 0.0660452917 0.0822559819 0.0403597429 0.077421613 0.00518258661 0.0571656898 -0.0538274273 -0.0170647204 0.0745693073 0.0444781855 -0.0144879073 -0.00553959608 -0.039503254 -0.0380510464 -0.0204798877 0.0118169636 0.085623078 -0.00682032108 0.0424089506 0.0140280202 -0.00148399174 0.0678229257 -0.0791215301 -0.0564242452 0.0773832723 -0.0251476914 -0.0711606964 -0.0118225515 -0.000157773495 -0.0291913897 -0.0616483428 -0.00855989754 -0.0866688341 0.053735055 -0.04927117 -0.0628041327 0.0438000485 0.0416126475 0.0355593339 -0.0580323525 0.0120564327 -0.0840870738 -0.0413381122 -0.0866005346 -0.00810225308 0.0181980357 0.0834561363 -0.0674327612 -0.0373697355 0.0669862106 -0.0381945558 -0.0295246914 -0.0224604979 0.0221423358 0.0325416476 -0.00207582861 -0.00986526906 -0.0192239732 -0.0274156928 -0.0200435966 -0.0865887851 0.0416727886 0.0137410536 0.00549460948 0.0202672631 -0.0743040815 -0.027554512 0.0447133258 0.0473576859 0.0267534629 0.012715362 -0.0468652509 0.00573112816 0.0103066713 0.0684144124 -0.0297427103 -0.0256353766 -0.0455399342 0.0415711179 -0.0857415795 -0.0472701974 -0.0427183025 -0.0759827271 -0.0782772526 0.0611802712 -0.04323918 -0.0587951019 0.0405660942 0.0399970338 -0.0717894286 0.0376394317 -0.0426139496 -0.0108558312 -0.0897668526 0.0276935548 -0.0303507037 0.0181777701 -0.0806828886 0.0529241636 -0.0792515948 0.00387813896 0.0285050347 -0.0751800984 0.0840864852 -0.0251135305 -0.00574710965 -0.0633424893 0.0592958853 -0.0147896484 0.00556439906 -0.0607083403 -0.0689285249 0.0260482281 0.0345578268 -0.0734312981 0.0841421261 -0.0487260371 0.0633938685 0.0706484094 -0.0823304653 0.00517506152 0.0158385187 -0.0300811417 0.0734207258 0.0695280954 0.0337807909 -0.0304769129 -0.0811767131 -0.0480340943 -0.0315445513 0.0302481577 -0.0139207691 -0.0805980414 -0.0837915614 0.0126131475 0.0149450004 0.072673209 0.0528922305 0.0605130717 -0.0235740766 -0.05211116 -0.000536106527 -0.0123620704 0.0259339288 -0.0229718462 -0.0393748879 -0.0655003339 -0.0532926172 -0.0466549844 -0.0312491283 -0.0148978084 0.00292365253 0.0921503082 -0.081941098 -0.0774915218 -0.0323518068 -0.0456806682 0.00845554471 -0.0607390478 -0.0879785717 -0.0182445943 -0.0194189623 0.0389966145 0.0488903299 -0.0313800015 -0.00658009946 0.0867613032 -0.0577522032 0.00963528454 0.0240010321 -0.0496825241 -0.033666715 0.00126677006 -0.0739600807 -0.040906772 0.0694370344 -0.0649123862 0.0668045208 -0.0642234981 -0.0636974722 0.00286176056 0.0324297696 -0.0556579717 0.0194614157 -0.0520860031 0.066068612 -0.0343732052 0.00926383585 0.0317663327 0.0127564967 -0.0717132688 0.0591483936 -0.0845637992 0.0679083243 0.0216328874 -0.0151876658 -0.0382166542 0.0592403039 -0.0156861842 0.0878913626 0.0761730298 -0.0563770756 0.087788336 0.0276096314 0.00127971172 -0.0508273542 0.00399445742 0.0494268313 -0.00759625435 -0.0502780192 -0.0763716996 -0.0365472473 -0.00368378311 -0.0187020153 0.0773896798 0.0651563928 0.0191484764 -0.0222755447 -0.0130330622 0.0250322223 -0.0349124856 0.074923791 0.0795340911 -0.00932535529 -0.0537013076 -0.0146432593 0.070910506 0.0821496025 -0.0572446845 -0.00144053996 -0.0415514819 -0.0643264651 -0.0754500106 -0.0156188533 -0.0205382183 0.0176037326 -0.081328921 -0.0897046775 0.0245104432 0.0902874246 0.0762814507 0.0178423524 0.0915391818 -0.0471581668 -0.0191279128 0.00178857148 -0.041619584 -0.0490474142 0.0689659193 -0.0150454566 0.00683211535 -0.0822701305 -0.057114251 -0.00665781647 0.0367591456 -0.0721954554 -0.0899733603 0.0288336799 -0.0581551045 0.0849767551 -0.0816016048 -0.0177172869 0.0509029105 0.0707205608 0.0168830901 0.0373085514 0.00491020828 0.0789468512 0.0918914601 -0.0331800841 0.02272062 0.0781840011 -0.0208773762 -0.0553712845 -0.08698266 0.0443404242 -0.064392522 0.0790308788 0.000876434147 -0.0430400707 0.0532369539 0.0763294324 0.0372696742 0.0884887651 -0.027416952 -0.0278793275 -0.0596463792 -0.00987709314 -0.0896731317 -0.0428872965 0.0920398608 -0.0818030015 0.053084515 0.0668677762 -0.0597451851 -0.0500018522 0.0410603359 -0.0308811553 0.0837401226 -0.0605239831 0.0356051102 -0.0175561234 -0.052953016 -0.0650055557 -0.0906540081 0.0406295136 -0.0802508667 0.0774782524 -0.0743422657 -0.0296465233 0.0710032359 0.0810750946 0.0806353316 -0.0160329789 0.0795984194 -0.0183161944 0.0536796078 0.0864238217 -0.0428412072 0.0443269536 0.0699140504 -0.0434481688 0.0339374617 0.0746009126 0.0234189928 -0.0223837495 0.0509752408 -0.00165725499 -0.0435185358 -0.0441326946 0.0275324136 0.0337462649 -0.0217860565 -0.050940752 0.0305614322 0.0805975273 -0.0525391549 0.0508385971 -0.0657975152 0.0432606861 -0.0854528248 -0.0209032148 0.053579174 -0.0848325044 -0.00535138696 0.0489195362 0.022489287 -0.0746998265 -0.00850128382 -0.0291730538 0.087343283 -0.0726110563 0.032697238 -0.050759498 0.0352324322 -0.0185353905 0.0233943164 0.0437214747 -0.0690370798 -0.0562997982 0.0764841959 -0.0273514688 -0.062287353 -0.0561979339 0.0260309055 0.030122675 -0.0722498894 0.0504904017 0.0101529658 -0.0318273418 -0.0243400857 -0.0613061264 0.0204298124 -0.0690566301 -0.0796961188 0.0202075318 0.02767203 0.060247533 -0.0805016533 -0.0188222155 -0.00507807732 -0.0316395722 -0.0591422096 0.00693679601 -0.0703541487 -0.0669193864 0.0695611313 -0.0914436579 -0.0415817015 0.0811917111 0.0910484418 -0.00911491364 0.0110706091 0.0273953378 -0.0714866742 0.0794757977 0.0374094918 -0.0227869824 0.0385973975 -0.0377853364 0.0160723105 0.0525050983 -0.0790345222 0.00662305951 0.058856748 0.00212458521 0.0360229537 -0.00665887445 -0.0203303471 0.0624683723 -0.0448151492 -0.00421927869 0.0900559649 -0.0267236456 0.0266993642 0.0758542046 0.0561937913 -0.0503159203 -0.0339791737 -0.0103705227 0.0846667811 0.0438887998 -0.0617346242 0.0129736364 -0.06564679 -0.0343326181 -0.0776520222 0.00553131849 0.0559582189 0.0235257 0.0763220266 -0.0554104857 0.0100450739 0.045596309 0.0130885243 -0.071076043 -0.0534323826 -0.0157951787 0.0686851516 0.0587677285 0.00211377442 -0.0403750427 -0.0343788862 -0.0321593061 0.0632393882 0.0162675679 0.08135546 0.0501699671 0.0692057982 -0.0378754251 0.00643773377 0.0609652326 -0.0214422941 -0.00170640647 0.0159956738 0.00664936751 -0.011105299 0.0891456529 0.0441549942 0.0736731514 -0.0139091462 0.0380888656 -0.0834849104 -0.0371019319 -0.0225442275 -0.0744099468 0.0328706428 0.0010143742 -0.057476785 -0.00487364829 0.0306047052 0.0315559506 -0.0115234107 0.0219146386 0.0689639375 -0.0907836705 -0.0780039504 0.00701761991 0.0299927667 -0.0776877478 -0.0793568939 0.0065471679 -0.0845617056 0.0551260039 -0.00415793061 -0.0252005607 -0.0153812915 -0.00994303077 0.0588266626 0.0433825925 -0.0225502327 -0.0400140062 -0.0297112763 0.0548485592 -0.084777765 0.071282573 -0.0828906298 0.0210420787 0.0494003519 -0.0443999879 0.0373266116 -0.000462308526 -0.0510339662 -0.0526653416 0.0370870903 0.0459998026 0.0571659133 -0.0809769034 0.0794527307 -0.0900753736 0.0593742654 0.0355614647 0.03448046 -0.0536251292 0.0387472585 0.0616061762 -0.00132276118 -0.0112339482 -0.0341308713 0.039575763 0.086781241 0.0420433506 0.0897964165 0.0236177668 -0.0805908442 0.0809954628 -0.0153989047 0.0315241739 -0.0376732126 -0.0200865194 0.0523050353 -0.0690178275 0.0884517655 0.0740432516 -0.0333310999 -0.0909711346 -0.00534495711 -0.024442099 0.0828643963 -0.0921105072 0.0914978459 -0.0130887926 -0.0587089993 -0.0759249106 -0.0810959414 -0.0813584551 -0.038416706 -0.0239547938 0.0565449968 -0.0611571148 -0.0889079422 0.0165947303 0.00553415716 -0.0889067724 0.0504499003 -0.0519793406 -0.0467332304 -0.0408965833 0.0883106664 0.028766498 0.025360845 0.0654612854 0.0677543953 -0.0430286042 -0.0324346349 -0.0652213469 0.0445804968 -0.0865285397 0.036328502 0.0376955792 -0.0133950263 -0.00524441153 0.055590488 0.0683165416 0.0439555123 -0.0121597275 0.067650117 -0.0172887668 -0.0460913852 -0.089306131 0.0450807884 -0.0449299142 -0.013010852 -0.0833833963 0.0779487416 0.00149174035 -0.0166852847 -0.0453656763 0.0389800146 -0.00344356149 -0.0883751512 -0.0854311436 0.0354221985 0.0232027993 -0.0168585703 0.0565236434 0.0247884169 0.0668696836 -0.0237157568 0.0696887895 -0.0862439275 -0.0372288674 0.0527817383 0.00379506499 -0.0266433731 0.0893235877 0.00460892916 0.0099170804 0.000198952854 -0.0364272222 -0.0411746614 -0.0178914145 -0.0810569376 -0.0774546787 0.0290605798 -0.0769742802 -0.0603486672 -0.0564358681 0.0490466431 0.0830647275 -0.025101319 0.0601370856 0.0404087678 -0.0869045034 0.0637654439 -0.0777865127 0.036209248 -0.0366291255 0.0169292241 0.0160784274 -0.0128076971 0.0734889433 -0.0662256628 0.0868600681 -0.0786707774 -0.0776223093 0.0407953337 0.0624000505 0.0247990489 0.0869179741 0.0368772671 0.0820013657 -0.0203530192 0.023655206 0.0137299821 0.0284802541 0.0856646523 0.00714483857 -0.00992630422 0.059241958 -0.0708797351 -0.00794205815 -0.0207811669 0.0636410639 -0.0161463767 -0.0197402909 0.0128405392 0.0881506279 0.0135329217 0.0802368745 -0.0470778719 -0.00383561105 -0.0287643224 0.0847297087 -0.0855478644 0.0895587429 0.0561340824 -0.0243549421 -0.00455733389 -0.0605443195 0.041944541 -0.070895426 0.0383122936 -0.0797974765 0.0794189349 -0.0447614901 0.0517232493 -0.051444795 0.0640676394 -0.0546804667 -0.0159709081 -0.0549632795 0.0134854019 -0.0359789133 -0.0811815113 0.00260034204 -0.0872012451 0.0814140514 0.0240716413 0.0867565945 0.0584912226 0.0494272932 -0.0770082399 -0.0389683545 0.0421653166 -0.0110412464 0.0783178583 0.0256659538 -0.0877175257 0.0271485299 -0.0045549795 -0.0278879106 -0.053264223 0.0126023367 0.029835023 -0.0283744484 0.0418557152 0.00298321247 -0.0550936237 0.0530344322 0.0771969184 0.0664386377 0.0631738231 -0.0802906826 0.0779338256 -0.0477684066 -0.0614095517 -0.0538161807 0.0102554485 -0.0478390381 -0.000515416265 0.0714089349 -0.00936812162 0.0111892447 0.0900725797 0.0289576426 -0.0372226611 0.0899353847 0.0334743485 -0.0907601416 0.0395191833 -0.0500196144 -0.00616689771 -0.0517489128 0.0267274529 -0.0348067246 0.0252820477 -0.0457181744 0.0124399662 0.00730228424 0.0297338143 0.089017503 0.0306634083 -0.0343470797 -0.044002194 -0.0440220907 -0.0594778024 0.0810856 0.0331879482 -0.0109494627 -0.0354114845 0.0116839483 0.0644210652 0.0185994878 -0.0462304913 0.0855735764 -0.0745293126 -0.0416863412 0.0483318493 -0.0607790165 -0.0386421382 -0.019779183 -0.00615516305 -0.0808793753 0.02219785 -0.0780956671 -0.0812942311 0.044571422 0.0849023238 0.026774399 -0.0909810439 0.0839444026 -0.0651287735 0.0407302901 0.0906706229 0.0302598923 -0.0141840801 -0.0400586873 -0.0440643504 0.0862644836 0.0163913742 -0.0922974646 -0.0548383668 0.0483407453 0.0843317434 -0.0046364218 -0.0789948404 -0.045957163 -0.0904926956 -0.0323754475 -0.0170795545 -0.0858499333 0.0202688053 0.0489777103 0.050082542 -0.048425395 -0.0567185916 0.00956716388 0.0159746259 -0.0429949947 -0.0559116192 -0.0771731883 0.0672860369 0.0192865431 0.0101786554 -0.0136387646 -0.035854511 0.0125057772 0.0510217771 0.0740264133 0.0903018638 0.0908566192 -0.0169192106 -0.00481373817 0.0500228032 0.0112428591 -0.0173270628 0.0328340754 -0.0486992523 -0.0191924945 0.0688566789 -0.0584857464 0.0293953195 -0.0292806178 0.0487985238 0.0328872129 0.0567446128 0.0651441291 8.97794962e-06 0.00462099165 -0.049506288 0.0867186859 0.0128307194 0.0393465832 -0.04695886 0.0685437545 0.0113729462 0.0541410968 0.0921839848 -0.0776824877 0.00292490423 -0.0588608272 -0.0261666477 -0.0760113895 -0.0364437327 0.0216850936 0.0171804279 -0.0600781813 -0.0293521583 -0.00265420228 0.0121674314 0.0440614 0.0564564243 0.0150246322 -0.0624818578 0.0280925632 0.00373312831 0.0280629098 0.0253326669 0.0437229201 0.0444807038 0.0867209807 0.032276243 -0.0215683728 -0.0732098743 -0.00501763821 -0.0378361568 -0.0594609194 0.00560085475 -0.0543504842 -0.0622644387 0.0866363272 -0.0915831402 -0.0782377049 0.0292640701 -0.0599401742 -0.0795576721 0.0357842073 -0.0720195249 0.0707985833 0.0318943411 0.0178579316 0.0742294565 -0.00618190318 0.0742445663 -0.0306868479 0.0281296521 -0.0178083032 -0.05219163 -0.00541305542 -0.0397138707 -0.0215495527 -0.00752771646 0.0682637915 0.0730405524 -0.0157802999 0.0188171044 0.0874264762 -0.0481564067 0.0626509711 -0.0568895675 -0.0665506497 0.0529573038 0.0220659375 0.0434306636 -0.0896672979 0.0294235796 -0.0816154331 -0.0582096241 0.0378705785 -0.0546210147 -0.0636622608 -0.0066960454 0.0726307109 0.0202229619 -0.0755647048 0.0883272365 0.0291202962 0.0158908367 0.0359085277 -0.00616881251 -0.0829463601 0.0188712552 0.0816427395 0.0307746902 -0.0871619582 -0.00881759077 -0.0549286567 -0.0540798195 -0.0364638939 -0.0783459917 -0.0575039461 -0.0578990579 0.0166202411 -0.0765203089 0.00254764408 0.0471871272 -0.0747597218 -0.0444160551 -0.0112274513 0.021120213 -0.0426963344 -0.0514635034 0.0743654445 -0.0176850855 0.073682569 -0.0547814704 0.0271875337 0.0461324975 0.0252975151 0.00796814263 0.0105063245 -0.0515175164 0.026206769 0.0330868885 0.0456236377 -0.0543309376 -0.0452317633 0.0679125413 0.0739146248 -0.0499683768 -0.0556701235 -0.0738769472 -0.00333555788 0.0855959579 -0.0768740848 -0.0247594491 -0.00933700055 -0.0693854392 0.0825576112 -0.0715351626 -0.0199112445 -0.0450915582 -0.030918289 0.0226586834 0.013858825 0.0447538123 0.0142548829 -0.0786710903 -0.0315933265 0.0703516379 -0.0267808437 0.00641660392 0.0429125652 0.0403578803 0.0798564181 -0.0568971857 0.0592094436 -0.0284461379 -0.0257848725 0.080893524 0.0212935954 0.0393418297 -0.0694715679 -0.0596316345 0.0500955805 -0.00369998068 0.0459936783 -0.0256020799 -0.0406662636 0.070272617 0.0863688812 0.0853735581 -0.0562233776 0.0588944331 0.0422799811 0.06762252 -0.0712411255 0.0690711066 0.0083874017 -0.0254175216 0.01982034 -0.00647860765 0.0204484314 0.00454610586 -0.0695432574 0.036255978 0.0792540833 0.0812816694 0.0746647492 -0.0741450936 0.0641218647 0.0411546156 0.072784923 0.0108308047 0.0728523955 -0.0516886711 0.0526807234 0.0683561936 0.0122950077 0.037503697 -0.042732276 0.0670262054 -0.0549404547 -0.0571205243 -0.0119279623 -0.0870330185 -0.0493956618 -0.0338407084 0.0174981505 -0.0900998712 0.00261241943 -0.0436458662 0.0574408397 0.0379968062 -0.0431238674 -0.0631357431 0.0292699486 0.00492931157 -0.0857472792 0.0730826333 0.0402820781 0.0744689777 -0.0521451458 0.000490173697 -0.00710123777 0.0631562844 -0.0121339783 -0.0170205459 0.00770135224 -0.0668397769 0.074032031 -0.00779047608 -0.0878211483 0.00968762487 -0.0511111133 -0.0412074812 0.00578653067 -0.00431856513 -0.00582546741 -0.08878728 -0.0109425485 0.0634007528 0.0105016828 -0.0458724685 -0.033344347 0.0104774013 0.033227466 -0.0654375777 0.068172209 -0.0923014507 0.073481746 -0.0659995526 0.0125127584 -0.0626826137 0.0565298572 -0.0554844402 0.0206821859 -0.0223263428 0.0576344654 0.0566944405 0.0199616924 -0.0624372214 0.0595026538 -0.0756604746 -0.0208944753 0.0530955568 -0.0387974009 -0.0686270297 0.0761358365 -0.0324403569 -0.0535293184 0.0128819793 0.00850385427 0.00288187712 -0.0168626234 0.0493722633 0.000810801983 0.0819175169 0.00836440176 -0.0790630057 -0.0551274754 -0.0475864001 -0.0616404861 0.0618712381 0.0644105002 -0.0254519656 0.0552272871 0.00867540389 0.0153278261 0.0679157749 0.0103854463 -0.0105540454 0.065254651 -0.0243760049 -0.0318674035 0.0909902826 -0.0204744712 -0.0262225941 -0.0571655594 0.0743362829 0.0400392488 0.0425044522 -0.0472333543 -0.0493210256 -0.0698087513 -0.035587173 0.0922307447 -0.0455904044 0.010888584 0.00213699788 -0.05227549 0.0689653084 -0.00573548675 0.0368774906 0.0104292482 0.00118149817 0.0655618086 0.0375416949 0.0399102643 0.00500766933 -0.0649902374 0.0380084589 0.0450556204 -0.00738175958 -0.0548125729 0.048474662 -0.0133725256 -0.0195152983 -0.0129961073 -0.0669625998 0.0191158578 -0.0774018764 -0.0267198309 0.0369971022 -0.0148706287 0.0664501265 0.0456101075 0.0669988319 0.0744815692 -0.0465268157 0.0108251497 0.0813094452 -0.0639649928 0.0511804447 -0.0818125755 0.0734495595 0.0274152085 -0.000640638173 0.000349022448 -0.0750548765 -0.030618947 0.0617928132 -0.0730879977 0.0871792808 0.0541660115 -0.0898986533 0.0868063644 -0.0102937296 0.0113046914 0.0651153401 -0.0724406242 -0.0100512579 0.0412022844 0.0729504153 -0.0271404982 0.0771790668 0.0812218562 -0.00919733942 0.0595636889 -0.0493590385 -0.0130246505 0.0673317835 -0.0575585328 -0.0914384201 0.0165277943 0.0223859251 0.0661293939 -0.000926792622 -0.052064389 -0.00683986396 -0.0908132568 -0.0763044134 0.0461484417 0.0287570134 0.0358236358 0.067240499 -0.0249496177 0.0237554386 0.0224406496 0.00268175453 -0.0906023309 -0.00874256343 0.0574708059 0.00212834775 0.0679104999 -0.0598758832 0.024781175 -0.08463718 0.00729970634 0.0790416077 0.0424302444 0.0806765035 0.0051657483 -0.0795181841 -0.0126087666 -0.0397732779 0.0150001571 0.0112467781 -0.0699048936 -0.046976909 -0.0300390795 -0.0757171512 -0.0577171631 0.0773835406 -0.00419433415 -0.030652117 -0.0734623298 -0.0329417102 -0.0916003957 -0.000886358321 -0.0571465828 -0.0308846347 -0.00688701123 0.0465327874 -0.0482810512 -0.0464018844 -0.02090808 -0.0904041901 0.0265733525 0.0845336244 -0.0288363621 0.0848881677 -0.0784340352 0.0333765522 0.0451691225 -0.00682795793 0.0889808014 0.0837978497 -0.0676260367 -0.0298311263 -0.0490956381 0.0630313233 -0.038788572 -0.0207258761 -0.088744998 0.0574903265 0.0192776099 0.0615135953 -0.0826291665 0.0162778273 -0.00959168375 0.00741633773 -0.00481342524 0.0669158921 0.0406185463 -0.0360157825 -0.0262823328 -0.0332694687 -0.0853626281 -0.0830228254 0.0195631981 -0.0566862561 -0.0484577306 0.046208255 -0.0841107368 -0.0760152787 0.0167261735 0.012888588 0.036405541 0.0427299663 -0.041202154 0.0361145362 -0.0293712169 0.0193166807 0.0695188865 0.0163394734 -0.0280998051 -0.0262221321 0.0797863081 0.0390905514 -0.0439880639 -0.0300971866 0.0139719173 -0.0639654696 -0.0552323349 0.0741946623 0.00790459663 -0.00952973962 0.0418033227 -0.0100678355 -0.0645819008 0.0111649483 -0.00897305459 0.0696454123 -0.0451329835 0.0677881166 -0.0149175525 -0.0267847851 0.0010837093 0.0470396802 -0.0412290059 -0.0560592003 -0.0321760774 0.0293278769 -0.0529509485 -0.0690612271 -0.0207805485 0.0205013454 0.0436813012 -0.0683548674 0.0345392749 -0.0605377592 -0.0916607007 -0.0911809579 0.0168165267 0.0256530941 0.0813298449 0.0186625272 -0.0785573572 -0.0624148548 0.0792272463 -0.0551269241 0.0360207781 0.0322544128 0.0363949612 -0.0148991719 0.00428746641 -0.0599758551 -0.0878089592 -0.00521066785 0.0496101156 -0.00111888349 0.0307040811 0.0616006926 0.090060167 0.00515121967 0.0627197847 -0.0265228599 -0.00932498276 0.0173047408 0.0889952704 -0.0611952767 -0.0354259908 -0.0508050807 0.0497339889 0.0741653219 -0.0677293539 -0.0751045346 0.00732041895 -0.0813802481 -0.0795877352 -0.0730009526 0.00972479582 0.00427265465 0.030009456 0.080753617 -0.0710066035 0.024280414 0.0112719834 -0.0297387466 0.0548654869 0.0750947371 0.0414169952 -0.0293960869 -0.0355482362 0.0392841622 0.0573962554 0.0472640321 -0.0398709178 0.0103948414 0.00445659459 0.0701416358 0.0168458447 -0.0867450833 -0.002873227 0.0485681966 -0.0267613232 -0.0136437193 -0.0284071341 0.0466836616 -0.0798338577 0.010781303 0.039234899 0.0267431661 0.0616651103 -0.0522317104 -0.0922325775 -0.0679157823 -0.0348263793 0.0147835985 0.0915859714 -0.0470068865 -0.0753164291 0.0818672702 0.0190696344 -0.0693809763 -0.069197163 0.0718833879 0.0306614712 -0.0922353268 -0.0012748912 0.0518505797 0.0215972066 0.0762555078 -0.0207919925 0.0549108014 0.045092307 -0.0511865653 0.0433729365 -0.0081114769 -0.0581891313 -0.0575883128 0.0211400688 -0.0318357274 -0.0135677382 0.0185752586 -0.0272108912 -0.0313332528 0.0760957524 -0.0467901491 0.0906542018 -0.034708336 -0.046153035 -0.0265791416 -0.045069173 0.0459663644 0.0912031755 0.0279869959 -0.0650743619 0.0501460806 0.00408153236 -0.0622796044 -0.00681226701 -0.0581076071 -0.0804156139 0.00430247188 0.0827785507 0.0491838381 0.00356373936 -0.0362972058 0.00238465518 0.0870555863 -0.0292247385 0.0836030468 -0.0539049916 -0.0617582649 -0.0819184929 0.0323705375 0.029548049 -0.0193702057 0.0038106963 0.0196483731 -0.0558139831 0.0621107146 -0.0313034952 0.0840990767 -0.0696897134 0.0486553386 0.0201133043 0.0881831422 -0.0628063381 0.0234003216 -0.0550199561 0.0205072016 0.00105210394 -0.0492369011 -0.0514101721 0.035830982 0.00409777462 0.00569008291 0.0430928096 -0.0444828384 -0.0150408372 -0.00151924789 -0.00242907554 0.0649567321 0.0355661586 -0.0190470964 0.0677018538 -0.0847884566 -0.00833395869 -0.0132052079 -0.0613816865 0.0607231781 0.0357693359 -0.0242802575 0.059299849 -0.0348855443 -0.0672883242 -0.0550044812 0.0883692577 -0.0066369921 -0.0289506614 0.0587338433 -0.0269498229 -0.075100176 0.0103900433 0.0717183128 -0.00355942547 -0.011437878 0.0292011872 -0.00234312564 -0.0456885472 -0.0329523422 0.00980335474 -0.0215064138 -0.0545803383 0.0763779059 -0.0405811928 -0.00881966203 0.0885267034 -0.0410294607 -0.0498881675 -0.0386531875 0.0181977972 -0.0699345395 0.0229751468 -0.0323900618 0.0127660558 -0.0645190179 0.0190186352 0.00813493878 -0.0398115963 -0.0848559663 0.03064996 -0.00421836972 -0.0540838726 -0.0418243445 -0.0510247238 0.0513817593 0.0787155107 0.034792237 -0.0252530351 0.0380452648 -0.0650790706 0.00307887048 -0.0106877983 0.0102108121 0.0809430555 -0.0177385956 0.0332536921 0.0193690434 -0.0149455518 0.0656094626 -0.0768355876 -0.0816296488 0.0114371702 0.00209192187 0.033705987 -0.0917147845 -0.0224112645 0.00453505665 -0.0607473888 -0.0141276866 -0.0882581472 0.0815933272 0.0350648835 0.0419981256 0.0344375893 -0.0903022364 -0.0293834507 0.0575280264 0.0532223806 0.0504287705 0.00768374652 0.0509496853 -0.0352723561 -0.0515797399 0.0654058233 -0.0153908879 0.0628872737 0.00853900611 0.00290121883 -0.0583820529 -0.0339263715 -0.0405543409 0.0146129951 -0.00966501981 -0.00341094285 -0.064129293 0.0319366232 0.0305288807 -0.0335325822 0.00765321404 -0.0128635615 0.00285262614 -0.0483946279 0.0562607124 -0.0769815445 0.0489669666 -0.0693182871 0.0224454701 0.0817578211 -0.0739918798 0.0173355341 0.0915387198 0.0670829639 0.0745312646 -0.0672760233 0.0173162147 0.0319842547 0.0458162948 -0.0459706783 -0.0836912841 0.06380523 0.0462092534 -0.0124100521 0.0716925189 -0.0478998311 0.0762267783 -0.0880014375 -0.00415762514 -0.0096431002 -0.0226030201 0.00829520077 -0.000645808876 0.026320979 0.0656421408 -0.0788139403 -0.0402171426 -0.0293463469 0.0471231714 0.0862750635 0.0909979865 -0.0144609064 -0.0405599326 0.0910777822 0.065875493 -0.0332042314 -0.0136645883 -0.0811869726 0.0490865931 0.0609251186 0.0274518579 0.0544837192 -0.0488643311 -0.0476778336 -0.0048103258 -0.000627562404 0.0919572338 0.0083976537 -0.0578042343 0.0706560686 0.0893991664 0.00374688953 -0.067451559 -0.0240517259 0.0635258779 0.0695015863 0.0144198313 -0.0525986254 -0.0391805582 0.0474536195 -0.0591658466 0.0241070613 0.00587575883 0.0866127387 0.0636443123 0.0697658882 -0.0725355819 -0.052175805 0.0694321916 0.0411803201 0.0110799819 0.0287493318 -0.0671066567 0.0266531184 0.0252849907 -0.00555764139 0.0601788089 0.0442926809 0.0216418877 -0.0609253868 -0.0794271231 -0.0460523143 0.0157750398 0.0214064866 0.0256621018 -0.0912548751 -0.0764968693 -0.0755142123 0.0120381862 0.0300822183 -0.0184447542 0.0784661546 -0.0135637373 -0.0419109128 0.0827098116 0.0619313046 -0.0360810645 0.0650418922 0.0339712277 0.00304237753 0.0844936147 -0.0608678721 -0.040417105 -0.0739588663 -0.0555192195 -0.0502100512 0.079808332 -0.0541229174 0.0227097496 -0.0583081879 -0.0574843138 -0.0381656997 0.0794761404 0.0226614773 -0.0647741407 0.0428747013 -0.0541995801 0.0162939131 0.0278668851 0.0811234042 0.0468517318 -0.0467752293 0.0471201465 -0.0815039054 0.0175410062 0.0253854692 0.0860570595 0.0252811387 -0.00957387686 -0.0801277831 -0.0181699321 0.0360149518 0.0747145936 -0.0485508554 0.0587880984 0.0496647432 -0.0894026458 0.00912857801 0.0865628496 0.00325299054 -0.0627913252 0.0226326436 -0.00253655016 -0.0813661367 -0.0766379833 -0.024785623 0.0471072271 -0.0772652775 0.0868358538 -0.0114583224 -0.0820179805 0.065638639 -0.0376307555 -0.0323728956 0.0901506469 0.0103830248 0.0548393801 -0.0200346336 0.0533910021 -0.0231543779 0.0655063316 -0.063851878 0.0435008779 -0.0246436521 -0.0861100554 0.0664319173 0.0412297919 0.0211755037 -0.00987852365 -0.0618292689 0.0701044574 0.0163007379 -0.0784450173 -0.0686388686 0.0268226638 -0.0432723723 -0.00670238584 0.0470574871 0.0530448034 0.0214080438 0.0904533789 -0.0210143924 -0.0308954194 -0.0287331343 0.0212267935 0.0447251722 0.0743548945 0.0670989677 -0.0826511309 -0.0453661606 0.0835362598 -0.087539725 0.0319067091 0.0345701501 0.012607865 0.023418352 0.0186828449 0.025749065 -0.0888888091 0.0717841908 -0.0395670161 0.00291913748 0.0610122457 -0.0258606151 0.0265291557 0.0816791877 0.0801427141 0.00450342894 -0.00244390965 0.0255319327 0.0669952855 0.0161722153 -0.00835333019 -0.0603944957 0.0196625963 0.0383148268 -0.0156424269 0.0845018849 -0.0569390915 -0.0249733478 0.0133406371 0.0668217316 -0.0141379684 -0.0263059735 -0.0748402327 -0.0618328117 -0.0862519816 -0.0858085752 -0.0559636764 0.0889643803 -0.0325298943 0.0188135654 -0.0148467943 -0.0636626333 -0.0486231372 0.0410427377 0.0912256017 -0.0576361641 -0.0570662692 -0.0446638279 0.0587944016 -0.052059304 -0.028192997 0.00065613538 -0.0571235605 0.0735527351 -0.0780490488 0.0505895838 -0.0675022453 0.0528869405 0.0594973639 0.0303925052 -0.0598944165 0.0295438468 -0.0473435819 0.0210836157 0.0845673159 -0.0190144107 0.0203998536 0.0581841394 0.085941039 0.00511204451 -0.0562995337 0.0793418363 -0.0681278557 0.056468524 -0.000701867044 -0.0479016565 -0.0209026635 -0.0114804655 -0.0813709572 -0.0819409862 -0.00685771555 -0.00872305781 -0.0313734002 -0.0786266029 0.00793677568 0.0728246495 -0.0634853542 0.0904678926 -0.0603865273 0.0092260614 -0.057890296 0.0845065042 0.0583505407 0.0204357356 -0.0825554505 -0.053039737 -0.034795478 0.024744682 -0.0749951601 0.0216992646 0.0693658516 -0.0588557646 -0.0657447577 -0.0174524114 -0.0304971412 -0.0398279727 -0.059358526 0.0406117067 -0.00420140475 0.0424134359 -0.0581813417 0.0856505409 0.0565753207 0.0902435407 -0.0886092335 0.0842276141 -0.0913649276 0.0108475536 -0.0398635194 -0.0695118904 -0.033899188 0.0411530659 -0.0336224064 0.0757414475 -0.0211310014 -0.0223958567 0.0341376737 0.0518774316 -0.0284417793 0.0603497401 0.0323971957 0.0129941478 -0.0561371185 -0.0150281563 0.0235943943 -0.018727988 -0.0295526907 -0.0218619034 -0.0214245543 -0.0570631661 0.0355925485 -0.0123422816 0.0776082948 0.0144331455 0.067822285 -0.0681107938 0.00609041005 -0.042689994 -0.082254529 0.0440752879 0.0909805372 -0.0437211655 0.0494478419 -0.0916049927 0.0693244711 -0.0756814256 -0.0901826322 0.0894481465 -0.0822952464 0.070401974 0.0474415496 0.0250806734 0.0303514749 0.00547616184 0.0507225469 -0.0101325437 -0.00207917392 -0.0774516165 -0.00408692658 -0.0921077803 0.0892073736 -0.0325816423 0.0195986778 0.0559449419 -0.0505992845 0.0899510607 0.0608985052 -0.0353402793 -0.0822651386 -0.0696254447 0.0895078555 -0.0482642576 -0.0286687762 -0.0110267848 -0.0572983027 -0.0102555156 0.0187181681 0.0493817255 -0.0363915451 -0.0522041097 0.0377844796 -0.0740375966 0.0809021965 -0.0624672212 0.0613611117 -0.0753024742 0.0462877825 0.0282023922 0.0402716175 0.00593939424 0.0895457342 -0.0281131417 0.0806107894 -0.00999425352 0.0408654436 0.0346815363 0.0399999395 0.0367597863 0.0756527111 0.072213389 -0.0394590572 0.00312694162 0.0754414424 0.00565862656 0.0575610474 0.0728299245 -0.0869304091 0.0248484612 0.00342969596 0.0818213001 0.059259437 0.0601525828 0.0689859316 0.0272308514 -0.042068135 -0.0864785984 -0.0521361195 -0.0301780961 0.0256370082 -0.0511980765 -0.0652891845 0.00306548923 -0.0559540577 0.0421743616 0.0477640107 -0.0647581145 -0.0457026362 0.0822091028 -0.0680703372 -0.085657917 -0.00429759175 -0.0827245414 0.0263672024 0.0302210823 0.0527177528 0.0779222324 0.0857198164 -0.0483398624 0.0574905351 0.079427518 0.0753413215 -0.04883435 -0.0568751507 0.0229063034 -0.0682421103 -0.0236634836 0.00111614913 0.0395163223 -0.0201921463 0.0391702279 -0.0315291882 0.0614819154 0.0628223643 -0.0530221723 -0.059995003 0.0284922943 -0.0120379701 -0.0595930479 -0.0716487318 0.0499452427 -0.00540009141 -0.0066422075 0.0161092877 0.01041089 -0.0767870173 -0.0502139442 -0.0605829246 -0.0715399384 0.01296518 0.0611103699 0.0350129381 0.00557355583 0.00810933858 0.0223339424 0.018991448 -0.00312454253 -0.0160737187 -0.0753312856 -0.0446676798 0.0921022817 0.0715387687 -0.0629141852 -0.0786452517 0.0312191248 -0.00990664959 0.0732498392 -0.017554231 0.0857481584 0.0202515945 -0.0734583437 0.0177983269 -0.0673744977 -0.0873843059 -0.0687008947 -0.0206178725 0.0858562514 0.0787986889 0.0795985237 -0.0612004288 0.0344580337 -0.0039954707 -0.077817522 0.0362925008 0.00943509489 -0.0813287199 0.0744474754 0.0213465467 -0.0864708945 -0.0283495784 -0.0149737895 0.025648959 0.00511596352 -0.0423859209 -0.0490467511 0.0888216421 -0.0836774409 0.0244148299 0.0541692302 -0.0667940155 -0.085040018 -0.0864125714 0.00416064262 -0.0558388755 -0.0326953493 -0.0418984331 -0.049093347 -0.0118925646 -0.00118283927 -0.0578180365 0.0169652104 0.0769029185 0.0357763991 0.058058612 -0.0569880866 -0.0357655659 -0.0745487511 -0.0675233603 0.0868986771 0.0387291685 -0.0550208129 -0.0207074508 0.0589220747 0.000249840319 -0.0346502289 -0.0256284699 -0.0347880609 -0.0608577691 -0.0901763141 -0.0419674367 0.0780059919 0.032925494 -0.0458465852 -0.0709381476 0.0421569422 0.0280273482 -0.0690020397 0.0276110843 -0.0534227863 -0.0898336992 -0.046704486 0.0575791821 -0.00399606675 0.0486682877 -0.0439323969 0.089321427 -0.00275865942 0.0917431787 0.0142648146 -0.0361974128 -0.0521497242 -0.0287895426 -0.0751463324 -0.0604477599 0.0192470178 0.0833377913 -0.0788206309 -0.0664669648 -0.0661673993 0.0697172657 -0.0485018604 0.07734368 -0.0724574178 0.0266508535 -0.038241636 0.0478104427 -0.0910733715 -0.0833314732 0.0437315479 -0.0847345367 -0.0833504945 -0.0205966085 -0.0766090602 -0.000191599131 0.049535282 -0.0365532339 0.0613907948 0.00741277635 -0.0770638436 0.042569004 -0.0499235839 -0.0521760248 0.0186733752 -0.0657734573 -0.0505297072 0.0499575213 0.0599516258 -0.0335962586 -0.0596516393 -0.0431972258 -0.0343936533 0.0277668536 0.0102504939 -0.0584796481 -0.0189034566 0.0804671273 0.0255989954 0.0366440937 -0.0341149792 0.0648075715 -0.0624043569 -0.0658591911 0.0161847398 0.0488080755 0.0259793103 -0.0315329731 0.0378280208 0.0057990998 0.0495223328 0.0498160794 -0.0467011854 0.0708723888 0.0882772282 -0.0489913523 0.0913080052 0.0726579651 -0.0471291542 -0.0803100094 -0.0796386674 0.0241084024 -0.0788606852 -0.0879626572 0.0391092673 -0.0181525871 0.0048327744 0.0462763384 0.0789666399 -0.0378150493 0.0575735494 -0.0574574396 -0.0179999247 0.00974135101 0.0610534921 0.029087171 0.0801759288 -0.0311500579 -0.0638232827 0.0284647346 -0.0775537044 -0.0601071268 -0.049705524 -0.0188755468 -0.0730376616 -0.0149790272 0.0598915592 0.0257158503 -0.0713358819 0.00278802216 0.0521268323 -0.0845429525 0.0469828472 0.069207795 0.068238236 0.020468995 0.0741039887 0.0309959203 0.00251755863 0.0445528701 -0.00219459832 0.0382435247 0.040332742 -0.0222243518 0.0318860039 -0.0608890019 0.0923142359 -0.00460366905 -0.0698007792 0.0557319894 0.0123743117 0.0606540218 0.0132130831 0.0266624317 0.0648530051 -0.0250237957 -0.00558134913 -0.0249807462 -0.0407523699 -0.086972028 -0.0106305778 -0.0433664657 0.0218598768 0.0156327412 0.00495480001 0.049827151 -0.0688892603 0.0251541212 0.0543500707 -0.0303026326 0.0660788044 0.0237486809 0.0921673998 -0.0369245075 0.0403814241 0.0102054402 -0.0403506793 -0.0291843489 0.0231739059 -0.0777275413 -0.0836120844 -0.00947923213 -0.0877166912 -0.0116582662 0.0468672588 -0.0516152866 0.0391278192 -0.0856028944 0.047771953 0.0343791023 0.0891178921 -0.0733123571 -0.00472772121 0.0727237538 0.0196660906 0.0296567157 0.045290269 0.0519352034 0.064342685 0.075733088 0.0151364282 -0.0046017319 0.000291354954 -0.0174997598 -0.0255467668 -0.0449208021 0.0157335699 -0.0330819823 0.0671608821 -0.0236849636 0.0276423171 -0.0627218187 -0.0597304143 0.0307873487 0.0327594206 -0.0257275999 -0.0223262608 0.0204643235 0.0773134604 0.0909314528 -0.0482522175 -0.0153283328 0.0810749903 -0.0586326234 0.0275149867 -0.0162484869 -0.0251679197 0.0558586195 -0.029070355 -0.0718312711 -0.0751133561 0.0727215037 0.0905152485 0.0361737981 -0.0792548731 -0.0495120548 -0.0323075242 0.0558372661 -0.0340228863 -0.0297727287 0.0231567994 -0.0540142283 0.0816014037 -0.0165197179 -0.0734675974 -0.058131706 0.0224531889 0.020120874 -0.0391500741 0.039942123 -0.0525243394 -0.0798351765 0.0443752334 0.0340131149 -0.0116258413 0.0916632488 0.0524196997 0.0187699795 0.0463191196 -0.0402915366 0.0403997675 0.0548345372 -0.0323632099 -0.0796880126 -0.0718706027 -0.0178960562 -0.00145700574 -0.0456038974 -0.0427981764 -0.0756585374 0.0532429442 -0.0390636586 -0.00143559277 0.0920177624 -0.0704240724 0.0254121721 0.0841684416 -0.0719616786 -0.015244171 0.0750003532 -0.0918247476 0.0382952318 0.0152490288 0.0615061298 -0.0352248587 0.029114373 0.0544518903 0.0626470968 -0.0565589033 0.0465243086 0.0597080812 0.0789490864 -0.0212450996 -0.0213093311 0.0246523023 0.0624178723 -0.0210181773 0.00636707991 -0.0853138268 -0.0619927868 0.0864303932 -0.0627755225 -0.0306492336 0.00254821777 0.0446558818 0.0816674456 0.0872782394 0.0589607731 0.0577602163 -0.078912057 -0.0724091306 -0.0809890553 -0.0850369781 -0.0889028534 0.0638013855 0.0464653149 0.0382155254 0.076872848 -0.0227313414 0.0281508863 0.0778282657 -0.0601892471 -0.0887242854 0.00579857081 -0.0041706115 0.023089096 -0.0618799143 0.0643875226 -0.0394225195 0.00754886866 0.0162905678 0.0392230228 -0.0583224706 0.0173875019 0.058753036 -0.0364262983 0.0582184121 -0.0287391171 -0.0499168485 0.036331825 -0.00257012248 0.0335739627 0.0437671617 -0.089031592 0.0632778481 0.00349539518 0.0258396342 -0.0203330517 0.074703522 0.0170738772 -0.0218994319 0.0567911193 0.0661732927 0.0505873933 0.0571166053 -0.0855214968 0.0461828336 -0.0661759824 0.0921880081 0.0019230321 0.0268321559 -0.0773060843 0.0765561536 -0.0635630563 -0.0529483519 0.0905949101 -0.0319605507 0.0162853748 -0.0476715378 0.0778553858 -0.0635498315 0.0565194413 -0.0452842824 -0.032579992 0.0437502638 0.0216829777 -0.0859941468 -0.0723607764 -0.0432355702 -0.0667395219 -0.0557744727 0.0724468306 0.0217903033 -0.054750964 -0.0874217302 -0.0155284554 0.00419416279 0.0423595682 0.018136695 -0.0321764722 -0.0523829684 -0.0799788386 -0.0723181367 -0.0247404799 0.0517893508 -0.00843342394 0.0449766442 -0.0328465365 0.0750483349 -0.0204146504 0.0138958916 0.018790476 -0.0600453652 -0.0155631676 -0.00355876237 -0.0266750231 -0.0477690436 0.00556911528 -0.00452658534 0.055272989 0.0707248971 0.0376972929 -0.022138752 0.0700965747 0.0625425205 0.0470236614 -0.0425546318 0.054893367 0.0220438838 0.0872724131 -0.0398511067 0.00649867952 0.0885400102 0.0416619554 -0.0447726063 0.0712537095 -0.079179287 0.0841562822 -0.0210555717 0.0818449184 0.0730424151 -0.00285297632 -0.0900662839 0.0218301639 -0.0375538282 -0.0370258205 -0.0291296542 -0.036483638 -0.00476159155 0.0300277248 -0.0848433748 0.0194294378 -0.0885596424 -0.0768859759 0.0648378357 0.0586602464 0.0316812396 0.0130710304 -0.013763696 -0.041469492 -0.0320225991 0.0175160691 -0.0722940415 -0.0323042013 0.0518665984 -0.0377625339 0.0859691426 -0.0645317584 0.0157064945 0.0425101891 -0.0758133158 0.00369540602 -0.0901223049 -0.0589878038 0.0458061472 0.0718074813 0.0112642348 -0.00851803273 -0.0610169061 -0.0584075637 -0.0336920694 -0.0853100419 -0.0335265733 -0.0130155832 -0.00262761116 -0.0341828391 -0.0181938782 0.0464757755 0.0144677013 0.0777430013 0.0628511235 -0.0261171684 -0.0632300824 -0.0337504856 0.0111769661 0.0489269868 0.0217893794 0.0444158539 0.0674182996 0.00821338594 0.00910001248 -0.0172312707 -0.0230276883 -0.0659713298 -0.0741211474 0.0618211403 -0.0892614499 0.0377731249 0.0883525684 0.022350274 -0.083669737 -0.0223511308 -0.065355368 -0.0874516591 -0.090824239 0.0875555649 0.0822223201 0.0891840383 -0.0279543325 0.0319264755 0.0244338289 0.00576676428 -0.0847330838 0.0867998824 0.0622589812 0.0399953201 0.0168306604 0.0149716139 -0.0895471051 0.0485753343 0.0614059642 -0.0497984551 0.00613557547 -0.0682853162 -0.00393564999 0.0167267472 0.00960827619 0.0513182059 -0.0437755957 -0.00804183632 0.0657979771 -0.0332613923 -0.0144955069 -0.0358481929 -0.089450784 0.0596025065 0.00543405861 0.0238065049 -0.0586510673 -0.0603852943 -0.0530766733 0.00379401445 0.00261852145 -0.0424104631 0.0552914813 0.0797168091 0.012993902 0.084349744 -0.0558458306 0.0735000595 -0.00954114646 -0.0263539776 0.0582949743 0.0546010509 -0.0015296191 0.00554446131 0.0102063194 -0.0473285913 0.00285092741 0.0615425631 -0.0827070847 -0.0649772286 -0.0186289623 -0.070337683 -0.00984838605 -0.0878803805 -0.0880615935 -0.00978127867 -0.00164550543 0.0744529739 -0.0570373237 0.0341413245 -0.0149858966 0.0125850588 -0.00725832582 0.0422168747 -0.04665998 -0.0123494193 0.0813325718 -0.0550428666 -0.0526349209 -0.0218985751 0.0848397389 -0.0503466241 0.0291024894 -0.057463292 -0.0450890921 -0.0654806048 0.0615319684 -0.0410580933 0.0599524155 0.0544632152 0.0455463603 0.0866176113 -0.00297757983 -0.027580969 -0.0407994278 -0.0157570988 -0.0733335242 0.0191253647 0.0374522284 -0.0274162441 -0.0678683072 0.0569632873 -0.0541173257 -0.0558731891 0.00502257049 0.0757238194 0.00838627666 0.0187620148 -0.0726980194 -0.0492342822 0.0812037215 -0.0804385096 -0.0380313247 0.0842079744 0.0223585665 0.087292619 -0.0652507544 0.068749778 -0.0687131733 0.0457114205 0.0608891174 0.0469935909 0.059204109 -0.0357850678 0.066193305 -0.0354603902 0.0290803015 -0.0547499731 0.0204729289 -0.0918572545 -0.0500730127 -0.0755580589 0.0706878677 -0.0289266258 -0.053696882 0.0852679983 0.0466371998 -0.0293723792 -0.0328220837 -0.0807152689 0.0522611663 0.0697795227 0.0717750266 -0.0316660516 -0.0406019278 0.0663485304 0.0703303143 0.0452160016 -0.0584667735 -0.0301912613 0.00541547686 0.000231571496 -0.0536098741 -0.0165780485 0.0235666558 0.0853173509 0.0665796325 0.0616648123 0.0922101513 0.0421542004 -0.0497671328 -0.0409326777 0.0502898321 -0.0795774832 0.0177366138 -0.0810991749 -0.0414258689 0.0368461683 0.0202222094 0.00805468857 0.0424974635 -0.0370316543 0.0726982132 -0.0243331268 -0.0446527563 0.0200170949 0.0852301195 -0.0609972961 -0.0849470645 -0.0845773369 0.0443114117 -0.0329000019 0.054320462 0.00771066546 0.000199899077 -0.0464481525 -0.0426064432 0.0627518967 0.0599813834 -0.0803219154 -0.0716231167 0.0487943962 -0.0346060321 0.0831078663 -0.0681630448 0.0476886407 -0.0696334988 0.0142984241 -0.0783160627 0.00802963972 -0.0421729684 0.00961828977 0.0861743018 0.0406281874 -0.00228776783 0.0820074603 0.0416697189 -0.0354489014 0.00497575104 -0.0685963035 0.0882216766 -0.0821165666 -0.00372758508 -0.0168583244 -0.0207133517 -0.0778751448 -0.0376587324 -0.0280376226 0.00598075241 -0.0484729409 -0.0369852558 -0.006410487 -0.0595986173 -0.0619001426 -0.0603840835 0.0527820364 -0.0741649047 -0.00155937672 0.0337603018 0.0281071737 -0.022864081 -0.0384503603 0.0906171128 0.0671508685 0.0788219199 -0.0438383929 0.0871326402 0.0764415786 -0.0721643269 -0.0598963536 -0.0539890267 -0.00946094096 -0.0861575752 -0.0581067018 -0.0627425015 0.0463432744 -0.0814255923 -0.0416749381 0.0371033922 -0.0368243158 0.0117294043 0.0546579733 0.0167832971 -0.00639626384 0.0903333649 -0.0460825376 -0.00202608854 0.00544898212 0.0244496539 -0.0782718435 -0.0774744898 -0.0773978233 -0.0852615535 0.0122634619 0.0476160124 -0.0862700045 0.0165524259 -0.0652810857 0.0212575421 0.0794508085 -0.0142447799 0.0240182057 -0.0452809371 -0.0629305393 0.0363021567 0.0038408041 -0.0829708576 -0.0570285209 -0.0164665654 -0.086655654 0.0679944679 0.0103827342 8.08015466e-05 -0.033679612 0.0163553208 0.0728348866 0.0517778769 -0.0222098678 -0.0550267771 -0.0771797001 0.0623155013 0.0316011831 -0.0495280549 -0.00802843273 -0.0904422477 -0.0460301079 -0.0631364882 0.0665516183 -0.0539990664 -0.0562139563 0.0198468193 0.00385953486 -0.0380094685 -0.0306195393 -0.00276183337 0.0417609587 0.0869332775 0.000399179757 0.0615109727 -0.0592726879 -0.0793918893 -0.0638873801 -0.00307517499 -0.00279664993 0.0662641004 0.0390510634 -0.0738714859 -0.0470044464 0.0792682841 -0.0183754638 -0.0532277524 0.0256233364 0.0829333141 0.00720081478 -0.0698738769 0.0914915279 -0.0642573982 0.0305016488 -0.0866256282 -0.0600564145 -0.0404834002 0.000779435039 0.0846316144 -0.0754784048 0.0726367906 -0.0379248597 -0.0111941099 -0.00148104131 0.00520481914 -0.0838877261 0.0566688254 0.0241653174 -0.0519720092 0.069787018 -0.0771944076 0.0737978593 0.0865219161 0.0589989647 0.0774420276 -0.0591838956 -0.0698860884 -0.0369204991 -0.0445296988 0.0813219473 0.0597150102 0.0117802471 0.0145468116 -0.011858277 0.0604183152 0.00964712352 0.00353514403 -0.00295457244 -0.0178764686 -0.079649277 0.0397841707 0.0412521139 0.0506254062 -0.0486602485 -0.018987976 -0.00083578378 0.0665576234 0.0104829296 0.0634713545 0.0627636388 0.000588387251 0.0561293885 0.00439417362 -0.0779473409 0.0318442434 0.0188649371 -0.0334318392 -0.0389374942 0.0577891096 0.0897670761 0.042111434 0.00937998295 0.0901031122 -0.00633122772 0.032453455 0.0650056377 0.0827401206 0.0555093512 0.0823907927 -0.0815265328 -0.0674141198 0.0449934825 0.0212235749 0.0338672921 0.0578980371 -0.0502298363 -0.032833837 0.0912245438 0.0107022822 -0.0571721829 0.024587214 0.0647351369 0.087800853 0.0571202561 0.0461390391 -0.0380322039 0.0908423141 -0.0024767518 -0.057543017 -0.0409970172 -0.0750362128 -0.0709441155 0.00508069992 -0.0233548954 0.0687286928 0.0303272828 0.0833913162 0.00482011586 0.0459633693 0.0440735295 0.0634558871 0.0196314901 -0.0346602462 0.0167939663 -0.0898412317 -0.0513816886 0.0731447861 -0.0517771058 0.0574976727 0.0346320495 -0.0229886845 0.0754131004 0.0790550187 0.0583973452 -0.015353933 0.015001215 -0.0505675673 -0.000695794821 0.0894109234 -0.0513137653 -0.00036586076 -0.0292556807 0.0627557263 0.0152033195 0.0234248191 0.0341409668 0.0603704527 -0.062727958 0.0231418535 0.0744126961 0.0189689323 -0.019604221 0.0241262317 -0.0402803123 0.0219129026 -0.0446735583 -0.0635186136 0.0426134244 0.0755256787 0.03282056 -0.0184365436 -0.069713816 -0.017092742 -0.00640724599 -0.0761843026 -0.0663452223 0.0628969744 0.0627322868 0.0814041719 -0.051775191 0.0339005366 -0.0705407038 0.0621122941 -0.0641603768 -0.0326024406 -0.07828518 -0.0823696628 -0.0883501098 -0.00935352594 0.00316821039 -0.081580475 0.0786279067 0.0862683281 0.0742666349 -0.0746507645 -0.0644943863 -0.0592561327 -0.0296804383 -0.0018267408 0.0682948604 -0.0632337332 0.012484476 -0.0661852509 0.0227546692 -0.0797948316 0.00509410352 -0.0552708954 -0.0511319824 -0.00429305434 0.0836968347 0.00525090843 -0.00251188129 -0.0509933569 -0.0158257708 -0.0511023328 -0.076317355 -0.0834302604 0.0225077793 -0.0897255838 0.0242767408 0.00879507512 0.0314252302 0.0561577454 0.0774554536 -0.00387351215 -0.0520659052 0.0312300697 -0.0523328707 0.0689826235 0.0169957802 -0.0501681641 0.0860095993 -0.0894982368 -0.0697037131 -0.0771185383 -0.0504587479 -0.0623746216 -0.0235292837 0.067207776 -0.0520740524 0.0132082179 0.0752138868 -0.00313068181 0.0707414672 -0.056310825 -0.0871315822 -0.0333055444 0.0379518643 -0.0673503578 0.0292404294 -0.0254153162 -0.0336789526 -0.0624211952 -0.0562425926 -0.0192669109 -0.0501557924 0.0818464234 0.0778804794 -0.0600569211 -0.0334385112 -0.0266256705 -0.0356597826 -0.0201086402 -0.0862429366 0.0156878084 0.0851006284 0.0603220388 -0.0793646574 -0.0625552163 0.0906659886 0.0429183766 0.0817913339 -0.0735842735 0.0164205581 0.0567185506 -0.0312168598 0.0465041026 -0.0867823437 -0.0581797324 -0.0418924466 -0.0165578648 -0.0270713195 0.00867505372 0.0913269743 -0.0203864053 0.0400116071 0.0833884403 -0.0125482604 -0.0635469705 -0.0423122533 0.00488548726 0.0464622453 -0.0391955897 0.0839606002 0.0474456176 -0.0666695684 0.0291141793 -0.0137683898 -0.0568993203 0.0739468858 -0.0645359382 0.0368406847 0.00762861222 -0.038660273 0.00151414424 0.052612029 0.0814522728 -0.0614191033 0.0185499862 -0.0711856782 -0.00129135698 0.0519466475 0.0594288483 0.00124801695 0.0471934751 -0.089801304 -0.0769301057 0.0691935495 0.0850240812 0.032430537 -0.0820303261 0.0214550421 0.0617190376 -0.0181819275 0.0856454447 -0.0762490556 -0.059308432 -0.0176522881 -0.00311499089 0.0608501062 0.0701987967 -0.0701799765 -0.0180496648 -0.0107260793 -0.0510341004 -0.0861880183 0.0921564922 0.0268856585 -0.0605231449 -0.0160160512 0.0334267095 0.0464285836 -0.0438653119 -0.0309114419 0.0210128278 0.0767461434 0.0246400014 -0.0222612843 0.0527158305 0.0848208442 -0.0537381098 -0.0233512819 -0.0309312306 0.0832104012 0.00876032561 -0.0793204606 0.0257691815 0.0525949225 0.0123768821 0.0711475536 0.074128814 0.0677763 0.0146478787 -0.0841801986 0.0747548267 0.0328354612 -0.0740224347 -0.0570938252 -0.0417554751 0.0578551218 -0.0910284519 0.08199846 -0.0610184036 0.0787209496 0.0243121088 0.0393906757 0.0692881271 -0.0536366627 0.0174823031 -0.0719694719 0.0602360591 0.0835262462 -0.0155040026 0.0181730762 0.0303473398 0.0412610546 -0.0257830471 0.0665038154 0.0901862904 -0.00093806535 0.0125580132 0.0552677885 -0.0380936153 0.0573924407 -0.0673350543 -0.0420428216 -0.0596490875 0.0240892768 -0.035807915 0.00707108527 0.0173513368 0.0276431963 0.00477796793 0.0871411636 -0.0552616529 0.0362012014 -0.0379994549 0.021834895 0.0373187587 0.0188030824 -0.0841909871 0.000197567046 0.00866772234 0.0580395088 -0.0396154635 -0.00509115309 0.0378506258 -0.0514937006 0.0482745096 0.00087018311 -0.0771373361 0.0705427304 0.0454368964 -0.0416915342 -0.00667866319 -0.0399649888 0.0795848593 -0.0442005321 0.0421327725 0.0153194666 0.00919025391 0.077502735 -0.03818639 0.0213301331 0.0901841 0.029994905 -0.0583059862 -0.00592103601 -0.00606016815 -0.0254175663 0.0155518502 -0.0267336145 0.0873673335 -0.0712356865 0.010467805 0.0830087587 0.0418161079 -0.0832886025 -0.0533505492 -0.0052729845 -0.0630532503 -0.0255501345 0.0225159451 -0.0441291519 -0.0547811612 0.0797267333 -0.0781970918 0.0509578809 -0.0688795969 0.0645134673 0.0633165017 0.0624622181 0.0699610338 -0.0895154327 -0.0474442132 0.0628888384 -0.0799427181 -0.053449288 -0.0760272145 -0.0520295016 -0.0457262099 -0.0336827375 -0.0810081139 -0.0570729598 0.0432116166 -0.0745011121 0.0626884624 0.0667175129 -0.0670197755 0.0820140019 0.0113391131 -0.0501369759 0.0802019015 0.0591726527 0.0912161842 0.02180776 -0.0650289953 0.0809825435 0.0181915238 0.0342513099 0.0893254951 -0.0693615377 0.050614737 -0.0762668848 -0.04240584 0.0485282913 -0.00217021257 0.0320235863 0.0495507494 -0.0570982732 0.084623538 -0.0510130152 -0.091391623 -0.0393864885 0.0598090217 0.0769283399 0.0251397043 -0.0336217694 -0.0771553591 0.0532305762 -0.0295036957 -0.0229518414 0.0239868164 -0.00150254369 0.0919538662 0.0418956205 -0.00872241706 0.0101432651 -0.0240794793 -0.0884516165 -0.0336093754 -0.0603764467 0.074284561 -0.00926145911 -0.00209584087 -0.0216006637 -0.0739880726 0.0621099696 -0.0585264638 0.0652867779 -0.0664738268 -0.0265201107 0.0397083834 0.0362748876 0.0424853936 0.0282407999 0.00332342833 0.0757060423 0.0691890046 0.0474262312 -0.000572554767 0.0159327462 0.021173127 0.0877161399 0.0158425868 0.0656070784 0.0870598033 -0.019712165 0.0609462783 -0.0796797425 0.0176273063 0.0209736452 0.0693752542 -0.0109585077 0.00728964806 0.0699291006 -0.0649234131 0.0570968613 -0.0385441259 -0.00802230835 0.0591882393 -0.0789964944 0.0707720295 -0.0560030304 0.0882533714 0.0144103914 0.0714141652 0.0880497023 0.082051836 -0.022587873 0.00534636527 0.00718646497 0.00371173769 0.0354112014 0.033583872 -0.00607544184 0.0589182302 0.0402881727 -0.0223139748 -0.0705467165 -0.0196067318 -0.0857929513 -0.0118825957 0.0825328454 0.0542088225 -0.0701485276 -0.0524299368 -0.0525746569 0.0239681751 0.0392593965 -0.080439806 0.0263398662 -0.0847178251 0.0393760577 0.059306629 0.00341171026 0.0143491998 -0.0127242953 0.0270734355 0.0372923687 -0.00856310874 0.0185181573 -0.0194057971 -0.0433526002 -0.0688081309 -0.0777095407 -0.0721323714 -0.0593607053 -0.0594877489 0.0180098936 -0.0299919769 -0.0466033034 0.0398050323 0.0455138013 0.0386524871 0.038376607 0.0456657931 -0.0529527292 -0.0335454792 -0.0106327981 0.0863067135 -0.00152994692 -0.0171033069 -0.00624131411 0.0394161418 -0.0124308765 0.0312922224 0.0410735235 -0.0810841173 0.0609071031 0.00595647097 0.0885106996 0.0781944916 -0.0305320248 0.0625451431 0.0346993133 -0.0241662264 0.0620585009 0.086758025 0.0845452622 0.0485166982 -0.0748485476 -0.0224242955 -0.00801071525 0.0617206916 0.0142105594 -0.0601667948 0.0511452332 -0.0271268934 -0.0488096327 -0.0691449121 0.0564308688 0.0404585078 0.0186262503 0.071719341 0.0890899226 -0.0619398728 0.0482549444 0.0222383291 0.0226525441 -0.0895475447 -0.0899312049 -0.0848312676 -0.00653897971 -0.0901660174 -0.0569936559 -0.0431966782 -0.0367848948 -0.00548199564 -0.0569929965 0.0282957852 0.0157448649 0.0528678522 0.0841348842 -0.0773278996 -0.0602971204 -0.0865712613 -0.0482641272 -0.0360583924 0.0876654908 0.0534373596 0.0610522106 -0.0671830922 0.0104389936 -0.0800138786 -0.0173862502 -0.0637101084 0.0255137905 0.0194647014 -0.0332079269 -0.0746980011 0.0286657363 0.0493777916 -0.0153156146 0.0173248872 0.0679199174 -0.031074211 -0.00672452897 -0.0881703496 0.00544576347 -0.0717025697 -0.0492122062 -0.0421430133 -0.0903750733 0.00948230922 -0.064084813 0.0606371984 -0.0757846087 -0.0347535908 -0.0441703536 -0.0391327515 0.076837264 0.0783675238 0.0319032148 0.0109307319 -0.0438298732 0.0486961082 0.0394733623 -0.0809587911 0.0599249825 0.0760663971 0.0281208903 0.00559550524 0.0569385663 -0.0879128054 0.0339738503 0.0674430653 -0.00552847981 0.0713416263 -0.0613751933 0.0365711227 0.0397109613 -0.0519858338 0.0530493781 0.0467406437 -0.0356350653 0.00866158307 0.0582275167 -0.0362594798 -0.0379505232 -0.083113417 0.00196859241 0.0637030229 -0.0476011932 0.0548660979 0.0442415848 -0.0179888085 -0.057781674 -0.0646222457 0.0430787876 -0.055733975 0.0558587536 -0.0152740553 -0.0575202778 0.0474726781 0.0493539348 -0.0197845772 -0.0680550188 -0.0395378321 -0.00513233244 -0.0140746832 0.0728909597 0.0867272094 -0.0662783086 -0.0785583481 0.0166371018 -0.0569868535 0.0127644688 0.00393881649 0.0779306367 0.0119133666 0.0775620267 -0.0597786643 -0.0840674415 0.0745427832 0.0311500132 0.0179490373 0.0152331814 0.0702080205 0.0290719867 0.0864162818 -0.0542731397 0.0784286037 -0.04928625 -0.0412964039 -0.00336260349 -0.0439870954 -0.059934739 -0.0484336279 -0.0917288214 0.00583328307 -0.0212251842 0.0394556597 -0.0366527662 0.0542091951 0.0315394029 -0.00839937478 0.0899645016 0.0261468589 0.0489628688 0.0541233197 -0.0739929378 -0.0643146485 -0.0252207667 -0.017567046 0.0657652542 -0.0411122851 0.0170530304 -0.0543665737 0.0679821894 0.0373732373 0.00595706701 0.0555046275 -0.00480484217 -0.0452211797 0.00348423421 -0.0330078304 -0.0374864116 -0.0469486043 0.0872341469 0.0724919066 -0.0330785066 0.0662361905 -0.0743322745 -0.0341126025 0.0541586354 0.0443114862 -0.00878898054 0.048046194 0.0349192843 -0.0316870473 -0.062734738 -0.0338103101 0.0705608502 -0.00845237076 -0.0781644732 0.0918950513 -0.080811277 0.0686544552 -0.0106651559 0.00845833868 0.0370457247 -0.0403798856 -0.0675138682 -0.0147727728 -0.0900527239 -0.0498745888 0.0564924702 0.0528930649 -0.0892011002 0.0505740866 0.0775495246 0.0248759314 0.0708320513 -0.0527600721 -0.045777183 0.0903580114 -0.00789354742 0.0502872393 0.0824104324 -0.0725427568 0.0299784616 -0.0337466113 0.0479189977 0.0103020445 0.0607567653 -0.00437790155 -0.0723622739 -0.0110812411 -0.0265394598 -0.0893273503 -0.0425533764 0.0564673916 -0.047230538 -0.0733085424 -0.0668472797 0.0784390047 -0.0170166269 -0.0273513123 -0.0817722529 -0.0341750458 0.0149390176 0.0265794992 0.0390329733 0.0199073479 -0.0663062409 0.0813083872 0.0222695991 -0.0463235304 0.0028020665 -0.0271271616 0.0462218001 -0.000307328999 0.022972554 0.0626879409 -0.0745616481 -0.027322039 -0.0182682052 0.0295692682 -0.00296784937 0.00098118186 -0.0256491974 -0.0248750672 -0.0811987743 -0.0678064972 -0.0145636946 0.0917430893 0.0409256145 -0.0600605942 -0.0693229139 0.090467073 0.0418200269 -0.0105849877 0.0139585361 0.0549424961 -0.0137386099 0.0754436776 0.0913207456 -0.0902140662 -0.039194975 -0.0911830738 0.00302036852 -0.0762174726 0.00530789047 -0.0846335292 -0.0141224712 -0.00437385589 -0.0361781977 0.0779461339 -0.046623949 0.0222059712 0.0828488246 -0.0588725805 0.0221345052 0.0289078951 0.0388299748 0.0417365208 -0.0709603131 -0.0345938168 -0.0910206363 0.0341472849 -0.0675771981 -0.0921908244 0.0551476106 -0.0174469724 -0.01586999 0.0801594183 -0.0705970973 0.0308960378 0.0379461274 0.0596968308 0.0564978644 -0.0583979897 -0.0730829388 -0.00490312278 -0.0704923272 0.027341187 -0.0528185107 0.0144776106 -0.0263552293 0.0104226172 0.0602032021 0.0517716929 0.0350635275 -0.0611162186 0.0377384499 0.0024105683 0.0918153301 0.0466492549 -0.0281629711 0.0119833574 -0.0865118355 -0.0144521222 -0.0269363299 -0.0282321274 -0.0701272413 -0.0014295131 -0.0578448437 -0.0585851222 0.0458480194 -0.000185877085 -0.0649372563 -0.0446800962 -0.0552044474 -0.0139004514 0.0207720771 0.0693438277 -0.0881900936 0.0138737485 -0.0791238472 -0.0663252622 0.0482582673 0.0745249912 -0.0177809596 -0.0502102263 -0.0781342983 -0.085244447 0.0921009555 0.00123964995 0.0352093205 -0.0143941045 -0.0305490419 0.052797623 0.0762736872 0.0142735913 0.0281165317 -0.0401769504 -0.0560546443 -0.0533763878 -0.0164762735 -0.00262100995 -0.00163914263 -0.0678356886 -0.0770681351 0.092044346 -0.00714393705 -0.0850472376 -0.04379021 -0.0223538131 -0.00268882513 -0.0382362865 0.0892058089 0.0258489698 -0.0359387882 0.0850239471 0.00156241655 -0.0527441613 -0.000502936542 0.00900290161 -0.0539741255 0.0794596747 0.0291426778 -0.0562060997 -0.013651602 -0.0582472831 -0.0672873184 0.00335327536 0.0120000467 -0.0482464284 -0.0534825213 0.0445926711 -0.0859927833 -0.00138837844 -0.0620696694 0.0617540106 0.0361510739 0.074376069 0.0677597746 0.0264702588 -0.0631860793 -0.0897707716 0.0652934536 0.0408489034 -0.0497389808 0.0022052303 0.0726681575 0.0612359717 0.091422312 -0.0117717534 -0.0750521943 -0.0144148543 0.0745468512 0.00684666634 0.0779471174 -0.00974797457 -0.0843331739 0.0648187473 -0.0498082936 -0.0228270814 -0.0433130227 -0.0922764465 0.0739084557 -0.00566860288 0.0480827764 -0.000841215253 0.0303869098 -0.0442318954 -0.00707872212 -0.0680082664 0.00488038361 0.0598011389 -0.045356717 -0.0811345875 -0.0799954608 -0.0109591931 0.0497163609 0.0438860729 -0.0784615949 -0.0905625522 0.0878253803 0.01556997 -0.071664229 0.00178012252 0.0512182787 -0.0438392498 0.0534286872 -0.0225230083 -0.0647592396 0.0201001167 0.0788938776 0.0864206627 -0.0516844876 -0.0877840444 0.0452395752 0.0111565813 0.00635959953 -0.0602285787 0.0543378666 0.0546297953 -0.0672248527 -0.0198481232 -0.00104770064 -0.000290758908 -0.0505354293 -0.0739681125 0.0225441828 0.088052772 0.0438028052 -0.0880970731 -0.000158078969 -0.0359831415 -0.0798781216 0.0254502445 -0.0373744443 0.0721534565 -0.0494037606 -0.00442919135 0.0858245417 0.0157030672 -0.00710878521 0.0533726439 0.082979016 -0.0697605014 0.0772764757 -0.0221992806 0.0130727887 -0.0640228093 -0.0107592493 -0.0292869583 -0.0221703351 0.0862501487 -0.0605450682 -0.057664182 0.00932598859 -0.0310530365 0.0102393404 -0.0271395072 0.066528745 0.0917967334 -0.036875885 0.0239350721 0.0418405011 0.0808425471 0.00794851035 -0.0513477288 0.0157080144 0.0107658729 0.0731715932 0.00932568312 0.00347439945 0.0679457411 -0.0235904306 -0.0745179355 0.0380124822 -0.049719546 0.0749509409 0.00285819173 0.0180699378 0.010781236 0.029220663 -0.0329347774 -0.0799413323 -0.0412172079 0.0739334449 0.0530393049 0.0897750631 -0.0796148553 -0.0247141719 0.0572232082 0.0609085336 0.0291343853 -0.0803172514 -0.0182634071 -0.032600835 0.0527561381 0.0897283778 0.0695184544 0.021823056 0.0378369018 -0.0686318502 0.040735282 0.031114161 0.0699504688 0.0126884654 -0.0859658867 0.0831919983 -0.0560527742 0.0139982402 0.063058503 0.00514510274 0.0805898532 0.0670322999 -0.0248682275 0.00802495331 0.0613703653 0.031309329 -0.0562840812 0.00155182928 0.0103577077 0.0461403355 -0.0800173804 -0.0551944524 0.00379563868 -0.060870491 -0.0160373822 -0.0362130627 -0.0374263227 -0.0168530643 0.0626359507 0.0359634832 -0.00243154168 0.00732783973 0.0346204117 0.0497331247 0.055340521 0.0702026412 -0.0867084116 -0.0561649613 0.0137039199 0.0659651235 -0.0770213827 0.0811856315 -0.0216861293 0.0420954004 0.0443347469 -0.0563379191 -0.00682362169 -0.0357857719 0.0310147181 -0.0417233407 0.0754814371 0.0112405941 -0.0615614206 -0.0277324691 -0.0316616036 -0.0335737839 -0.0382315107 -0.0121200681 0.0835317448 0.0355008021 0.0503617451 -0.00139332563 -0.0748848021 -0.0698726028 -0.00212867558 -0.0549862571 -0.0637462065 0.0567751303 0.0143763572 0.0786930099 0.00793528557 -0.0917580128 -0.09227442 0.0694625005 -0.00116087496 -0.0674400032 0.0542275086 0.02739124 -0.044890888 0.00318537652 -0.0429115742 -0.0430288687 0.0836382583 -0.0480294712 -0.0357880816 -0.043182943 -0.0871470124 0.0391868576 0.0730030164 0.0292073265 0.0160608217 -0.04036415 0.0407246575 -0.0674060881 -0.0355355777 -0.017626144 -0.00627820194 -0.0475339517 0.0227073282 0.000321947038 0.0747090653 -0.0359627567 -0.0164289922 0.00866624713 0.0489933118 -0.0755114406 -0.0114114657 -0.082856141 -0.0483886823 -0.0891943201 -0.0128523335 -0.00486530364 0.0357546732 0.0724034086 0.005550161 -0.0116102174 -0.00637482852 -0.0435335897 -0.0608145855 0.0281508863 -0.0349847674 -0.0806564316 0.0923060998 -0.0487579517 0.080168061 0.0597862825 0.0211506113 -0.0337430462 -0.0787199065 0.0786460415 -0.00849439204 0.0600018725 0.0407068506 0.081751518 -0.0742415488 -0.029048413 0.0397499427 -0.0364264548 -0.0404061228 -0.0698399544 0.043289192 -0.057069879 0.0311040133 0.0785542205 -0.0191338137 0.0567493364 -0.0623452589 0.00445085019 0.0360891595 -0.00452971458 0.0504326895 0.0873801336 -0.0680213645 0.0246562213 0.0736913309 0.0327623412 0.0463614091 -0.0643535852 0.0093485117 -0.0519838072 0.0904782936 0.0153196827 -0.0921424925 -0.0830110013 0.0350957438 0.0497074649 0.0274814442 0.0358188972 -0.0458102003 -0.0113282204 0.0440318659 -0.0821094513 0.0705526099 0.06622421 -0.0266892835 -0.0254507735 0.0204139426 -0.0248732194 0.00899504125 0.0565442666 -0.0735272169 -0.0573725887 -0.0579660349 -0.0189089105 -0.085561268 0.0282130018 -0.0204746276 0.0269764736 -0.0821399614 0.070369117 0.0464503989 -0.0652571172 -0.030450806 0.0579121485 0.0661259517 0.079342626 -0.0331217796 -0.0526139028 -0.0123209134 -0.0261854604 -0.0789412856 0.0602872148 0.00730749965 -0.0758629888 0.0870225653 0.0581089631 -0.0408797003 -0.0638637617 0.0473514125 0.0590094253 0.00836591423 0.0453222916 0.0778649971 -0.0736557841 0.0528086498 -0.0229536891 0.0492771342 0.040038459 -0.0264275596 0.042503275 0.0362370089 0.0287555382 -0.0835219547 -0.0389739461 -0.066396907 0.0652382895 -0.0783461258 0.0269870162 -0.034960974 -0.0464229509 -0.0642166808 0.0689176098 -0.0367393307 -0.0385708883 -0.0741464794 -0.0620247424 0.0546856597 0.0860198364 0.0902541652 0.0740567073 0.048375167 -0.0411513112 0.088384755 0.0855131522 -0.0657896549 -0.0197796226 -0.071310699 0.0747393295 0.0739105269 0.0329490378 -0.0757309496 -0.0245372728 -0.043271888 0.0144176781 0.0136968791 -0.0422567204 0.0283987969 0.0767988339 0.0283535421 0.0316283479 -0.09044341 -0.0134233311 -0.0244839191 -0.061573945 -0.0402276628 -0.014768742 0.0762509033 -0.0608272217 0.0211865976 -0.0756254569 0.0648425296 -0.034788698 -0.0556692854 -0.0607793257 0.0597851351 0.0879527554 0.0149601474 -0.0252634659 0.0568157211 0.0542516336 0.0361317918 -0.00825089216 -0.0450149849 -0.025292106 -0.0474689081 0.0780744776 -0.0775227398 -0.064078629 -0.035356082 0.0234380066 -0.0380838849 0.0888624713 0.0463247225 0.0337265655 0.0666942373 -0.0164322257 0.0417485163 0.0897269472 0.0356119946 0.04049436 0.0853326395 -0.0320741683 -0.0599818192 -0.0706790611 0.0884989575 -0.0697303265 0.01760488 0.00682989508 -0.0202770829 -0.0747205839 0.00982446223 -0.00453151762 -0.0177261755 -0.0110208839 0.0219864175 -0.0915836021 0.0872395411 -0.0779422522 0.00656420738 -0.0225195512 0.00433272123 0.0274818167 -0.0269170254 -0.0218655318 0.0860939249 -0.0404192843 0.0143023804 -0.0215494856 0.0445546135 0.0253722221 0.0290631801 0.0792658105 -0.046562057 -0.00361911952 -0.0859364346 -0.0345999151 0.060870938 0.0915715322 -0.0460334308 -0.065768525 -0.0531672016 0.0720138475 -0.0504391342 -0.0611823574 0.0573152676 0.00972790271 0.0399850383 -0.0595438108 0.0345111415 0.0605668649 -0.0581416115 -0.00471455604 0.0268029869 -0.0232204795 0.00746522844 0.0827705786 -0.0852474198 0.0880403295 -0.0762497634 0.0545108542 -0.0130298063 -0.0738021284 0.030555509 0.0767281875 -0.0784401149 0.0919279382 0.00855190307 -0.043628633 -0.0295288786 0.00887244195 -0.0657324344 0.0413109884 0.0673738346 0.0850753263 0.0423044786 -0.0261683837 0.0478247479 0.0477451012 -0.00779115409 0.0872237459 -0.0783062205 0.00405883789 0.0501053408 0.0466034636 -0.062235184 -0.0136131272 -0.0339438468 -0.00549724698 -0.0698157251 -0.0694826618 -0.0893969238 -0.0449211746 0.0606128648 -0.061338149 -0.062194664 0.0791552141 0.0146558955 0.024594456 0.0623651817 -0.0105712786 0.0882214978 -0.0833444446 0.0547341034 0.00844865292 0.00136028975 -0.00377871096 0.0530302897 -0.0493274964 0.0652021542 -0.0869249925 -0.0638468415 0.00853552669 0.0511781797 0.0913046971 -0.0638014302 -0.0837082267 0.0213949978 -0.0397352651 -0.0250425264 0.0062410906 -0.0304514691 0.0745138451 -0.0338245742 0.0170236081 0.00128893554 -0.0778573602 -0.0151568055 -0.0385705829 0.055871062 0.0572315082 0.08880537 -0.0107531101 0.0797120705 -0.0411483161 -0.0203667507 -0.0518125445 -0.0435342751 -0.00101932883 -0.0739619732 -0.0657761693 0.0629767403 0.0477596447 0.06787806 0.0829456523 -0.0900273919 -2.26050615e-05 0.000100299716 -0.0410131924 0.0278198943 0.0642823651 0.0139283612 -0.00235069543 0.0688106641 -0.0862928331 0.0895870999 0.0410149172 -0.00488375127 -0.0309345536 -0.0922850296 -0.0209336355 0.00205225497 -0.0704425424 0.0235960633 -0.0752437487 0.071388863 -0.00828185678 0.0738344416 -0.00656019896 -0.00501035154 0.0703232214 0.0689382628 -0.0608866699 0.00562833995 -0.0460232161 -0.0299517848 0.085617952 -0.0904893503 -0.0462101102 0.0370351747 -0.0614682287 -0.061743848 0.0246510059 -0.0869383141 -0.0305612125 0.0227100775 -0.0153340399 0.0264516994 0.0176572427 0.0778014138 0.0581630245 0.0307129771 0.0584354475 -0.0731640905 -0.087851502 -0.0271686092 -0.0826171488 -0.00822835416 0.0052748993 0.0659395084 -0.00835093111 -0.036124073 0.0358706042 -0.0885573775 -0.0200463906 0.0232945234 0.0500368103 -0.0604914278 0.000871837139 0.0602138266 -0.0427638181 -0.0902422369 -0.0212601349 0.0855575725 0.0139587745 -0.0356213748 -0.0709439814 -0.0870779455 0.0849833116 -0.03234208 -0.0710029006 -0.0254940689 0.064623408 0.0476810709 0.0433345512 -0.0793207958 0.0604039803 0.0588609353 -0.0690586716 0.0403252617 0.0344257429 -0.0687600821 -0.00905829668 -0.00361141562 0.0375519171 -0.00893121213 0.0150328428 -0.0327117443 -0.05298841 -0.0456771255 -0.0166755095 0.0130308792 -0.0596852079 -0.00510931015 -0.0678752139 0.0404116437 -0.0249672309 0.0569061264 0.0779291317 -0.0563523807 -0.0434717871 0.010665834 -0.0653118342 0.0359363034 0.0204605386 0.0798386857 0.074761413 0.0127248466 0.000288404524 -0.0902678147 0.0429159924 0.0657784566 -0.0213270709 -0.038716048 -0.0843237936 0.0898036733 -0.0586868785 -0.0403032228 -0.0554810725 0.0413107798 0.0799264535 -0.0311201252 -0.00288068503 -0.0517811812 -0.0685218871 -0.0737581104 -0.0705950931 0.030253239 0.0839099362 0.0869987532 0.0509333089 -0.0652349889 0.0631141141 -0.0351139233 -0.0428556912 0.0554866865 -0.00271316618 0.0837406889 -0.0608697869 -0.0503110774 -0.0752642602 -0.020582214 -0.0307656676 -0.0358960666 -0.0273370296 0.00475829095 0.0640804097 -0.000793211162 0.0642770603 -0.0605983324 -0.0864445269 0.0680228248 0.068016611 -0.0211441889 0.0641772971 0.0202041417 0.078288056 -0.019996427 0.0877035782 -0.0287593454 0.00833699852 0.0441826805 -0.0228198841 -0.0695909336 0.0745398179 -0.0108807907 0.0116375759 -0.0536845364 -0.0444353819 0.0615738556 -0.0798830092 0.0654812232 0.0146929398 -0.0381747223 0.0811479762 -0.03762215 0.0873071775 0.0785817429 -0.022232227 0.0512394086 -0.0642071962 -0.0805454999 -0.0849332437 0.00221407413 -0.0733788013 0.0583950803 0.0732906237 -0.0711428449 0.0857475027 -0.0127200037 -0.0537633784 -0.0137333274 -0.067631036 0.0574510172 0.0681990758 -0.0895218998 0.0195035711 0.0701721385 0.0442061201 0.0828007832 -0.042779468 0.0286850184 0.0231588706 -0.00810086727 -0.0439061858 0.0621773228 -0.0583556406 0.0314415619 -0.00708893687 0.0718572214 -0.0694514513 0.0181609541 -0.00512111187 -0.076627925 -0.0119887963 0.0885745659 0.0793708637 0.0608476177 -0.0294104144 0.0273449123 0.0224583 -0.016939722 0.090794839 -0.0314363502 0.0433149114 0.0623882934 -0.0473029949 -0.000326655805 0.0444504991 -0.0619226396 -0.00475822389 -0.0627751052 -0.0651979521 0.0374251828 -0.00793259591 0.0568661764 -0.0742395893 -0.0638819635 0.0170256719 0.0584067479 0.0907899514 -0.0901594982 -0.0118649676 -0.09027569 0.0896203145 -0.0575586222 0.0300938189 0.0618742779 -0.0567008518 -0.0242874548 -0.0433085561 0.0631586835 0.00897849351 0.087808378 -0.0392236747 -0.0199950859 0.0151328817 -0.022909686 -0.0408255532 -0.051557906 -0.0674312413 0.00518960506 -0.0285454243 -0.0518053696 -0.0620319396 0.0484872833 -0.0249231383 0.0225235596 -0.0106878877 0.0173361972 -0.048137214 -0.0366830081 0.0296649933 0.0456941649 -0.0265611857 0.0300982222 -0.0164855123 0.0241099671 -0.0171971098 0.00571154058 0.0589793697 -0.0373870991 -0.011603944 -0.0573043115 0.0574805662 -0.0528659672 0.0463719741 0.0330509767 0.00845330209 0.0330635682 -0.0325705484 -0.0544722006 0.0407556966 0.00821089745 -0.0633948967 0.00353442132 -0.0175055042 -0.0233796313 0.0912339464 0.0108628273 -0.0637132972 -0.0460933 0.0903429613 -0.0723236203 -0.0757395998 -0.0836983249 0.0685811564 0.0358018652 0.0348297879 0.00640011579 0.00428744406 0.035977833 -0.056597732 0.0708610192 0.0635970905 0.0461413637 0.0206123441 0.057867907 0.0127314776 0.0535961166 -0.00323870778 0.0381979868 0.0564275458 -0.0160207227 -0.0826935247 -0.0626992583 -0.000117778778 0.0201128647 -0.0332583748 -0.0600687154 0.0324291736 0.0520742908 0.0596910641 0.0759605393 0.0537322387 0.0165243223 0.0673265979 0.0565620288 0.0513192639 -0.0336719528 0.0370580927 0.0313101411 -0.0300739892 -0.0588909797 -0.0510969833 -0.00617314875 0.0096007064 0.049294211 0.0693636313 -0.0853538886 0.0523361936 -0.0917572826 -0.0255474672 -0.0167528763 -0.00573128462 -0.0424907133 -0.0899237692 -0.066982761 -0.0284963623 0.0162389949 0.057979919 0.0228297934 -0.0539217629 0.0526804551 0.0896368995 0.0810891315 0.064243488 0.0797827467 0.0734191015 -0.0779073462 0.0571939573 -0.0736197308 -0.048576057 -0.0234287381 0.0348758176 0.0639937297 -0.0496676229 -0.0160643458 0.0830368921 -0.036335066 -0.00966774672 -0.0416070595 -0.0894759446 -0.0438515544 -0.0828165859 -0.0304829888 -0.0199093074 0.0883180127 0.0766376927 -0.0636425316 -0.0280601159 0.044751741 0.0275451615 -0.0478720516 -0.0135072097 0.0446019098 -0.0770527497 -0.0631143078 0.0323778912 0.0686270967 0.023636654 -0.00178483129 0.0417481437 0.0582926944 0.0459969416 0.0554242805 -0.0494629256 0.0470620915 0.053466849 -0.0765766203 -0.0543446951 -0.0080826208 0.0239095166 0.0243004188 0.0887591764 0.0427695885 -0.0689851791 -0.0826675966 0.0317180157 -0.0116963685 0.0336282775 0.0294585526 0.0690546855 0.0193095878 0.0573151633 0.0263414755 0.0869669691 0.0433290079 -0.0178711638 0.0354974344 0.0829879567 0.0095205009 0.0507144406 0.0127183348 0.0464281663 0.0783762112 0.0420261547 -0.036029011 -0.09004841 0.0696163252 0.0530977324 0.0262009799 0.0642382279 0.0387582704 -0.0418152325 0.0771702453 -0.0818895027 0.0832562819 -0.0638927519 -0.0657494217 0.017027013 0.0326927975 -0.0367393307 0.0597863272 0.0395369008 -0.0646359324 0.0802476928 -0.00775756687 0.0280635729 0.0842352435 0.0656035617 -0.0483409427 -0.0340200476 0.0538973734 -0.0130596086 0.000448420644 0.0380367413 0.0630963072 0.0535659268 -0.037900757 0.0188465342 -0.0788960382 -0.0509829707 0.0085767135 0.0337586924 -0.0343949981 -0.03368067 0.0164726377 -0.0871839002 -0.087422125 -0.0851967111 -0.0385002121 -0.0201642588 -0.0538248084 0.0584293827 -0.00901976228 -0.0634450167 -0.0492339507 0.0713821873 -0.00199753791 0.0639253035 -0.051546175 -0.0875221789 -0.0801209807 0.0284175277 0.017964974 -0.00786665082 -0.0392174236 -0.0182868764 0.0055084303 0.0214808583 -0.0783691034 0.0538442209 0.0861955509 -0.0716186464 0.0357631966 0.0593813136 0.00426195562 -0.0154175013 0.0018433556 -0.0679978132 0.00982376188 0.006805107 0.00728665292 -0.0782930553 0.0172083601 0.0177271068 0.0424752459 -0.00708539039 0.0849333033 -0.0333942249 0.0275270268 -0.031069722 -0.0414098017 -0.0850781202 0.0260870531 -0.067732431 0.042411603 0.0474294499 0.0773124322 0.0871812627 0.0689236596 -0.0452704169 0.0197517797 0.00331506133 0.0648683384 0.0459372476 -0.0551262423 0.0103434697 0.0425180271 0.0553555712 -0.0357627049 0.0754584149 -0.0576676168 0.00383935124 0.0262607634 0.00391612202 0.0413218513 0.0865877792 -0.00241290033 0.0548849478 0.0463660136 -0.0522460192 -0.00798916072 -0.0868060738 -0.0222945437 0.00648523122 0.0129881352 0.063174285 -0.0234628767 0.0688980445 0.0618548915 -0.0270988122 -0.0881717354 0.0493465587 -0.0713386983 -0.0653924122 -0.00026410073 -0.0405617356 0.0732300356 0.0597609058 -0.0262807906 -0.00758448243 -0.0693734437 0.0189899579 0.0788403079 0.0618010089 0.00217718631 -0.0434604734 0.0194709674 -0.0580481105 -0.0214786157 -0.0402778909 0.0679764822 -0.0373092256 0.0584543124 0.0520954207 -0.068595022 -0.0667433515 -0.0640561134 -0.00916112959 -0.0591378063 -0.0886616185 -0.0713932365 -0.0905713141 0.0100053698 0.0911725387 0.0697921291 0.0302956328 -0.039254535 0.00240869075 0.00988210738 0.0840432718 -0.0660350099 0.0911707506 0.0879599974 0.0701423809 0.0400421545 0.042762585 0.0403770283 0.0380599126 -0.0630103499 -0.0481364653 0.0803891644 0.0840730146 0.0853180811 0.0459168479 -0.0299188383 0.0599884614 0.0296827778 0.0884846076 0.0370653942 0.0391053632 -0.025933817 -0.0754593462 -0.0412652344 -0.0717201605 0.0246657282 0.0466392413 0.069009982 0.000593997538 -0.0831124038 0.0369942114 0.0543018803 0.0345792696 0.0815567002 -0.088063553 0.0382413492 -0.0588289127 0.00010740757 -0.0226454288 -0.0165771917 -0.0278124139 -0.0678298771 -0.0177318156 -0.0148257017 -0.0752811432 -0.0614491701 0.0501811728 -0.0427848175 -0.0293906108 -0.0774151906 -0.0119299591 0.0289041549 0.0463362709 0.028588064 0.0434487686 0.051600717 -0.0416808575 -0.0686932802 -0.0307830125 -0.0367936082 0.0640297458 0.0363769755 0.0748648122 0.0511053875 0.0533810928 -0.027765356 -0.0563977435 -0.0477345996 -0.0567151792 0.0859435275 -0.0433625691 0.0741134211 0.0628727451 -0.0448633321 -0.04300908 0.0351526216 -0.0784337744 0.0655378327 -0.0613193512 -0.00440255553 -0.0835813433 -0.0202253386 -0.0644355267 -0.0156911761 0.0372492746 0.0575597659 -0.0794286877 -0.0797688812 -0.0123149231 0.0303852633 -0.0377139561 0.0620857403 0.0144083425 -0.0541650243 -0.0793080479 -0.0641122833 0.0748819038 -0.0194902942 -0.0672309697 -0.0278195441 0.0467270687 -0.0435255133 0.0401934609 -0.0458622985 -0.0516442955 -0.0111079141 -0.0243321583 -0.0780637786 0.00338556617 0.0420245156 0.0727541521 0.0208952054 0.0547109023 -0.0839009732 -0.0715556964 0.0623457655 -0.0490699746 0.0625922009 -0.0209531337 0.0897229686 -0.0463960096 -0.0239981934 -0.0638266057 0.0696627721 -0.00163390487 0.0118468702 -0.0860384107 -0.0711052567 -0.0815143585 0.045826219 0.0350079611 -0.0897713676 -0.0308336802 0.039253436 0.0535412952 -0.0627666265 -0.0253962129 0.0101558343 0.0123514608 0.0424233004 0.0692706779 -0.0317306072 -0.0850598738 -0.0809325576 0.000146567822 -0.0905872285 -0.0797387958 0.0404761806 -0.032987427 -0.0628893599 -0.0327808149 0.0345352963 -0.0749909356 -0.0226005763 -0.0298479833 0.0866911486 -0.03389569 0.042756848 0.0800099894 0.0142065063 -0.0825267509 -0.0661782548 0.0409082249 -0.0448140055 0.0124933198 -0.0219799653 0.0158751011 0.0295855328 -0.0592272989 0.00434079766 -0.037375588 0.0256913528 -0.0112807825 -0.0673083365 -0.035730239 -0.0877026021 0.0750370249 0.0485120341 -0.0255312026 -0.0905457586 0.0591019914 -0.036836464 -0.0271204263 0.0684416518 0.0827799365 0.0474483892 -0.0658376813 -0.0805281773 -0.0211526155 -0.0357869156 -0.0776222497 -0.0798455253 0.0783102438 -0.0216702595 -0.00773142278 -0.0463460013 0.0632225499 -0.0546308979 0.021767281 -0.0639998987 -0.0224264488 -0.0573824048 -0.0888081193 0.0138399005 -0.0236567259 0.0309185535 0.0487858132 -0.00604845583 0.0410429016 -0.0135013089 -0.076816842 0.0745031461 -0.0564455725 0.066676192 0.0289063528 0.0410177931 0.0331582054 0.0154748783 0.0667822137 0.0385882631 -0.0812138468 0.0279330537 0.0363044515 -0.0288460255 -0.0357978567 -0.0147426575 0.062593542 0.0737570897 0.0898230001 0.0145431533 0.0526696369 0.0400802419 0.0333066955 -0.0447554588 -0.0649876595 -0.0105325803 0.0437620804 0.0530042574 0.0270433426 -0.0140301362 0.0704443678 0.0682580248 0.0632712618 0.0855719075 -0.0850193948 -0.0331266001 0.010002397 0.0473385826 -0.0100293383 -0.00821486115 0.0696876422 -0.0829186887 -0.0142216906 -0.0889493823 -0.0824532136 0.0685049519 0.0592367724 -0.0201980025 -0.0387655497 -0.0355571061 -0.0670020133 0.0668213293 0.0788429454 -0.0878563225 -0.0162122548 -0.0250672475 0.00494170189 -0.02533824 -0.0100131109 -0.0839211792 0.0754228905 0.0151129663 0.036486052 0.0762976781 -0.0664641857 -0.0380825661 0.075681515 -0.0178629532 0.03347186 -0.065604724 0.00434248894 0.00677869469 0.0860336646 -0.0825192034 0.0429411307 -0.00341140479 0.0506717786 0.0690800622 -0.00496783108 -0.0307301655 0.0472424701 -0.0294486284 -0.0649562776 0.0680125132 0.0587117299 0.0844495669 -0.0221793577 0.0530319735 -0.0832527205 0.0872544721 0.0348959789 0.0287599191 -0.0674190521 0.0210395679 -0.0553797148 0.0484558418 0.0191909075 0.0164227858 -0.0917384848 0.0679737851 -0.0123702586 -0.0597974397 -0.0809475631 0.0320455357 0.00153298676 -0.024420552 0.0144763067 0.0450680479 0.0648418143 -0.058746282 -0.0117526278 -0.0521580428 0.080808498 0.00340528786 -0.0599545278 0.0456270501 0.0599546656 -0.0619114786 0.011533007 0.00400586426 -0.0206234828 0.0342634246 -0.00449253619 0.00930431485 -0.0451148003 0.00952265412 0.0600777194 -0.0524939448 0.0847763345 0.0844014212 0.0240081623 -0.0854076371 0.0406369939 -0.0382547975 -0.0501131825 -0.0760185868 -0.0128032044 -0.00549603999 -0.0259644985 0.0904846564 -0.0885673314 0.034541823 -0.0404327102 0.0266181007 0.035025157 0.0269769356 -0.0849363506 0.0445135012 0.0164064988 -0.0509476885 -0.0339780077 -0.0759992823 0.0690872297 -0.00184051692 -0.06302239 -0.0267346501 0.0220434889 0.0747392699 -0.0341360196 0.0410911962 0.0481458828 -0.06938155 -0.0369039923 -0.00652236491 -0.0807956904 0.00431277603 0.0371399298 -0.00988457352 -0.0206595585 -0.044841893 0.0625550672 -0.0611015782 0.0463228449 -0.0807791203 -0.000120855868 0.0277772397 0.0363982543 0.00684583187 -0.0180499554 0.0209594518 0.0909162685 0.00549612194 -0.0261550248 0.0884743407 -0.0297904238 -0.00729363412 -0.0751729161 0.0848375633 -0.0195430368 0.0679302588 0.0251352116 -0.0405018702 -0.0441764295 0.0677108839 -0.0322619379 0.0664446726 -0.00657371432 -0.0661265925 -0.0369411446 0.0267769322 0.0450770929 -0.0479248799 -0.042892471 -0.0345343687 -0.0608774684 0.00611950457 -0.0611659586 0.042684488 0.0658553764 -0.0790967941 -0.00710079819 -0.0187136382 0.0454566851 -0.0256544426 0.0425586775 0.00645492226 0.0230253339 0.0109844357 0.00311844051 0.0100169033 -0.0610262156 0.071162276 0.0813362226 0.0350092426 -0.0524916761 0.0352269635 0.0205060765 -0.0778195262 -0.0764256269 -0.0292410702 0.00489424914 0.0713074133 0.0889750943 -0.0193333849 -0.0680409074 0.0643112287 -0.00594190508 0.0894463137 0.0566098765 0.0629781261 -0.0810539871 -0.0679727644 -0.0707811043 0.0420374945 -0.0761131868 -0.0804239139 -0.0824871957 0.0613505617 -0.023493275 0.0828435048 -0.0462954864 -0.00660222024 -0.0559305288 0.0106409863 -0.00538684428 -0.078864783 -0.0466932841 0.0187955126 0.0812427029 0.0510224327 -0.0284214392 0.0387317464 0.0263261572 0.0580664501 -0.0679711401 -0.070603922 -0.0262589827 -0.0916538537 0.0108659118 0.0518411174 0.0434516743 0.0447142944 -0.0117488354 -0.0461619496 -0.0702249631 0.0850837454 -0.083135888 -0.0372701809 -0.0261603966 0.0323874429 -0.0835312903 -0.0117448568 0.0708241388 0.0327065513 0.0760078058 0.0735511258 0.0270162523 -0.081777446 0.0491616651 -0.0276307166 0.0653161481 -0.0853628442 0.0857610777 -0.0175864324 -0.0422314294 -0.0496382192 -0.0887141824 0.0790563449 0.0726547167 -0.0475006253 0.0696305558 0.0750434324 -0.0712434575 -0.0683995709 -0.0914369896 -0.0131852403 -0.0234191194 -0.0359008871 -0.0300991237 0.0519173369 -0.00911874324 -0.0367814377 0.0265070572 -0.0740006417 0.0162378773 0.00269843638 0.0819167122 -0.0706208497 -0.0283129066 0.0358394161 0.0710078105 0.0493387058 0.0338133648 0.0535335615 -0.0485978276 0.0684658661 0.0906158164 -0.0892121717 -0.0329050869 0.00619991124 0.038634859 -0.00734879076 -0.0908639655 0.0640871301 0.069118388 0.0828231946 0.0892365798 -0.0622690842 -0.0732243359 0.0906682685 -0.0832575858 -0.0323135965 -0.0230052397 0.0401112512 -0.061628446 -0.0196241885 0.0208122656 -0.0202798545 0.0668241903 -0.0571769141 0.0783488974 -0.055601757 -0.0256579369 0.0855252668 0.00530549139 0.0283297896 0.0730903819 -0.064332366 0.0148606151 0.0807994083 -0.0886082202 -0.0543263182 0.0691963509 0.0136834681 0.0242805704 -0.0218814462 0.0742795393 0.0636698082 0.0903078988 -0.0303865597 -0.0290813372 0.040999122 0.0252291113 -0.0696306154 0.0333435759 -0.0308691598 0.073326312 0.0910193995 0.0381090865 -0.0342836231 0.0659288689 -0.026744552 -0.0464603454 -0.0759968609 -0.0165017545 0.00390525162 -0.0409896411 -0.0616442263 0.0243898481 -0.0789491013 -0.0154235736 -0.0327965729 -0.0745220259 -0.0455331765 0.0270753726 -0.0877103955 -0.0314183235 -0.073193036 -0.0439075045 0.0773618892 -0.0105844215 -0.0530740321 0.0606111363 0.0845532492 -0.0486845262 0.0162529945 -0.086596027 -0.0351777785 -0.0381812379 0.0755290911 -0.0393588655 -0.00350560993 0.0383951291 0.00429692864 -0.0801414549 0.0715178624 -0.0724231526 0.0613477454 0.0504441336 0.0838476643 -0.0218920112 -0.0420954041 -0.0721686929 0.00371589512 -0.0635213926 -0.0394868553 0.0861788616 0.0850632563 -0.0101466551 -0.0794500187 -0.00970192999 -0.0109779015 0.0788514838 -0.0146370307 -0.0312833525 0.0750570819 0.0307752639 -0.0453499407 -0.0853320956 -0.0434355997 -0.0404533781 0.00757534802 -0.0397604033 -0.0889080912 0.086205028 0.0731793866 0.0450338945 0.0870297626 -0.0491278395 0.0308740065 -0.0867075101 -0.0695452839 0.000528208911 0.0746007785 -0.0629649609 -0.0577650554 -0.0506157465 0.0584257171 0.0788462684 -0.0223861262 -0.067600064 0.00879776478 0.0620840117 -0.0567292869 -0.0105716065 -0.0775263682 0.00256624818 -0.0320481285 0.0579300001 0.0494949147 0.0767009929 -0.0252312198 0.0497001782 0.0487749055 0.0846567973 -0.0842369199 -0.0811145604 -0.0765324607 0.0708705261 -0.0265203565 -0.0365278348 -0.00516898185 -0.0780755281 0.0532211885 0.083579801 0.0159632713 0.0268201828 0.034056358 0.0810809657 -0.0500456989 0.0627411827 -0.0176524222 0.0388165936 0.0529209897 0.067727305 -0.0228484347 0.0391509607 0.0111532137 -0.0718774199 -0.0509998724 -0.0220534354 -0.0148461759 -0.0886523798 0.0498963967 0.0449217185 -0.00882388651 0.00557371229 0.0749379322 -0.0266706869 -0.0884172618 0.0698712096 0.0367211029 0.0508074388 0.0251283646 -0.0306724086 0.0833637938 -0.0677695647 0.038612552 0.0643604919 0.0341413096 0.031565994 -0.0275970176 -0.0128933191 0.0510769114 -0.00531233847 -0.0145890042 0.0260689184 0.0567746982 0.0195060372 -0.0450011604 -0.00998371094 0.073871173 -0.0913696587 -0.0681916624 -0.0481578819 -0.0384349525 -0.0203376114 0.07396283 -0.029388316 0.0303145647 0.0486771688 0.0695009157 -0.0889479741 -0.0743057728 0.0721500441 0.0390801504 -0.0746724457 -0.0616472214 -0.017615512 0.0472033247 -0.0543311797 0.0221090615 -0.019852303 0.0230160877 0.0245990381 -0.0161771476 0.00601284206 0.038678132 -0.0617813952 -0.0919942483 0.0136267468 -0.0893441886 0.0127564147 0.0237508416 0.0106623322 0.0679120645 0.0197209865 -0.0286510363 -0.0590022653 -0.0436254181 -0.0474224687 -0.0447458401 0.0496420041 0.0897472724 -0.0586147271 -0.042570632 0.00604660809 0.0638413504 -0.0333979204 0.0664551631 -0.0179161951 -0.0551406592 0.0525849387 -0.0683533922 -0.0253030211 0.0546974614 -0.00563527644 -0.0234532356 -0.0236246362 -0.0708281398 0.0396641567 -0.0833618939 -0.000475823879 0.00289774686 -0.0846299604 0.0179411098 0.0431053266 -0.00661859661 -0.0356192179 0.0671915933 -0.0834872872 0.0575007573 -0.0128030926 -0.0909204036 0.061566405 0.0446185097 0.035902448 -0.0804652274 0.0493174866 -0.01229994 0.0530249253 -0.0220698789 -0.0848207697 -0.00304928422 -0.0504103899 -0.0794726908 0.0786227062 0.00752864033 -0.0204816461 -0.0635242909 -0.0883685276 -0.0558528751 0.0876613781 -0.0882525966 -0.0775967985 -0.0642427355 0.0386918858 0.00882124901 -0.0896794721 -0.0356331505 -0.0901258439 -0.0783593357 -0.0490387194 0.0587472245 0.0916845873 -0.0378851108 0.0819300488 0.00717548281 -0.0703365356 -0.0672481805 -0.0801011324 -0.029261604 -0.0183617547 -0.0340064019 -0.00931674987 -0.0910183713 0.0554469302 7.01919198e-05 -0.012721613 0.0144014284 -0.0719826818 -0.039394699 0.0871218368 -0.000445492566 0.00379990786 -0.070243828 -0.0916840956 -0.0599372499 0.0160134807 -0.0909658074 0.0368605927 -0.0729017705 0.0368919298 0.0557527021 0.0180075616 -0.0632764995 0.0262362659 -0.0149207488 0.0161540806 0.0437780991 0.011596635 -0.0390153266 0.0136559606 -0.0494548492 0.0814402774 -0.0554131493 -0.0473152772 0.0686444864 -0.079596214 -0.0108270869 -0.0394473448 0.0263453051 -0.0485938862 0.0882418826 0.0257310793 0.0533091053 0.0917368159 0.00178824365 0.0859628543 -0.0296971276 0.0796882436 -0.078299351 -0.0191426873 -0.0183681399 -0.0876118764 0.0497762486 0.0629507527 -0.0674345866 -0.059220653 0.0299549326 -0.0251603499 0.0918434039 -0.0716626197 -0.0601946823 0.0234336257 0.054779537 -0.0223732963 0.0385408476 0.0674256906 -0.0165741965 0.00576659292 0.0804396495 -0.00591173023 -0.0908016339 -0.0775301754 0.000610023737 0.0176301897 -0.0895938054 0.0363802239 0.0451478139 -0.0258446112 -0.0644047409 -0.00575580448 0.0208110139 0.00651285797 0.0286502168 -0.0894148201 0.0849498883 0.0409359559 0.0917201266 0.0622122511 -0.0343311876 -0.060691461 -0.0849700049 -0.0242313519 -0.038797114 -0.0167735219 -0.0797290206 0.0042495206 0.0907484815 0.0282219797 0.087483339 -0.00203356892 0.0665911213 -0.0515669957 0.0101040602 0.0439898297 0.065489985 -0.0864957869 -0.0266932696 -0.054024376 -0.081176497 -0.0590666682 0.0542230681 0.0747268274 -0.0269931853 -0.0808093399 0.0733451322 -0.0479722433 -0.0244310722 -0.0531116463 -0.0881121755 0.0227794349 -0.0277769789 0.0814506784 0.029183425 -0.0630773902 0.0243918523 -0.0362197757 0.0773140714 0.0839342549 0.0562120453 0.0567140952 0.0395764634 0.0451705083 -0.0271210447 0.0907697156 -0.0515288077 0.0594227985 0.0687585399 -0.0767372027 -0.00800232589 -0.00142014027 0.00963854045 0.0676037446 -0.0329146832 -0.017649956 0.0804511681 0.0391651466 -0.0412793458 0.0476860926 0.0447474048 -0.0513248369 -0.0592805445 0.0899482444 -0.050741557 0.0363957062 -0.00352907181 0.00653167069 0.0114220679 0.0593607351 -0.0395991318 -0.065509066 0.0688083544 0.0810324773 0.0428768024 -0.0160919875 0.00696059316 0.0814068094 0.0469125733 0.0219283327 -0.0215023831 -0.0451595038 -0.03704869 -0.0658499897 0.0799609199 -0.0877865478 0.0916381404 -0.006163463 0.0259917751 0.0360906199 0.0347092226 -0.0862086192 0.010006398 0.0174455866 -0.0383594781 0.0444519743 0.000776857138 0.0283162519 0.0417622253 0.00919720531 0.00896658003 0.0142401159 0.019842796 -0.0290871933 -0.0479883365 0.0315826088 -0.0288684964 0.0295544341 -0.0302519202 0.00583522022 0.0743580237 -0.0608899482 -0.0742278323 -0.0732245296 -0.0454093665 -0.00982609391 0.00811488926 -0.00223606825 0.0170377567 -0.0417676903 -0.0848848447 -0.0204275027 -0.0365940183 -0.0134888291 0.0805378035 -0.0591247529 -0.0605118982 0.0843337402 -0.0836667642 0.0434426442 0.0376042053 0.0803973302 -0.0141816586 0.0664503649 0.0120475441 0.0118216947 -0.0385848656 0.0586067662 -0.00498321652 0.071454443 -0.0876434594 -0.0438200124 0.0644147471 0.0852831081 0.0349358097 0.019713439 -0.0148009658 0.0458915457 -0.0818179026 -0.0478602126 -0.0140370727 0.072750397 0.0154598728 0.0199526697 0.0727469847 -0.0599802583 0.085537605 -0.0665872991 0.0175640061 0.0713646933 -0.0688692331 0.02371151 -0.053589914 -0.0786999464 0.0681337938 -0.049102217 -0.0864951313 0.0853743181 0.0184679776 0.0535973683 0.00709140301 -0.0184201002 0.0672485754 0.0864326134 0.0243012831 -0.0450858809 0.0572997406 -0.0328979753 0.0777690336 -0.0596914366 0.0876527056 -0.042866081 0.0248671472 -0.0549114645 -0.0401412696 -0.0345652699 -0.0625678301 -0.0114826411 -0.0680024624 -0.0242672488 0.0757095292 -0.0139714107 -0.0359502994 -0.083852157 -0.0599084161 0.0450648889 0.0681699589 0.0595414415 0.0207432657 0.0449224934 0.0315394923 -0.0773925856 0.0275040865 0.0734342858 -0.0157088563 0.0831313059 -0.080279395 -0.0528882854 0.0919642225 -0.0901478976 0.000929437578 -0.0835094526 0.00022135675 0.0243344307 0.0121114179 0.0595697835 -0.00235384703 0.0748386905 -0.0720385611 -0.0287926719 -0.0288745686 0.0686752275 -0.0313330106 0.0761023536 -0.0220461935 -0.0320104472 0.0319172144 0.0313565806 -0.00864804536 0.0234351233 -0.0655145943 0.0840693936 -0.0100980327 0.0312931016 0.0545586124 -0.0260992274 -0.0641222969 0.0445517972 -0.0565250516 0.0254326388 0.0825350508 0.0716766939 0.0899798051 0.0826488808 0.0708161667 0.0345789418 0.0567948744 0.0182729438 0.0218276754 0.0297085494 -0.0769449174 -0.0455563962 -0.0911208913 0.0226824954 -0.00325840712 -0.0922532678 -0.0288410485 -0.0474343076 0.0252301022 -0.0711545348 -0.0797744542 0.0386143401 -0.0236469954 -0.0468424037 0.0364680365 -0.0827526003 0.00730648637 0.0835987255 -0.04417447 0.0682050362 -0.0557617061 0.0162544698 -0.0779180676 -0.079328455 0.00403610617 0.0750321224 -0.0282282308 0.0459427312 -0.067238979 0.0832524821 -0.0511085391 0.05541832 0.0597156659 -0.0497226268 0.0192193016 -0.0416999198 0.00519070774 -0.00651923567 0.0888449028 -0.0181907341 0.0808973983 0.0800481364 -0.046084363 0.0351641551 -0.0426408909 -0.088761963 -0.076613836 -0.0286952779 -0.0313856155 0.0542503372 0.0721367523 -0.0568387024 -0.0887121111 -0.00408314168 -0.0414898954 -0.0508378334 0.089494653 0.0909546688 0.076332517 -0.0247331932 0.0855055824 -0.0224218965 0.0475106612 0.00682421774 0.0667793378 -0.00328772515 -0.0528434701 0.0164910629 0.0252664387 -0.0763826817 0.0125235841 -0.0150248781 0.00203511119 -0.03357099 0.0793580636 -0.0130537748 0.029315114 0.0475751534 -0.0897573456 0.00325974822 0.0634018108 0.019223839 0.0100849122 0.0913517252 0.0360318646 -0.0647023842 -0.02178251 -0.0267259106 0.0753052905 -0.0460493006 -0.0482890867 -0.0354259685 -0.0883458555 -0.07326065 -0.0589921623 0.0732078478 0.0449327156 0.0611460581 0.0278545618 0.0387205854 -0.0353701711 -0.0858782008 -0.0731285661 -0.0549738444 -0.0466889702 0.028599374 -0.0530416965 0.00692612678 0.0403101072 0.0761364326 -0.0187683776 0.0527625605 0.0856164768 0.0141763538 -0.0830365792 0.0614031032 -0.0670060217 -0.0144579113 0.039186947 -0.0563266277 -0.0590324216 0.050967671 0.00368983299 0.010683246 0.0546155497 -0.0474518277 0.0455423966 0.0909493044 -0.0846251845 -0.0536135733 -0.0781019181 -0.0565696917 0.0684912726 -0.0188886598 -0.0140331984 0.0892640427 0.0262013748 0.00293186307 0.0393777117 -0.0866579637 0.0680796728 0.0540103391 0.0312491506 0.0300304964 0.0607487783 0.0667422041 -0.0285255089 -0.0847472772 0.0392557904 0.0562964305 0.0242265537 -0.0821523741 -0.0636509657 0.0514527783 0.067732878 0.0372223482 -0.0750919208 0.0157685205 0.040887095 -0.0249800161 -0.0261373743 -0.0571222864 0.0511180982 0.0542033836 -0.0814331621 0.0691438094 0.0815613344 -0.0488494709 0.0556221828 0.00466745347 -0.0886053592 -0.0888826698 0.00859797001 -0.00407156348 -0.0508299321 0.0745985135 -0.0241813436 -0.0686099455 0.0276919305 0.0738839582 -0.0745521188 -0.0662688017 0.0256192684 -0.00115189701 -0.0642687976 -0.0480387621 0.0288112015 -0.0474327914 0.0915533379 0.0566545799 -0.0782653689 -0.083133094 0.067633234 0.0579339936 0.012644425 0.0438159481 -0.0332016535 0.0839716718 0.064824827 0.087624602 0.0369688347 0.00230474025 -0.0532997698 0.0797193423 -0.0783113465 0.0574235693 -0.0054448396 -0.00566710532 0.0657323822 0.0151139945 -0.0229662135 0.0507213697 -0.0146132559 -0.0179143026 0.0884956643 -0.0475325435 -0.0741739944 0.0801818892 -0.023058258 0.0185353681 0.0376348123 0.0855838284 0.0879129395 0.0757264122 -0.0309421457 0.023441352 -0.0445038788 0.0713150278 0.0905918255 -0.0145348161 -0.0662764013 0.0076277107 -0.0795233324 -0.0702769309 -0.00406236202 0.0648071691 0.0338383093 -0.055988878 0.00310210884 0.0229800791 -0.0376765169 0.072055243 -0.0820712224 -0.0153446421 0.0912745073 0.00446090847 0.0918106362 0.0064952448 -0.0410338826 0.0828989521 -0.0235008448 -0.0901222378 0.0567472652 0.059891887 0.084091194 0.0611063316 -0.0364495218 0.0489264503 0.0184246153 0.0230149403 -0.0518285669 -0.0134352595 -0.0876258984 -0.09076415 0.0861519352 -0.0559590086 -0.0165803581 -0.0307398289 -0.0254286155 0.0176055357 0.0356492475 -0.0449452549 -0.0531940758 -0.0849409699 0.0202081054 -0.00685130805 0.0292851105 0.0915869251 -0.00764619559 -0.0561784096 -0.0148929432 -0.0754466653 -0.042898301 -0.0248919502 -0.0648380816 -0.0271997526 -0.0737811103 -0.0134781823 0.0414185598 0.0668546781 0.0632075146 0.0166482851 -0.0412694626 0.0226790607 0.0674306527 -0.0599848554 -0.0631816834 0.0660830513 0.011264123 -0.0598275922 0.0276903883 -0.064392671 0.0282225981 -0.0833665133 -0.0188618749 -0.0126318559 -0.0719634145 -0.0338627622 -0.0712380409 0.0341205224 -0.0224362016 -0.00245548785 0.0247330368 0.0285126939 0.00289034843 -0.0897511169 -0.0180712566 -0.0195833817 -0.0491486602 0.032187745 0.0609708652 -0.0858206823 0.0636441186 -0.00585760176 -0.0292295814 0.0636534467 0.0517994985 0.0683890209 0.0889579877 -0.0793423429 -0.0517080612 0.0902191475 -0.0162841603 -5.4076314e-05 -0.0474101417 0.0451157913 0.0822902992 -0.00488390028 0.00681442022 -0.0257257521 0.0438821241 0.020222716 0.0714159235 -0.083795324 0.0677603409 -0.0602157265 0.00912175328 0.080488421 0.0693766102 0.0871548131 -0.00149612129 -0.055660855 -0.0182803571 0.0499059483 0.00958873332 -0.0036836043 -0.0690997243 0.0533967987 -0.0372804143 0.0302363187 0.0496164933 -0.0756378248 -0.0766682923 -0.00155072659 0.0304218233 0.0196874216 0.0401808694 -0.0724351257 0.00621972233 0.0274107456 0.0372298732 -0.0525897108 0.00279247016 -0.00680669397 0.0627577379 0.043202199 -0.0375600569 0.0442511365 0.0123911723 -0.0440935604 -0.0421260223 0.0539941564 0.0875777081 0.00964010507 0.0420493856 0.000636763871 -0.0102866367 -0.0507512651 -0.00919835269 -0.0719190463 -0.0386600532 0.0272873268 0.0513933077 -0.0269757733 -0.00425662845 -0.00880088657 -0.0777778402 -0.0632268041 -0.0453771204 0.0816273764 0.0346984342 0.0348408446 -0.0363482721 0.0432761833 -0.0709113181 0.0747467801 -0.0418710746 -0.0560746752 -0.00988771766 -0.0818766505 -0.0716966093 -0.00808418542 -0.0289348364 0.0650574788 0.016759038 -0.00114384294 -0.03767436 -0.0659911633 -0.0844387785 0.0850962475 0.0157502294 -0.0349028222 -0.0299360715 0.0373721048 -0.0728803724 0.0521287844 -0.0323488601 0.0120291635 0.0336524025 -0.0493916348 0.0279550627 -0.0743669197 0.07871712 0.0209211335 0.0670494512 -0.0594058074 0.0392447188 -0.0424967892 0.0392889157 -0.030670207 0.0919198468 0.069860898 -0.033031404 -0.0534085445 0.086367093 0.0779886171 -0.0660683513 -0.0257568955 0.0320470035 -0.0266634226 -0.0341963507 -0.0704010278 0.0118170306 0.0532089099 0.0153821483 0.0336041823 0.0322736278 -0.0876407772 0.0484377518 -0.0477855317 -0.0224210992 -0.0715707764 -0.0778613016 0.0830015764 -0.0166986659 -0.0897381082 -0.0154986978 0.0687403753 -0.00265575945 0.0204369649 0.0178937688 0.0884116217 -0.0911161155 0.0646619722 -0.0686716884 0.0594315156 0.0108345672 -0.0593190193 -0.0236371383 0.0163685307 0.079397656 -0.0137606189 0.0820272192 -0.0214254335 0.0602580085 -0.0491945967 0.00938414037 -0.00262992084 -0.0466322042 -0.0216275156 0.0338904336 0.0703806654 0.0413096771 -0.00531819463 -0.0238118544 -0.0603630207 -0.0425940305 -0.0218652487 0.038486816 -0.054494191 -0.0377003737 -0.0428997763 0.0544949844 0.00827877969 -0.0750217512 0.0123922303 0.023368232 -0.07169687 -0.0836661011 0.0376993343 0.0882633254 -0.0388289168 0.0677951351 -0.0242973864 0.0618172362 0.0298743993 -0.0182040036 0.0858501717 -0.00490516424 -0.0343170352 0.00517494977 0.00179200619 -0.0746844411 0.0389278606 0.0289750919 -0.00590664148 -0.0894215107 0.0491865799 0.0639784411 0.0682021156 -0.036736954 -0.035684105 -0.0640803427 0.074912928 -0.0635456666 0.0540379509 0.0154087171 -0.0360910557 0.0238472894 -0.0223434716 0.0611935332 0.0198470876 -0.027128987 0.0537827387 -0.0304331556 0.0653173104 -0.0872560069 -0.0323204435 -0.0211896375 -0.015160881 0.0859575644 0.0107631907 -0.0338740535 0.0360878482 0.0898684934 -0.0848996565 0.0150754377 -0.0188074186 0.0505561605 0.0870671347 -0.0814526379 0.00987993181 0.0274884179 0.0818627402 0.0813897327 -0.0898426399 -0.0481198914 -0.0536428019 -0.0765870959 0.0172163919 0.047576718 -0.0202391595 0.0482199565 0.00891109556 -0.0320023037 0.0645997748 -0.0670049414 0.0470148847 -0.0109860227 0.0325515345 0.0762290284 -0.031446673 -0.00887908787 0.0197261795 -0.0544849895 -0.0391461328 -0.036461316 -0.0639670342 0.0485384837 -0.0207063109 0.0623413846 0.00723026693 0.0760609135 0.0462931469 -0.00608424842 0.0525855348 0.00168497115 -0.0067718327 0.0293133259 -0.0858330801 -0.0865919739 0.00150910765 -0.0163174197 -0.0162141919 -0.074573949 -0.0333511941 -0.0268180221 -0.0500351563 0.0469935462 -0.0374191701 -0.0668937713 0.0417989269 0.0194541365 0.0298563018 0.0429667756 0.0493457839 -0.0555309728 0.072645016 0.0432187095 -0.0812598914 0.0228188336 -0.00204200298 0.0217765868 -0.0409377851 -0.0769317523 -0.0345668085 0.0799005553 -0.00523111969 0.0641546771 0.00077906251 0.0156277195 0.0710349306 -0.0769301951 -0.0812757835 -0.015248701 -0.0284394026 0.0580031201 0.0905988738 0.0758721754 -0.0709179193 0.0588904247 0.00533828884 -0.037409354 -0.0704665482 0.0796165094 -0.0781394467 0.00112092495 0.0291185156 0.0652284101 0.0173733979 0.0657320842 0.0367045924 -0.0467846692 -0.0363370888 -0.0900589526 0.0119466707 -0.0163425133 0.0243337005 0.0418206975 -0.0438605994 -0.0469440706 -0.0591149144 -0.0854606628 -0.01497861 0.0796543136 0.0702113137 -0.0496015251 0.0801925436 0.077042453 0.0817414001 0.0778548345 -0.0308712721 -0.0768731609 -0.0267246515 0.0586521253 -0.0808582231 -0.0559644699 0.0015630275 -7.03930855e-05 -0.084905602 -0.0516027622 -0.0647746474 0.00314699113 -0.0547816046 -0.00350580364 0.00152246654 -0.0681612641 -0.0688751042 -0.0652281716 -0.0210740194 -0.0401480719 -0.0437607393 0.0109412298 0.0884299651 -0.072558254 0.0218972489 0.0411684588 -0.0735353604 -0.075001128 -0.0803341344 -0.0531420223 -0.029844638 -0.0249449313 -0.019836694 0.0446491316 0.0211077109 -0.0223824531 0.0577685609 -0.0212835148 -0.0377879776 -0.025010325 0.0153737664 0.00283530354 0.0536685959 -0.0687567145 -0.0440613814 0.0696166381 0.0379418507 -0.00284259021 -0.0142012686 -0.00122012943 0.0687839016 -2.87443399e-05 0.0312024653 0.0276439413 -0.0302668214 -0.0586945824 -0.0724196285 0.0860311314 -0.0372395627 -0.00288979709 0.0424592569 -0.0110955909 0.0730983838 -0.0329687633 -0.0171872973 -0.0628010333 0.0642128065 0.0145727172 0.0492108837 -0.0321227685 -0.0818620324 -0.00086723268 -0.0534154996 0.0837120786 -0.0193325877 -0.0730014145 -0.0572928675 0.0606968477 0.0626448616 -0.0787578076 0.058522217 0.0827163979 -0.0242783651 -0.0510316789 0.0894391462 -0.0415754057 0.0440369323 0.0623991415 -0.000701010227 0.0620625094 -0.0624459162 -0.0276796222 -0.0215787366 -0.0429930128 0.0916257724 -0.087803565 0.0366146937 0.0152709559 0.0498658791 0.0612066761 -0.0439384952 -0.0548334382 -0.0835561603 0.0156827495 0.0504352674 -0.0222171098 0.00420197845 0.0141589642 0.0263459012 0.0171661898 0.0610083863 0.031100139 0.00269346684 0.0230753422 -0.0609636642 0.0790917948 -0.00713355094 -0.0393426195 0.0237899572 -0.0677146316 0.0560423359 0.0396480188 -0.0835541785 0.0884437189 -0.0815242156 -0.0480594933 -0.0661935061 0.056829147 -0.0631727874 0.0118943304 0.0378712937 -0.0090842694 -0.00759946555 -0.0296682939 -0.0275339335 -0.0713911504 0.0810795799 -0.0742291138 -0.0541094467 -0.0590195432 0.0889790729 -0.0524524972 0.0841307417 0.0250759572 -0.0218603164 -0.0800621733 0.0279837623 0.0627119169 -0.0446161106 -0.0348032266 0.0470131859 0.0224755332 -0.0587339364 0.0261327922 0.0772668794 0.0839098915 -0.0702852979 -0.0331729092 -0.058870025 0.0366512462 0.0125770047 0.0078451708 -0.058437299 -0.00228651613 -0.0895439088 -0.0314097591 -0.0206796303 0.050586842 -0.0705738291 -0.00857166946 0.0703806058 -0.00800234824 0.00524377823 0.0198847055 0.0108531862 -0.0203035623 -0.0533240922 -0.0599775501 0.0468500778 -0.0521916524 -0.0116169974 -0.0564956479 0.0575191155 0.039347358 0.0830866173 -0.0723043159 0.0630102381 0.00807788968 -0.00964261591 -0.0260839313 0.0511202738 0.0629832372 0.00781515241 0.0675500706 0.0658108965 0.0338622257 -0.0591521561 -0.0193833932 -0.0301455446 0.0653636381 -0.029888615 0.0201082379 0.0448538736 -0.0922631919 0.0769787058 -0.0680658519 -0.0375610478 0.0741722956 0.0614924654 0.0836478695 -0.0157244802 0.0371535942 -0.0509363972 -0.0200165212 0.0432406589 0.0118784606 -0.0564910248 -0.0717520937 0.0707798526 -0.0288349763 -0.0136505887 0.0172235444 -0.0534568354 0.0304735675 0.0608082488 0.0912763104 -0.0759930536 -0.0215634406 0.0475511476 -0.0384038091 -0.0687196478 -0.0841026381 0.0850528255 -0.000248961151 -0.0907475501 -0.0450270474 -0.0799763948 -0.0371161513 -0.0853749961 0.00385159254 -0.0662615821 -0.0335888416 0.00947181135 -0.00442661345 -0.0203529969 -0.0846474394 0.0245249495 0.0814718828 -0.0813266933 -0.0434749126 0.0509487018 -0.0333089344 0.0506016985 -0.0699219033 0.0742466375 0.0267699957 0.0237985849 0.018799454 0.0204522386 0.0605240092 -0.0238201991 -0.0125191361 0.00561205298 0.0303812996 0.0484996364 0.0694214031 0.0233285949 -0.0389296822 -0.019491151 0.0253692046 -0.0619857386 0.0599586889 0.0746738985 0.04906068 -0.0127899349 -0.0640352666 0.0270675123 0.00897243619 0.0533275679 -0.0850853622 0.0775119439 -0.0241541862 -0.073899284 -0.0573200919 0.0491058901 -0.0733002052 0.0355441198 0.0578280464 -0.0479498617 0.0595197603 -0.0420617275 0.0598958507 0.0539868549 0.0852506086 0.0128572211 -0.0652041137 0.0186374784 0.0548282042 0.00159992278 0.0902236179 0.0911847427 0.00655247271 0.0496968105 0.0327920988 -0.0724671707 -0.053865768 -0.0652842522 0.0103041828 -0.0693821833 0.00473194569 -0.0524401069 0.0264114663 -0.0162425414 0.0672310963 -0.0554698706 -0.0633962825 -0.0141210407 -0.0336759351 -0.056004066 0.0851541385 0.0230603516 0.0407940373 -0.0685633272 0.0159159526 -0.0207173824 -0.0323962271 0.0648359582 0.00853865594 -0.0582996234 -0.0736064762 -0.0759109333 0.0323853493 0.0659848973 0.00945506245 -0.0116071552 0.0185863078 -0.0664324537 0.0369749293 0.0411083922 0.00390342623 -0.0647158101 0.0256274343 0.0844803825 0.00864204019 -0.0214553252 -0.0342543721 -0.0602543987 0.0282014906 -0.0678681731 -0.0309183747 -0.0388657637 0.0216279551 0.0122166052 0.0118727162 -0.0869425386 0.037256442 -0.0865194052 0.0649595335 0.0505794957 0.014859207 0.0868095234 0.0825000778 0.0366121754 0.0688949451 0.028523393 -0.0902646855 -0.0637740716 0.0721790716 -0.0100776926 0.0277377293 -0.0620781183 0.0175141767 -0.0819351077 -0.0831152424 0.0794693455 -0.0406532548 -0.0691077113 -0.039852649 0.0319089144 -0.0140422434 0.0121548027 -0.0335755236 0.0673265234 0.0260091349 0.015597634 -0.0369026512 0.0405282304 -0.0838397667 0.0760037526 -0.0802022442 -0.0156845078 -0.0455465131 -0.0843640342 -0.0342754796 -0.0675435364 0.00873117894 0.0554219559 0.0336412713 0.0756139383 -0.0718417466 0.0570057556 0.0460057035 -0.0901915431 -0.00155492872 0.0256055295 -0.063600935 -0.0138286501 0.0894699171 0.0640247092 -0.0474127606 0.0845653191 -0.06709373 -0.0774178803 0.0244822055 0.0573760495 -0.0470483564 -0.0812090263 0.0631729141 -0.062089432 0.0767141655 -0.00711585581 -0.0179501995 0.00229388475 0.0803484246 -0.087547563 -0.0256833136 0.00924871117 0.00716421008 -0.0480772145 -0.0211727545 -0.0626032054 0.0673349425 0.0785613731 -0.0234795436 0.0396369174 -0.00928767025 0.0863322988 0.0188346729 0.0105591267 -0.045136746 0.00314969569 -0.0740590543 -0.0249684826 -0.0459511764 -0.0782020018 0.031483762 -0.0556706078 0.040417321 0.0873268172 0.0481205359 0.00189837813 -0.0254422128 -0.0892376602 0.0720775053 -0.0647401959 0.0465299413 0.0710871443 -0.052969899 0.0240424126 -0.0901219249 -0.0793251321 -0.0291125029 0.030620642 0.00367902964 0.051456444 -0.0773398727 0.00528389961 0.0605040118 0.0119543746 -0.0227503777 -0.0502218679 0.0100853294 0.0814527348 -0.0753730386 -0.0518393964 -0.0370370224 -0.0488495156 -0.0651021153 0.0221215859 0.0358689949 -0.0355538055 0.0616459623 0.0804569051 0.00603143871 -0.0305889249 0.0827799216 0.0472393557 -0.0391647778 -0.0860578939 -0.0385177359 0.0294742063 -0.0172749609 -0.0921521261 -0.0249829665 -0.0157981738 0.078367345 -0.0559931025 -0.0256321207 0.0406455472 0.0363275781 -0.0860119984 0.0205491334 -0.00352466851 0.0682566836 -0.0602738336 -0.0112864673 0.0915280208 0.074052237 0.0851217136 -0.030791264 -0.0699082166 -0.0626888648 0.070560731 -0.0868958086 0.0868342295 -0.0712901428 -0.0860617682 0.0403848812 -0.00604057312 0.000983409584 -0.0579788014 -0.0822992474 0.0506203845 -0.00472009927 -0.0544757023 -0.0575814471 0.0745508 0.0101315081 0.0495254323 -0.0803296864 -0.0680437982 0.0759669021 -0.0185714662 -0.0904045179 -0.0578070767 0.0844076052 0.00581615418 0.092173107 -0.0271226242 -0.0251975656 0.0461412594 -0.0811427757 0.0406795517 0.0693842247 -0.0168301091 0.0703477338 -0.0868585408 -0.0196377411 -0.0838550627 0.0731418207 0.0878855065 -0.033614438 -0.021572642 0.0378357247 -0.0593532659 -0.0582477227 -0.0213918239 0.0779620931 -0.0899610296 0.063345708 -0.0101671666 -0.0194561109 -0.0439517908 0.0532525107 -0.0507488437 -0.0481573977 0.0323395506 -0.0456048213 0.0872087255 0.0185832679 0.0249727741 -0.0178900659 0.00408450514 -0.0318046957 -0.0595875457 -0.0595994964 0.0898605064 -0.0235108137 -0.027168341 -0.0103773847 0.00240506232 -0.0528862588 0.0236938596 -0.0765908137 0.0754370466 0.0538755581 0.0354617611 -0.0472456999 0.0427755341 0.0460965857 -0.0504657887 -0.0452380814 -0.0341019928 -0.0530210733 0.0859232917 -0.0480655693 -0.0616620779 0.0669903234 0.0642686263 -0.0207208991 -0.0383709259 0.0870848969 0.0015399158 0.0623026267 -0.0913557038 -0.0143153071 -0.0336797871 -0.00765343755 -0.0148875117 -0.088774465 0.0107779577 0.0209050179 0.0496518239 0.0489993617 0.0596226081 -0.0433056056 0.0766414776 -0.0561307557 0.075185515 -0.0230117068 0.0465836003 0.0273607597 0.0741705224 -0.0618573986 0.0180013552 -0.0829403102 -0.0298455432 -0.0438049808 0.0498529449 0.0793296918 0.00172500312 0.0645961836 0.0527743176 0.0566941127 -0.02785597 -0.036904566 0.0695758089 0.057868503 0.00740186125 0.0239109918 0.0207139924 -0.0527190678 0.0185622498 -0.0316906795 -0.071417205 -0.0717129186 0.0913594738 -0.0176711306 -0.000225059688 -0.0921420082 -0.0351387523 0.0384357497 -0.00407583266 0.0610066727 -0.087139532 -0.0921964124 -0.00095769763 0.0210258588 0.0785453692 0.0140321404 -0.0845456868 -0.0473379903 0.0810182914 -0.026365906 0.0602540448 0.0335495695 0.00938960165 -0.0435025133 0.0726855621 0.00704979897 -0.0896325707 0.0553877428 0.0557883009 -0.0141258612 0.0781368688 0.00575333834 0.0150518417 0.00867182016 -0.0159604996 0.00144524872 0.0330321118 -0.0417863987 -0.0889236331 0.0593414232 -0.0315800123 -0.0298917405 0.0576654598 0.0449278429 0.0369025543 0.0821185932 0.0166794732 -0.0481876619 0.0306613594 0.0263263509 -0.0612045452 0.0135257244 0.0616245493 0.0509437844 -0.0596000925 0.0729167834 0.0171075314 -0.00147892535 -0.0213246942 0.0421939418 0.0588810816 0.0728054717 -0.0429997034 -0.0591650754 0.0651241913 0.00651069731 -0.0646359995 -0.0398739986 -0.0917219594 -0.0323622636 -0.0255806148 0.0328953788 -0.00650944561 -0.0256461427 -0.0129836723 0.0559082255 -0.00788578391 -0.0180915743 -0.0272059143 -0.0370984972 0.0727189705 -0.0658716038 0.0446304604 0.0312392861 0.0305850953 -0.0865894035 0.0291882232 -0.0441089012 -0.0789211467 0.0627229139 -0.0643919259 0.043875508 0.0442745909 0.0542914346 0.0614332333 0.0242912397 -0.0494683832 -0.0333393961 -0.0795552954 -0.0264031887 -0.020196192 -3.4712255e-05 -0.0908969641 -0.00723479688 -0.0912652612 -0.0746282712 0.0618409291 0.0867764428 -0.0474007651 -0.0129103735 0.0817620233 0.08138787 -0.00571570545 0.00864525139 -0.053829737 0.0902816728 -0.0868338272 0.0401467308 -0.0400534496 0.0228928477 0.0801019445 -0.0790318847 -0.0675940365 0.0385406688 -0.0842398927 0.0686725006 -0.0891300291 0.0430168733 0.0874156132 -0.0544387251 0.0353303775 0.0667932853 0.0679867491 0.0868409202 0.0537899658 -0.0900087282 -0.00744363666 0.0331698284 0.0163040385 -0.00184863806 0.0300142765 -0.0348005407 -0.0679632351 0.0723999366 -0.0114529282 0.0443560109 -0.0748329461 -0.0230207965 -0.0292767063 -0.0433212332 -0.0922318324 -0.00189375877 0.0202154294 -0.00650127977 0.0425953493 -0.040761482 -0.0439878665 0.023286663 0.0808387026 -0.0501882583 -0.0425174758 0.0496527031 -0.0281729847 -0.021071136 0.045269914 -0.0908411443 -0.0671600997 0.016003482 -0.0414943658 0.0809294507 0.015503563 0.0349914208 0.0425228849 -0.0403006934 0.0891843662 0.0219716281 -0.0657107681 -0.0505672358 -0.023486279 0.0411796197 0.0691380873 -0.0287031308 0.00825382024 -0.0660533458 -0.0828200877 -0.0263502374 -0.0139377788 0.0103588328 -0.0884204507 -0.0354412869 -0.0750516653 0.0620361045 0.0161426142 -0.00673146546 0.00564346462 -0.0817301944 0.0705066398 0.0405498967 -0.0384045802 0.0779740587 0.0297798812 0.0500020459 0.0243921801 0.0800975934 0.0478448644 -0.0518490151 -0.0267455652 -0.0341764316 -0.0616850778 0.0335236713 0.0906676576 0.0813948438 0.0764124617 -0.0901095346 -0.0241463035 0.040322639 0.000321768224 0.0672798976 -0.0472852327 -0.0665329099 -0.0664657354 0.0188656822 0.0521204248 -0.0578400232 -0.0372560956 0.0919401273 -0.0428061225 0.0889111087 -0.0587502904 0.0645213202 0.0172831044 -0.0583154745 0.0282615125 0.0168636069 0.0691869333 -0.0453267843 0.0552650467 -0.00757052749 -0.0169381127 -0.0475678705 0.0644746348 -0.0881575346 -0.00927679986 -0.0124844313 -0.0464615338 -0.025682196 -0.00752779841 -0.0580802672 0.00834080577 -0.0477165729 -0.0102824122 -0.0472165607 -0.0911904275 -0.0718649179 -0.0749030933 0.0918713585 -0.0883144066 -0.0316083618 -0.0855666623 -0.0115489364 0.0793340728 0.00845908374 0.0422849432 0.0888338313 -0.0112967864 -0.091358982 0.0516370162 0.0119586661 0.0641545877 -0.0794218481 -0.0749346614 -0.0269007832 0.0625062957 0.0296850652 0.0242273659 0.0444689021 0.0112867951 -0.0120962709 -0.0102680847 0.0729311481 0.0414977744 -0.00261986256 0.0578312054 0.0314718112 -0.0657585338 -0.084083043 0.0732147321 -0.0168575346 0.0744731799 0.0426551476 0.00105692446 -0.00566483289 0.0809950456 0.0211035758 -0.0782536194 0.0367518738 -0.0437943712 -0.0145124942 0.0195087194 -0.0771600008 -0.0895541906 -0.00125085562 -0.0137979239 -0.0198913962 0.015032053 0.0743453279 0.0435364023 -0.0219523013 0.0731502399 -0.0778351724 0.0514266118 -0.0796468109 0.0162214562 -0.0842731744 -0.0546151586 -0.0699321181 -0.0387156084 -0.0733875185 0.0670389459 0.0774031058 -0.0141283497 -0.0318157226 -0.0624270737 -0.0843506902 0.0336432233 -0.0229953974 0.0294153914 -0.0469230488 0.0314530358 -0.0499876328 0.0854284093 0.0652840808 0.0761559978 -0.0415342934 -0.032743901 -0.0325659029 -0.0416980051 0.0701722279 0.060466595 0.0287768021 -0.0571350306 -0.0502153747 -0.0325053968 -0.00600582361 0.0188263953 -0.055546511 0.0471700504 -0.0628724769 0.0703616068 0.0235484764 -0.0776432902 -0.0562863946 0.0620483235 -0.0616779253 0.0429334119 -0.0739176422 -0.0403492041 0.0650138035 0.0401153937 0.040721558 0.0249365047 0.00525990874 0.021826975 0.0263973996 0.0587813929 0.0498950109 -0.0011702776 0.0404991433 -0.0694919974 -0.0389841124 0.0734991357 0.00764661282 -0.0330996364 0.0824506357 -0.0278913006 0.0634265915 0.0754902288 0.0554144755 0.0132703558 -0.0525645986 -0.0403322987 0.035598062 -0.0614732057 -0.0300954059 -0.0164641663 0.00291797519 0.0308280885 -0.0757937431 0.0655989125 0.0445404127 0.00300396979 0.0364474282 -0.0468352959 -0.0789730921 0.0173186958 0.0131348148 -0.0579182506 -0.0537111238 -0.033886224 -0.05822514 0.050308682 0.031094484 -0.0411999971 -0.0653479993 -0.060730461 0.0785185322 0.0426551327 -0.0558407456 0.03924229 -0.0315429904 0.0466085449 -0.0389336012 0.0487817898 -0.0669081882 0.0569424555 -0.0748869777 0.0495546237 0.0131400079 -0.0460842736 -0.038315963 0.0788059756 0.0266459882 0.0189891607 -0.00703199208 0.0178932846 0.0678303167 -0.0833815932 -0.0642465204 -0.0177590847 -0.0492488071 -0.073246412 -0.059904255 0.0575103685 -0.0511938967 0.0606201068 0.0406102911 -0.0613094047 0.0375680104 -0.0408455618 -0.0896299928 -0.0162084922 -0.0807587802 0.0805964097 0.0175925121 0.072467722 0.0836885944 -0.031156484 -0.00453849137 0.00655793399 0.0663008913 0.0891404822 -0.0310473368 -0.0326635428 0.0114675462 -0.0668838397 0.0915791765 -0.0152857006 0.0739043728 -0.0530554093 -0.00266253948 -0.0264931917 -0.0330135524 -0.0430622809 -0.0100840554 -0.000199131668 -0.0421083681 0.0915746167 -0.0157293901 0.0881493762 -0.0682159141 0.0876970962 -0.0774018764 0.0461092517 -0.0259428844 0.027763769 -0.0261519402 -0.041149769 0.0908411369 -0.0530323647 0.0624661669 0.046240218 -0.0824343115 0.026253365 -0.0124852881 0.0865980908 0.0472680405 -0.0319850035 0.0634056851 0.0542459711 -0.0311798155 -0.0680527091 -0.0794517994 0.063855134 0.0452024415 -0.0240959227 -0.00200539827 0.0358822867 -0.0759678036 -0.0292263627 0.0600486025 0.00644541532 -0.0915745124 -0.0741759092 -0.092071265 -0.0665442199 0.0713908896 0.0866073146 -0.0558496192 -0.0705432147 0.0351697579 0.0152167901 0.0668621138 -0.0774195939 0.0346188173 -0.0609189831 -0.0903438181 0.0715769157 -0.0197023675 0.0525903925 -0.0541359931 -0.0808129758 0.00294273347 0.0582201853 -0.0262126699 0.034502916 -0.0637976229 -0.0663653165 0.0369078293 -0.000483945012 -0.0411621593 0.0746141151 -0.0584034063 -0.086747326 -0.00290126354 0.0527831838 0.0670210794 -0.0602708831 -0.0156950057 0.0385209844 0.049176462 -0.0317588896 -0.0112442896 -0.00663518906 -0.00483825058 0.0836496875 0.0177319869 -0.049303066 -0.0103003085 -0.00566274673 -0.082098119 0.0185425505 -0.0582361706 -0.0662009716 -0.05128612 0.0652625337 -0.0583473444 0.0786113366 -0.0421478562 -0.0350370631 -0.0218680203 -0.0712274536 0.0870469138 0.0684255585 -0.0191941261 0.0867381468 0.0157203674 0.087654911 -0.0845660865 0.0500434265 0.0853246078 0.0866294876 0.0218415409 -0.0366347618 0.0620578304 0.00922102481 0.054417856 -0.00891549885 0.0274986774 -0.0212449953 -0.058855433 0.0595220402 -0.0635980964 0.0276020169 -0.0790415257 -0.0215680152 0.00563567132 0.0844750032 0.0190862045 0.0506297722 -0.0344722308 0.0593509749 -0.0561544187 0.0360541269 -0.0766150877 0.08342015 0.0125980675 -0.0332476795 -0.0281298459 0.00982582569 -0.0183177292 0.0400287136 -0.0222210288 -0.088699542 -0.0207794309 -0.0656588674 -0.0559678562 0.0615417734 0.0707012489 -0.0854261667 -0.0439781137 0.00225164741 0.0382310078 -0.00532545894 0.0286655352 0.0452568159 -0.0533286929 0.0745602623 -0.0179659799 -0.0627269223 0.0408525392 0.0646189377 -0.0363129005 0.00676520169 -0.0598943271 -0.0433460176 0.0921231881 -0.0490388274 -0.0774258226 -0.0146086365 -0.0661232024 -0.02900628 0.0866430178 0.0291916803 0.0812811181 0.0571248755 -0.00633833557 0.0731641725 -0.0443181545 -0.0854692459 -0.0580072813 -0.080612123 -0.0155158192 0.082330592 0.0796624646 -0.0186806619 -0.0411135629 0.0118993223 -0.0448206738 -0.00474138558 0.0329969749 0.0527700856 0.0484261736 0.0283761024 -0.0573414005 0.0189386681 -0.0339940302 -0.0163760334 -0.0519020185 0.0717373863 -0.0880579799 -0.00882390887 -0.0133155435 0.07965561 0.0813487694 -0.053613089 -0.0683479309 0.0879037604 -0.00814864784 0.0895357504 -0.0355646983 0.0787687525 0.059605591 0.0775042698 0.0653837994 0.0822174326 0.0837690607 -0.0320737511 -0.0155726969 8.13305378e-05 -0.0146673173 0.0343314782 -0.0140134767 0.0658112988 0.0279474258 -0.0273773745 -0.0455951355 0.0804118291 -0.0284660384 0.0854800567 0.0875839218 0.0325099081 -0.0229484066 -0.0594022162 -0.0649050996 -0.087058112 0.0394929722 -0.0661722198 0.0250959694 0.0385274664 0.00729101151 0.0409935191 0.00448983163 -0.0280890614 0.0219060779 0.0912449881 0.0489778742 0.0438502505 -0.039281562 -0.0916197821 0.00328717381 0.00219094753 -0.00275021046 0.0203088671 0.0647766665 0.0681563094 0.0300871953 -0.00780907273 -0.0128225088 0.0439022705 0.0888230279 -0.0852285624 -0.0477441959 0.0496415123 -0.0882965997 0.0600947812 0.0364318416 -0.0898090899 0.0374810919 -0.052634459 -0.0314836279 -0.0584741458 0.0766714588 0.045201309 -0.056860514 0.0282913148 -0.0362586901 -0.0173025653 -0.0144215077 0.000320799649 -0.00818142295 -0.0672710538 0.0109338537 -0.0741552636 -0.0614565648 -0.0523432605 -0.0914368555 0.025277622 -0.0363090262 -0.0681997836 0.0709857866 -0.0918539092 0.0330376253 -0.0873479918 -0.00774355233 0.0729841515 0.0726018772 0.0481530353 -0.0315401703 0.029989928 0.0449958369 0.00646687299 0.0454341695 0.058702983 0.0703842565 -0.0634304211 0.00590963662 0.00121229142 0.0203699693 0.0150379986 0.0640919432 0.0723048821 -0.029217124 0.0802304819 -0.00865597278 0.0168478042 -0.0114234164 0.0773075446 0.0256532058 -0.0277815312 0.0656164363 0.0744999871 -0.0386353582 0.0515629426 0.0460086539 -0.0312029719 0.0440944806 -0.0607592501 -0.0133932605 -0.0843721777 0.089028053 -0.0851104707 0.028308481 0.0454429761 0.0241015106 -0.00146766007 0.0555791035 0.0462508276 0.0756799355 -0.0137191936 0.0777506158 -0.0337781757 -0.0500476994 -0.0770742521 0.0124457777 0.0362228975 0.0419732854 0.0670964196 0.0278879106 0.0537553206 0.0879689977 0.0597979501 -0.080509603 -0.0518780686 0.018652156 0.0247881934 0.0789240077 0.0240974873 -0.00308959186 0.0404843763 -0.076356709 0.0859652236 -0.00161097199 -0.0281117782 0.0914930478 0.00591745228 -0.0437612459 -0.0193493217 0.0263273865 0.00945232809 0.0760640875 0.0487068221 0.0189346001 0.0167228952 0.00943472236 -0.0348439664 0.0618089959 0.0740832463 -0.0744397044 0.00468818843 -0.0862324759 -0.0327449813 -0.0663215667 0.0809204206 0.00127519667 -0.0352458097 0.0866999552 0.0483716503 0.0162882134 0.0161657706 0.0572124198 -0.0399497375 -0.0845846832 -0.0350325964 0.0575052872 -0.0907911137 -0.0457227305 0.0583168343 -0.0829806477 -0.0593627989 -0.0392756648 -0.0430011153 -0.0696303323 0.0265363306 -0.0722156167 -0.0776157081 -0.01978755 -0.0670083985 0.0517437682 0.0705004111 0.0631658509 -0.0221461877 0.0504204854 -0.0656044185 0.0850930884 0.03573028 0.0250193477 0.0858694836 -0.0494373292 -0.0201834738 0.0919388309 -0.00366380066 0.0278745666 0.0338970497 -0.0833382979 -0.0760626495 -0.00626224279 0.0490696058 -0.0167966336 0.00693739206 -0.0533589348 0.0842165872 -0.088965714 0.0689998642 -0.0635914057 -0.0677573085 -0.0567154214 -0.0744043142 -0.0115656257 -0.0432987623 -0.00925265253 -0.0260601565 -0.0461402908 -0.0214918181 0.0240112469 -0.0516627394 0.0051119104 -0.0369685255 0.0484966263 -0.0404510237 -0.0169060901 0.0375176296 -0.0323688239 0.0614008531 -0.0838881657 -0.058952719 0.040926598 0.0722977147 -0.0765273571 -0.0770126879 -0.0654676259 0.0862634853 -0.0261807516 -0.0294545293 -0.0539026596 0.0386668071 -0.0443299972 0.0362276956 -0.0300110839 -0.0731399655 0.0141960979 -0.0467480682 0.04975795 0.0441627875 -0.0823004395 0.0532313213 0.00273455679 -0.0154040307 -0.0645013377 -0.0103459358 0.0770054683 0.081674926 -0.0335237794 0.083945699 -0.0328170881 -0.0303243808 -0.042275738 -0.000153720379 -0.0320023261 0.0753581449 0.0132728666 -0.0747071579 0.0459481552 -0.00139196217 -0.0750170425 0.0875263587 -0.0904916823 0.0180258527 -0.0421610624 0.0107448325 -0.0113276467 0.0242738798 -0.0213562548 -0.047633063 0.0669258311 0.0701136813 0.0775695369 -0.0651456267 -0.0673407763 0.00999194384 0.0685847476 0.0876822695 0.0551033542 0.0297518447 -0.00212680548 0.0712363049 0.0292429626 0.0283780843 0.0755715445 0.0608352944 0.0732460544 0.00869862735 0.0440844223 0.0850552544 -0.00780487061 -0.056259077 0.0737819895 -0.0164724812 0.0630679503 0.0685340539 0.0587350801 -0.0650702715 0.0512529537 0.0208937749 0.0826758072 0.0402346328 -0.039583832 -0.0756407306 0.0793865994 -0.0258242488 -0.0782126561 0.024306275 0.0595419183 0.0882685408 -0.0174245685 -0.0641430542 -0.0579939 -0.0111872852 -0.0261132047 0.0342190489 -0.0707828254 0.0337302312 -1.05425715e-05 -0.0206961185 -0.0760486275 0.0324644595 0.0319865867 -0.0521098189 0.0612610057 0.071324192 0.0803134814 -0.0498140156 0.0609834269 -0.0154599398 0.0630118325 0.00105022639 0.00777269155 0.0559867844 -0.0103886351 -0.0597243644 -0.0277842581 -0.0541020744 0.00370136648 -0.0397888385 -0.0384104997 -0.0678839982 0.0554445609 0.0799634978 -0.00161851943 0.0307200849 -0.092185542 -0.0819598511 0.0872412995 -0.0812448636 0.0194929838 0.0581407025 -0.0149110407 -0.0300719626 -0.0727470815 -0.0639039129 -0.0861226246 -0.0743465573 0.0647302642 -0.0591808148 -0.0162911192 0.0300632045 0.0570323691 -0.0913157985 0.0280914381 -0.0838953406 -0.023416087 0.0715551302 -0.0917468518 -0.0468427353 0.0351091996 -0.0859411061 0.00981585681 -0.047176633 -0.0872363523 0.0504984483 0.00339632481 0.0819631293 -0.0448589511 -0.0261945575 -0.0889278799 0.0873838738 -0.00089751929 0.0202745721 0.0254622027 -0.0594306774 -0.0829442888 -0.00678157806 0.0848809704 -0.0508788601 -0.0427030027 -0.0204877481 0.0675937459 0.00101347268 -0.00514741242 0.0120167285 -0.0379233398 -0.0694829673 0.0832808241 -0.0220901296 -0.0229408592 -0.0797535405 0.0850792006 0.0246363655 -0.087028794 -0.0303022824 0.0185195431 -0.0723313689 -0.012740612 0.0382081792 0.0193943083 -0.0707664192 -0.0484207533 -0.077760756 0.0665716305 0.0398758873 0.0256869271 -0.0769418776 -0.0912837312 0.0390322879 0.0255508572 0.00951039791 0.0600807741 0.0503119752 -0.0836843923 0.0404701307 0.0592047796 0.082049869 -0.0898595154 0.0735083595 0.0464486554 0.0795330629 -0.061398413 0.024278082 0.0786902383 -0.0282909647 -0.0848487243 -0.0869097188 0.00845248252 0.022784777 0.00723103434 0.0298697948 -0.0462092496 0.0642069057 0.00364678353 0.0783960447 -0.0309826694 0.0642996803 0.0274423957 0.0651645586 0.0317491144 -0.0210753381 -0.0381752066 0.0482216403 -0.0689433366 0.0760256127 0.0727498904 -0.0299909227 -0.0190992802 0.064822115 -0.0507656597 -0.060024213 0.0228756368 0.0863306299 0.0863408074 -0.0389682464 -0.0724917576 -0.00193910301 -0.00234521925 0.0120758489 0.0538462475 0.0141980574 -0.0833361223 0.0510185584 -0.031152457 -0.00295279175 0.089338176 -0.056794174 -0.0364220738 0.00430630147 0.054226853 -0.0522191226 -0.000434793532 0.0177847743 -0.0609627813 0.0920337364 -0.0350837708 0.0283700228 -0.0762618631 -0.0555498339 0.0888663605 0.0156803951 -0.0919469893 -0.0548769534 0.019807227 -0.00176477432 0.0257854909 0.0384675041 -0.0832223296 0.00505182147 -0.0879572183 0.0574441925 0.0160477906 -0.0352973379 -0.00812190771 0.084093459 0.0403861627 0.0213206857 0.0132018402 0.0741133168 0.0185286403 -0.0345883146 0.0771018788 0.0265937597 0.0362659022 -0.0268782005 -0.0758349523 -0.036417868 -0.0285880193 -0.0544434786 -0.0802506506 -0.0645645782 -0.0305042267 0.0663829967 0.0026941672 -0.0662594289 0.0782919303 -0.0844949707 -0.0390598737 -0.0185482055 0.0585665628 -0.0741196722 0.0300242454 -0.061827112 0.00599567592 -0.0247252211 0.0508990213 -0.0289775804 -0.0729637295 0.0655379668 -0.055748567 0.0357100591 0.0350673124 0.0517105237 -0.00603091717 -0.0691164732 -0.0476021171 -0.0866665244 0.0556022599 0.0307500809 -0.0854789317 0.00528784096 0.088755466 0.00931054354 -0.018750526 0.0766715035 -0.0846938342 0.0641865507 0.0840195045 -0.0362304263 0.0493202135 -0.0804257393 -0.058450155 -0.0282422975 0.0835643485 0.0058465749 -0.0455633514 0.0843867436 7.3119998e-05 -0.0542582609 -0.0711734891 -0.0147524774 0.0390700623 0.00283534825 -0.0162955001 -0.0198459402 0.0202526525 -0.0667256117 -0.0663484782 0.0572304651 0.0425683036 -0.0586121082 0.08466997 0.0132310465 -0.0921538472 0.0690888092 -0.0635460839 -0.0421016105 -0.0683636069 -0.0162331834 0.0384740457 -0.0128743872 0.0555839017 0.0182795227 0.0526431128 -0.0413812511 0.0529125854 0.0592562929 -0.0774714947 -0.0810972378 0.0323332772 0.0868143961 -0.0373633951 0.087115474 0.0275164396 0.00465279073 -0.0147390515 0.0591016635 -0.0921435878 -0.0458522178 0.00923733413 -0.0347593129 0.0613284037 -0.00870102644 0.0819844827 -0.0253443792 -0.075891912 0.00533580035 -0.077139996 -0.0732539818 0.0118958056 -0.0254963785 0.0176122338 0.0249383077 0.00332307816 -0.0572368503 0.0776580945 -0.0597545393 0.0682142898 -0.073885791 -0.0844376385 0.0764066502 0.08556851 0.065501608 -0.0833386481 -0.00640179217 0.0120778754 -0.00531053543 -0.0762721896 -0.0529090613 0.00219383091 0.0168101937 -0.00911643356 -0.0201665014 -0.0397323593 0.0888018236 0.0452300981 0.0764579549 -0.0740881562 0.0409845635 0.0241508633 0.0116493925 0.0102787837 0.0903820023 -0.0717465952 -0.0751864165 0.0253528059 0.091541402 0.0507384166 -0.0738063306 -0.0205284879 0.00954145193 0.0396909192 0.0634369627 0.0613634363 0.0441244915 0.02019912 0.0493452772 0.0517897233 -0.012637049 -0.0225079134 -0.0312117971 -0.0277399942 0.0728718117 0.0662881657 -0.0815967172 -0.00677770376 -0.0429957658 0.0822987631 -0.0583233759 0.0291144624 0.0252107084 -0.00621452183 -0.0666774735 -0.0301410109 -0.0783797577 -0.0910346806 0.0386561975 -0.00304224342 0.0258401856 0.0327073261 0.0180926099 -0.0808010846 -0.0274647102 0.0487601086 0.00909941643 0.0485103503 0.0158415735 -0.0127512366 -0.0895553753 -0.0723166913 -0.0304790251 -0.0480748788 0.0806000009 -0.00341197848 -0.0545371771 -0.0769439936 0.00692663342 -0.0546017326 0.0227416158 0.0557182208 0.0388668254 -0.0304369852 0.0781957433 -0.00697854906 -0.0313056931 0.0552442893 -0.00250058621 -0.0814860314 -0.053853333 -0.0824247971 0.0792768821 -0.0529062673 0.0306034535 -0.0891591012 0.0121608973 -0.0910372138 0.0855026618 0.0289474726 0.0415368155 0.00312597305 -0.017582491 -0.0889815241 0.0530262664 -0.0139006302 0.0332462713 0.0343904868 0.050526984 -0.0132277012 -0.0857764855 0.0693909451 0.0807679221 -0.00483305752 -0.0299542062 0.0387861803 -0.0653045923 -0.014559336 -0.0061307773 0.0553095266 0.0272115022 0.00729845464 0.0717133507 -0.0685478747 -0.0259965062 0.0539983138 0.0292400569 0.0312149003 -0.00320551544 0.07296177 0.0873499438 -0.0874033496 -0.0810325071 -0.0152088404 -0.0812397972 0.0682248101 0.0487450138 -0.00274329633 -0.0296551511 -0.0301216617 -0.0214525312 -0.0106864348 0.00203081965 -0.0323785506 -0.0285963342 -0.0237392411 0.00485365838 0.0623769984 0.0100664869 0.00769604743 -0.0112763643 0.0801520422 -0.0528456047 -0.0547875464 0.0799818411 0.0335296914 -0.0868130699 0.0364448056 -0.0720629096 0.0215899646 0.0088622123 -0.0472948737 -0.0151935443 -0.0106317624 0.0296723619 -0.013099581 -0.0604940243 -0.0239926726 -0.016570583 -0.0625720769 -0.0588988811 -0.0181843266 -0.0875176713 -0.0714168996 -0.0918065906 -0.0318924263 -0.050200738 -0.0739536732 0.0608650073 -0.0402812585 -0.0568506531 0.0342074856 -0.0166877657 0.0399013534 0.0198729932 0.0766968206 0.0186665952 0.0141327083 -0.0404403508 -0.0151604414 0.0695246086 0.077662237 0.0147281066 -0.0757779032 0.0408001915 -0.0675744638 -0.0170504153 0.0265040025 -0.0424393415 0.0262317285 -0.0739666149 0.0522059575 0.0838066116 0.0820873752 0.0307841599 0.0607431605 0.0693586543 -0.0642143041 -0.0160714313 -0.0660738349 0.0753344372 0.0837242976 -0.0166614652 -0.0865634084 0.00140757114 -0.0099934563 -0.0287105069 -0.0812114701 0.0656791404 -0.050078515 -0.0417708606 -0.0627399981 0.00849701464 0.0264943838 0.000318862498 0.0074930042 -0.0238582492 0.0532168075 -0.0736535639 0.0649031922 0.0392011181 -0.0918096676 -0.0805916339 -0.0328840651 0.0883730873 -0.049485907 0.0701475963 0.0442691818 0.0358554348 -0.0086915195 -0.0324573703 0.040617384 0.0795918033 -0.0775598884 0.0553228334 0.0516250357 -0.00685483217 -0.0586263053 -0.0423498899 -0.086745128 -0.0763764307 -0.0586469285 -0.00289329886 -0.0844164416 0.0598217174 0.00522786379 -0.0378013141 -0.0209869221 -0.00887204707 0.0789708868 -0.0154498965 -0.0516503267 0.0571755543 -0.0326109827 -0.0829255804 -0.0168965161 0.0259894803 0.0246736333 0.0671322122 0.0170490071 0.057254605 0.0604385212 0.0732122287 -0.0613006651 0.0247278214 0.083407633 -0.023395963 0.052086316 0.00684915483 0.00214055926 -0.0640400201 0.0846238658 0.0907079354 0.0473105684 -0.0735257417 -0.0250376165 -0.023087047 0.0913004056 0.0874017254 -0.0664570332 -0.0685294122 0.0617766604 -0.0200147405 0.0661080107 0.0570872054 -0.0489360616 0.0402785316 0.0100969076 -0.0434599891 0.0867105201 -0.00351775438 -0.058542069 0.0207751989 0.092047818 -0.0634049103 0.0230749846 0.0130842552 -0.0709020272 0.0798539147 0.0291468874 0.0882758871 0.00151834637 -0.0127333701 -0.0488746762 0.0070200637 -0.0824987516 -0.0638619363 -0.0459523201 0.0885194317 -0.0868684053 0.0748599246 0.0137652382 -0.0773466304 -0.0317701139 -0.0578751974 -0.0209240839 -0.00380732864 0.0119973347 -0.0654441565 -0.0111052096 -0.00955494493 0.0848825797 0.0673363581 -0.013072066 -0.011445269 0.014040105 -0.0806324854 0.0752138123 0.0530688986 -0.0163948536 0.0625414625 -0.0658326894 -0.00172733516 -0.0356990956 -0.0156480819 -0.00222543627 -0.00896768272 0.0079452768 -0.0485539176 0.0723305717 -0.0124251992 0.0192330852 -0.0792659 -0.0824616477 0.0408886746 -0.0701479092 -0.0748233274 0.0498356745 0.0105683729 -0.0772567838 -0.00354540348 0.0483681485 0.0643505976 0.065980427 0.044338204 -0.0874050856 0.0371045694 0.0922323987 0.052704908 0.0724015608 -0.0406412594 -0.0210862309 0.0526651219 -0.000253342092 -0.0269410163 0.00830169022 0.018185012 -0.0411647372 0.0528538153 -0.0258150697 0.0760778114 -0.0233656392 -0.000284329057 0.0594978705 -0.04347381 -0.0693656355 0.046537213 -0.0498346612 0.0197732374 -0.0831714794 0.0865939781 -0.0915199891 0.00281886011 0.050560765 -0.0572896302 0.0581088588 0.0059870705 0.00865920633 -0.0758507326 0.0165335611 0.00257969648 0.0498933122 -0.0243442431 0.000940330327 -0.0547940396 -0.0700395927 -0.0369077548 0.0629869923 -0.0874480754 -0.0485052057 0.0889864489 0.057564877 0.0645049438 -0.0062757805 0.0428213999 -0.0482898578 -0.0144333914 -0.00942948461 0.0546844229 0.0691052303 0.0157678425 -0.0381934308 0.00861291587 0.0116431192 -0.0134685859 0.0271565691 -0.0897307768 0.0812899396 -0.0139448047 0.0376943275 -0.0396490954 -0.0294502303 -0.0340521187 0.0793530867 -0.0769352764 0.00834747404 -0.0542298667 -0.037151698 0.0123202056 0.0709451661 0.0210547149 -0.0796841681 -0.0525233522 0.0391362086 0.0827355459 -0.0539581925 -0.0489262901 0.0728059635 -0.0510739163 0.0786475763 -0.0402130894 -0.0310902782 -0.0798990503 0.0140188634 -0.0714284554 -0.055641178 -0.0527567714 -0.0868500471 0.0606861487 -0.0754058361 -0.0139327645 -0.0623195954 0.0281434953 -0.0680235177 -0.0324140526 -0.0546650141 -0.0667048544 0.0619678423 -0.0446691327 0.0482472256 0.00115420669 -0.0686030388 0.025551714 0.0536076501 0.00693979114 -0.0622621924 0.0693226978 0.0830469057 -0.0258866698 -0.0583581291 -0.0297451317 -0.0126795545 -0.0690475851 -0.0662719086 0.0547733679 -0.0339432769 -0.0868855491 0.0298808664 -0.031997133 -0.0429663137 0.0399041995 0.00378439575 -0.00589413941 -0.0680453554 0.0896628723 -0.0402632765 0.0505365357 0.0382858142 -0.084454827 -0.0146302953 0.0073748529 0.0496684089 -0.0546052791 0.0231387094 0.0253067166 0.0255862921 -0.0205336139 0.0709721819 -0.0374893621 0.00721437484 -0.00983449817 0.0300673842 -0.0168160424 -0.0817563161 0.000639140606 -0.0323851109 0.0170100927 -0.0102737173 0.0382819995 0.0860009119 -0.0510235578 0.000201508403 -0.0888363868 -0.0402166992 0.0645157769 0.0614080504 0.0416341797 0.087725915 -0.0275240317 0.0205484703 -0.0157537311 0.0433629379 -0.0301621407 -0.0683347285 -0.0903255716 0.0336392596 0.0828809366 0.0510896072 0.0308662578 -0.0420867316 -0.083645083 -0.0231758654 -0.0211555883 -0.0540589988 0.0117004588 0.0473182276 -0.0657239109 -0.0864488408 0.0435472205 0.0866043195 -0.0688439831 0.0630777404 -0.090926826 0.0800372139 0.0844548866 0.0227816552 -0.0809352174 -0.0150607526 -0.0424475074 -0.0181926936 0.0185011923 -0.0598608069 0.090896301 -0.0527795292 0.0748365149 -0.00283237547 -0.0740397349 -0.0894330889 -0.0267568976 -0.00588300079 0.0472074077 -0.0299328119 -0.090032652 -0.0348386168 -0.00488815457 -0.0459058806 0.0308072865 -0.00201642513 -0.0716366321 0.0597325489 0.0166226849 0.00872001797 -0.0667213351 -0.0702848136 -0.0767590851 0.02015616 0.0123525411 -0.0370751694 -0.0765943974 0.0853113905 0.0725355223 0.0917014405 0.0547896996 0.026275754 -0.00759761781 0.0716785118 -0.0295808464 -0.0464710854 -0.0670204163 -0.0476747528 0.0559256598 -0.00553398579 0.066435881 -0.0378464162 -0.0519301482 -0.0710671544 0.0303667262 -0.0128662214 0.0388248935 0.067024596 -0.0381808206 -0.0721179098 0.00508178025 -0.0480087399 0.0771351978 -0.00209458172 0.00897668302 -0.0245566219 -0.0323919989 0.0788088962 -0.0821133256 0.0761623159 -0.061514385 0.0505398139 -0.075328581 0.034595497 0.0529754385 0.0901681706 -0.0290658176 0.0117824897 0.0375432596 0.0383972302 0.0247202739 -0.0217671022 0.0735843554 -0.0364323072 0.0550844446 0.041538693 0.028104797 0.0591978654 0.0383558646 0.042456381 -0.0797433481 -0.0260093361 -0.081896022 0.0859337673 0.0026203692 0.0294354632 -0.0173782185 0.0150327384 0.0893724486 0.0315565243 -0.0256655514 -0.0823445693 -0.0898224786 0.0832352415 0.0271766856 -0.0821707547 -0.0909153596 -0.0484880172 -0.0615605637 0.0512277707 0.0803922787 0.0743639842 0.0258904323 -0.0623989664 0.0592573658 -0.0875848904 0.0493543223 -0.0350981876 -0.0301307552 -0.0369122699 -0.0664750859 0.0505342707 -0.0686699897 0.0849059299 0.0573934093 -0.0836392939 -0.0908509567 0.0712342337 -0.0627486482 -0.0517511368 -0.0615939125 -0.0416190326 -0.0685536861 0.0250309035 0.0489015505 -0.0240677893 -0.0246266127 0.0251517668 0.025459975 -0.0750555843 -0.0468889102 0.0127392411 0.0683669522 0.0322681442 -0.0177676007 0.0735102668 0.0839866772 -0.0643422008 0.0804853663 -0.044096265 0.0877747312 -0.0788207352 -0.0636570156 -0.0323222056 0.0559602454 0.0443417504 0.0440516695 -0.0229334384 -0.0449424163 0.0792572722 0.0471593514 -0.064587906 0.0741322413 -0.090724729 -0.08217749 0.0363497213 -0.0877760947 -0.0144101456 0.0661456063 0.0521464869 0.0842486992 0.0824513808 -0.033690311 -0.0675740018 -0.0437510535 0.0455317274 0.0102816895 0.079795517 -0.0693932325 0.0630733445 0.0107064024 0.0513316616 -0.0819840133 -0.0378143229 0.073498778 0.0519453958 0.0661531761 0.0317714587 -0.0182669535 0.0231873542 -0.0224244669 0.0675252303 -0.0143191367 -0.0237639397 -0.0576179177 0.0114686638 -0.0328749977 0.0592671409 0.00969514996 0.0878206417 -0.0111991689 0.0578990355 0.0812237784 -0.0392329656 -0.0790068582 0.0275155157 0.0801262632 -0.0193112418 0.039239563 0.0298855975 -0.0211706012 0.0297538266 -0.0307203494 0.0170857608 0.091673471 0.0305950418 0.0238272399 0.065867357 0.0153212249 -0.0551517755 -0.0731350183 0.0790956691 -0.00538986176 0.0790056661 -0.0568588413 -0.0905748382 -0.072094515 0.0706980303 0.0484968498 -0.0666593611 0.0329421982 0.0817936733 -0.00840791315 0.0482424721 -0.0404293425 -0.080552347 -0.0623067394 -0.0881845206 -0.00943753868 -0.0628463924 0.0630524978 0.0521922931 0.0214880332 0.00674095005 -0.0291881561 -0.0270176381 -0.0617297143 -0.00473863631 -0.0028104037 0.0193634257 -0.0470915399 0.0361044183 -0.0227920189 0.082996957 0.0790148452 0.0624868795 0.0571288392 -0.00412771106 -0.00294902921 0.0723000839 0.0163383931 -0.000536262989 -0.0715661719 -0.0806629509 0.0665519908 0.0741353706 -0.0258428901 -0.0373797044 0.00753992796 0.0511558428 -0.0509897918 -0.0606812015 -0.0361828841 -0.0896747634 -0.0148999691 -0.0325326025 0.0609547421 0.0637006387 0.0753105506 -0.0405880623 -0.0190378726 -0.0049547106 -0.0605228581 -0.0140138939 -0.0480468385 -0.0548570342 -0.0815733224 -0.0259613097 -0.0367729403 -0.0878935233 -0.0751441121 0.0531630889 -0.0164832473 -0.0553977862 -0.0768152326 0.0876744911 -0.0572273619 0.00687160343 0.00223623961 -0.0824541822 0.0240177661 -0.0897653997 0.0588010624 0.0770892426 -0.00579953939 0.0603023097 -0.0865564719 0.0370916799 -0.0472301617 0.0841438845 -0.0908340514 0.0131082088 -0.0659409314 -0.0891762003 0.0916777775 0.0104299486 -0.0313599519 -0.0791813806 0.0282423645 0.0781118646 0.0470440164 -0.0878647566 -0.0375987515 -0.0465945452 0.0214538947 0.0560839996 0.0173188075 0.0742506608 -0.00528207421 -0.0719367191 -0.0890350714 0.0882650092 -0.0205236897 0.0188413635 -0.0760684162 0.0688085034 0.0100888982 0.0164987892 0.0264747664 -0.0406685099 -0.0530162081 -0.00759775192 0.02789592 0.0507836416 0.0477649793 -0.044206012 0.00649689883 -0.0213555321 0.00751974434 -0.0652541667 -0.0291092694 0.040741168 0.0785166696 -0.0502763018 -0.0763669237 0.055882372 -0.0243443102 0.0136396512 0.0413023606 -0.0812055469 -0.00528495759 0.0186164826 0.0124211684 -0.0188258886 -0.00268901885 0.0397362188 -0.0110576898 0.0229196846 0.0809387192 -0.00306715816 -0.0882486403 0.0583296195 -0.00378188491 -0.0574555025 -0.0855563357 -0.0727749243 -0.0149437711 0.014801383 -0.0200394541 -0.078148298 0.0321642384 0.0405039117 -0.0278422162 -0.0394572504 -0.075717479 0.0840780661 -0.0687438995 0.0258322209 0.0271107852 -0.065036945 0.0220029429 0.0262195393 0.0217821151 -0.0173817798 0.00544121116 0.0697083399 -0.0274510235 -0.0619362369 0.0342035517 0.0152411982 0.0335366353 -0.00649616867 0.0512047186 0.0549780205 0.079468973 0.00710178912 -0.0763379782 -0.038800437 0.00844416767 0.0686374977 -0.0536482856 0.0340840146 -0.0607627966 0.0688234493 -0.0517290384 0.0761088952 -0.0143404603 -0.0187440515 -0.0166342407 -0.0160437897 -0.0731619149 -0.0109938607 -0.0114999637 -0.0483614579 0.0343541726 0.0114076957 0.0890423432 0.0907590911 -0.0421851836 -0.0533444509 -0.0609655343 -0.0588227697 -0.0760350078 0.0481049195 -0.0331928506 0.0877650902 0.0757470205 0.051628761 0.0543577895 -0.0315776542 0.0374466553 0.0413528755 -0.0211310908 0.0642528608 0.0295138657 -0.0886185244 0.0549331084 0.0867627487 -0.00192921609 0.058619 -0.062281847 0.0752172247 0.0817246065 -0.0724946856 -0.0594483502 0.0735229775 -0.0809411407 -0.0158449411 0.0189049244 -0.0184790045 -0.072648935 0.0544324145 -0.0192667171 0.070961751 -0.00898604095 -0.033333078 -0.0763821751 -0.00971291214 0.0863216147 0.0653306767 0.0729993358 -0.0442341194 0.0871072337 0.0888366774 0.0841957852 0.0683539435 -0.00860708207 0.0834532455 -0.0547222197 0.0439927056 0.0600393489 -0.0655407384 -0.00539234281 0.0434363708 -0.0593142845 0.0911182389 0.0609474257 0.0922561064 -0.0275028348 0.0073935166 0.0676986501 0.0559811965 -0.0449533984 -0.0655946657 0.0186253488 0.020685181 0.0096783787 -0.0423333608 -0.0652861893 0.0745795444 0.0818528607 -0.0763654485 0.0518678799 -0.0524377748 0.0461253747 -0.0733442232 0.0795856193 0.0439116582 -0.054325413 0.0238633379 0.0402999446 0.0254811049 -0.0376475714 0.0408055261 -0.000193737447 -0.00187604129 -0.00883857161 0.0268096775 0.0211244002 0.0709372237 0.0112786293 0.0907942429 -0.00715973973 -0.0655176342 -0.0410992764 -0.0200694352 0.0207945704 -0.0482551455 -0.0326898433 -0.0607462227 0.0870908275 0.0594866052 0.00425536931 -0.0327166989 -0.0852494016 0.0186674371 0.0105618164 -0.0033133477 -0.0197075605 -0.0727450773 0.0529608503 0.0537948981 0.0639619008 0.0900367871 0.0696313456 0.0374567881 0.08671581 0.0124559477 0.0432189927 -0.0440369248 -0.0215209201 -0.0647214055 -0.0019556284 0.0299343541 0.0393910185 0.0765529498 -0.0319103897 0.0815263316 0.045618929 0.0778202936 0.0070643723 -0.0807444081 -0.0764105916 0.0877345875 0.0884657279 0.03666199 -0.0445651561 0.0170439184 -0.0802951977 -0.0913975239 -0.0682138503 0.0215284899 0.071967341 0.0494608507 -0.0827924833 -0.0266421139 -0.0277354196 -0.0339946039 -0.0518530011 0.0732030049 -0.0680544898 -0.0422940925 0.0731801167 0.00250373781 0.0388951227 0.0787177011 0.0799192414 0.0727116391 0.00895665586 -0.014792338 0.00569102913 0.0456867889 -0.0181876272 -0.0886770487 0.0145560578 0.021959208 -0.080966033 -0.0844599307 0.012822777 -0.0532187484 -0.0597083382 0.0469034985 0.0256446898 -0.0674469322 0.0409001485 -0.0470401235 -0.06406793 -0.0418904871 0.0223304406 -0.053380087 0.0694319084 0.0421716496 -0.0203215182 0.0774322525 0.0406365916 -0.0394590124 -0.0502938889 0.0913271978 -0.0296281874 -0.0309976377 -0.0480924882 0.0206402093 -0.0742675215 0.048306413 -0.0571060404 0.025023289 -0.0501149856 0.00637141615 0.0767676458 -0.0709764212 -0.0868016481 -0.0398514383 -0.0251863673 0.0701352879 -0.0702825934 -0.0436872467 -0.0090598613 0.0401748195 0.00234151632 -0.0723527372 -0.0205015466 -0.0895955935 -0.0593139566 -0.0347452946 0.0776879415 0.0675076619 -0.0792163089 -0.00527402014 -0.0128570423 0.0493168607 0.0406698361 0.0148607045 0.0738467649 -0.0795218125 -0.0236717984 0.0124566108 -0.026437901 -0.080116868 0.0219662562 -0.0067320168 0.087466754 -0.047356084 0.0756076947 0.0451728627 -0.026051268 0.0349728391 0.0842390582 -0.0413579419 0.0245354697 -0.00622170419 0.075777851 -0.0689643174 -0.0504151657 0.0327529535 0.0355541781 0.0593219474 0.0920347199 0.000485531986 -0.0190010443 -0.00320087373 -0.0208655745 -0.0100592077 0.0686859563 -0.0856480151 -0.0877020061 0.0345908925 -0.0851674378 0.0240620896 -0.0550971888 0.0138438866 0.0468661711 -0.0720600933 0.0438968912 0.00607645512 0.027557224 0.0112745762 0.0323150083 0.0660790578 0.0659450069 -0.0155721456 -0.00660089403 0.0125891343 0.051802285 -0.0367211513 0.0633985326 -0.0301220827 0.00285475701 -0.0861729831 -0.0363197885 -0.0453456454 0.0422134921 0.0151260793 0.0646730885 -0.048492901 -0.00039678067 0.0869145319 -0.0481125824 -0.0278397053 -0.0421542376 -0.0125346109 0.0855843797 0.0191353112 0.056347914 0.0746703818 0.0623588637 -0.0592293032 0.0725391284 0.0312789083 -0.0261414871 0.0457767174 -0.0918968767 0.00890048593 -0.0444327183 0.0614427403 0.0395893976 0.0262412131 -0.0692814887 0.00170061737 0.0216213539 0.0587836131 -0.0906067118 0.056106545 -0.0922337025 0.0669550523 -0.0477854423 -0.0871606171 0.0586632863 0.0643250421 -0.00564434379 0.0298598707 0.0289786384 -0.0381360725 0.0867629126 -0.0861129165 -0.0521075726 -0.0768239051 -0.0565985665 -0.0584369935 0.0588498637 -0.0789515674 -0.0829858705 0.00700252503 0.083974801 0.0158176273 -0.0576359443 -0.0447853915 0.0344919339 -0.00657952577 -0.0766844228 -0.0088987872 -0.00701740384 0.0234437957 0.0128640234 -0.069636032 -0.0895739794 0.0040865764 -0.0137562156 -0.00311012566 0.038995333 -0.0667265132 -0.0542918257 -0.067302838 -0.0387041643 0.013767615 0.0121549964 0.0443773642 0.0228787884 0.0231496021 -0.084435679 0.0718980655 0.053412281 -0.0592199266 -0.0128740817 -0.0402925275 -0.0893379375 -0.00294914097 -0.0354654081 0.0148108676 -0.00861521065 0.0512139276 -0.0835372284 0.0766712204 0.0766992792 0.0147085413 -0.0296723172 -0.0872207731 -0.0316919573 -0.0717765093 0.0658919886 -0.0263368487 -0.0479779467 -0.069783546 0.0569402352 -0.0386385955 -0.0477926843 -0.0384134911 0.030171141 -0.0232629329 0.0712098703 -0.0314989686 -0.0759460181 -0.0871396437 -0.0233582854 0.00555890054 0.0267551392 0.0478570238 -0.0259368792 0.0188813731 0.0294923633 -0.0481519178 0.0915376022 0.0396573469 0.0591120347 -0.0918184295 -0.00540009141 0.0660114959 0.000213526189 0.043351911 0.0804236308 0.00726048648 -0.062650986 0.0900095478 -0.02117531 0.0271792784 0.0882215425 0.0297556967 -0.017260924 -0.00528671592 -0.0139464736 -0.00558176637 -0.0588510111 0.0698522255 -0.00794384629 -0.039126236 0.0343199447 0.0684839413 0.0261496305 0.0888158306 0.00822040439 0.0427284464 -0.00558777899 -0.0100810379 -0.060919445 0.0802038386 -0.0154241025 -0.0365062617 -0.0511620902 -0.00679612905 -0.0825201049 -0.0604057424 -0.0145578831 0.0160022527 -0.055683285 0.0484688953 0.061778672 0.069451414 0.0574791357 -0.0478083119 -0.0178674012 -0.0839807615 0.053484194 0.00630005449 -0.0474522933 0.0710360929 -0.0533325225 -0.0195655301 0.0691993013 0.081502907 -0.0288521647 0.0870504305 -0.0218028501 -0.0638355911 0.0530589297 0.0529185906 -0.0492470041 -0.0672153234 -0.0261485726 0.0308584422 0.0425883904 0.0659096316 0.00517123193 0.0535879806 0.085244976 -0.0496256277 -0.0490443744 -0.0610379912 0.0709828809 0.0340853706 -0.0232521743 0.0915906206 0.0819696262 0.0598177537 -0.0300667919 0.0278358981 -0.0344408229 -0.0728983134 0.0888710693 -0.0735421404 0.0513705239 0.0145387575 0.0440159217 -0.0835235193 -0.0492540896 0.0640994087 -0.0591455773 0.00142660737 -0.0342413634 0.038051568 0.0645929649 -0.00973316282 0.0895330384 0.053605698 -0.0323955864 -0.0484281257 0.0212197006 -0.035777539 0.0607822463 0.087834619 -0.0881040543 -0.00327438861 0.0696829185 -0.000417806208 -0.0757081509 0.0732356086 0.0899380073 0.0306877941 -0.0162154883 -0.0138543174 0.0853449926 -0.0911261737 0.0514159873 0.0134735554 -0.0335583352 -0.0316093937 -0.0773187205 0.0180319697 -0.0101656467 0.0213306174 0.0828609839 0.0478899106 -0.0336216576 -0.0807209685 -0.0181603581 -0.0675318092 0.0113531351 -0.0458857417 0.0626279041 -0.0405671969 -0.0274157599 0.0889216587 -0.0700492561 0.0684147105 0.00628682971 0.045368664 0.0760865733 0.0475026444 0.0370505229 -0.0400490686 0.0840044692 0.00860391557 0.0690785274 -0.0568623208 -0.0817115083 -0.0912824944 -0.00135161728 0.0117015615 0.00454987586 -0.0819713399 0.0188341439 -0.0668604001 -0.0337288044 0.0324336439 0.0908505842 -0.0499951616 0.0690210983 -0.0726427734 0.0359275863 0.0221271291 0.0191135406 -0.00241606683 -0.087746866 -0.0315404795 -0.0504944474 -0.0881156325 0.000884510577 0.0666173324 0.0741799399 0.0773806795 -0.0740236193 0.0634391829 0.0528978184 -0.0701253042 0.010854423 0.0114505738 -0.0720314309 0.0430599675 0.00204198062 0.0388173237 0.0849952325 0.0875387117 0.0795530751 0.0901873931 -0.0304481015 -0.0865326151 -0.0291141123 -0.0589497276 0.0634847209 0.045744963 -0.0258187503 0.0838678107 -0.0148978531 0.0629482195 -0.0571099147 -0.0661029518 0.0653770342 -0.0514473468 -0.0558205433 -0.0729240477 -0.0415330827 -0.0857642293 -0.0401371345 -0.0870638788 0.0404289886 0.0349800363 -0.024619922 0.0540670529 0.0124500915 0.0628515258 -0.0302460007 0.0348302349 -0.0871771276 0.0834820345 0.0580072775 -0.0852482617 -0.043014098 -0.067714408 -0.0526183248 -0.0229469538 0.0222178325 -0.011425592 0.0298725516 0.0529301986 0.0716935918 0.0773671642 0.00512313843 -0.0679623559 0.0890322104 -0.0369511172 -0.0748148561 -0.088486284 -0.0164563507 0.081769444 -0.0577515848 -0.0295424387 0.0340463296 -0.0287770852 -0.0554548167 -0.0724030584 -0.0735288709 0.0378369465 0.0336278602 -0.0192011222 -0.0235088393 -0.0412564985 0.0297042578 0.0885484442 0.065432556 0.00699263811 -0.0864268988 -0.0186276361 -0.02653189 0.026046291 0.0900830999 -0.0600441769 -0.0596914999 0.0578512773 -0.0721158385 -0.0150599405 -0.0711420774 0.0214371234 0.017212145 0.0319573134 -0.0156352073 0.0174509138 -0.0374814384 0.0156737491 0.021260865 0.0744045153 0.0496527627 0.079689689 0.00627054274 -0.0728431344 -0.0799127445 -0.0839539096 0.0115014613 -0.0825041682 0.0291724801 0.0852237567 -0.0547972731 -0.0112083033 0.00692557544 -0.0303510129 0.0382613614 0.0645067766 0.0723132119 0.0667835847 0.0441422686 0.0758674219 0.0791832879 0.0714442506 0.0884214267 0.0741650388 0.0600566342 -0.0442016087 -0.0581516922 0.00146138668 0.063529186 0.0564144775 0.0368626341 0.0216209069 0.0170311108 -0.0122056901 0.0552668646 0.0509669408 -0.0495386422 0.0141428933 -0.0256182328 -0.0545557961 -0.029826086 -0.0535856858 0.0575313643 -0.00395074487 -0.0563225783 -0.0584801771 -0.080108881 0.0483685657 0.0136783198 -0.0181115419 -0.0431161635 0.0798594728 -0.000960230827 0.0606857315 -0.07706514 0.026844278 -0.026067026 -0.00424251705 -0.00780832767 -0.0730229393 -0.02052439 0.0297189355 -0.0796656981 0.0126703084 0.0862852558 -0.0460083596 -0.0580539443 0.066693671 -0.0623963922 -0.00166057795 -0.0414618105 -0.0507811792 0.0593613461 -0.0640760958 -0.0172052979 0.0334103629 0.0764113888 0.0191116706 0.0239173919 0.0164068267 0.0432631746 0.0228297487 0.0808713064 -0.000512115657 -0.00167202204 0.0246125311 -0.00773483515 0.0464058444 0.00903199613 -0.07832665 -0.0268716663 -0.00617899746 0.0489444211 0.0898800567 -0.0343941823 -0.0517901815 -0.082665965 0.0256651789 -0.0161076859 -0.053367231 0.0306400061 -0.0229529366 -0.0899426937 0.00711992383 0.0407219902 0.0247954577 -0.0653449595 -0.0784833431 0.0424678847 -0.0331739001 0.0292320028 -0.0500884876 0.0478970781 -0.0288820341 -0.0350097269 -0.00147822499 0.0452586338 0.0407677367 0.0133183375 -0.0192226917 0.0715089664 0.066500999 0.0310507268 -0.0399449803 -0.0382353626 -0.0791924074 -0.0285103843 0.0414446667 0.0226913467 0.00547043979 -0.00468090177 0.0355664119 -0.0196551755 -0.050425157 0.0400513634 0.0266277865 0.00860144943 0.0747088119 0.0839251205 -0.00846846402 0.0563343987 -0.0726706386 0.025282748 0.0285620913 0.0608512536 0.0733130798 0.0642838553 0.0797017887 -0.0503715836 -0.0576869845 -0.0401395969 0.0599412099 0.0427825227 0.00622408092 -0.0593511537 0.00543724746 -0.0879811645 0.0616723374 -0.0262453556 -0.0389623456 -0.0429272242 -0.0280167162 -0.0191323832 -0.00349339098 0.0176563859 -0.0311871246 -0.0404641852 0.00145308673 0.0465475991 -0.0867619663 -0.0404045619 0.058880724 -0.0315748155 0.0637667999 -0.0170889348 0.06446632 -0.0218763873 0.0210400745 0.0184737891 -0.0348013304 0.0835693404 -0.0445466675 0.0127878189 -0.0054281801 -0.00238510221 0.0809473172 0.0347390249 -0.0541495942 -0.0844978541 0.0516296104 -0.0372263566 -0.0894085467 0.0446257666 0.0713896975 0.0798728094 0.0020596981 -0.0336795673 0.0220547393 -0.0515772067 -0.0302182212 0.0103543177 -0.0151477158 -0.0338575877 -0.0834683627 -0.00821983069 -0.00656112283 0.0121857002 0.0920009688 0.000133931637 0.0866985694 0.0234386027 -0.0574742556 0.0101822615 0.0847176686 -0.0684926733 -0.0424046069 -0.0562904663 0.013527438 -0.0140883327 0.0730038956 -0.0207956061 0.0100153834 0.0437984839 0.0237844735 0.0641183779 0.0389675573 0.0132940859 -0.0502960235 -0.0682487786 0.0332639441 0.0547563955 0.0468540862 -0.0868170112 -0.0604049489 0.00304681808 0.00509493798 0.0536283627 0.0880300328 0.0720465556 -0.0315668918 -0.0345143154 0.0904535428 -0.037659809 0.0811640844 0.0135706887 -0.0809598491 0.0241042674 -0.00528117269 0.0293353572 0.0222298056 0.0134375244 -0.063236028 0.0878223553 0.0207666159 0.0178353712 -0.00429563224 0.036479257 0.0626302734 0.019924365 -0.0262806118 -0.0507061668 0.0576839969 -0.0790397227 -0.0086652562 -0.0310787223 0.0291603357 0.0663720146 0.0173748881 0.0289494097 -0.00477065891 0.0684557036 -0.0169406012 0.0223243013 0.0340508893 0.0308866575 -0.0128672346 0.0221945718 0.0233650878 -0.0679365396 0.0667227879 0.0387202576 -0.0157189742 -0.0369373374 -0.0458436124 0.0068641454 0.00720153749 -0.0413034447 0.0270717815 0.0318703949 0.0623118952 0.00797307491 0.0900586322 0.0910668299 -0.0848735273 -0.00725993514 0.00212465227 -0.0892110467 -0.0356307514 -0.0331986398 0.0910035297 -0.0916068628 -0.0768691823 0.0355639532 -0.0394534431 -0.0697172284 -0.0192104802 0.0224184617 -0.0671859384 0.0916594192 0.0285309404 -0.0833921134 0.0254286155 -0.0183170289 -0.0336043574 -0.0606503896 -0.0210673437 -0.0478987284 0.0778744891 -0.0369631797 0.0240458474 0.0351337269 -0.0385587178 0.00428506732 -0.0534210242 0.0294136554 0.0899288729 0.0724086538 -0.0864776522 0.00625638664 -0.0517773069 -0.0888751224 -0.0705202371 -0.0827708244 0.0588122085 0.0524879321 0.00425741822 0.0781618133 -0.0641130358 0.0334481075 0.0703524277 0.0752831325 0.071544759 0.000513263047 -0.0265513659 -0.000806130469 0.0687340572 0.0466016904 -0.0663485229 -0.0851268917 0.0674504116 0.00981253386 -0.0289973915 -0.0860676393 -0.0824952349 -0.0404994041 0.00348282605 -0.0723268986 0.0658026412 -0.0613306463 0.0365742072 -0.0428545661 0.0865634456 -0.021910809 -0.0434506126 -0.0745518729 -0.0600758046 0.0447424576 0.0864306018 0.00301717222 0.0632259175 0.0189447477 -0.00329690427 0.045380123 0.0542870089 0.0646838024 -0.0033428818 -0.0552455857 -0.0454471372 -0.038500566 0.0629783943 0.0756536797 0.0675934777 -0.0725216493 0.0221546441 0.0696711764 0.0354071632 -0.0358307399 -0.0210938901 -0.0301877595 0.0597513244 0.0690726563 -0.0129256472 0.078194119 -0.0580401421 0.0519340709 0.0279391482 0.0699511394 0.0875995234 -0.0719695166 -0.0364278406 0.0913907215 -0.0737097934 -0.0813113302 -0.01139009 0.0244242549 -0.00417465717 -0.0439553782 -0.0629906729 -0.0487406962 -0.0761523396 -0.0805508718 -0.0403388366 0.0243016332 0.0287263319 -0.0258165672 0.0898568556 -0.0580778271 0.019596301 -0.0133807138 0.0275892243 -0.0671056658 0.0212966949 0.0631276593 -0.0508081168 0.0570290908 -0.0404553823 0.0149559379 -0.0865125656 0.0700998381 -0.0174093843 -0.019312121 0.0726986155 -0.0272559449 0.0674442127 0.0902874842 0.0245325863 0.00454612821 0.0319959 -0.0566930808 -0.0229374915 -0.0433745421 -0.0880816653 -0.0860738084 -0.0777979121 -0.0397029556 0.00744671375 -0.00141919404 -0.0382518694 -0.00105190277 -0.0807273537 -0.0439384505 -0.0416061543 0.0549824312 0.000733077526 0.0891513601 -0.0741666853 -0.0366500355 0.035457246 0.0826554075 -0.0220620036 -0.0585000068 -0.0166369453 0.0261777416 -0.0721254796 -0.0772719458 -0.0110499188 -0.0713379681 -0.00307677686 -0.045957122 -0.0762010962 -0.0821693689 -0.0086357668 0.0502517 -0.0805056393 -0.0217938051 0.0779001936 0.0141895562 -0.0918103084 0.0807925388 0.0678843334 0.0458130911 -0.0330172293 0.0581349358 -0.016003266 -0.0421842821 0.0599329844 -0.0617097542 -0.0403891765 0.00552047044 0.000465258956 -0.00845464319 0.0588713661 0.0497997478 0.0246144235 0.0292174742 0.0709617957 0.0470078364 0.0160572603 -0.00459455699 0.0227595344 -0.0631615669 0.0673738793 0.0419380292 0.0825865343 -0.0425227806 -0.0642719865 -0.0719911754 -0.028036654 -0.0850462466 -0.00789760053 0.00169672072 0.0217171162 0.0169899091 0.00509011745 -0.0391759351 -0.0431139395 -0.0112759471 0.0377297774 0.0917559341 -0.00066062063 -0.0431769565 0.0921924934 0.0638167486 -0.0632441267 -0.080869168 0.0322583318 0.0371851251 -0.0840883479 0.0735598579 -0.0617544577 -0.0695449561 0.0254168808 0.0802333727 0.0292554423 -0.0812513754 -0.0526037328 -0.0210491419 0.0906755403 -0.0239976421 0.0632049963 0.00146662444 -0.0452903584 -0.0355275236 0.0134429857 -0.0620198771 0.0222200155 0.0274195224 -0.0711124241 0.0812827572 -0.0268277526 -0.00546739995 0.0668841079 -0.0307668112 -0.0314353146 0.0727328435 -0.0476928204 0.0868047103 -0.0339616984 0.025152117 -0.016279541 -0.0861326829 -0.00787455589 0.0121393055 0.0833098218 -0.0249825493 0.0858938769 0.0815517381 -0.0444735922 -0.0875061154 -0.0253408775 0.0841792747 -0.054623127 0.0257159397 0.0504648611 -0.0348157249 0.0252243802 -0.0453312285 -0.0531437397 0.0857731625 0.0855913088 -0.0492263585 0.0205008164 -0.0731141493 -0.0527973808 0.0818439052 0.0392212346 0.0493294373 -0.0797170922 -0.0431763828 0.0524760708 -0.0505100526 -0.0589369163 0.0896855965 0.0372224376 -0.0297261998 -0.0865386426 -0.0355420485 0.0752775595 0.0455086306 0.0565100834 -0.034477625 0.0460503325 0.062996529 -0.0313165225 -0.0222894996 0.000115379691 -0.0473409183 0.0625521317 0.0616857186 -0.0571453311 0.0416474268 0.0659803376 0.0904283151 0.0582353547 0.0704668835 -0.0493052229 -0.0503800139 -0.0590911433 0.0884100869 0.04771965 -0.0112450868 0.0301797241 0.0840249136 0.0628856793 0.0447815433 0.0201413184 0.0393452123 -0.0225291476 0.0126084611 -0.0123401284 0.0409159139 -0.0730977729 0.00103266537 0.0458397642 0.090066202 0.0504851565 0.0532977656 0.0049457103 0.0591124073 -0.0473388731 0.0722167417 0.0215149969 -0.00809589028 -0.0262335986 0.0843194798 0.00643023103 0.0579002723 -0.000958114862 -0.0787473768 -0.0429706946 -0.00345461071 -0.0734487325 -0.0813257471 -0.0865787938 0.0113199651 -0.0654978231 0.0864070877 0.00558271259 0.0507175401 -0.0368868895 -0.082234934 0.0757055357 -0.0643789619 -0.0338723585 0.0228653178 0.0480372235 0.000225543976 0.0527464226 0.0281758904 0.00183624774 -0.0283001214 0.0171079487 -0.0149687752 0.0355022922 0.0572907552 0.0084938854 -0.00301649421 -0.0521756522 0.00563117862 0.0796911493 0.031346105 -0.0807479993 0.0908040926 -0.0572926663 -0.0558933727 -0.0156333148 0.0474167243 -0.0467925481 -0.0508929454 -0.0868526921 -0.0922350213 0.0667543337 -0.0255488753 -0.0804982483 0.0320034698 0.071934931 -0.0392735079 -0.00444772094 0.0147773251 -0.0459783599 0.0105641037 -0.0085195303 0.0420701578 -0.0503181666 0.00181309134 0.0422068164 0.0750583336 0.00638774782 0.0225071386 -0.0492026731 -0.000938504934 -0.0831194073 -0.0215948746 0.0430210158 0.0181855559 -0.00899796933 -0.0808682144 -0.0568427294 0.0713991597 -0.0417287983 0.0772203133 0.0860404 0.0365829691 -0.0142667294 0.00781950355 0.0264247209 -0.0166810527 -0.0365780629 -0.0146991014 0.0145694166 -0.0423374996 -0.0493899621 0.015066959 0.0474083349 -0.0589035265 0.0494321957 -0.0260970667 -0.0652258173 -0.00436291844 -0.0475255214 0.0296456665 0.0185264573 0.0434139892 0.0389553979 -0.0539939813 -0.0592492446 -0.0340344198 -0.00462378561 -0.0810890272 -0.0351647697 0.0501244441 -0.0809343606 -0.0092253387 -0.0392041951 0.0764059201 -0.0271599814 0.0766988769 0.0490340367 0.0678072646 0.0892296657 0.0162436664 0.0133339465 -0.00334517658 0.0395385548 0.022873722 -0.0565000474 0.0905081853 -0.0742935389 -0.0462760963 0.0197456852 -0.0858439505 -0.0527573451 -0.0346379057 -0.040654093 -0.0800689086 0.0504760221 -0.0587130263 -0.0234606341 -0.0529306121 -0.0794478804 0.030959405 -0.0458269939 -0.0303845778 0.0793771371 -0.00403942913 0.0538308546 -0.062569961 0.0319007486 0.0150010586 0.0129875019 -0.00380506366 0.0686234608 0.0145567134 -0.0656976998 -0.040525157 -0.0557713918 -0.0472549461 -0.0680396557 -0.0208754614 -0.000126712024 -0.0761280432 0.00181177258 -0.0240884125 -0.0551297441 0.0263182074 0.0582922474 -0.0911213979 0.062398307 -0.0115816891 -0.0374053456 -0.0532080978 0.0398486927 0.000625468791 0.0609112307 -0.0778358579 0.062118955 -0.0626036227 0.0920777842 -0.00509216636 -0.035024561 0.0788562372 0.088787131 0.0518116876 0.0899663195 -0.0136624724 -0.0677585602 0.00698460639 0.0343962237 0.0472360328 0.0324244872 -0.08065366 0.0288981199 -0.0448651575 0.0878184363 0.0213782191 0.0894389376 0.00686570257 0.0743896142 -0.0424994491 0.077943705 0.0886685476 -0.0535923988 0.0414564386 -0.0195527598 -0.0433004573 -0.0644785166 0.051933445 -0.0530543737 -0.0753610209 0.0555280671 -0.0333712436 -0.0505317114 -0.0551293455 0.065315403 0.0453624353 -0.0195113346 -0.0223067105 0.0812538043 -0.0602965467 -0.030920621 -0.0688016564 0.0088371858 0.0702467188 0.0262278095 -0.0336021334 -0.0125522241 0.0227281004 0.0803690925 0.0769150928 -0.0917373672 0.0679495707 -0.0454499125 -0.0317081772 -0.0811284259 0.0587095097 -0.0910081789 -0.0604518764 -0.0241157785 -0.0667699128 0.0127655938 0.0637432113 0.0922894552 0.0450668409 0.038467817 0.0233140886 -0.00427936763 0.0194537342 -0.0052337572 0.0653059706 0.0238337964 0.0852640793 -0.0681997836 0.00874453783 0.0699258223 0.0554236248 -0.0805903152 0.0371832177 0.0353335664 -0.0107443705 0.063205339 -0.0278853104 0.0857284442 -0.0742333606 0.00190166384 -0.0654488206 -0.0730385855 -0.0103892758 -0.0293717682 0.0012755543 -0.0501208417 0.0673875883 0.0710062906 -0.0446642265 0.0743953362 -0.0231105164 -0.0188207626 0.0256763622 0.0125785694 0.0197884738 -0.0673530623 -0.00486371666 0.0274059474 0.0126009956 -0.0230900198 -0.00877029449 0.0777905211 0.00514835864 0.0427339748 0.0831608102 0.0779224262 -0.0165579319 0.0895369574 -0.0194895491 -0.0428286605 0.0291012824 0.0523602292 -0.0262383521 0.0530983731 0.072433807 0.0595004782 -0.0154475197 0.0881785378 0.0282928348 -0.0560564287 0.07417465 -0.013075456 0.0228853226 -0.0745431557 0.0390798971 -0.0803651214 -0.0366419144 0.0851632282 0.0739284679 0.0742335096 0.0674189553 -0.0310345478 -0.0280441195 -0.0440086424 -0.0493724197 -0.0594761074 -0.0692215264 -0.0333519652 -0.0513449758 -0.0418400615 -0.0198176354 0.0382809713 0.0733479634 -0.00293007493 -0.0494990237 -0.0498556606 -0.0375217386 0.0161399096 -0.00145821273 0.0301151946 0.058988817 -0.0858122334 -0.0244837031 0.0161330625 -0.0189937875 0.0750296488 0.0110167488 0.0649865344 -0.0147221684 0.0238483027 0.00255697966 -0.0144078806 0.00987869501 -0.0326513946 0.00434678048 -0.00910575688 -0.0912124589 0.0865709409 0.00996046513 -0.0631568059 -0.0574353822 -0.0774805844 0.0510197058 0.0423172638 0.035120137 -0.0634342507 0.0586128756 0.0275839642 -0.0907874107 -0.0257838815 -0.0311325602 0.0714497343 -0.0800825506 -0.0236440226 -0.034998171 -0.0141347498 0.0678138062 -0.0535821207 -0.0336458273 0.05018159 -0.0428112969 -0.0320222229 -0.030539114 0.0587953702 0.0301401317 0.0590193644 -0.0724408925 0.0560826883 -0.086479038 -0.0439677462 -0.0804065913 -0.0434923209 -0.0716170594 -0.0806955025 -0.0106515288 -0.0467380062 -0.018580012 0.0253402591 0.0405559316 -0.0769522041 0.0105462745 -0.0596396662 -0.0554891974 -0.00221363455 0.020107165 0.0647808686 -0.0574677624 -0.0753615946 -0.035053879 -0.00249068439 -0.084400855 0.0616878942 -0.0593575351 -0.00931569189 -0.0600622892 -0.0197533891 -0.0103237256 0.0115642175 0.0247928798 -0.0404457636 0.0205183625 -0.0808041468 -0.00544147193 -0.0227871984 0.0338682607 -0.0353564359 -0.000974908471 -0.04568661 0.0142918825 0.00494612753 0.0838255957 -0.0518735796 -0.00668609887 0.0566395745 -0.0651713163 -0.0167979524 0.0693967566 0.0707650557 0.0084855184 0.00738638639 0.0272122547 -0.0706525147 -0.00876529515 -0.0219674855 0.0459974036 -0.00369861722 0.0799308196 0.0303246453 0.0357844755 0.059948869 -0.0874155164 0.0739649162 -0.012289241 -0.0423807688 -0.0882961601 0.0637530759 -0.0718774498 0.0888272449 -0.0187067017 -0.0801445544 -0.0122722909 7.54743814e-06 0.0737548694 0.0640584603 -0.0868951678 0.000347211957 0.0216243416 0.0682585761 -0.0697353184 -0.0271028578 -0.0350287221 -0.0382571742 0.0244046152 0.088741146 0.0555202588 -0.0662222505 0.0538328364 -0.0672546104 -0.0525109358 0.00496476889 0.047855176 -0.0710039809 0.0812410042 -0.0618650131 0.0239599198 0.0403875187 0.00181821734 0.00604442507 0.0804188773 0.00512201339 0.0386061892 0.0423757359 0.0374641344 0.00824552029 0.0536501482 0.0511397496 0.0572581366 0.0297571942 -0.035140425 -0.0648303777 0.00329752266 -0.0439758897 -0.0728800669 -0.0765507966 -0.0786728486 -0.0561809205 -0.0746353343 -0.075402908 0.00458927453 0.0288175866 0.05828356 -0.0122576132 0.0136812255 0.0700724795 0.0131522939 -0.0235075578 0.0611056015 -0.0878529996 0.0382384285 0.0541010126 0.0535724387 0.0208137184 0.00836065412 0.0485227033 0.0382833704 0.00952078402 -0.00892861187 -0.0124427602 -0.0770002306 0.0502525344 0.0224000365 -0.0346260183 -0.00269685686 -0.0520509854 -0.0391297564 -0.00653044134 -0.0505318642 -0.000391833484 -0.0667229444 0.0620194152 0.0302264318 0.0291219056 0.0758978948 0.0496435389 -0.0803359821 0.0215042979 0.0183913559 -0.0895158052 0.0921677276 -0.0186648816 -0.0119348913 -0.0030651316 -0.0346005745 0.00403520465 -0.0219625756 0.083549045 0.00878688693 0.0644620135 0.0862554088 -0.0815654024 -0.0322975069 -0.0326103196 0.0448684767 0.0504640266 -0.0866709948 -0.00393936783 -0.010562323 -0.00704469532 -0.0493459404 0.0698338673 0.0101900995 0.0705829039 -0.066360414 -0.0370077044 -0.0445634164 0.0682713315 -0.0826622248 -0.00998084992 0.0657253042 0.0697497204 -0.000362426043 0.0844845101 0.0651087835 -0.0666489676 0.0468649641 -0.021002017 0.0790424272 0.0644796416 0.0159010515 0.0640321448 0.0827908739 -0.0439102575 0.0748977736 -0.0777142718 0.0612057373 0.0302933678 0.029207103 0.0669379011 -0.024607487 0.079391025 0.0407622978 -0.0493405685 -0.0116271898 0.0745467171 -0.0686146617 0.0458327159 0.036664106 0.0114510357 0.00933167338 0.0730033889 0.086221315 -0.0141810402 0.0506535098 0.0661404803 0.00835575163 0.0907114819 0.00114885718 -0.0815216005 0.0912310407 -0.0122013316 -0.0352262221 0.0508120134 -0.0648527369 -0.0826657936 0.080604203 -0.0446643569 -0.0871823654 0.0841374174 0.0515065119 -0.0182224736 0.0391012952 -0.0861652344 0.0308241695 -0.0580015145 -0.0520684831 0.0187908262 -0.0202495009 0.0165640041 0.0111205727 -0.0447728485 0.0155702531 0.0645535067 0.0221016407 0.0135819614 -0.0797873959 -0.0893095434 -0.0142347664 -0.0743756816 0.0769857243 -0.03205337 -0.0182894915 -0.0826943591 0.00462895632 0.0841446742 0.0391124114 -0.0876864716 -0.0252831429 -0.0579014122 -0.0358768515 -0.0516886488 0.0107495859 0.0799972489 0.0634840801 -0.0748030543 -0.0493912585 -0.0547341034 -0.0208009556 0.0113235116 0.0725854859 0.0718520507 0.0264759585 0.0661447719 0.0430565998 -0.0846289024 0.0492432341 0.015917927 -0.025959678 0.0666608289 0.0789621547 -0.0899379179 -0.0670575947 -0.00658936054 0.0150215775 0.0474496707 0.0521067306 -0.0701392591 -0.0199241042 0.0795802101 0.0381856188 0.0291332603 -0.0845063701 0.0401361808 -0.0887870118 -0.00569908321 0.0250511989 -0.0346600674 0.0772902593 0.0077130869 0.0188431889 -0.0739377365 -0.00378593057 -0.0842785016 0.0586844757 0.0431956574 -0.0491987132 0.0714038685 -0.0286589339 0.0464746282 0.0848503783 -0.0171057284 -0.0741650835 0.0242269933 -0.0101564676 0.000867083669 -0.0900465399 0.0378464386 0.0577179119 -0.066068247 0.0593041852 0.0723210499 0.0490409359 -0.00160295516 0.0462332442 0.0908741131 -0.0651494861 -0.0294538438 -0.0669285655 0.0577306822 0.0121134445 -0.0520457886 0.0194815546 -0.0358232781 0.088041164 -0.0259759873 0.0515053943 0.0528816655 0.00572734326 0.0876067653 0.0898007527 0.0831668004 -0.076596953 0.0863145366 0.0640395805 -0.0210209042 -0.00396221876 0.0297729522 -0.00250032544 0.0717644021 -0.00928866118 0.0227949694 -0.00585434586 -0.074509196 0.0781747475 0.0037843734 -0.00134224445 0.0247055218 -0.0169467032 -0.0689580888 0.0487962738 0.070134677 -0.0742213428 -0.0728625059 0.0717410222 0.00949217379 -0.0448281132 0.0182425231 -0.00992551446 -0.0802623108 0.0822031572 0.0914918408 -0.0794462338 0.0842311159 0.0164964944 -0.0704975426 0.0267510638 0.00917821378 -0.0178493261 0.0731617138 0.00139152259 0.0631359592 0.0129969418 0.0714797005 0.0782173052 0.048612766 7.53849745e-05 0.0169404894 0.0622007623 0.0678007528 -0.0177096277 0.0522590652 -0.086732775 -0.0416298844 -0.0398325063 0.0910973027 -0.0199190825 -0.0528005511 -0.0355700925 -0.0313969515 -0.0354288071 0.072472848 -0.0669747889 -0.0385369509 0.028137356 -0.0570493415 -0.0275382027 -0.0443927273 -0.00511461496 -0.0827315599 -0.0725951865 0.0268457159 0.0324013308 -0.0541866161 0.0731855705 -0.0463924222 -0.0574704036 0.0151055902 -0.0872959569 0.0445124134 -0.0786191449 -0.0778768659 -0.0304116495 0.0409250483 -0.0358301252 -0.0648433864 -0.0485527925 0.0625439957 -0.0548285954 -0.0792557746 -0.0131680518 -0.0622106642 0.0432832018 0.0826400891 -0.0218012184 -0.054222405 0.0732435957 0.0275080055 -0.020500645 -0.0315381251 0.0329481587 0.0165044889 0.0178931728 -0.032134302 0.0810241774 0.00653649122 0.00787065923 0.0710881874 0.0146361738 -0.041272454 -0.0679616034 -0.06034486 -0.0862074345 -0.0628838539 0.0580850914 0.0147799924 0.0844582543 -0.00453384966 -0.0533478633 0.00908008963 -0.0303545557 -0.0247892067 -0.0214003846 -0.0438850336 0.0168652162 0.0174743757 -0.0801567063 -0.0544559807 -0.0394746624 -0.0498396121 0.0573870316 -0.0727188587 0.0662705824 0.0703213438 -0.00397907197 -0.0270381495 0.0816133544 -0.0197378919 -0.0301774144 0.00742875785 -0.0574314222 0.0696484521 0.0584739521 0.0682400391 -0.00976118445 0.0520358458 0.0464627072 -0.0153400004 0.0237426087 0.0845352039 0.00380349904 -0.0166970789 0.0553434864 0.0807123408 -0.0881597847 -0.0340447426 0.0774547532 0.0510779694 0.0777796432 -0.0117325485 0.0629518256 0.0475789383 -0.0455684587 -0.0186095461 0.0859136805 0.080227159 0.0241489634 0.0478183553 -0.0242475942 0.0526294038 0.0498786196 -0.00350723416 0.00711325556 0.0400613919 -0.0636918843 0.0395756438 0.0233555362 0.0649921224 0.000647991896 -0.0293827951 0.0883881226 0.0804045871 0.0254228264 -0.0404982604 0.0390719846 0.043797411 -0.0259296596 0.0720940903 0.0450629815 -0.0731861219 0.0540823117 0.0888478085 -0.0427576117 0.0137879327 0.011112757 -0.017516464 -0.0920028314 -0.0114977658 -0.0349248983 0.0263805836 -0.0293987915 -0.0481813438 0.0634428337 0.0422674641 -0.0576375499 0.0550406948 -0.0909689814 0.032825388 0.0549635217 -0.0318141133 0.0620292947 -0.0807639509 -0.0306058265 0.00438474864 0.00183098763 -0.0693894252 -0.0700616464 -0.0332495943 -0.0453459769 -0.0810164139 -0.0239337906 0.0281826034 -0.0670913309 -0.0793863833 -0.0394526273 -0.0349805616 -0.0644967407 0.0312219635 0.0652426258 -0.0817217156 -0.0385451578 -0.0809853598 0.0678118095 0.01941742 0.0286805928 -0.0358985998 0.0570733175 -0.00738024712 0.00681571662 -0.0901056826 0.0243076831 -0.0295994654 0.0266070738 -0.0747511536 0.078816615 -0.0274662524 -0.0369039252 0.0852012709 -0.0127626881 0.0242614374 -0.0726176128 -0.066457741 -0.0645253509 0.0426993892 -0.0116671324 -0.0248592645 -0.0424301624 0.00326114148 0.0180085078 0.0572861955 -0.0669336766 -0.0200447366 -0.0346393995 0.0623015687 -0.0851687789 0.0716782138 0.0598983839 0.0321683735 -0.0192363635 0.0361264274 0.0400393382 -0.0309536383 0.0900606886 0.0887443349 0.0905001387 0.0176502839 -0.0395576842 -0.0322122164 0.00844376534 0.0323114842 -0.045949921 -0.0618926361 0.0268103629 0.075144358 0.0283029824 0.00439082831 0.028400071 -0.0579389408 0.0851615444 0.0908402577 0.016043894 0.088385053 0.0561600551 0.00341591239 0.0210099444 0.0297931582 -0.0685089231 -0.045790147 -0.0325125493 0.00140921772 -0.00431928784 0.0252242908 0.00454956293 -0.00951305777 -0.0851150304 -0.022265397 -0.0550131314 0.00778567791 -0.0790275708 -0.066573754 0.0383771136 0.0184184536 -0.0665418431 0.0795053914 -0.060397841 0.00942523777 -0.00541778654 -0.0772519857 0.0577338263 0.0101287365 -0.0831120983 0.0184618756 0.0192774534 -0.00675591826 -0.0208119154 0.00106546283 0.0816143081 -0.00851950794 -0.0424078666 -0.0349001363 -0.038659703 0.00392585248 -0.0132947862 0.00418516248 -0.0890480801 -0.0201760307 0.0644967034 -0.0552457161 -0.0673178881 0.00943056494 0.0318217501 -0.0696087405 0.0656501129 0.0450345054 -0.004327856 0.0286676511 0.02130422 -0.0380416475 -0.0646502376 0.0377904847 0.0703573301 0.0160834044 0.0236057267 -0.00799587369 0.0147145763 0.0178275555 0.0897970274 -0.0655885264 0.0331937745 -0.0762033165 0.0826241747 0.00183498859 0.0700420514 -0.0563801341 0.0389150903 -0.00390122086 -0.0904970542 -0.0144922212 -0.00148073584 0.0202573389 0.0476346239 0.00858522952 0.0444657132 0.00422088057 -0.0548148155 0.0592243746 0.0399221554 -0.0587925278 -0.0329605751 -0.0664016828 -0.0639933795 0.0261552855 -0.0793921947 0.0190427825 0.07219816 0.0716079697 0.0503004417 0.0293772444 -0.05912273 -0.077042006 -0.026768893 -0.00414182246 0.0893275514 0.00914222747 -0.0844018459 0.0425550565 0.0312123224 0.0884912089 -0.00573388487 -0.0159001052 -0.0357046649 -0.035234455 -0.0232926905 -0.0697577745 -0.0831040442 0.0020506084 0.0897023156 0.0127443075 -0.0509658232 -0.0889367312 0.0864560381 -0.0847093984 -0.0906933844 0.0472119525 0.0912742391 0.0277163386 0.0189697891 0.0427311584 -0.0383944325 -0.0799558833 0.0882309154 0.0872192308 -0.0462360792 -0.083305791 0.0266098231 -0.0136586428 0.0740923807 0.055721201 -0.0780076683 -0.0566761345 0.0154659897 0.0411189124 -0.0461372994 -0.061469771 -0.0841282979 -0.0890387297 0.0446350202 0.0387718901 -0.0482505448 -0.0817391276 0.0588816479 0.0646423027 -0.0744922906 -0.0572902262 -0.0765260607 0.0867316797 0.040278323 -0.0379081331 0.0520129278 0.0600954369 0.00752107054 0.0160018131 0.0354114994 0.0771289542 0.0146618113 0.0636253878 0.0837518051 -0.0789549351 -0.0642174035 0.0575377271 0.0525682345 0.0309827998 0.0483340248 -0.0539560989 0.0423899069 -0.0100191012 -0.0656792521 0.0119997114 -0.0520427525 0.0147369802 0.0396238193 -0.0328832939 -0.0301948935 0.0400220379 -0.00768390298 -0.037236657 0.0155854821 0.0717411563 -0.0727660954 0.00514382869 0.0440934673 0.0303813666 -0.0208261088 0.0812957957 -0.0543935373 -0.0634360313 0.0826053694 0.0193383396 -0.0848716125 0.0904223248 0.0880489871 0.0667606518 -0.044124838 -0.00904733688 -0.0441937298 0.0446879044 0.0742045417 -0.00875924528 0.0867259726 0.0335649326 -0.00473515689 0.029370226 -0.0686550885 0.0441589579 -0.0274178535 0.0765235946 0.0118641704 -0.00405069441 -0.0600336753 0.0121458173 0.0506032482 0.0439979658 -0.0787050053 0.0756611601 0.0156245977 0.0829022005 0.0609400049 0.0667614564 -0.0654740259 -0.0757104158 -0.069744125 0.0489476398 -0.0503488034 0.0545540377 0.0224330723 0.0146568641 -0.0909647718 0.029430069 -0.0783120543 -0.0794770494 -0.017632477 0.0227540061 0.0516059324 -0.0114794523 0.0375504866 0.0871897116 -0.0207227543 -0.023117885 0.0921838954 -0.00395900011 0.0396954939 -0.0179144815 -0.0126970932 0.0822556689 0.0755250826 -0.0829311907 -0.0855126455 0.037598826 0.0766822025 0.0710997656 -0.00649683177 0.0831539109 0.0562869236 0.00944747031 0.0609066114 0.0909760222 -0.0304705724 0.0719071403 -0.0502193384 -0.0319044665 -0.0195815489 -0.0588118955 0.0749607608 0.0166225731 -0.0842585117 -0.0332032628 0.0832422748 0.0592680797 -0.0626839399 0.00789088756 0.0848939046 -0.0793794766 -0.0276574343 0.0872139856 0.0556635335 -0.00470286608 0.0387161598 0.0911889896 0.0549625233 0.0787141696 0.0269643739 -0.0358769409 0.0564115867 -0.0699966103 -0.012206614 0.0501566455 0.0645736381 -0.0139570832 -0.020504117 0.00142542273 0.0074281171 0.0225102454 0.036249496 -0.0886097178 0.0847397223 0.048442699 -0.0461415015 -0.0226132944 0.0923043266 -0.0728924349 -0.0864232033 0.0123845264 -0.0782592967 -0.0501707159 -0.0101572797 -0.0777636394 -0.066847682 0.0637609288 0.0375878587 0.0223212838 0.0770931318 -0.053100951 -0.071113795 -0.0147229582 -0.0844590738 0.0681217834 -0.00657334179 -0.054692924 0.0912053511 -0.0884421319 0.0308426172 -0.00951483846 0.0860201642 -0.0617290102 0.0875648633 0.0493390784 0.0882832631 0.0282968879 0.0141833276 0.0326824561 0.0335453227 0.00204221904 -0.021401003 -0.0426396132 0.0475394949 0.00247347355 0.0544133708 -0.074207738 -0.000907972455 -0.0475969873 -0.0360090695 0.00586799532 -0.0864673555 -0.0310908295 -0.0460304357 -0.0439231545 0.0211498663 0.0374293402 0.0622629449 -0.0619236492 0.0724221542 -0.0528068691 -0.0835617483 0.0313543826 0.01583682 -0.0230494142 0.0306188762 0.0321404636 -0.0482506566 0.0529622808 0.0519014224 -0.0645031258 -0.0594107136 -0.00809879601 -0.0914436579 -0.0109141991 0.0620819107 0.0916835293 0.0464018211 0.00608365238 0.0412868932 -0.00194935501 -0.035761144 -0.0361958705 -0.0268536806 -0.0618844032 0.0104433969 0.0116936117 0.0191455707 0.079479374 -0.0303210355 -0.0454511642 -0.0708762556 0.0705719218 0.0918412134 0.065259032 0.0216950178 0.0428574458 -0.00385062397 0.0653053895 0.0821041539 -0.0730981678 -0.00811354816 -0.0554386377 -0.084178701 -0.0509072542 -0.0295907706 0.0523470715 0.0779704228 0.0846575424 -0.0722660422 0.0633191541 0.0514578745 -0.033437144 0.0405620858 0.00758262724 0.0237747878 -0.0780086145 -0.065441519 0.0785655752 -0.0339016542 0.0298682749 0.0639519617 -0.0537085049 0.0868114457 -0.0110377669 0.0282979608 0.0157468021 -0.00126271695 -0.0553103387 -0.0513117388 0.0197743848 -0.0331235826 -0.00663880259 0.0385806188 -0.0833882168 0.0591439679 -0.0527346954 -0.0262016878 -0.0682879984 0.0202664286 -0.0273427293 0.0634658113 0.0345452204 0.0398013815 0.0899946019 0.0423657522 -0.0577508807 0.0682500377 0.032089971 -0.0806964934 0.0489018783 0.0760168508 -0.00968725234 -0.0311321206 0.0791377798 0.037373431 0.0125266016 -0.012751326 -0.0420941077 -0.0406406224 0.0844250396 0.0405533537 -0.079384163 -0.0332821682 -0.0587950386 0.00392818451 0.0580134466 -0.0201904476 0.00720884651 0.00393421948 0.0677318648 0.089243032 -0.0904530957 0.0334602818 0.0438959226 -0.0144426152 0.0751524493 -0.0610397533 -0.0152768567 0.0593509749 -0.0144381002 0.0517932698 0.0299286991 0.0506623164 -0.0412519425 0.00610845536 -0.0724826455 -0.0773920789 -0.00055488199 0.0780718997 -0.0554781035 0.0840966329 0.00405910611 0.0165633187 0.0116630867 0.018016167 0.0440670177 -0.0453815907 -0.0766290426 0.0518458858 0.0760654882 -0.00421597064 -0.0908604041 -0.0702050254 0.0233667344 -0.0193518475 0.02442839 -0.0757493973 0.057732217 -0.0170547068 -0.0341898166 0.00546425581 -0.0850390494 0.0316754952 -0.0886460841 0.0195966512 -0.0578814261 -0.0397735424 0.0342405215 0.0184871033 0.0778856501 0.000743642449 -0.0833745301 0.0195601583 0.0768198743 -0.0805955529 -0.0207440779 0.0831063762 0.0220330581 -0.0822014362 0.0601849779 0.0637830719 0.0916128531 -0.069228664 0.0871357247 0.035376288 0.0478841588 0.0159558728 -0.0648284405 -0.0885275304 -0.0267810673 2.09361315e-06 -0.0573460422 -0.0756229237 0.0684826151 0.0575594082 0.00868935883 -0.0140423924 -0.0461172909 -0.0327812545 -0.0581599921 0.0269899666 -0.000181876123 0.0380164906 -0.00973976403 0.0487213209 0.0054006651 0.0389268473 -0.0679334998 -0.0633564442 -0.0839022547 0.0227442831 -0.0863845274 0.0577060059 -0.0715145171 -0.00541105121 0.0518411323 0.0585492626 0.0289710015 0.00362961739 -0.0444144271 -0.0806092471 -0.0129116774 0.0852346346 0.00613643229 -0.0255756825 -0.00731280446 -0.0380656831 0.0164687186 0.0677109286 -0.0391259268 -0.0445274748 0.0777699128 -0.0560322367 -0.00181909651 0.0453710184 0.0827664509 -0.0896386877 -0.0242986605 0.0915259495 -0.0163134784 -0.0197139904 -0.0638058111 0.00823869556 0.0272681564 -0.0619396269 -0.0817572027 0.00853251666 0.0776728466 -0.0592440069 -0.0731721893 0.0535600707 0.0343747959 0.0327042863 -0.0396998934 -0.0593536422 0.0491217896 0.0456651077 -0.0784960166 0.00363790989 -0.0172545388 -0.0162248686 -0.0640112981 0.0574325696 -0.0528756045 -0.0517699309 -0.0101728216 0.00395327806 0.0565405414 0.0306133553 0.0140962303 -0.0802568346 0.0655279234 0.0231169611 0.0685399547 -0.00576084852 0.0914071128 -0.0211961493 -0.047247 -0.0701852366 -0.067032896 -0.0620478541 -0.0165388659 0.0635028556 0.067331396 -0.0764345601 0.0403042957 -0.0891466439 0.0840568319 -0.0753252506 0.0855787918 -0.0758356303 0.0668537095 -0.0125865564 -0.0756303445 0.0886430666 -0.0842864886 -0.0429176055 0.0823298171 0.0655698553 -0.0588940606 0.0755554363 0.0171429217 -0.0821192041 -0.0702197254 -0.0636316165 -0.0836018547 -0.00655524433 -0.0103563219 0.0418514684 -0.0580727197 0.0837718025 0.0842972919 -0.0088140294 -0.0275221393 0.0206763074 0.0922560468 0.0435837731 0.0475135967 0.0191031322 0.02010452 -0.0908159614 -0.0416316204 0.0758484229 -0.0724429637 -0.0104762614 0.000106886029 0.0858999863 0.0158510208 -0.0847117975 -0.000964172184 -0.0100685582 -0.0664920509 0.0405401066 -0.0133690089 0.026971966 -0.0114412233 -0.0854793936 0.0831701383 -0.0226324871 0.0428901985 0.0297399163 0.026442565 -0.0807639509 0.00104232877 -0.0550993457 -0.060623996 -0.0215062797 -0.0166621059 -0.00944332778 0.0830895379 0.036817424 -0.0614985153 0.0432432666 0.0882051215 -0.0311165154 -0.0409025028 0.0863050893 -0.0176707581 0.0552326813 0.011882484 0.0553568974 0.0867616758 -0.00223039091 0.0805701241 -0.0627913475 0.081283398 -0.0809388086 0.0755239204 -0.0765278637 0.0694752261 -0.0236878246 0.0687402859 0.0654898509 0.0751912817 -0.014224112 0.0235026479 -0.0527965017 -0.0467849784 -0.08962024 -0.06420739 0.0851018205 -0.0183598623 0.0890834108 -0.0363567248 0.0598713681 0.0121048614 -0.0645590946 0.0425989851 -0.00388099998 0.06070856 -0.0320171379 0.0637031719 -0.0116537735 -0.0296758413 0.0682671592 0.0869465247 -0.0690621063 -0.055938717 -0.0484456457 -0.0607849397 -0.0592589751 -0.0446309671 -0.0543196909 -0.0140317678 0.0881549641 0.0775444433 -0.0182968676 0.0100835264 -0.0522374138 0.0612234697 0.00951851904 0.00944425166 0.0383972451 -0.0799355879 0.0428159162 0.00807172805 0.0711495802 -0.0898740664 0.062713258 0.0274129882 0.0854378715 -0.0636696517 -0.0138240084 0.0590358302 0.034822531 -0.0310714804 0.0355884209 -0.0131485537 0.0855007842 -0.0147061422 -0.0360234194 0.0334200189 0.0399754271 0.0374752954 -0.0800341517 0.0782754347 -0.0417358652 0.0897920355 -0.076082021 -0.0203595087 0.0783842728 0.069906123 -0.0536793172 -0.0769273937 -0.0336235724 0.0201757029 -0.00975878537 -0.0647073165 0.0915132537 0.0673393235 -0.0397363231 0.0385928974 -0.0733644292 0.0053364858 0.0644211099 -0.00636963546 -0.0379683748 0.0426851735 -0.0419155806 -0.037135981 0.0688525066 0.022233285 -0.078583315 -0.0302739553 0.0151585042 -0.0760697126 0.0863684788 0.009710446 0.0806020871 0.0448224619 0.00629999489 0.0846635029 0.079347156 -0.0380195491 -0.0412872024 -0.0889407545 -0.078981854 0.0297524184 -0.0551969633 -0.0233286396 -0.0293343738 -0.0699721277 0.0555894598 0.0869819298 -0.0719931796 -0.0465626493 0.00720072538 -0.040620856 -0.0504774339 -0.0715046972 0.0159187242 0.0119204298 0.0500876233 -0.0177450404 -0.0859101787 0.0256662592 0.0287842378 0.0428964272 -0.0879076496 0.0524636135 0.024694562 0.048619397 0.0475637987 -0.0346657708 0.0860136971 -0.0662683621 -0.0743615702 0.0769770816 0.00805424899 -0.0713426769 -0.0753751993 0.0816610381 -0.0579784922 0.0729864165 -0.00147031993 0.0786421821 0.0519285873 -0.00362499058 -0.0716717988 -0.00780125707 -0.0715751126 0.0133769736 0.0738341734 0.0666744933 -0.0569001324 -0.070323348 -0.0474837869 0.0287593454 0.0790589079 0.0505698398 0.0329165384 -0.0724719912 -0.0369661264 -0.0313379839 0.00705070049 -0.0334406458 0.0554686412 0.0141500458 0.0388744846 -0.0823223442 -0.0680225939 -0.0380975306 -0.0584020168 0.0148314089 0.0770542249 -0.0069193691 -0.0655881763 -0.0299695693 0.0783558264 -0.00357445329 0.0792099014 0.00518791378 0.0400092229 -0.0500748158 -0.029792428 0.0491592214 0.0764016584 0.0396773145 0.0358728245 0.0530609563 0.0684952214 0.0373619273 -0.0228553861 0.0588645861 -0.0853326246 0.0535984561 -0.0209913254 -0.0506914407 -0.014355652 0.00744015723 0.0420032665 0.0741882548 0.000381857157 -0.0530190915 0.0370491222 -0.0326039605 -0.0132553205 0.035263218 0.00912626833 -0.0921530128 0.0500793234 -0.0136869475 0.0283158794 0.0740195885 -0.0684440285 -0.0412382074 0.0173250586 -0.0172134861 0.0157719776 0.0468919054 -0.00586979836 0.014431566 -0.0105972961 -0.0597704761 -0.0436250232 0.0884477273 -0.0466230027 -0.0576126985 0.0376115367 -0.0664010867 0.0273087695 0.036824517 -0.00316119194 -0.0106306002 0.0838123187 -0.027337186 -0.0392027646 -0.0479362346 0.0675922111 -0.0114795193 0.0080005005 -0.016239062 0.0825185403 -0.0318865292 -0.0266549438 0.0859248117 0.0392713323 -0.012406908 -0.0176950768 -0.0544238016 -0.033339154 -0.00225158036 -0.00610093027 -0.00843595713 0.0891426876 -0.050432995 0.0218941495 -0.0335704386 0.0391612276 0.031934157 -0.0847277343 -0.064030692 -0.00170952827 0.0360642746 0.0729039684 0.0618307367 -0.0487028174 -0.0505268015 -0.076432161 0.0595226362 -0.0685397536 -0.0842550993 0.0177989453 0.082075201 -0.0103889406 0.0733180121 0.0199053064 -0.0147271454 0.0138688907 0.0306828395 0.0649606809 0.0190828592 -0.070899561 -0.0851228461 -0.0153122917 -0.0463888347 -0.066064477 -0.0909982771 -0.00715899467 -0.0207040012 0.0811481699 -0.0373623818 -0.0886977389 -0.0177120715 -0.0602605827 -0.0596092939 0.064535968 -0.0892297998 0.0867727473 0.01450257 -0.0782339796 0.000726699829 -0.0871648639 0.00237772614 0.0611720607 0.0331376716 -0.0215403065 -0.00134386867 -0.0179789215 0.0415385589 -0.00390974432 0.0160327405 0.0578731969 0.0680429116 -0.0540930703 0.00171177834 0.0337080434 0.0668222979 0.0918126777 -0.0264804736 0.0765044615 -0.00117657334 0.0213594884 -0.0185158476 -0.034688551 -0.061231792 0.00909261405 0.0909204707 0.0564253405 -0.0326008573 0.0603467152 -0.0682173669 -0.0533227064 -0.066854611 -0.030757349 -0.0857719779 0.0158302635 -0.0711898357 -0.0772200674 0.0650554523 -0.0249880701 -0.039926447 -0.0619715899 0.0714030042 -0.0397825018 0.015545249 0.068186529 -0.0580149852 -0.0378004797 0.0829857811 0.0754126534 0.0325340107 -0.015867725 -0.025648497 -0.0587190129 -0.0564304069 -0.0274010152 -0.0236573815 0.0334936902 -0.0281777233 0.067175664 0.0133813098 0.0235954449 -0.0151373968 -0.0747717172 -0.028499119 -0.0323427841 0.0801560208 -0.0291592553 0.0907091871 -0.0722725317 0.0726598576 -0.03927375 -0.0552756935 0.0751526877 -0.00105144083 -0.0912031233 -0.0597288758 -0.0618520938 -0.0106208026 0.0835527256 -0.0615665317 -0.0129103288 0.0215593502 0.0818311498 0.0404842421 0.0906733796 0.0219776332 0.0745610967 0.0144493729 0.00819073617 0.0189595148 -0.0366619639 -0.0854627267 0.0915710703 0.01361797 0.0913818255 -0.0591267347 -0.0548084788 0.00617730618 -0.026645571 0.0310155973 -0.0577848218 0.0276535377 -0.0327833891 0.00533434749 0.0302108079 -0.0856447369 0.0829135701 0.0627931282 0.0297260433 0.0413138345 0.0269131511 0.00438787788 -0.0872700736 0.03713689 -0.0718645677 0.0384150371 -0.0317379795 -0.0174937919 -0.0161056817 0.0544148162 -0.0730914772 0.0431120023 0.066412203 -0.0460025296 0.0307890624 -0.0297435448 -0.0420501716 0.0674318299 -0.0829080418 0.0466212854 -0.0500382595 -0.0127916485 0.0121155977 0.0383127555 -0.0502788536 0.0190117881 0.0611316189 -0.0676499829 0.0568914637 -0.0818070993 -0.0162224025 -0.0878189951 -0.0852080435 0.057787247 -0.0710611641 0.0436275378 0.0765599981 0.0535380766 0.0228159875 -0.0784272999 0.0494040325 0.0829300955 -0.045103047 0.0245783702 -0.0701926351 0.0876188949 -0.00720118731 0.0177476853 -0.090568319 0.0377600715 -0.0655927509 -0.00243186951 -0.0401783586 -0.0775230229 0.0280504301 -0.0560379177 -0.0897849724 -0.0292108729 -0.0734278187 0.0618448034 -0.0276285112 0.0678026304 -0.0242764056 0.0455804989 -0.00437501818 0.00555027276 -0.0503022522 -0.038165763 -0.0919182226 0.0252313763 -0.0465687476 0.00918679684 0.00153414905 -0.0830709189 0.0151921585 -0.0607837476 0.0626394674 0.0516785607 0.00911777467 -0.0807171166 0.0669169948 0.0543802455 -0.0860819072 0.0455945656 -0.0114347041 0.0688491985 0.0738190189 0.0628771856 0.0418855771 -0.00876180083 0.0275058076 0.0228347033 -0.0783352777 0.0401563272 0.0740993991 -0.018978864 0.0259214267 -0.0335939676 0.0473670438 0.0331325606 0.0708964393 -0.0300437696 -0.0592124648 0.0363733247 -0.0396327637 0.00594564527 -0.0112985298 -0.0875164345 -0.0143119767 -0.0833059028 -0.056430541 0.0573358759 0.0879505351 0.0629444048 -0.0743996948 -0.0540462993 -0.0486258231 -0.0283663273 0.0141230673 -0.053446006 -0.0497372225 -0.0680294037 -0.0370026641 -0.0161018744 -0.074093923 0.0557959601 0.0123702139 0.0578078404 -0.0845988169 -0.0450251736 0.0545749441 0.0898987576 -0.0747702569 -0.0423039533 -0.0159395263 -0.0660543591 0.0013261959 -0.0223005489 0.0546118841 0.0351987556 -0.0912130997 0.01645796 -0.0601805747 0.0844606534 0.0231166333 -0.010426648 0.0644285008 0.0198628008 0.0669162795 -0.0871430486 -0.0810477361 0.0710794404 -0.0782736465 -0.0303895287 -0.073782891 -0.0828505903 -0.0915771499 -0.0602727085 0.0748454854 0.0858551934 0.0735533461 -0.0105200782 -0.0804142952 -0.0345604718 -0.0419641994 0.0888587907 -0.0533923693 0.0741214976 -0.0428820364 -0.0377893858 -0.0685316995 0.0170930922 0.0638863072 0.0214552805 -0.0519844666 0.00728692114 0.0902241692 -0.0879426077 0.0202294737 0.0806431547 -0.00603424013 0.0124641359 0.00892031938 -0.0332139358 -0.0470824949 -0.0595669448 0.0906843171 0.0314844623 -0.0881622434 0.0287933946 0.0891977474 -0.0795412511 0.0377629027 0.00194457918 0.0666185245 -0.0792614743 0.0208365247 0.0365606323 0.0922026262 -0.0487698391 -0.0873408839 0.0612379387 0.0192479864 -0.0523451529 0.0272264481 -0.0416312702 -0.0596708991 -0.00264546275 -0.0540440306 -0.0576029271 0.0469719544 0.0729163811 -0.0131638944 0.0728077814 0.0450838283 -0.0559322238 -0.0895068422 -0.0317345262 -0.0107814148 0.0228233188 0.0464119241 0.0525898412 -0.0566751845 -0.0834868923 0.0889855996 0.00987202674 0.0199989378 -0.0342270769 0.0696943775 -0.0266934633 0.0771648958 0.0154780746 0.0530981347 0.00901467353 -0.057139609 0.0101746246 -0.0550700054 0.0458170846 0.05980023 0.0336686 0.0651605949 0.0364753976 0.0586586669 0.0430583879 0.0609021261 -0.0339654163 0.00882014632 -0.0716932416 0.090782769 -0.0913194716 0.0700239465 0.0873905644 -0.0524482951 0.0436144397 -0.066561386 0.026761964 -0.0502569117 0.0892404243 -0.0530616157 0.0919601396 -0.0261777192 0.0539452955 0.0820661113 0.0735006556 0.0652423874 0.0730219707 0.082313247 0.0612999126 0.0552620962 -0.0338492915 0.0212400407 0.00165124983 -0.0365223736 0.0729492083 0.0576058403 0.00691155344 -0.0342843272 0.0125920177 0.0304929614 0.0500778332 -0.0222543031 -0.0726679564 0.0646669939 0.0810569748 -0.0221625641 0.0706947073 -0.0329604857 -0.00377334654 0.087601088 -0.0864631906 -0.0143737867 -0.0259462744 -0.0269122943 0.072817035 0.0200258344 0.0382831916 0.0417198464 0.0713574216 -0.0581505038 0.0482900515 -0.040877454 -0.0693977475 0.00115407258 -0.0813046396 0.0255448297 -0.0615085103 0.0420306548 -0.0438579582 -0.0656018183 -0.0630075336 0.0671348646 0.0238295048 0.072865583 0.0299256146 -0.00669362396 0.0410103723 -0.0898211077 0.0143692493 -0.0470357202 0.052136071 -0.0655006617 0.0161795467 -0.0768517479 0.0643235669 -0.00615248084 0.0316934735 0.0203981847 -0.013532415 -0.0266123563 -0.0493861325 -0.0704298615 0.0137228295 -0.025645636 -0.0710573345 -0.00521859527 0.0350695476 0.0570508316 0.0246483162 -0.0551770888 0.0410995409 -0.022676684 0.052123569 0.0147940964 -0.0513254739 -0.0812287256 0.00133860856 -0.0442252494 0.0685336217 0.0525082722 0.0665373281 -0.0374555737 -0.00590688735 -0.0885724351 0.0490387902 -0.0691964626 0.0349899903 0.0493066981 -0.0848620385 -0.071741879 0.0750926211 -0.019478038 0.0690359846 -0.0180794671 -0.092238456 0.0141239017 0.0687527284 -0.0312555991 0.0631453022 0.0759098902 0.04179921 0.0156988129 -0.0102679729 0.0750400051 0.0207193866 -0.0625216737 0.0541631803 0.0453337207 -0.0390404612 -0.00413046032 0.0719777271 0.0470991507 0.0212033913 0.0868242756 0.0518183932 0.0344750062 0.0595526174 0.0685282722 -0.00574985892 -0.00282202661 -0.0474213883 0.0611162558 0.0845004991 -0.090285264 -0.0893801078 -0.053384006 -0.00322077423 -0.00943153352 0.0326434672 0.0463102087 -0.0799949542 0.0300820023 0.0083206445 -0.0391672179 -0.0460829549 -0.0513993427 -0.0095782727 0.0861222222 0.0165833756 0.044298999 -0.00451956689 -0.0480688065 -0.0446277298 -0.0711455345 -0.0453969538 0.0440631434 -0.0869682208 0.0865554437 0.0450346842 -0.00479645282 -0.0635106266 0.0790703967 0.0487107113 0.0732085928 0.0770670548 0.0742812082 -0.00176178664 0.0459085926 -0.0211652517 0.0265090838 -0.00731612742 0.0845943466 -0.0402847342 -0.0574834757 -0.0590013638 -0.0292153135 -0.0403069668 -0.0789581239 -0.0897368342 -0.0604539886 -0.0711025 -0.0334576592 0.0111833885 0.0087230131 -0.0836731046 0.040044643 0.0120727643 -0.0823002458 0.0418786183 0.0285830423 0.0110928193 -0.0174405724 0.0331115201 0.0185983628 0.0278743505 -0.0568687245 -0.0754409656 -0.0205333978 -0.0237112418 -0.0261105821 0.0605789647 0.00643698126 0.0755181834 -0.0922438055 0.0256989896 0.0485202 0.0456760898 -0.0482162982 -0.0184073597 0.0079036057 0.00761085004 0.00364363939 0.0740257725 0.0226111412 0.0783640817 0.00869878381 -0.0595115237 0.0687410906 0.00354357809 0.00756427646 -0.0158829316 -0.0737896711 -0.00403440744 -0.0258608982 0.0599239543 -0.0711385757 0.020946838 -0.0891404599 0.0189688876 0.0719868317 0.0634907708 -0.00139652193 -0.0920674801 -0.0673489273 0.0316995904 0.000839829445 -0.0564609356 -0.00109431893 -0.0491938479 0.0377692655 -0.0372057781 -0.060118679 0.00432512164 0.0316200703 -0.0669298619 -8.38190317e-05 0.0114948377 -0.0195444003 -0.0415995307 0.00809586793 -0.00826530904 0.0574202165 -0.0723961666 -0.0819158703 0.0454738215 -0.0655942932 0.0603346005 0.081127651 0.0869370326 -0.0374879725 -0.0876718536 -0.0297982842 -0.0784385726 0.0460477397 0.0266648084 0.014023602 0.0913704261 -0.0675346926 0.0181623623 0.0127891004 -0.0503200814 0.0581767634 -0.0748850852 0.00134052336 0.0870750621 -0.0810722113 -0.0696156323 0.0299580842 -0.0675390065 0.0164758712 0.0869182125 -0.0454732627 0.0528307781 0.0664571896 0.0405248925 0.0522795692 0.0733958408 -0.0829183608 -0.0057630688 -0.0770279393 -0.0428764895 0.0401962325 0.0530113503 -0.0202365592 -0.0765930116 0.0276582986 -0.034928903 0.0739841983 0.0728642568 -0.0846498609 0.00151361525 0.00841396302 -0.0856918097 -0.0198567733 0.0481808558 -0.0487390906 0.0226824731 0.0466135666 -0.02168791 0.056527324 -0.0153712332 -0.0913490355 -0.0188249201 -0.0144747496 0.0202247873 -0.0299278609 0.0602858886 -0.0526791625 -0.0757184252 0.0872961953 0.0118971691 -0.0052466616 0.073752366 -0.0688328445 0.0262307599 0.053623043 -0.0478524864 -0.00552707165 -0.0349988304 0.017020829 0.0814426914 -0.0231733099 -0.079847239 -0.0415078774 0.0677303448 0.0209020898 0.000892393291 0.0142522007 -0.0790120065 -0.0379544199 0.0881071165 0.0511544272 0.0495405868 -0.0443628579 -0.0861618221 0.090520449 0.000104397535 -0.0354737081 0.063444905 0.00302965194 0.0304938629 0.00972213596 -0.0114921555 -0.0324760117 0.0743105933 -0.0551911294 -0.0505731553 0.0827556327 0.0545415953 -0.00167484581 0.0230112895 0.0784716234 -0.00437838584 0.0280987918 0.0058047995 -0.0807536989 0.0705234483 -0.0523300767 0.00539049506 0.0516765788 0.0689410344 -0.00861192495 0.0209482014 0.0606285259 0.0713931099 -0.0857978165 0.0610720441 0.0625270233 0.0316005051 0.00333137065 0.0648171082 0.0647105649 0.0169360936 0.0778124854 0.0578208938 -0.0563367978 -0.0206079036 -0.024293907 -0.0105765164 -0.0255191624 -0.0735230371 -0.0435975529 0.0471156165 0.0627049133 -0.0556038283 -0.0444119647 -0.00553479791 0.0908057764 -0.0236176327 0.0439096019 -0.0641449019 0.0852469876 -0.0711286739 -0.087991029 -0.0687301904 -0.000535055995 0.0254678354 0.0362865254 -0.0496400893 -0.0483504944 0.0506172851 0.0644204244 0.0446289852 -0.0332002901 0.0123018324 0.0221840292 -0.0470405184 -0.00757360458 0.0489261523 0.0215922073 0.0124454722 0.0631809607 -0.0370742008 -0.0503447987 0.0908744708 0.00957316905 0.0645664409 0.0880595222 0.0869008973 -0.0488298386 -0.0370719321 0.042529963 -0.0609311759 -0.0367596261 0.0792474076 -0.000904917717 0.0323681161 -0.0611275509 -0.0625137985 0.052813895 0.0538368747 0.0334239677 -0.0644377321 0.0726039484 -0.0689607039 -0.0893268436 -0.0520817339 -0.0296778455 0.0262012035 -0.00175445527 -0.0753673166 0.0796130672 0.0407471582 -0.0120501369 -0.0869960636 0.0259400681 -0.038856212 -0.0794154853 -0.00370419025 0.0529540703 0.0188260451 0.0838545784 0.00345802307 -0.0437468514 -0.026155442 -0.00599034876 -0.0768882856 0.0191116482 0.0275202915 0.0840181634 -0.081900157 0.0781973973 0.0118297264 0.00802455842 -0.00220961124 -0.0520444028 -0.0445436314 -0.0798972473 -0.0667828172 0.0822639689 0.0808284655 0.075585492 0.072856687 -0.0776649863 0.0891470984 0.0302034542 -0.0646083355 0.0376683101 -0.0330854394 -0.0322696865 -0.00565680116 -0.0780261606 -0.0632175803 0.0729603991 0.0213800967 0.0301767141 -0.0541327335 0.0227264538 0.0859972909 -0.0422654152 -0.00712656975 0.0509404168 0.0735329464 0.0705943182 -0.0227182657 0.067816712 0.0884231851 0.0819528922 -0.0356671587 0.078798987 -0.0701887384 -0.0177139416 0.0662577525 0.0473455116 -0.0515935607 0.0116118491 -0.0373766907 -0.0142410174 -0.0618538335 0.0612733737 0.0834253505 0.0349682644 0.0591344759 -0.0440246016 -0.0637425035 0.0502451733 0.0292272642 -0.0690999627 0.00984935462 0.092063047 -0.0748079196 0.0152973682 0.0105530769 -0.0263612196 -0.0454601459 -0.0844660252 -0.0632579699 0.0212970451 0.0677484944 -0.00823792815 -0.0221019015 0.054656364 -0.00424896926 0.0263118297 0.00886429846 0.0689947978 -0.0311000496 0.0446271226 -0.00194044411 -0.0256584659 0.0822332576 -0.00641840696 -0.0785874501 -0.00845631212 0.00828951597 -0.00629211217 0.015780516 -0.0689101219 0.00992240757 0.0147119537 -0.0150072947 -0.0112860054 -0.0836632177 -0.0175525174 -0.0436990224 -0.0667589307 -0.0417699814 -0.0621840991 0.03783039 -0.0603804067 0.0739882514 0.078670688 0.071526967 0.0444620326 -0.0170393437 -0.0409660675 -0.0920446292 0.0451370701 0.0895479098 -0.0753441826 -0.0640420467 0.0242174417 -0.0103649274 -0.0272774696 0.0367854014 -0.0922221914 0.0541295931 -0.033057265 0.0170596167 0.0765016004 -0.0743874982 -0.0496931337 0.0358289108 -0.0916525796 0.0107038915 0.0554244891 -0.0532717519 -0.0456347987 -0.0143624693 0.082083948 0.0561494604 0.0320823342 -0.0745303258 0.0409282967 0.00292296708 -0.0368774906 0.0711174533 -0.0703196302 0.0163350701 0.0672714934 0.0245346799 -0.0919293836 0.0251951441 -0.0102009103 -0.0594686456 0.0380249843 -0.00577893853 -0.0208740532 0.0756368414 0.0222705528 -0.0543257445 0.0272604302 0.0901939198 -0.0304151736 0.0665012076 0.0018844232 0.00547417998 0.0734227076 0.0288601518 0.0404510722 0.0194194019 -0.0456373729 -0.0562755875 -0.0762482435 0.0183028728 -0.0811993852 0.036963217 -0.0186352804 -0.0633814707 -0.0720618963 -0.0603592992 -0.0193515643 -0.0482299887 -0.0381827354 0.00200733542 -0.0406120755 0.0495062843 -0.0727195665 -0.0234795213 0.0766530558 0.0204453766 0.0919574872 0.0534320548 0.0418499485 -0.0877121091 0.0753972009 0.0663077012 -0.00644671172 -0.007431373 0.0382560566 0.0495807305 -0.0424644537 -0.047073666 0.0510125533 -0.0166914463 0.0307860747 0.000571087003 -0.0890113041 -0.0688828081 -0.0587597527 -0.0231394321 0.0224492326 -0.0817822218 0.0463220105 0.0792645141 0.0256610885 0.0140885934 0.0118838102 0.0694024637 -0.0824787915 0.022103779 0.0735093877 0.0439257249 -0.0332510248 -0.04475284 -0.0507570095 -0.00581056625 -0.000588953495 0.0857775733 0.00246085972 -0.0152551532 0.0901718661 -0.00411954522 -0.0316996165 -0.0669650584 -0.0694595277 0.0662301257 0.0669043586 -0.0384973735 -0.0205351561 -0.0295686722 -0.0802440047 -0.0772541463 -0.0281542316 -0.051378455 0.0622032955 0.0367977694 0.0182842761 -0.0105938613 0.0472692028 -0.0475760773 -0.00163240731 -0.0203308761 0.0566026345 0.0104599968 0.0726069435 -0.036503423 0.0378401205 0.0901750997 0.0290091187 -0.0305222534 -0.0703308582 0.0219078138 -0.0245574117 -0.0868871808 0.0295273811 0.0679013655 -0.0164322481 0.0745773986 -0.0718500614 0.0487796292 0.0417770669 0.0280014127 -0.0801458135 0.0222993642 0.0695343837 -0.0436413772 -0.0106922239 -0.0265597329 0.0367376134 0.0689287856 0.0605195537 -0.0447984897 0.0922634527 0.0162902623 0.0599492863 -0.00950401276 -0.0716954395 0.0751861855 -0.0820817426 0.0661183372 0.0112277418 -0.0178590119 0.0158254206 0.0904926434 -0.0804221109 0.0777216628 0.022915788 0.0519870594 -0.0313973464 -0.007444866 0.0851922408 -0.0601669066 -0.0428785607 -0.0418200307 -0.0600502044 -0.0153593048 -0.0725645274 -0.0499464981 -0.0654619411 -0.0528723262 0.0463266149 -0.0729512274 0.0696593001 0.00695346296 0.0676797554 0.0116810426 -0.079127036 0.0705602095 0.0191684365 0.0868120119 -0.028655611 0.00967327505 -0.0252692774 -0.0242623687 0.0477025285 0.0681606457 -0.0744190365 0.00224445015 -0.0619739667 0.0615809485 -0.0689539909 0.0583508387 -0.0881423056 0.0917908028 -0.0152005851 -0.0543807708 0.0327793583 -0.0421785377 0.0035354346 0.0341924056 -0.0281716883 -0.0144303739 -0.046240747 -0.022204563 0.0524763539 -0.0533858091 -0.072972469 -0.0655883253 -0.0177867487 -0.0375518724 0.0217086896 -0.0161272287 -0.0708069876 -0.0359364785 0.0521655008 -0.0120479837 0.0895371065 -0.0596368723 -0.0186956301 -0.0617564581 -0.0296272635 -0.0686997026 -0.0318756551 -0.0074512735 -0.027714245 0.0734042004 -0.0217153579 -0.0613463819 0.0347120985 -0.0649496913 -0.0142504573 -0.0610628426 0.0268740803 -0.0245531872 -0.0659095719 0.0256090537 0.034154661 -0.0157359019 -0.0118797123 -0.0796989352 -0.0505942218 0.049961172 0.0254614502 -0.076663889 0.0393677279 0.0355409309 -0.0246424675 -0.00411829352 0.0367907956 -0.00190734118 -0.032542441 0.0278224051 0.0706791803 -0.0152838975 0.0703225806 0.0622839555 -0.0111314431 -0.0300283618 0.0343665406 0.0569650456 0.0892429426 0.0392207876 0.0835115686 0.0262790099 0.0787591562 0.029530108 0.00923788548 0.0414301381 -0.0221488774 0.0517969802 0.00642956793 -0.0496866852 0.0143547431 0.0790200159 0.0197795779 0.00683040172 0.00404202193 -0.0530380234 -0.000162787735 0.00883720815 0.07953123 -0.0204315931 0.0208514482 0.0439179316 0.0302426293 -0.0672334582 0.0683573112 0.0809466913 -0.0847750306 -0.0297976658 0.0168428123 0.091798313 -0.0793500915 0.0338031277 -0.0510316119 0.0605824366 0.0904230252 0.0190057829 -0.0869564041 -0.0313964225 0.00315918773 0.0383437648 0.0388855562 0.0756233409 0.0498713925 -0.0182568282 0.00490058959 0.0870034173 -0.00354178995 -0.0263826326 0.0889553055 -0.0142111257 -0.0816921145 0.0556161776 0.0456405804 -0.0511007048 -0.0360564999 -0.0524316318 -0.0709052831 -0.0199208409 -0.0388516337 -0.0885199606 0.084773846 0.00101771951 -0.0313709565 -0.0196761563 -0.0294993594 -0.0117410943 0.00858666003 -0.0910201073 0.0468685701 -0.0292739049 0.0525492951 -0.00400330871 -0.0438637473 -0.0365245305 -0.0543951876 0.051482521 0.00552973896 0.0519922748 0.0855282769 0.0154593438 -0.00866699964 0.0830419883 0.0609323606 -0.0394538194 0.0649011657 0.0497544929 -0.089406848 -0.0535491258 0.0118296146 0.0327877626 0.0836895034 -0.0247468576 0.0664213076 0.00853528827 0.00697754323 -0.00111036003 0.0862105712 0.0900658295 0.070247598 -0.0418620482 0.00805565715 0.0198088065 -0.0212637931 -0.0404696874 -0.0355568863 0.0454728678 -0.042940937 -0.0185066238 0.052196674 -0.0789706111 0.0558743402 -0.0482885353 0.0739111081 -0.0907555446 -0.0263437405 0.0175912306 0.0751201436 -0.0253414959 0.0429460928 -0.0583883263 0.0754267946 0.0714309886 -0.0504599586 -0.0431454815 0.0642972663 -0.0343447253 0.0592511818 0.024288252 0.0271836147 -0.0683403015 -0.0136008859 -0.0425787345 0.0353546962 -0.0755971968 -0.00806162506 -0.0350443721 -0.0542404093 -0.0640652478 -0.0448141173 -0.0552231781 0.0131095722 -0.0690628812 0.0805178955 0.0681599602 -0.0018222481 0.01813934 -0.0322655924 0.0585005358 -0.0654175729 0.0900635347 -0.0117100775 0.0716981217 0.0284681469 0.0453929529 0.0675659254 0.0236284658 0.0303775594 -0.0103677884 -0.0670388415 -0.0632821172 0.0113364309 0.0188388526 0.00897461921 0.0671779737 -0.0314376019 -0.0822283104 0.0506937131 -0.0101739913 0.0686552897 0.00589191914 0.026980415 0.0566747263 0.0428963378 0.00986038148 -0.0603689179 -0.0530635528 0.0836858377 0.00211524963 -0.0238324329 -0.0201861337 -0.0580364242 0.0565431938 -0.000925384462 -0.00591201335 0.053049989 -0.0737430975 0.092080228 0.040350087 0.0341226682 0.0326114893 -0.0227506384 -0.0724900216 0.0824951008 -0.0717741549 0.00670641661 0.0813994631 -0.00583939999 -0.0488711745 0.048764132 0.0251174942 -0.0686883256 -0.0689650401 0.0705242679 -0.00649374723 0.0903036967 -0.0891901776 -0.0895108059 0.0389191583 -0.0470980108 0.0154423937 0.0230079666 0.0532485023 -0.0061121136 0.0528750047 0.0142345726 0.019133158 0.0117790997 -0.0211688131 0.0714278445 -0.0880356207 -0.0618006103 0.0724147931 -0.0037464276 0.0361079201 -0.0570251532 0.0604195371 0.0129114762 -0.0394826941 0.0881538317 0.0040140748 0.00843846053 -0.0162395015 0.0329913422 0.0810236856 0.0625335351 -0.049557507 0.0382130817 0.0381846502 -0.0769663975 -0.0029437691 0.0514554307 -0.0800024122 0.08602155 -0.0346651971 0.00208952278 -0.0852481946 0.00123245269 -0.0424025841 0.0227510184 -0.0555479191 -0.0779773444 0.0664920285 -0.0150747746 0.057144545 0.0486264005 -0.0678769127 0.0811693445 -0.0627790242 -0.0539901517 -0.0328208283 -0.0577545352 0.0496232882 0.0791065916 0.0502224788 -0.0263533592 0.0665612295 -0.0653316826 -0.0693557709 0.0215616152 -0.0220227093 -0.00116864592 -0.0524776354 -0.0301892795 0.0871751234 -0.0763709247 0.0638226196 0.0457176045 0.0451567546 -0.0308638774 -0.0752480179 0.0851385966 0.0117572024 -0.0826441348 -0.0257428139 -0.046848543 -0.0369840227 0.00466699153 -0.079453893 0.0434046313 -0.00311560184 -0.0559731834 -0.0901549459 -0.0140347555 0.05463361 0.0544632897 -0.0535473861 0.0632629022 -0.083046861 -0.0469819047 0.0147579983 -0.0810211673 0.0527758077 0.0589640066 0.0260259956 -0.064003706 -0.0264161527 -0.0430907197 0.0497529134 0.0436553732 -0.0739485025 0.0440015271 0.0225599185 -0.0199693516 0.085598968 -0.0520535819 0.00739010423 -0.0280496627 -0.065447174 -0.0763443857 0.0816825107 0.0507309958 0.0224116147 0.0384397581 0.0405684784 -0.0120549351 -0.0868133381 -0.0671203434 -0.0663364828 0.0498647317 0.0490291491 -0.0329206474 0.0396154001 -0.071690008 -0.0481032059 -0.0772336274 -0.041588679 0.0868264362 -0.0355280526 -0.0129173324 0.00816550851 -0.0864265412 0.0668802932 -0.0890823752 0.076355584 -0.0564955585 0.05098515 0.0894140974 0.0253180116 -0.0590062924 0.0907529518 0.0251428932 -0.0297635943 -0.0674311519 -0.0778274685 -0.0493084565 -0.0163493827 -0.0395992845 -0.0874005109 0.0397647843 0.0804061964 0.0310087502 0.0237004608 0.0838164613 0.02118323 0.00550081581 0.065246366 -0.0566223375 -0.0259543285 -0.00669188797 -0.0828879625 -0.0045382753 0.0503111854 0.0685517117 0.0349838808 -0.00340792537 -0.0211836472 -0.0281256884 0.0880859569 0.0181402862 -0.0638133585 0.0232851878 0.0746195391 -0.0276568457 0.0831631795 0.0584831014 -0.0486355536 0.0305097103 -0.000537894666 0.0574412867 0.0673410818 -0.0260863304 0.0733776614 -0.0607857294 -0.0439467058 0.0725129619 0.063184984 0.0384882465 -0.0479609109 -0.0126846358 -0.0169831514 0.0707174316 0.00620739162 -0.0277129933 0.0664050207 0.00051240623 -0.0362909362 -0.0142272189 0.0658699796 0.0204442069 -0.000996127725 0.0860739425 -0.000931859016 -0.0761339664 -0.0495027006 -0.0160702392 0.0146422461 -0.0220759735 -0.0862460136 -0.0614947975 0.0803798065 0.0848170146 0.0324693471 -0.0147393122 0.0327111706 -0.0660006925 0.070573695 0.0696947947 -0.0593676828 -0.046141129 -0.0837409347 -0.0255396515 -0.0550968163 -0.0884039253 -0.0606467351 -0.0630084127 -0.0870521292 0.0784801021 -0.0633750632 -0.0495128036 -0.0376825258 0.0773480013 0.0878670141 0.0452430323 -0.0241522938 -0.0686887875 0.0221209452 0.0400545523 0.0413754657 -0.053641811 -0.0720368475 -0.0783692822 0.0607574061 0.0310441405 -0.0761300698 0.0754522607 -0.0687107593 0.0783384517 0.0364509001 -0.0154628381 0.0612787828 0.0783269927 0.0227225572 -0.0589625575 0.0832321271 0.0830375776 -0.0123808235 0.0298894271 -0.0824982896 0.0185966939 -0.0542715527 0.0250043347 0.0725829974 -0.00350921601 -0.0909245834 -0.0331600755 -0.0676753148 0.0249961093 -0.0761928186 0.0437655821 -0.0766835883 0.0310082212 -0.0499422476 -0.00717752427 0.0888001546 0.0646087304 -0.0355058201 -0.0546344407 0.0192920938 0.0461045876 -0.0776384696 -0.0115287527 -0.0480541885 -0.00376889855 -0.0333721265 0.0277993158 -0.0537980869 0.0872204229 0.0866954103 -0.0211227238 0.00952228159 -0.0801012665 -0.0117310509 0.0370195433 -0.0718799755 0.084262453 0.0563857779 -0.0624830686 -0.0169433951 0.0287426189 0.062301062 -0.000447645783 0.0796488747 -0.0366948918 -0.01559636 0.0202459842 -0.0449091569 -0.0654616803 -0.0146806091 0.025485374 -0.0890888423 -0.0786711127 0.006790407 0.0691601858 -0.0647591501 0.0822175965 -0.004726246 0.0736627802 0.0542138889 0.0479430333 0.0668798313 -0.0565149076 -0.090094462 0.0269762576 0.00486477464 0.0110367984 -0.0528253987 0.0350924656 -0.00215473771 -0.0398332104 -0.0284872726 0.0447816029 -0.0240188837 0.038786836 -0.00570854545 0.0856074914 -0.0723856464 -0.0165488794 -0.0612709522 -0.0142591298 -0.0863330215 -0.0558361486 -0.0469753258 -0.0110374391 0.0132547095 0.00174397975 -0.0114672557 0.0342648253 0.00250349194 0.0454369411 0.0538903996 -0.0492744744 0.0750434175 -0.0288215503 -0.0572289489 0.0666239187 -0.0561154149 -0.0561135672 -0.0844333023 0.00876604766 -0.0508018471 0.0380753949 0.0359432325 0.0791516826 0.051115118 -0.0570109785 0.0182798505 -0.0133305117 -0.0717975944 -0.00860136002 -0.0435519703 0.0548156574 -0.0819140226 0.0638698414 0.0210384876 -0.0808650255 -0.0526516065 0.000330843031 -0.0206597596 -0.0620609522 0.0502569601 0.0575370267 0.0296823978 0.0800338611 0.0570129529 -0.0290039033 -0.0565940998 -0.0318536684 0.0118505955 -0.0708571076 0.033374764 -0.0571880303 -0.0483376198 -0.0394981243 -0.0234343335 -0.0488775782 0.0752712414 0.0474987105 0.00714288652 -0.0719314367 0.0738494471 -0.0500840843 0.00819315761 0.0562868789 0.0617735609 0.0703633204 0.0619169548 -0.0794915482 -0.0557105318 0.0597009733 0.0160568804 0.0285236388 0.00605752319 0.0556393489 -0.0325777456 -0.0239956826 -0.00525130332 0.0479384139 0.0549651906 0.0111418962 -0.0537618138 -0.0134985372 0.0252318829 -0.0682305545 0.00912827253 -0.0356718674 0.0264403671 0.0657369569 0.0540639684 0.0210007653 0.032329157 0.0880703256 0.0822671577 0.0896300301 0.0548125282 -0.0630861744 0.0786890462 -0.0702256039 0.0552534238 0.0778025761 0.0495430157 0.0055309236 0.0164949819 0.0770832822 -0.0298398398 -0.075554274 -0.0720218569 -0.0618621297 -0.0893208086 0.044280149 -0.0631872043 0.0403253064 -0.00531951338 0.00306344032 0.0639625713 0.043620728 0.088439621 -0.0369037949 0.0115216002 -0.0181588605 -0.016098991 -0.0572860651 0.00321487337 0.0455839708 -0.0791561306 -0.0823128074 0.0175881758 0.0220423415 0.00852619857 -0.0662376136 0.0481200889 0.0755910352 0.0307288244 0.0712126866 0.0814708695 0.0874799266 -0.0394362956 -0.0828368813 0.0722338632 -0.0748635605 -0.00286642462 -0.0301167108 -0.0432416424 -0.0815364122 0.0445092097 -0.0773023888 0.0101161897 0.0406464711 -0.0603844337 0.0237967521 -0.0104219839 -0.0299742818 -0.0902604833 -0.026312463 -0.0666840523 -0.00559490919 -0.0486024693 -0.0661960393 0.020053722 -0.0564982444 0.00144177675 -0.0314598568 -0.0862554163 -0.0579844564 -0.00451850891 0.0129373595 0.00163914263 -0.0365249291 -0.0478198901 -0.0563684478 -0.0467557274 0.075459756 0.0179304779 0.0469307378 0.0741849616 -0.0463614538 -0.0478969924 0.0827819481 0.0584750548 -0.0849404857 0.0482282713 -0.0345373154 -0.0873374939 0.0176920816 0.0328068808 -0.0194160566 0.0877269283 -0.0542585701 -0.00525294989 0.045518674 0.0442689881 -0.0794172436 -0.0397077091 0.0278742164 -0.0707035363 -0.074438408 0.0803576633 -0.0462791771 0.0572967157 -0.0338918157 0.0637844577 0.0421306267 0.0150690749 0.0734660551 -0.0656976327 -0.0880680829 0.0479946062 -0.0676590726 -0.0401908383 0.0469044074 0.0282169431 0.0695056245 0.0152500421 0.021499984 0.00945963711 0.053615205 0.0783659592 0.0616961494 0.0609355941 -0.00900371373 0.0423286781 -0.0534681492 -0.030833371 0.00179792196 0.0095185414 -0.0840482712 0.0864886865 0.0179206431 0.0117302611 0.0804432109 0.0503242388 0.0145941973 -0.0539151393 0.0837805793 -0.0581191182 -0.0259805024 -0.00410620868 0.0856504068 0.0778246745 0.0614859983 -0.0790708661 0.0445003286 0.08683189 -0.0502158403 0.085393928 -0.00684059411 0.0319296941 0.0677739605 -0.058425393 0.0363990739 0.0876396373 0.0258995891 -0.0110393539 -0.0876360238 -0.0444116779 0.060791336 -0.0829329789 -0.0181582645 -0.0664350912 0.00191618502 -0.0381467491 -4.03672457e-05 0.0746679381 0.0655115619 -0.00266765058 -0.0378301032 -0.0507256016 -0.0103331059 -0.0432452112 -0.00780746341 -0.0466120429 0.00508459657 -0.0389730856 -0.000406511128 0.0892146602 0.029612869 0.0564009771 -0.0356722437 -0.014194265 -0.0201072916 -0.0143026263 0.0528861955 0.000406555831 -0.00364200771 -0.0155769885 0.0580941513 0.0553532764 0.0399496481 -0.0195108131 0.0378882959 0.0588131323 0.0819900855 -0.0324214697 -8.56220722e-05 -0.000772856176 0.0761669949 0.0692587271 -0.0646586046 0.00589561462 0.0585463867 -0.016083777 -0.00365085155 -0.0346039422 -8.59498978e-05 -0.0823089555 -0.0346068032 -0.0160967857 0.0271416008 -0.0541223027 0.0202728808 -0.0858980715 -0.0266414806 -0.0322794802 0.0324701369 -0.0589341857 0.0471008047 0.0140480995 0.0563283041 0.0215859339 -0.00155079365 0.0252430886 0.091457881 -0.0764006823 -0.0545263924 -0.0132630914 0.0623580292 0.0189669952 -0.0597852655 0.0635859892 -0.0655088499 -0.0575416721 0.00191576779 -0.0615283623 0.0902926251 0.0431364104 -0.0892308131 -0.00373022258 0.0345097557 0.0108771101 -0.0515527986 -0.069291696 0.0562909022 0.0411431268 -0.0295645595 0.0107622445 -0.051202327 -0.0586092249 0.0104325041 0.00813326985 -0.0283024758 -0.0126644745 0.0439791903 -0.016288124 0.0262021944 -0.0806032568 -0.0485200211 -0.0121928751 0.0105933994 0.00309599191 -0.0108502358 -0.071443513 0.0194289982 -0.0216949508 -0.0343140848 0.000276386738 0.0364625975 -0.0604632534 -0.00966601074 -0.0576064289 0.04911194 0.0665986761 -0.0206172317 0.0313305035 -0.0750739872 0.07261803 -0.0655271858 -0.0299606547 0.0834103152 -0.0507338122 0.0319947526 -0.060248211 0.0379660353 0.0258262753 0.0622046813 -0.0378130041 0.0563078597 0.000474080443 0.092231892 -0.0148804858 0.0299066454 -0.0762519389 -0.0142956674 -0.0804007128 -0.051552467 0.0804629102 -0.0374722593 0.0445627198 0.0343697891 0.0869653597 0.0426218733 0.0432299152 0.0472186282 -0.00265035033 -0.0363228954 -0.022048153 0.0518865809 0.00371792167 -0.0835170224 0.0394174829 -0.000395044684 -0.0509123392 0.0265669078 -0.0597095713 -0.041744072 -0.0704444796 -0.0101560056 0.0337566063 0.0318901613 0.0725406036 -0.0562506914 0.0547675118 -0.0575345419 0.0125546232 0.0733154193 -0.0126398429 0.0709982887 -0.0477769449 0.0294166654 0.0665562227 -0.0510064997 -0.0556321107 0.000923424959 0.031744428 -0.0129036829 -0.0162604377 -0.00727571547 0.0697542951 0.0254225358 -0.0783085302 0.0832495317 0.0529438332 0.00703378022 0.0829004869 0.0246813372 -0.0452850983 0.0878981724 0.0022662878 -0.0471291542 -0.0312070437 0.014921844 -0.0630512685 0.0544905141 -0.0643496215 -0.00901826471 -0.0307137892 0.0843010768 0.0611245111 0.00110688806 0.0228896588 -0.0881430954 0.0249259993 0.0202664509 0.0707899705 -0.0827272907 -0.0662536174 0.0524546579 -0.0204994306 0.00828507543 -0.0739327818 0.0249063671 0.0528650805 0.0244461969 0.00546128303 -0.0641501844 0.0709702149 -0.0745509714 0.0430178568 -0.0476720668 0.0089559108 0.065780811 0.05652944 0.0522598699 -0.0404798798 -0.0103127435 0.0863810256 -0.0203378499 0.0856271461 -0.0219334811 -0.0109330416 -0.0158518329 -0.010987252 -0.0761198997 -0.00416066498 0.0541453287 0.0575259402 0.0207530186 0.0204137862 0.0433383211 0.00954288244 -0.0198915675 0.0152170956 -0.0784794688 -0.0840732753 0.0471826866 0.0766064152 -0.0291932151 -0.0468133278 -0.0477724113 0.0680650994 -0.0249482319 0.0267140642 -0.0145488381 -0.0603933074 0.0596776083 -0.0337780006 0.0490672663 -0.04900546 -0.0301229842 -0.0606570132 -0.0876602083 0.0712443516 0.0407622978 0.09048035 -0.0807182789 -0.084344089 -0.0163253471 0.0352757946 -0.0744902864 0.0418309495 0.0133081451 0.0180554539 0.0495201573 0.0542288348 0.0605637804 -0.022125937 -0.0672822297 0.0479239598 -0.0744469017 0.0308782086 0.0256479681 0.0336574242 0.0075668022 -0.0757317245 -0.0296164155 0.0693053678 -0.0157060996 -0.0149378926 0.0198138505 -0.0612910688 -0.000790067017 -0.0749294162 0.0872528031 -0.0564223975 0.0761914924 -0.0875161514 0.0294622928 -0.0206037387 -0.0742683783 -0.0391575135 -0.0750113651 -0.0638088286 0.0753615126 -0.038726218 0.0205898732 0.0610269383 0.0200911835 0.0344036445 -0.000726386905 0.0178945139 0.0383046791 -0.0650412142 -0.0156081095 0.039039664 0.0897350535 0.0146079957 -0.025656797 -0.068449825 0.0433366671 0.0465680882 -0.0196734667 0.024570249 0.0723638162 -0.0195431411 -0.0700141266 -0.0290503725 0.0655131117 -0.0314052477 0.0561004505 -0.0292638466 0.0676659122 -0.0526599474 0.0858177617 -0.0146469995 -0.081638515 0.0274277553 0.0806225762 -0.0182333663 0.0499647036 0.0302011445 0.0237428099 0.082108967 -0.045173876 0.0610889271 0.00461504608 0.00225446373 -7.51018524e-05 -0.0548746847 -0.0864619389 0.00492070615 0.0659415498 -0.0658756346 -0.0736430585 0.0586962774 -0.0470266305 -0.0794038847 -0.056140244 -0.0312384516 0.0693701431 -0.00701726973 0.029726401 0.0136628225 0.00785472244 0.0278726742 -0.047241915 0.00988192856 -0.0095558688 0.0521236137 -0.0233723298 0.0878590271 -0.091711767 0.0274115577 0.0781187192 0.0889619514 0.0624047741 0.0477343723 0.0287879854 0.0443562493 -0.018955417 -0.0921145603 0.0752635822 0.0221054479 -0.00734980404 0.0395550504 0.0228159651 0.0367527083 0.0228143409 0.0301650912 0.0561948046 0.056259878 -0.0551508069 0.0630256757 -0.0444458388 0.0358968601 0.0753717795 -0.0650056899 0.0497604385 0.0784539357 -0.0807009414 -0.0521199852 0.0896131173 -0.0246348679 0.037145026 -0.0772613436 0.044829078 -0.0129294395 0.0564827546 0.00561093539 -0.0429767706 -0.0812349543 0.0484880432 0.0487974659 0.0649892911 0.053078033 -0.0388310738 -0.0557280965 -0.0387296937 -0.0825978667 0.0553153828 0.0427095369 0.0173675641 0.0784688368 -0.0722199082 0.0874736682 0.0880322978 0.0554679707 -0.0876339078 -0.0732665509 -0.0432177633 0.0679571107 -0.0393268168 0.0475260541 -0.00380772352 0.0718101636 0.0297219306 0.00484155864 0.0637172684 -0.0478335135 -0.028398484 0.0910812095 -0.0757536888 0.00525379181 -0.0123113617 -0.0791921467 -0.0152432621 0.0371359214 0.0541292951 -0.0807433128 0.0433523282 -0.0472057313 -0.0749918818 -0.0770457685 -0.0136387646 -0.0382770486 0.00537249446 -0.00821325183 -0.0389936902 -0.0896427408 0.0332432911 -0.0397228301 -0.0905197039 0.0390296504 0.038498424 -0.00178872794 -0.0795452818 -0.091717422 0.025177516 0.0364510193 -0.0168474987 0.0708702877 0.0472502187 -0.0801413432 0.0568226352 -0.0613038987 0.0574369654 0.0820891187 -0.0550096743 0.0332666114 0.0223004147 0.0610036179 0.0551038608 0.0879233703 -0.0657584891 0.0862714872 0.0735432431 0.032907553 0.027695775 -0.00848785788 0.0794123188 -0.0820285454 0.0207868442 -0.019307144 -0.0121305659 -0.0396097191 0.0305236205 0.00120133162 -0.000525809824 0.0775318518 0.0225948095 0.0283757076 0.0266166478 0.0169405118 -0.052318763 -0.0160065666 0.0159751326 0.0546982661 -0.0381785296 0.00754380226 -0.0368221588 0.0138865188 0.0051722005 0.053707622 0.0266654491 0.0122755021 0.000229150057 -0.032171037 -0.0710829571 0.0502658859 0.0285374373 -0.076263167 -0.0402775146 -0.0689157844 -0.0676574856 -0.0138111338 -0.0604269169 -0.0878307223 0.00807872415 -0.0701710433 -0.00842023641 0.0586579069 0.00365006179 -0.021655798 0.0659761503 0.025116019 0.0606091693 0.0156264678 0.0518877283 -0.0329263471 0.0577278808 0.0340341553 -0.056286525 0.039536275 0.0203353241 -0.0777004957 0.0546018258 0.0283517987 0.0920240656 -0.00936125219 -0.0213244259 -0.091083169 -0.0770907402 -0.0185671076 -0.0880464315 0.0208161399 0.0915260389 0.0778809115 0.0215993598 0.0832250491 -0.0477302186 0.0504507944 -0.0442319401 -0.0216875598 0.0332833603 0.0427487865 -0.0834690183 0.0645336285 0.0234726295 0.0567494109 -0.0479404405 -0.0131835714 -0.0156790316 0.0920737013 0.0869054422 0.031343773 0.0649756417 -0.0791042969 -0.0378034487 0.0446559712 0.0608273074 0.0611459985 -0.0737676844 0.0417314544 -0.0818357542 -0.0768629909 -0.0307011344 0.0641089156 -0.0610259734 -0.010701865 0.0577326789 0.0151567012 -0.0803471208 0.0198379979 0.0816326216 0.0678574964 -0.00741374493 0.0820302442 -0.0730780512 -0.0778919384 -0.0697544068 0.0787556097 0.0236246809 0.00431671739 0.0269435048 -0.0657576099 -0.0694687068 0.0721616521 0.0225097835 -0.00154742599 -0.0207874402 -0.082132414 0.016059041 0.022254087 -0.0353308804 -0.0479665659 -0.00841442496 0.0539846495 -0.0376841761 0.075117521 0.0885528848 -0.0768453628 -0.0843387842 0.0309180245 0.0824579671 0.0894512758 0.0512156412 0.0349785015 0.00472225994 -0.00384642184 -0.0452866592 0.0313478038 -0.0664727315 -0.0913389325 -0.0445887297 -0.0701377392 0.0195763558 0.025415495 -0.0458522849 0.0231141001 -0.0174581781 0.0912700668 -0.0923158675 -0.00315114856 0.0247083008 0.0677550361 0.0350424275 0.0252107307 -0.0694334209 0.030509904 0.0224964023 0.081245698 0.0399827138 -0.0718622357 -0.055126112 -0.0315685198 0.0211488307 0.0754674897 -0.0285541862 -0.0126911253 -0.0339962766 0.0912193879 -0.0820900872 0.00556431711 0.0606149361 -0.0208852068 -0.0544544384 -0.0830840766 0.086537011 -0.05086473 0.0785531178 -0.0558408797 -0.0589033961 -0.034299098 -0.00774900615 -0.064567171 0.0914251432 0.0389785692 -0.0314724892 0.00942143053 -0.0598353855 0.0554245785 0.0806139484 -0.0905338526 -0.0256284699 0.0673783049 -0.0320646614 0.0593118593 0.00331640244 0.065302901 0.0472051576 -0.0435058363 -0.0401921384 -0.0301321186 -0.0809838176 0.0617820397 0.00813865662 -0.0783568025 0.0314299688 -0.0440261401 0.083802186 -0.0696517676 -0.048427552 -0.084964633 0.000546649098 -0.0100910515 0.022815004 -0.0196062252 0.056381084 -0.032865487 0.0119991228 0.0454611406 0.0488160774 0.0647535399 0.0227744132 0.0770061687 0.0415010527 -0.0606850982 0.0392168537 -0.00788150728 0.0661441162 -0.0671588629 0.0460424349 0.0031979233 0.0100888982 0.0133168399 -0.0667241141 -0.00585337728 -0.089877218 0.070115529 -0.0756862462 0.0726521686 0.052602984 -0.0087473169 0.0245682001 -0.00778383017 0.0758434758 -0.0104906112 -0.0728569105 -0.039516855 -0.0423105806 0.0734828487 0.0734237209 0.089332141 -0.0363338329 -0.0690306798 -0.00730393082 0.0586130098 -0.0749534294 -0.0722069889 0.0312286392 0.0770543739 0.0860406533 0.0870704874 -0.0907232538 -0.0884140655 -0.0664570332 0.0391629115 0.0569834486 -0.0399182402 -0.0151842535 0.00339984894 -0.0385194719 -0.011515744 0.0816585496 0.0669751838 -0.0472920127 -0.079243958 0.0429210141 -0.0417852327 0.0749638155 -0.0424914621 -0.0522572212 -0.0659950152 0.0764724389 0.0273347422 -0.0250749066 0.0314927176 -0.00815849006 -0.0254741535 -0.0833909735 -0.0609506778 -0.0250510424 -0.00209154189 0.0639442578 0.0272091031 0.00796297193 0.0325563699 0.0351272598 -0.003184475 -0.0514053069 -0.012416549 -0.0390529186 -0.0483354181 0.0223540813 -0.0216888338 0.0782106146 -0.0199111775 0.0690496489 -0.0907847062 0.0272703171 -0.0519125164 0.0560372844 0.0875895843 -0.00345014036 -0.0882338881 -0.0560493842 0.0858061537 0.012727648 -0.0871922672 0.0683451667 0.0403235629 -0.0282601267 0.0600476786 0.019601427 0.0733242407 -0.047367882 0.0013012588 -0.074660778 0.0620597377 0.0919085816 0.0561122224 -0.0225559995 -0.0406987965 0.0387029573 -0.00470989197 -0.0672701672 -0.0428896099 -0.0472893491 -0.0709196851 -0.0304957107 0.0577644184 0.014571704 -0.0186832398 -0.0649509877 -0.0352424867 -0.0234507918 0.05905696 -0.081174694 -0.0779158473 0.0384146199 -0.0140316337 -0.0523859598 -0.0627980605 0.0617554709 0.0576505587 -0.0749231875 0.0144365355 -0.031639196 -0.0471548215 -0.0478942618 0.0409898832 -0.01225169 0.0741619542 -0.0470142178 0.0849385038 -0.0795329958 -0.0892039612 -0.0558522791 -0.0446602628 -0.0761488229 -0.045791734 0.0789249167 0.075083755 0.0380753204 -0.00839173794 0.0343582109 -0.0347669721 0.0473399237 0.0467570201 -0.00802601129 -0.0184639916 0.0762276575 -0.0842824429 -0.0485944822 -0.0625576824 0.0702099577 -0.0080371052 0.0727517083 -0.0295218527 0.0379545912 -0.00529932976 0.0919715092 -0.0503411666 -0.045737125 0.000867210329 -0.0432248712 0.0185048655 0.0500668511 0.0133430138 0.0674127713 -0.0517596528 0.0211707726 0.0800146535 -0.0168430284 0.0826127902 -0.0704659149 0.00300744176 -0.0833644941 0.0281890556 0.0898493752 0.00584188849 -0.0228457302 0.044279106 -0.010389097 0.0505101904 -0.058516562 0.0264487788 -0.0772018656 -0.0336847417 -0.0105508938 -0.0243165568 -0.0377918966 0.041964598 0.0196105167 -0.0242938399 -0.0561464503 0.0849454626 -0.0901771709 0.0384645984 -0.0141348839 0.0577358976 0.0113897398 0.0677590594 0.0636680648 -0.0045184195 -0.0548408329 -0.0505435541 -0.055212833 0.0285411775 -0.0416879915 -0.0115803033 -0.00841359049 0.0838461444 -0.0402514562 -0.0571938641 -0.0379284918 -0.0448554978 0.0058793053 0.0848714784 -0.0757497475 -0.00311610848 -0.0665716454 0.00478214771 0.0837649927 -0.07908649 0.0832407996 0.0664658472 -0.0503849238 -0.054858353 -0.00514765829 -0.00749614835 -0.080232136 -0.02638717 -0.0649550632 0.0608434454 0.0242949203 0.0178818181 0.015648216 0.0704206601 0.0213679224 -0.0113102347 -0.051051531 -0.0171466395 -0.0548346937 0.0767216608 0.0628794059 0.00664520264 -0.0202987418 0.0485198721 -0.0792057663 0.0782955065 0.00926642865 -0.0500065833 0.0710197464 -0.013718091 -0.0754401237 -0.0331285782 -0.0692650452 0.00104629248 -0.0322189964 -0.0810521394 0.0143201053 0.0199349746 0.0619977191 -0.0603780746 -0.0517764464 0.0471027419 -0.0505457968 -0.064854078 0.0241119042 0.0908671394 0.0173453987 -0.08576148 0.0687382892 0.0607575551 0.07432767 -0.0134728774 0.0797406659 0.0623595193 -0.0912693366 0.00659180433 -0.0820748806 -0.0724766403 -0.021406129 -0.0620062985 -0.0303414389 -0.0176572874 -0.0341373645 0.0322748795 0.0251255482 -0.0714804828 -0.091548577 0.0132224187 -0.00518443435 0.0789079592 -0.0842111707 -0.0558606461 0.0118074939 0.0639389232 -0.0491849333 -0.00577279925 -0.0408281088 0.010818854 -0.0179158226 -0.000575438142 0.00442907959 -0.0406784602 0.0756940916 0.0415076539 -0.0827175379 0.0194581598 0.0150824785 0.0716990009 -0.0297345221 0.0197027624 0.0213376582 -0.0865020826 -0.0874097124 0.00630016625 0.064230077 -0.045315735 -0.0820195675 -0.0281583071 -0.0705238879 -0.0103229806 0.0239717588 0.0803938732 0.035535343 0.086359255 0.00163464993 -0.0182417706 0.0290954933 0.0795271471 -0.0527212918 -0.046446126 0.0416117087 -0.036419034 -0.00732404739 -0.0243921354 -0.0743979737 0.0582932457 -0.0365738124 0.0874655321 0.0824510083 0.021612592 -0.0332476571 0.024186559 0.000161841512 -0.0435442887 0.0524181798 -0.0604146123 -0.0410796218 -0.0580688454 -0.0509728901 0.056614019 -0.0791302919 0.044811897 0.0240081847 0.0503352061 -0.0382561386 -0.0149113908 -0.0612492263 -0.054015331 -0.0110936314 0.0331230536 -0.0695802346 0.0690056309 -0.0866757706 0.0680634752 -0.0862640887 -0.066290766 -0.0478138588 -0.0510401763 -0.0894499272 -0.0130019635 0.0793935135 -0.080984503 0.0852108821 -0.0513974279 -0.0540720075 0.023246251 0.0142598376 0.00452504307 -0.0239685476 0.045320265 0.0439294949 0.0793135241 -0.0683266521 -0.0762221143 -0.0377009474 0.0634637401 -0.0638853535 0.0324802846 0.0148461536 0.0405929014 0.0612183735 -0.0312202275 -0.0495602116 0.0359459594 -0.036695905 -0.0549853556 0.00228908658 -0.0178389847 0.025643833 -0.0921765864 -0.0491106249 -0.0429395288 0.0730410293 0.0039062649 -0.0626842678 -0.00743748993 0.0241092145 -0.0847695991 0.0394841954 0.0691100731 0.0275399014 0.0795567706 -0.0544100888 -0.0294622108 -0.0177149773 0.0732087716 0.0391529128 0.073710151 -0.0809331238 0.0494261459 -0.0306911394 0.0876254365 -0.000771865249 0.00925789028 0.0432826206 0.0603840575 -0.0285049975 -0.0346765555 0.0375252143 0.0163254514 -0.0304304473 -0.0294883102 0.0505520925 -0.0145869553 -0.0282411575 0.0267438665 -0.0836567059 -0.0276411921 -0.0854936317 -0.0761654824 0.0589946434 -0.0763396919 0.0862009451 -0.052886501 -0.0239165351 -0.0741458461 -0.0827225372 -0.0528388917 -0.0161531568 -0.0419691317 -0.0291237086 -0.087211661 0.0149555206 0.0058426559 -0.0654046088 -0.0235361755 -0.045577988 -0.0314670093 0.0704037771 0.0472768471 -0.034759976 -0.0862634927 -0.0370294973 -0.0748171881 -0.0645798296 0.036916621 0.0801900998 -0.000511191785 5.37261367e-05 0.0530137643 0.0179424733 0.0539418831 -0.080384165 -0.0663119704 0.0804879144 -0.0855343491 0.0607863441 -0.0202217698 0.081620343 -0.0404011942 0.0579681918 0.0120717511 0.0172553957 -0.086026527 0.0897771046 -0.0130541921 0.000943765044 0.0693866238 -0.0428069383 0.000433206558 -0.0570045747 0.0114626139 0.0385934934 0.0121301487 0.0208390355 0.0322385654 0.0516852811 0.0789347962 0.0715205446 -0.072483331 0.0202449039 0.0159794465 -0.0298406109 -0.0630692244 -0.0690453127 -0.0532932095 0.0568915978 0.0810422823 0.0877656564 -0.0436964259 -0.0211012438 -0.0079190135 0.0229459405 -0.0507401489 0.00318480283 0.0178747252 0.0326921567 0.0781322494 0.0350668952 -0.0105891973 0.056166105 -0.0771791935 -0.0216837972 0.00962788612 -0.0470530875 0.0456274226 -0.054068815 -0.0717334747 -0.0275032297 -0.00548879802 0.0449125543 0.0418975577 0.0617463365 -0.0223972201 -0.0775106996 -0.0540737249 -0.00987952948 0.0236201212 0.0813292041 0.0384459868 -0.0567534789 0.0102992058 0.073854588 0.0663467273 -0.0490940101 0.00834311545 -0.0452112742 -0.0846370906 0.00420948118 0.0176032037 -0.0790651888 -0.00694357604 0.0356317237 0.0486746803 -0.053187076 -0.062043719 -0.0718482584 0.00826607645 -0.0277814642 0.0471965149 -0.0311799943 -0.0715109706 0.0649770275 -0.000967621803 -0.0638762861 0.0207018852 -0.0522958301 0.0219177008 -0.091644302 0.0672290102 0.0660782382 0.00538785756 -0.0635503083 0.0270936638 -0.0245070085 0.0316335186 0.0550271049 -0.0741439983 0.0773817375 -0.0449489951 0.0683638677 -0.0665123686 0.00683739781 0.0068378821 -0.0344181284 0.0315590799 -0.00978057086 0.000486671925 -0.0176834092 0.0407579318 0.00680115074 0.0463902578 -0.0919547155 0.0636039004 0.0187238231 0.0637916401 -0.0123269185 -0.0216226056 -0.0568374917 0.0624923334 0.0483378097 -0.0670620203 0.0623714253 0.0219382793 -0.0731774494 -0.079273954 -0.0801137835 0.0298482254 -0.0203806832 0.0300964639 0.0365251526 -0.0208114088 -0.0114325732 0.0325429887 -0.0667300746 -0.0331631787 -0.0157612786 0.0288935229 0.0543876365 -0.0890166909 -0.0648952872 -0.0131027475 0.072156541 0.084340103 0.0388663784 -0.0758652389 -0.0182960555 0.00641118735 -0.0271833539 0.0288736671 -0.0646947026 0.0597317144 0.0626680478 -0.0538832881 0.039522402 0.0353385136 0.0177733675 0.0742372051 -0.0886147618 -0.00746652484 0.0444230065 -0.0564768054 0.0574676916 -0.0802659467 -0.0199275538 -0.0109576508 -0.00840087235 -0.047384806 0.0116544813 0.037959747 -0.0109608173 0.0669651702 -0.043358013 -0.00311912596 0.0112226158 0.0587269142 -0.0635145903 -0.0898545459 -0.0526663102 -0.0259750187 -0.035481941 -0.0516156591 0.0529673174 0.0586824492 -0.0534176789 0.0894318298 0.0274610817 -0.0778971985 -0.00688375533 -0.0761872977 0.0216471255 0.0232174397 -0.0746872798 0.0370799229 0.0427828208 -0.0319918692 0.0639218315 0.0627681091 0.0477303788 -0.0382069461 0.0812643841 0.0823890939 0.0488619581 -0.0298298709 0.0758878663 0.0161618963 0.0268575326 0.082555525 0.0142249763 -0.0517058372 0.0301704854 -0.0661388934 0.0287733451 -0.00581851602 -0.014804177 0.0732519999 -0.080848299 -0.01462695 -0.0493425056 -0.0495830812 -0.00370506942 0.0338600352 -0.0727000833 -0.0340164155 -0.0753787607 0.0415649042 -0.0283715427 0.0639319047 0.0835915729 0.0453869328 0.090740107 0.0239816457 0.00429745764 -0.0841591805 -0.00715384632 -0.00498326123 0.0380214676 -0.0889690667 0.0796571746 0.0109583959 -0.0498604141 -0.0152914673 -0.0253260881 0.0160397142 0.00432763249 -0.0613071807 -0.0567988865 -0.0471970364 0.0445379242 0.0731034502 0.059245564 0.00837685913 -0.0167774186 -0.0699981451 -0.0550932921 0.0255529508 0.0361092016 0.0704210177 -0.0184663236 0.0264163762 0.0281364694 -0.0249217302 0.054144077 0.0623281971 0.0257725939 0.0489784554 0.0707919076 -0.0591717474 -0.0203796104 -0.0363774784 0.0654661432 -0.0140930861 -0.0064445138 -0.0213119239 0.0741291419 0.0258119479 0.0779104456 -0.0212916136 0.0550658926 0.0870307758 0.0422418788 0.0835937336 0.0605109707 0.00637042522 0.0807685778 0.0158672407 0.0303412154 -0.0412537456 -0.083946161 0.0231782869 0.0675129518 0.0622431263 0.0347345099 0.02162835 0.0729403123 0.0747277364 -0.0339130536 -0.033626698 -0.0330616683 0.0190676302 0.0647694692 -0.0236124396 -0.0722970292 -0.0797611997 0.0201053098 0.0709160045 0.0557494238 0.0337284282 0.0439811572 -0.0578304939 0.060023658 0.0753932819 -0.0439495891 -0.0789852664 0.0583178028 0.0767300054 -0.0814525336 -0.0492396727 -0.0622556582 -0.0125158578 -0.0732837617 -0.0246876478 -0.0129315481 0.0885404274 -0.0656932965 -0.00632292777 -0.0917152911 0.0224703178 -0.049806159 -0.0146886259 0.0289047509 -0.0717889667 0.0858872458 0.0304188505 -0.0339725502 -0.0691313297 -0.0900751129 -0.0832037255 0.0629885569 0.080241181 0.0573041514 -0.0913883001 -0.0564792044 -0.0306100957 -0.0334176421 0.0756582096 0.086048685 -0.087994352 0.0795513913 0.0885500088 0.0776958093 -0.067469433 -0.0764649361 -0.00724666566 -0.0247871801 0.0632899329 0.074056305 0.0183581412 0.0176269561 -0.0187570825 -0.00791282952 -0.0491183959 -0.0760537833 0.0559092239 -0.0504232645 -0.0488914922 0.00952223688 0.0831782147 -0.00923119485 0.0403452143 -0.0815438777 -0.0112420022 -0.0257481188 -0.0820975453 -0.00607744604 -0.000771574676 -0.0461357348 -0.0481719673 0.0625093505 0.0875220671 0.0703106299 0.0602825508 -0.0612886921 0.0334584936 0.0810478255 0.00523325056 -0.0214507058 -0.0882451162 -0.0109378844 0.0799598172 0.0808237866 -0.0143417194 0.00711292773 -0.0208657533 -0.0765569583 -0.0473479629 0.0026987046 0.00744077563 0.0527782366 0.0883120224 -0.0199099705 -0.0631047562 0.0801357552 -0.0176581889 0.0550807491 -0.078582719 -0.0700138807 -0.0460676551 -0.0479663014 0.0537883118 0.0673792139 -0.0052338019 0.0445325598 -0.0425711833 -0.0829000697 0.00253131241 -0.0655386895 -0.00895254314 -0.0319004618 0.0363795534 0.0731776729 0.0513251498 0.05978439 0.0763960406 -0.0680360645 -0.0533507243 -0.00736325234 -0.0598887801 0.019942373 -0.00841022283 0.0398892537 -0.0419923961 0.0625449643 -0.0478835851 -0.0667529032 0.0192643553 -0.0612035096 -0.0735189617 -0.0165159553 -0.0300189629 -0.0278794095 -0.0142759681 0.0877772644 -0.0351492725 -0.0887414068 0.0623424277 -0.00591584295 0.0232690573 0.0656946823 -0.0628233925 0.0442362949 0.0127561688 0.081025444 -0.0446660519 0.0743654594 0.0227940902 0.0701156184 -0.0637701079 -0.045011837 0.0146440715 -0.0420157276 0.0856637731 -0.0511717759 -0.00915309787 0.0767400637 -0.0646209717 -0.0750895217 -0.0263726413 -0.0291938558 -0.00418249518 -0.0883259401 -0.0850367621 0.0848144069 -0.0624159351 0.0342398062 -0.0748428926 -0.058149118 0.0863809362 0.0829482898 -0.022093825 -0.0538392924 0.0120876208 0.0151918456 -0.00954140723 -0.0744689852 0.0402206555 0.0464863107 0.0115460753 -0.0607559048 -0.0343539678 0.0763757899 -0.090995416 -0.0568558276 -0.0128568262 -0.0217130035 -0.0388782211 0.0540085062 -0.0515773632 -0.071493566 0.0302663818 0.0152153745 0.074088119 -0.0687511265 0.0107969493 -0.0311170854 0.0674629137 -0.0205109641 -0.0326196961 0.0687562302 -0.0821024328 0.043172054 -0.028940469 0.0799562111 -0.00286204368 -0.0446345992 -0.00612573326 -0.00705210865 0.047380887 0.0551256761 0.0193905681 -0.0222322717 -0.0609935969 0.0522535518 -0.0611063987 0.0725364611 -0.0903128237 -0.0192189068 -0.0807481706 0.0211099386 0.00682784617 -0.000777631998 0.0394812003 -0.0405859053 -0.00777225196 0.04511372 0.047609441 0.033677347 -0.0864964277 0.00477814674 -0.0653313547 -0.00249677896 0.013145797 0.0839205608 0.0799511299 0.00578279048 0.0827630535 -0.0699834228 0.0822680667 -0.00363051891 -0.017527625 0.0811805949 0.000834397972 0.00942821056 -0.0183224678 0.0544162765 0.0201645866 -0.0380308628 -0.0579436943 -0.0518995747 -0.0768773034 -0.0214277655 -0.0132489651 -0.0143589526 0.0591555759 0.0745035186 0.0745686516 0.0915931538 -0.0636456385 0.0568470433 -0.0782278627 -0.000281356275 0.0820719078 0.0386629179 -0.000688418746 0.0158163086 0.0034281984 0.0121882334 0.00348243117 -0.0759370998 -0.0391119272 -0.00819152594 -0.0880572125 0.0838577226 -0.0733239949 0.0114506632 0.0131803751 -0.0442523658 -0.0509555452 -0.0891851187 -0.0768119544 0.0737673566 0.00119761378 0.0537573025 0.0608667657 0.0161395743 -0.0100052357 0.0873076245 0.0432867184 -0.0648823828 -0.0397355296 0.00195334107 -0.0405466817 0.00747907162 -0.0458951816 0.0174333975 0.0375147983 0.0220963135 0.066248931 -0.00460188091 -0.0476560853 0.0652049258 -0.0323276184 0.0103036761 0.0871841386 0.0109611526 0.0857595876 -0.00804788619 -0.0311717167 -0.00881133974 0.0869189873 -0.011282064 0.0668371841 0.0495182797 0.0748874918 0.0751804188 0.030800797 -0.0262266919 -0.0871666223 0.00116530061 0.0250483155 -0.0473108515 -0.0734738261 -0.037730068 -0.0547753088 0.00735808164 0.0757626966 0.0603086725 0.0631356165 0.0434852764 -0.0860958174 0.0864544734 -0.0492724702 0.0116061643 -0.0215651989 -0.0690443218 0.0774776116 0.024598971 0.0380261466 0.0241053849 -0.0778758079 -0.045409631 -0.0625180453 -0.00571988523 0.0786608532 -0.0113817453 0.0431099609 -0.0472020321 0.00554776192 -0.0358462781 0.0286013335 -0.0570476912 0.057858251 -0.0125912204 -0.0723171979 -0.0835375786 -0.0444868207 -0.0775808468 -0.0264179856 -0.0381053686 -0.0423302129 -0.0451984853 -0.0253236443 -0.06510894 -0.0290918127 -0.088393271 -0.0696515515 -0.068067193 -0.0762170777 -0.0358174443 -0.0800496489 -0.00880049169 0.0374935493 0.00952298194 0.0866112784 0.068747066 0.0150223225 0.0170429721 -0.0111873522 0.0608913079 -0.0769930556 0.0644500181 0.0783499107 0.0237000883 -0.0620150566 -0.0324398056 -0.0709076822 0.0861752257 0.0435039625 -0.0758680776 0.0274561048 0.0242745578 0.0180322751 0.0474620685 0.0876250789 -0.0858095661 0.0729160532 0.0399836823 -0.0737144649 -0.0438056178 -0.0157922283 0.0656322762 0.0701873228 0.0323481336 0.0901696756 0.0734171197 -0.0655520335 -0.050758332 0.00371864438 0.0235193819 -0.0220401883 -0.0889193192 -0.0528642274 -0.0503955744 0.000152513385 0.079862915 -0.00403764844 0.0920676067 0.0335195735 0.0198185593 0.0650934502 -0.0299762189 -0.0660251677 -0.0226419121 0.0885435566 0.0892152116 0.0864067301 0.0780307129 -0.0105316341 -0.0581293516 0.0536059961 -0.0165624842 0.0402425155 -0.02758535 -0.0778420642 0.0217796937 -0.0749350339 -0.0584251285 -0.0886906981 0.0814111754 -0.0129055977 -0.0750496164 -0.00853667408 0.0732908323 0.0751730278 -0.0733122006 0.0412834361 -0.0152791217 -0.0485844016 0.0653377548 -0.0720827132 0.0495106056 0.0858748034 0.0412762687 0.0403486714 0.0464539006 0.0181713402 0.0100875944 -0.059569452 0.0723793879 -0.00448866189 -0.0815446004 0.084900476 -0.0468669012 0.0471705422 0.00378507376 -0.0750772655 0.0565818176 -0.0783454478 -0.0587802231 -0.0601646379 0.0302889198 -0.0358884297 -0.0166015774 0.0515357628 0.0709447786 0.0888732001 -0.0723698661 -0.0203827992 0.0286392123 0.0809335485 0.0218270347 0.085611321 0.0367001519 0.0214565769 0.0791013017 0.0285588503 -0.0263589472 0.0288520306 -0.0264705643 -0.038367711 -0.0249348283 -0.00791919231 -0.0476893894 -0.0786426291 -0.0543221571 0.0619330332 -0.0817421451 -0.00962518156 -0.0381552204 -0.0504050627 -0.0538979284 0.0562410727 -0.0103322864 -0.0651564598 -0.0704375207 -0.0289320871 -0.0489182547 0.0430765674 -0.0702619851 0.0371437147 0.0795819536 -0.0797132179 -0.0888189971 0.0336421356 0.0822728202 -0.0145777985 0.0799367949 -0.00941926986 0.0798441842 -0.0742848217 0.0214568898 -0.015793927 -0.00953155011 -0.0215190649 -0.0256105959 -0.0332799442 -0.054430712 -0.0145091042 0.0107884556 -0.0312134475 0.0228169784 -0.0823966488 0.0157700852 -0.054066021 -0.0883812532 0.054192476 -0.0305174105 0.0214168504 0.00219970196 0.0494747832 -0.0684236288 0.0538032129 -0.0226261318 0.0748923495 -0.00148141384 0.0389706418 -0.0641459599 0.0844876841 -0.0365999192 -0.0319524929 -0.0777860731 0.035094209 0.0758400634 -0.017117478 -0.0545213744 0.0563060418 0.0247568116 0.0191650689 -0.0866698474 -0.0123076588 -0.0237086937 -0.0724460185 0.0108845979 -0.0168403015 -0.0678520352 -0.0717472285 -0.0432171226 -0.0671793967 0.0374257937 -0.0259412155 0.00613220781 -0.0446416847 -0.0104117021 -0.0664880946 0.05621811 0.0205035508 -0.049570933 0.0521737114 -0.0156391487 -0.0184599608 0.0661252663 -0.0601754673 0.0536587462 -0.0121747404 -0.0403983518 -0.0376291052 -0.0726641864 0.0542812422 0.00312502682 -0.000802740455 -0.0853802338 1.03861094e-05 -0.0887522399 0.0290252119 0.0859565064 -0.0349604897 -0.0218037069 0.0757531896 0.0315034613 0.00818173587 0.0564892218 -0.0508424342 0.0122811869 0.0594040826 -0.0302730277 -0.00793623179 -0.071996212 -0.0567473806 -0.0570211895 -0.0392082259 -0.0310777985 -0.0509900562 -0.0113581717 -0.0332129672 0.0504461154 0.00855892897 0.0222758353 0.0158679411 0.0497868732 0.0359100029 -0.0596942082 -0.0418337211 -0.0730056614 0.0900903419 0.074471496 -0.0170772672 -0.000312238932 -0.0180502832 -0.0134600177 -0.0870503187 -0.00227108598 0.0606605634 0.0496043935 0.0454784557 0.0721827373 0.0217036679 0.0511293635 0.0748401061 0.0275294259 -0.0604086481 0.0114546046 0.0221702456 -0.0821247771 0.0598340854 0.0869553015 -0.089771539 -0.0820142627 0.0670967773 -0.0731604844 0.0323225781 0.00367918611 0.00732085854 -0.0236195028 -0.0605654493 0.00133753568 -0.0612697192 0.00519321859 -0.0559322461 -0.0696897805 0.0821314678 0.0131612048 -0.0493094027 -0.0423440784 0.0823759064 -0.0682209581 -0.082068339 -0.0817461461 -0.0213985592 0.0754808858 -0.00422343612 0.0800022557 -0.0442176312 0.0539367571 0.032749556 0.0247234851 -0.00913874805 -0.0570527986 0.063861303 -0.0497494824 0.0568195358 0.0317636207 -0.0440915339 0.0102447495 -0.0125196427 -0.0615293086 0.0634089783 -0.0228347406 -0.0722298548 -0.0724270716 -0.010767065 -0.0579527169 0.0430367664 0.0918153003 0.0270973593 -0.0106281787 -0.0344172716 -0.0170690119 0.0200234801 -0.0882523581 -0.0367931463 -0.0818354487 -0.0393721163 -0.0253784284 0.0902323052 -0.0523301885 -0.00799037516 0.0473433211 0.0702496544 0.0895981416 -0.0376319662 0.0530823097 -0.0902721062 -0.0729509145 0.0535176769 0.00562215596 0.0757349953 0.0108958259 0.0426241681 -0.0729715824 0.0824559703 -0.0791903809 0.0099504292 0.0528443083 0.0418153033 0.00584193319 0.0582414046 -0.0710841641 -0.0476892777 -0.0828375146 -0.00292281806 0.0917911753 0.0503066555 -0.0290147141 -0.046747297 0.0819685385 0.0888497606 0.0206517652 -0.0662564784 0.0847585425 0.0304201469 0.0784679279 0.0262197778 0.0132890418 0.0176582113 0.0688656494 0.0424552336 -0.00698255748 0.0313838124 0.00890251249 0.0280410349 0.0498684421 -0.0747551396 0.0321427956 0.0790843293 -0.075065285 0.0843359008 0.0129514262 -0.0393558927 0.050535582 0.0737330839 0.0288038328 -0.0137827396 -0.0667149574 -0.0481767207 0.0842216089 0.00217538327 0.0665963218 -0.0877918974 0.0353813693 -0.000824205577 -0.0821938217 0.058992587 -0.0268554389 0.0849337503 0.0543613508 0.0405648872 0.0478900596 0.0807121024 0.0304447562 -0.0235417411 -0.072287634 -0.0190829262 -0.0451596156 0.0745178238 -0.0654202104 -0.0106950626 -0.0103224292 -0.0147404373 0.0902342424 0.0916421935 0.0385525301 -0.0921212956 -0.00777973235 0.0295499861 -0.0153831393 0.0735341236 -0.0397263505 0.00448518246 0.0913156942 -0.0499774665 0.00692839175 -0.0701207221 0.0884009674 0.0103159323 0.0672107562 -0.0703160018 0.0203872919 -0.0525886342 -0.085222289 -0.016350016 -0.0207678303 -0.00178454071 -0.0835956708 -0.0163201466 -0.0555750579 0.0378006622 -0.068703711 0.000310614705 0.0810481086 0.0702313557 0.0666060075 0.0623866692 0.0529369786 -0.051594045 -0.0425708741 0.0715504363 0.0302865431 -0.0311128832 -0.0743976682 -0.0672276244 -0.0895008817 0.0295681655 -0.0099722445 0.0296058953 -0.0754478723 -0.0635176897 0.0513241366 -0.0200540721 -0.0397496149 0.0907728896 -0.0434887335 0.0644046888 0.00544241816 -0.0696104541 0.0172906369 0.0327020362 0.076885663 -0.0713733584 -0.0363821909 -0.0630557984 -0.0197623894 -0.0220226198 0.049028106 -0.00135747343 -0.0443766564 -0.0678315461 -0.069831416 0.00392158329 -0.0218399167 0.0147336796 0.00610240549 -0.0207426697 0.043156974 0.0493099764 0.0162182599 -0.0421707034 -0.00125732273 -0.0765841678 0.0736971423 0.012700133 0.0678285733 -0.0749212503 0.0642149672 -0.0732708424 -0.0305776969 -0.0885138214 0.0493302867 -0.0307342596 -0.0648363605 -0.0605146065 0.0241073221 -0.0633991212 0.0305563733 -0.0332591012 0.00784314424 -0.0541668497 -0.0328423567 0.00685342401 -0.0695883334 0.0708403811 -0.0655684546 0.0460653082 0.0865089968 -0.0511761345 0.0824660733 -0.0268600434 0.0678947195 -0.0775891617 0.0175481588 -0.0843092054 0.0560975596 0.0317001417 0.0092189759 -0.0198297203 -0.0863133222 -0.0809280202 -0.083320491 -0.0383398905 0.0268797651 0.0447380468 -0.0236880705 0.0376606658 0.0382998362 -0.0665912554 -0.0492024533 -0.0637234449 0.0641014948 -0.0299409553 -0.0296389759 0.0261139944 0.0129184499 -0.0222649574 0.0361404642 0.0138487667 -0.0899488628 0.0786368772 0.0375898108 0.0390492007 0.0663196221 0.00389120728 0.0148083791 -0.0194407031 0.0255130231 0.021583207 -0.0578314401 -0.0667129308 0.0145164132 -0.0303850397 0.0816166475 -0.0534764268 -0.0914792269 0.0649640188 0.0177424699 -0.0745983794 0.0578747317 0.052815713 -0.033559721 -0.0296500474 0.0208098441 -0.0465629585 -0.0698843971 -0.0307637975 -0.00640080124 0.0389808938 -0.0744305924 0.019119814 -0.072881341 0.045606412 0.0668116286 0.0236431211 0.0354438201 -0.00419999659 -0.0125971437 0.0462350622 -0.0386341698 0.0187705308 0.0366004035 -0.0324517563 -0.0517823249 0.0467255786 -0.0836957693 -0.0651882216 0.0643015131 -0.0858136192 -0.0693512559 -0.0134075284 0.0821785256 -0.00872860849 -0.0564076938 0.0656159446 -0.0584199131 -0.0362068564 0.0763459429 -0.0146555826 0.0515971556 -0.00238038599 0.0312169045 0.0613946244 0.0506570563 0.00694159418 -0.0338289104 -0.0367975719 -0.0601367056 -0.0776153579 0.0797149613 -0.0412471667 0.0250495896 -0.0430078059 0.0374286994 0.0324849933 -0.0662219897 0.0163574144 0.0374011621 -0.0448691435 0.0855363384 0.0532035604 -0.0495872423 -0.0662693307 -0.0472429283 0.0439447835 0.0518793091 -0.01115942 -0.0467279926 -0.0494541004 0.0694921687 -0.0207787454 0.0289187878 0.0917172208 -0.0239735842 -0.00875902176 -0.0211698711 -0.0359720923 0.044976376 -0.0621795654 -0.0635599941 0.0912447497 0.0551508293 -0.0294389427 -0.0488049909 -0.0225089043 0.0717269555 0.0584552363 0.0639182553 0.0775792226 -0.080065079 -0.0116126612 0.000353179872 -0.0183840916 -0.0061122179 -0.0711665303 0.0708961114 -0.0348564908 0.0859167352 -0.0450325273 -0.0740029737 -0.0545046031 -0.045899123 -0.00492147356 0.0164716914 0.0477379933 -0.0848933831 -0.0458478592 -0.041204378 -0.0199097916 -0.0788594112 0.0389662012 -0.0781498402 -0.0834077448 -0.0344732217 -0.0465488285 -0.0529014468 0.0328004435 -0.004762806 -0.0277965218 -0.0822388306 -0.0345330238 0.0277387425 0.0497613922 0.0330237225 0.0583756492 0.0100013837 -0.0571855009 0.0347959027 -0.00477153808 0.0777215734 -0.0869503692 0.0384933427 -0.0825896338 -0.0622770265 0.00863906741 -0.0464332737 -0.0171510205 0.0210549086 -0.0514791533 0.082784228 0.0472474024 -0.0172922388 0.0361949727 -0.0668384582 -0.0354239419 0.0919474289 0.0784156099 0.0120289475 -0.0230679885 -0.04159493 0.068105869 -0.0292794332 -0.0502044149 -0.0584840067 0.0202749446 0.00622546673 -0.0486963019 0.0628429875 -0.0664081946 0.0877910778 0.0691011176 -0.0388350822 0.0813954994 -0.0776790082 0.0412790999 0.0116146654 -0.0797343031 -0.0835758373 -0.0832891762 -0.0417860933 -0.0245532319 0.0217838064 -0.0816653967 -0.0566241667 0.0827181712 0.090093933 0.0493487194 0.0605877265 -0.00490199775 -0.0375586264 0.063042812 0.0780529901 -0.0212419331 -0.0173327848 -0.0200399384 0.0632803366 -0.0535764433 0.0687986389 -0.0212310851 -0.0155814812 0.0622687563 -0.0629495159 0.0519495383 0.0900032744 -5.38378954e-05 -0.0649576187 -0.0418342277 0.0537415668 -0.0324803069 0.0463143215 0.0484229997 0.027772598 0.0121048763 -0.0737757832 -0.0580666438 0.0632145926 -0.0783638656 0.0526103154 0.0321379304 0.0499276593 -0.025323756 0.00327392668 -0.035312172 0.00171734393 0.0644027814 0.0845575407 -0.035832081 0.08574415 -0.0434239991 0.0471609607 -0.0607192591 -0.0229174122 0.0188571438 -0.0745420158 0.0685154274 0.0203186199 0.034199439 -0.0608873963 -0.0776414797 0.0330732241 -0.047818657 0.00402787328 0.0665622875 0.0116173699 0.0771872923 -0.0620762035 -0.00870130956 0.0215327144 0.0554514304 -0.0304217748 0.0806800798 0.0804475322 0.0494578257 0.0479757711 -0.00330993533 -0.00859627873 0.0417002216 0.0489061996 0.0545001701 0.0542103872 0.0163441598 -0.0487834178 0.0739080682 -0.0248923451 0.0228514075 -0.0498076752 0.0881691352 -0.0278212577 0.0840532854 0.0407709405 -0.08151678 -0.00123657286 -0.0515688658 -0.0511107408 -0.0209280401 -0.0920661092 -0.0876166746 0.0538214371 -0.0218809173 0.0876527652 0.00215920806 -0.0761006176 -0.00753477961 0.0590645149 -0.0591331609 0.0414389148 -0.0480465069 0.0362994894 -0.0216417089 -0.078052111 -0.0757187381 0.0274312571 0.0830193684 0.0808209106 0.00260557979 0.00530932099 -0.014732182 0.0696650222 -0.0091181919 -0.0254783332 0.031828776 0.0606341884 0.0428115204 0.0429777876 0.0324776173 0.0500900224 0.00845754892 0.0460312888 -0.0438777022 -0.00999940187 -0.0595136993 -0.0601951219 -0.00164735317 0.0152828395 0.0902476534 -0.02805686 0.0887978598 0.0130712688 0.00699143112 0.0607744977 0.0922200605 -0.020486556 0.0301318541 -0.00331798941 0.0728990659 -0.00057015568 -0.0295934528 0.0764059648 0.0448720977 0.0844331011 -0.0745738372 -0.0605156161 0.0350204483 -0.0102704614 -0.0278675705 -0.0852701142 0.0713463798 -0.0538815297 0.0270319209 -0.0620777011 0.0373031273 0.0245901197 -0.00607982278 0.0600222126 -0.0152762383 -0.0804951191 0.0355799571 -0.0903321058 0.0313138813 0.00429908931 -0.0121658742 0.0297431946 0.0452855155 0.0345725939 0.0384500995 0.019230023 -0.0398747697 -0.0739730895 0.0341418162 0.08101096 -0.0737099499 0.0509758219 0.0214779079 0.0180701613 0.0398864076 0.00919128954 0.0410966203 0.0627245232 -0.0617471486 0.0808793381 0.031342119 0.041885145 0.0318195745 0.0601714775 0.0506139919 0.0332178101 0.0338994339 0.0423031226 -0.00375762582 0.00782434642 -0.00638604909 0.0555780008 -0.0289240479 -0.0726664811 0.0651410893 -0.0663310066 0.00425039977 -0.0431479663 -0.0326956995 0.0533100739 -0.0276896134 -0.0656476691 -0.0807405561 -0.0126128793 -0.0233857557 0.0213807523 0.0353211239 0.0478775129 0.089476265 0.00620842725 0.0243235976 -0.0696097091 0.0611900464 0.0268954113 0.0037535131 -0.0497372635 -0.060235206 0.0234684274 0.0557063296 -0.0507812202 -0.0011555925 0.0847576484 -0.0293174237 0.0163644105 0.0541105047 -0.0457748063 -0.0271983445 -0.0912084728 -0.0403814055 -0.0180388168 -0.00329294056 0.0580156967 -0.0053358674 -0.0844372585 -0.0276461467 0.0893680528 -0.0459296964 0.00276647508 0.0700291321 -0.087729387 0.0461236462 0.0882598236 0.0820785686 0.074382253 -0.0831242502 -0.00688104331 -0.0756142288 0.0321163833 0.0539085194 0.0774787143 -0.0257449672 0.018786706 0.0360702351 -0.0613971353 0.0285121724 -0.0520217307 -0.04251552 -0.055960726 -0.0231386423 0.0374613032 -0.0633406863 -0.084412232 0.047017999 0.0156561807 0.0911661014 -0.0795616508 0.0567694381 0.0546284989 -0.0503547452 0.0630892143 0.0129003376 0.00024856627 0.0561984852 0.0415392593 0.0842263177 -0.0608584546 -0.0613852516 -0.00613649935 -0.0208660811 -0.044060193 0.0812308565 0.0122116283 -0.0518886335 0.00326345116 -0.0509708636 0.0122456774 0.0202063844 -0.066211313 -0.0702218413 -0.0626464039 -0.00443000346 -0.0867060795 -0.00792385638 0.0300800428 0.0174932629 0.0250330642 -0.000823698938 -0.0796664208 -0.025792554 0.0845797285 -0.0265630111 0.0393196866 0.043537356 0.0444565788 -0.00453270227 -0.0125839412 -0.0491573997 0.0797647014 0.0829143599 0.0328995213 0.0757356808 0.00220366567 0.062972717 0.0838626698 0.0414957926 0.0324286893 -0.0804386437 0.0815884843 2.69860029e-05 0.0743989423 0.0478623733 -0.0785477608 -0.0432100371 -0.0909351483 0.00882426649 0.0488145426 -0.0392154008 -0.0914326534 -0.07448221 0.0268105641 0.0151380077 -0.029668577 -0.0829561353 -0.0686279088 -0.090192385 -0.0205502957 0.0333940014 -0.0514695756 0.0555507317 0.0500246957 -0.0192347988 0.0753572956 -0.0440947935 0.0129385293 -0.0483516604 0.00132243335 -0.0735075176 -0.0918540433 0.0892101601 0.00100596994 -0.0331198871 -0.072447896 0.0691712573 -0.0271437541 0.0352407917 0.0268460438 0.0436930135 -0.00383052975 -0.0117281303 -0.0562711842 -0.0242607817 -0.023207821 -0.0460327938 -0.00208899379 0.0325835571 0.0128132403 0.00767106563 0.0359718874 0.0691074505 0.0616788492 -0.0498591363 0.0290595889 0.0395320281 -0.000592127442 0.0754947737 -0.0554360189 0.0204896852 0.0612353608 -0.0433764346 0.0705745146 0.0713702515 -0.0579471923 -0.000369004905 0.0545122549 0.0376273915 0.0481331125 0.0341518 0.0874066278 -0.0351215191 0.0471878424 -0.0915628225 0.052156724 -0.0922590122 -0.0747126564 -0.0189039782 0.0402381346 -0.0318751037 0.0415485576 0.0253116712 0.0755307004 0.0811228529 -0.0901206061 -0.0549745262 0.0741797462 -0.0721971691 0.0468186811 0.0906814709 -0.0915628448 0.0761958286 -0.0371497609 -0.0845306069 -0.071481742 0.0686241463 0.0254988447 0.038754411 0.0802089199 -0.00933384895 -0.0204694122 0.0406297073 0.0787530765 0.0872323737 -0.0146643445 0.0123975724 -0.0617298931 -0.0584635139 0.084986113 -0.0388304815 -0.085376054 0.0483352169 0.0368622765 0.0492499098 -0.0605236515 -0.0849194899 0.00398649275 -0.0141006336 0.0380909517 -0.0704174042 0.0689584389 -0.0548335686 0.07761655 -0.0352351815 -0.0672114491 0.0483813509 0.0905996487 0.00754701346 -0.0879238993 0.0336201116 -0.0226718858 0.0179443434 -0.0235220417 -0.0213136226 -0.000911936164 0.00468992442 -0.027033858 0.0782133564 -0.037099313 -0.0298664719 -0.0301702842 -0.0505082048 -0.0755234584 -0.0546417944 -0.0531237535 0.0283925459 0.043985866 -0.0112820417 0.0585140362 0.00682062656 -0.062209785 -0.0613777675 -0.0917060003 -0.00788844377 -0.034181606 -0.000735677779 -0.0576182455 -0.00704427809 -0.0516904742 0.0874994621 -0.0738954097 0.0248517394 -0.0350866094 -0.0884909332 0.0197088197 0.0335639492 -0.0368294194 0.0760960206 0.0906790718 -0.0443006344 0.0810809508 0.0915102139 0.036910139 -0.0401933268 -0.087587975 0.0291792378 -0.0280662626 -0.0212970003 -0.0733212456 -0.0439874232 0.0661941394 -0.0819116458 0.0102571025 -0.0146417841 -0.0571084842 -0.0917095393 -0.0726186708 0.0378853008 -0.0316018462 -0.0175121501 -0.0495934263 0.0670957342 -0.0127856433 -0.0185706094 -0.0618698113 -0.0771038756 0.0210639387 -0.0428175032 -0.0232613087 0.0792084113 -0.0749692768 -0.0853647366 -0.0601427145 -0.0362421386 0.0739485398 -0.0496218875 0.00725522637 0.0277595446 -0.0800635144 0.00533291698 0.00686645508 -0.00300647318 0.0514365658 -0.0782790408 -0.0865399465 0.0436375514 -0.0735983327 -0.0512177572 0.0223332793 0.012658 -0.0561604053 -0.0523386374 0.0294965431 0.0226578638 -0.0251678973 -0.0260860845 -0.0120196119 -0.0390838869 0.0855411813 0.0648369715 0.0404523686 -0.065456152 0.0735830441 0.0367128029 0.0111501068 0.0200571567 -0.0310860723 0.0877489075 0.0562244728 0.03602577 0.0495149568 0.052003555 -0.0481097437 -0.0415542126 -0.0836183429 -0.0719427764 -0.070012629 0.0338111445 -0.0816573128 -0.0857688263 0.0836748555 0.0555590615 0.079199411 -0.0444590859 0.0886792019 0.0318240598 -0.0415463522 0.070764415 0.0341998562 -0.0655938312 -0.0370221213 0.0502902493 0.0850911662 -0.0285703465 -0.0479620993 -0.00812179595 0.0120520294 0.0364613011 -0.0541624911 0.0273775086 0.0266684815 0.0319716632 -0.0408169925 -0.0144476071 -0.0738123432 0.0559498295 0.0625880137 0.0387256518 0.0711947754 0.0281059667 0.0545054451 -0.0855698287 -0.0888237283 -0.0662223399 -0.0921853632 0.0686333701 -0.059258908 0.0559416637 0.0186122134 0.0895125195 -0.031509161 0.0393376872 -0.0584754013 0.0513774678 0.0108374283 -0.0901786238 0.0406734571 0.0819121525 -0.0590081438 -0.0251517668 -0.0357716195 0.00774671882 -0.0198352411 -0.0527434126 -0.0037169531 -0.0890804157 0.0191610381 0.075292103 -0.0162051916 -0.00553354621 0.064591147 -0.0465003625 -0.0633175522 0.0264152065 0.0429789647 0.0253487378 -0.0900125802 0.0593155399 -0.0282256603 0.0693139359 0.0693239942 -0.055015441 -0.0759994984 0.0154035464 0.0831330791 -0.078204751 0.0142381564 0.0686506853 -0.0438542403 -0.035015054 0.019064419 -0.0248319954 0.0852202103 -0.0232989863 0.0368903056 -0.048396036 0.00787248462 0.0497195199 -0.00710090995 -0.052841533 0.0562443808 -0.0178830922 0.0742151812 0.00458649546 -0.0276773348 -0.0600240789 -0.00678138435 -0.072788015 0.00169181079 0.0171093792 0.02583424 -0.0291160047 0.0278005078 0.027597107 0.0495207682 0.0438927785 -0.0652093738 0.0187336653 0.0514122173 0.0725480244 0.0886282995 0.0673804805 -0.0507724173 0.0867026374 0.0473810807 0.0554169789 0.0705683902 -0.00697465986 0.0202568993 -0.0447166748 -0.0340153836 0.0183069035 -0.00687045604 -0.0715132207 0.0129238665 -0.0658681914 0.0877020583 0.0472853854 0.0320375413 0.077622138 -0.0722021013 -0.0170089006 0.0757818893 0.0626239553 -0.0909491926 -0.0535693765 -0.0146905854 0.0452908203 0.0334035978 0.0820092037 0.0571693406 0.00218378752 -0.0333875567 -0.0822563767 0.0605004057 -0.0889876857 0.0293372944 0.0660036877 0.0619325861 -0.0421813764 0.0508524254 -0.0176641941 0.0503663048 0.0212004036 -0.0507553369 -0.00279990584 -0.0740576684 -0.014628008 0.0681340173 -0.0612709299 0.0456905887 -0.0331613533 -0.0910166726 0.0601311103 -0.047603637 -0.0307735913 0.0892601982 0.0174436718 -0.0378102958 0.0339037254 0.00545439124 0.0397656783 0.0167166218 -0.0512089729 -0.00637458265 -0.0221284702 0.0101178437 0.0701451823 -0.0808236673 -0.0342512466 0.0521620288 0.0383068547 -0.0422457568 -0.0144589022 0.00153945386 -0.0677313507 -0.0148821846 -0.023685731 -0.0840070248 0.0403008237 -0.0439293161 0.0901441798 0.0678502545 0.0369125977 0.0590684786 0.080272533 -0.0593923777 0.0850591436 0.00908050686 -0.00946069509 0.0331560746 -0.0597102121 -0.0213033408 -0.0872435048 -0.0394646674 0.0750271007 -0.00895278156 -0.0491180867 0.0293358415 0.0637221858 0.00821998715 -0.0499917716 0.060943611 0.0334143266 0.00242392719 0.0413017347 -0.0422145911 0.00331418216 0.0719608292 -0.0578006022 -0.0759667754 -0.0056161508 -0.0828387961 -0.0635291785 -0.066585049 0.0251857713 -0.0338551439 -0.0395725183 0.00398127735 0.0280390754 -0.00348888338 0.00144280493 0.081724517 -0.00964126736 0.0763897225 -0.00299435109 0.0122539327 0.0509850606 -0.0175799876 0.0357027426 -0.00729682297 0.0429800674 -0.0624364056 0.0641497448 0.0605793819 0.0472562686 0.0168054551 0.0796775892 0.00806859881 -0.0619183257 0.0272268206 0.00653316826 0.0470701531 -0.020083718 -0.0178300664 0.0678406134 -0.0433489904 0.0823564157 -0.0342188925 0.0284347832 0.0341414288 -0.0808851197 -0.0408214182 0.0198597834 0.0223530009 -0.0287797078 0.0536333099 -0.0644916743 -0.0389684215 -0.0540048964 -0.0768786892 0.0807818994 0.050249882 -0.0170138553 -0.000662386417 -0.0683028325 0.0163651854 -0.0471711308 -0.023626022 -0.023189418 0.0528875366 0.0299862996 0.0536815897 0.0533972606 0.00679896772 0.0808875635 -0.00185889751 -0.0426540747 -0.0841269791 -0.00669553876 0.0722636804 -0.0509390794 -0.0113680139 0.0395458713 -0.0909396857 -0.0352495536 -0.00172308832 -0.035196308 0.00315328687 0.0898926929 -0.0272945687 -0.0360782258 0.0318286195 -0.069098562 0.0693463758 -0.0630519986 -0.0782522485 -0.0885896012 -0.0410404652 -0.0534633063 -0.00935479999 -0.0189172775 -0.0461589359 -0.0765826255 0.0654845312 -0.0264026448 0.00318779796 0.0785245672 -0.0784615055 -0.0239869505 -0.0183002129 0.086848177 -0.0237252414 0.0443218723 -0.0256051123 0.0468266681 -0.0576979034 0.0605413094 -0.0160005763 -0.0322031491 -0.065561235 -0.056706816 0.0253937691 0.0360329077 0.064585112 -0.038915839 0.0807879195 -0.0200845823 0.0852803513 0.0271180049 0.0619114563 0.0258728936 0.0107946619 -0.0836730376 0.0679741576 0.0267128795 -0.0764617473 0.0775663182 0.0256083682 -0.0479156785 -0.0339393131 0.0436991081 0.057346873 -0.0301870555 -0.0476037227 -0.0317005627 -0.0508361161 -0.0736133009 -0.0360875353 -0.0289105996 0.0590069816 0.00303011388 0.055606626 -0.0456068888 -0.012345545 -0.0242738798 -0.0179099441 0.0771788433 0.0013230294 0.0734433308 0.0220018923 -0.0215268359 -0.0358190946 0.0916682705 -0.0303147621 0.0463506654 0.0606236085 0.0276210979 -0.00724870712 -0.01679454 0.0786959454 -0.0603411421 -0.0382837392 0.0750206932 -0.0224997699 -0.0396691225 -0.00761567056 0.042607151 0.0501610711 -0.0614049956 0.00846278667 -0.0124113113 0.0431734547 -0.0308788009 -0.0831301063 -0.0910087302 0.075327374 0.00877865404 -0.0918762535 0.0847837254 -0.0456107184 0.0285573974 -0.0638099015 -0.0226214826 -0.0363143086 0.0597791299 0.0567055121 -0.0256057978 -0.0345593691 -0.0449591652 -0.0749855638 0.0793524906 -0.0746039301 0.0134181976 0.0413277522 -0.0284919664 0.0355655327 -0.020519264 0.0917513594 -0.0343353488 0.0224089697 -0.0287460089 -0.0794280097 0.0575211421 0.0628132448 0.0343104824 -0.0123171955 -0.0561086163 0.0865316615 -0.00258112699 -0.0410179906 -0.0109897852 -0.00959033519 -0.0538258217 -0.0632206202 0.0350044295 -0.0275700092 -0.0814913586 0.0109036341 0.0692757592 -0.0751690045 0.0178773254 0.0271888971 -0.059542954 0.0103230625 -0.0107400343 0.0243601352 0.0109919608 -0.0137168616 0.0458329991 -0.0734502524 -0.0226026177 0.0186253265 0.0592625663 -0.0540973209 0.0754677728 0.0474036708 0.0399869308 0.00718829036 -0.0596512668 0.0307165161 0.0456561223 0.00368787348 0.0375659391 -0.0747809559 -0.0391491503 -0.0786532164 0.0245722309 0.0771721378 0.077716805 -0.0558862872 0.0374392942 -0.0860632434 -0.0301394686 0.0830476955 0.087332584 -0.0332186893 -0.0150616094 -0.0382593982 0.0863582864 -0.0442160033 -0.0254130736 0.0351082012 -0.059838511 0.0517314747 0.0465483144 -0.0798644274 0.051089637 -0.0134382769 -0.074495703 -0.0623520613 0.0749709979 0.00935643166 0.091706194 0.00998236239 -0.0451074056 0.0868507549 0.0325681269 0.0526371673 -0.092121996 0.00760430843 -0.0345609561 -0.0524684116 0.0390715823 -0.0375264473 -0.0899606124 0.0336517319 -0.0116493106 -0.0150304213 0.0387175307 0.0294156075 0.00560626388 -0.0856208727 0.030687578 -0.0546231046 0.00801313668 0.0187227875 -0.032299269 -0.00209072977 0.0257612765 -0.0532143489 -0.0647951588 -0.00997041166 0.0318459645 0.00976222008 0.0694703385 -0.0876970738 -0.0606772415 0.0199289843 -0.0642558113 0.054126285 0.0905071571 -0.0665132105 0.0740600303 0.0784754977 -0.062376976 0.0581515208 0.049904041 0.00525275618 -0.0798248351 0.0300994739 -0.0161789954 0.0382257178 0.0146574974 0.0617994294 -0.0231863409 0.0692197755 -0.0742461681 -0.0492856093 0.0671679154 -0.0889496952 0.072871156 0.0709361658 -0.0495065935 -0.0335232727 0.00502879918 0.0515234396 -0.00173345953 -0.0721445233 -0.0568356663 0.0662107691 0.0892133787 0.0265810117 -0.00384952128 0.0827768371 0.0644328818 0.0811790302 0.0557257906 -0.00215828419 0.0893995687 0.0137124583 0.089777492 0.0294916555 0.0231989324 0.0749269351 -0.052963648 -0.0199472085 0.0711617097 0.0583942309 0.0686227158 0.0271186233 0.0881720707 0.045432128 -0.0149656013 0.0649945959 -0.00229100138 0.0860197023 -0.0576865897 0.0322291404 -0.0162512138 0.0304598957 -0.0550265126 -0.00435373932 -0.0449834652 -0.0462975129 -0.00253516436 -0.0206084698 0.042539902 0.0135166794 0.07621672 0.0881973132 -0.0744796097 0.0608758703 -0.0176370591 0.0869807079 -0.0597574003 -0.0246784315 0.0609469637 0.0118329599 -0.0700320676 0.0868967548 -0.00309396535 0.0383166298 -0.0914421603 -0.0874178559 0.0643900558 -0.0105203241 0.0494097993 -0.0690860748 -0.0437209867 -0.0236409009 -0.00833657384 -0.0909341797 -0.0721645057 0.0102712736 -0.0843522102 -0.0466761813 -0.0391071104 -0.07049869 0.00326786935 -0.0687007159 -0.0112144649 0.0769876167 -0.0177906901 -0.0421770848 0.0540750399 0.0759697929 -0.0651907325 -0.0551416725 -0.0463635214 -0.0393745378 -0.0692693591 -0.0179403871 -0.0355948322 0.0378861204 -0.0682869405 0.00760983676 -0.037126869 0.0563266054 -0.0534078404 0.0475383475 -0.0479132794 0.0503974929 -0.0368978083 0.0257713124 -0.0207368359 -0.0701508522 -0.0487538166 -0.0814734176 -0.019885473 0.0360627994 0.0821582153 0.0889356956 -0.0782656521 -0.0467826687 0.0511456206 0.00909595937 -0.0373063236 0.0504476056 -0.0556451194 0.0809317455 -0.045862034 -0.0471305661 -0.00349546224 0.0899607465 0.0202127919 0.0866441652 -0.0383077338 0.0151872709 0.00552155077 0.0875325873 -0.0283295289 0.0183235183 0.00912310183 -0.0195761845 -0.0105199292 -0.00294086337 -0.058991503 -0.0122970343 0.0204871744 -0.00885109603 0.0295679271 -0.0604011863 0.0456607863 0.0438041165 -0.0667987317 -0.0133352652 -0.0490872301 -0.0111987516 0.0380418673 -0.0517977104 0.0264618471 0.0228899866 0.0521444455 0.0674939081 0.0731782392 0.0366281345 0.00671225041 -0.0741682947 -0.0807794929 -0.0734146982 -0.0477505103 -0.0273924321 0.0728601292 -0.0905232206 0.0281528458 -0.0775078833 -0.00557371229 -0.03116595 0.0897325203 -0.0677976757 -0.0374904163 0.0897234306 -0.0720654353 0.0659461543 -0.0455403291 0.00859733671 -0.000620938838 0.0423907861 0.070729427 -0.0435034819 0.0320781097 0.00188691169 0.062655963 0.0286981165 -0.0483887494 0.0710474327 -0.0468657799 -0.0046133697 -0.0816529766 0.0909375921 -0.0406353176 -0.0493910164 0.0493242219 -0.0278415084 0.0842672959 -0.0478301458 -0.0327030532 0.0887307301 0.040311195 0.0613120869 0.0553149208 0.047844626 -0.0848269314 0.0628095642 0.0844061151 -0.0846574306 -0.01577878 -0.0181797072 0.0444315746 -0.00247543305 -0.0665585473 -0.0713777617 -0.0408414677 0.0504862592 -0.0139949173 -0.0396374725 -0.051439248 0.0231776908 0.0574101135 0.0167185813 0.008519575 -0.0326925516 0.0669582561 0.040057756 -0.0223489031 -0.00968207419 -0.0158741921 -0.0588750243 0.012260057 -0.0891878232 -0.0242824852 0.0613843277 -0.0148601532 -0.0737471879 -0.0894560888 -0.0450565405 -0.0285953656 -0.0164741799 -0.0342247896 0.0568429753 0.0327012017 -0.012596108 -0.0907260254 0.0229815766 0.0190790519 -0.0921073183 -0.0137487799 0.0521467254 0.0914426669 -0.0573532619 -0.0297149345 -0.0395119712 -0.0685092732 -0.0340794772 -0.049880024 0.0923041627 -0.00778959692 0.0230274647 0.0130539089 -0.0717902854 -0.0228308067 0.00885626674 0.00643079728 0.0459938571 -0.0450974554 -0.00697469711 0.0368278846 -0.0310331173 0.0267281979 -0.0256485865 0.0223376378 0.0847728923 -0.0782912076 0.0854174122 -0.0368856788 -0.000164553523 -0.0604139306 -0.00656171888 -0.0553838313 -0.018508032 -0.0723122805 0.0812061206 0.00604264438 0.0147453919 0.0385448262 -0.0501219854 -0.0154241249 -0.0701091886 0.0291577801 -0.0746677369 -0.0266043916 -0.0227257907 0.0249159634 -0.0627610609 -0.0151089132 0.06822934 0.00474499911 0.00164378434 -0.065334022 -0.0787189379 0.0455134735 -0.0587394834 -0.0254539028 -0.0600451007 0.074968107 -0.0122714564 -0.00894203782 0.0118215382 0.0836331323 0.0654926226 -0.0161859542 0.0647985265 0.0303131565 0.00244536251 -0.0872704908 0.073963441 0.0663995221 0.0667229667 0.0881743357 -0.00588022918 -0.0058189556 0.0251320451 0.0897232369 0.0465622172 0.0686699226 0.0479624048 -0.00529783219 -0.077411212 0.0260394216 0.0635343269 -0.0162134841 -0.0566456281 -0.0915624946 -0.0626688823 -0.0710458681 -0.0180915967 -0.0338794217 -0.0222494379 0.031040445 0.0498375222 -0.00961571187 -0.0720916986 -0.0321982838 0.0749337599 -0.0335410796 0.0349768028 0.0702870861 -0.0585441403 0.0213549584 -0.0434438549 -0.0562552027 -0.0862452462 0.0159323066 0.0592158809 0.0667059794 0.0882294402 -0.0725845322 -0.0368868895 -0.0093048811 0.0602450892 -0.081542708 -0.0531714931 0.0663009807 -0.0884513557 -0.0534152798 0.0359941199 0.0663581416 0.0523980036 -0.0093902424 0.00257469714 0.0177195966 0.0793015584 0.0273733288 0.00608983636 -0.00407002121 -0.0114769414 0.00708319247 -0.0922806039 -0.0101288706 -0.0525036715 0.0886929259 -0.0784694478 -0.0844536796 0.0380704179 -0.0916500911 0.00266894698 -0.0605288446 0.0128689259 0.0112336427 -0.054816246 -0.0272291377 -0.0624735355 -0.0275755823 0.0219170153 0.0105605572 0.0913086608 -0.0260812417 0.0577950403 0.0726048276 0.0103875324 0.0914224312 -0.0380829386 0.0552139804 0.0716918036 -0.00575802475 0.0194948092 0.0196607858 -0.0688251257 -0.0154603794 0.0704079345 0.0560163185 -0.0347393081 0.0753906891 0.0701325014 -0.000469639897 -0.0216646418 -0.0284605548 0.00611382723 -0.0681919679 0.0562765375 0.0616083965 0.0364361778 0.0321768224 -0.0617880002 -0.0599653982 0.0103796124 0.0800723806 0.0539981201 -0.025802061 -0.00405045599 -0.012535803 -0.0164230466 0.0724722967 -0.0123292133 -0.00934457034 -0.0656369701 0.0623990819 -0.0235828608 -0.0635599345 -0.0589410998 0.0551406667 -0.0882816762 -0.0197012872 -0.0424018987 0.0906395689 0.080585368 0.0702244416 0.0197363719 0.0692917481 -0.0448485389 0.0176439732 0.0276687518 -0.00969041884 0.030776076 -0.0630964115 -0.0922390297 -0.0853958577 -0.0125331804 0.0269996077 0.0473394915 0.0318145081 -0.040960148 -0.0363958813 -0.0430064164 0.0788817033 0.0769019052 0.0892185792 0.0189443231 0.0628849342 0.025081642 0.0701119378 0.0885592774 -0.0427200831 0.0752520636 -0.0117199197 -0.0222317651 -0.0694730207 -0.0147468224 -0.0167672932 0.0572016165 -0.0736428201 0.0720352903 -0.0847357437 -0.0792911202 -0.0895221606 -0.0786787271 0.00508192927 -0.000954993069 -0.0295485556 -0.0553220473 -0.0238265991 0.0246657506 0.0107206181 0.0281157419 -0.0680829063 0.0163073838 -0.0921222195 -0.0609017462 0.00700557977 0.0440785661 0.00965441018 -0.0222821683 0.00422319025 -0.00459642708 0.0527205244 -0.0655058324 -0.0192549154 -0.0627388731 -0.0692510903 0.0433776453 0.0242662132 0.0597412214 -0.037314225 -0.0279151574 -0.0886844695 0.0274477899 -0.0389660448 -0.0744969994 0.00665123761 -0.0878738463 0.0481140986 0.0520396456 -0.0847634152 -0.00766935199 0.0134441704 0.000225782394 -0.0283882692 0.0194426402 -0.0856006667 -0.0729357302 -0.0656678304 0.0818499699 -0.031481538 -0.0378429368 -0.060106311 0.0372583196 0.0522702113 0.026716508 -0.0447012261 -0.089292109 -0.0119122416 -0.0193740577 0.0757481828 -0.0828429312 -0.0700832009 0.00791921467 -0.00751303136 -0.0751070231 0.000131383538 -0.0284781605 -0.0361783952 0.012543112 0.0786280558 0.0632327422 0.034018971 0.0587976053 -0.0492696539 0.0267035887 -0.0782551542 -0.0813252628 0.0164554045 0.0841793492 0.0246086344 0.0104194731 -0.0823999494 -0.0327219591 -0.0110897124 0.0406872854 -0.0135334954 0.0152908266 0.0378580764 0.0214075595 0.0134624392 -0.0298741348 -0.00838275254 -0.0764734074 -0.0848822445 -0.07616698 -0.0202015415 0.0408487692 0.0583840087 -0.0383970961 0.0405282304 0.0554296151 -0.0354356728 0.0407022908 0.0295078605 -0.0703505352 0.0314286202 0.0744181201 -0.0101754442 -0.048784256 -0.0900577679 0.0342917964 0.0375905707 -0.0704376549 -0.0793072358 0.021738708 -0.0459132083 0.0823807344 0.0265655592 0.0712454841 -0.0593587682 0.0692155883 -0.0655479804 0.0317614675 0.00144644082 0.0180369243 0.0901006684 -0.0519926324 -0.0309030563 -0.0283592865 0.0493290201 -0.0651202053 -0.0733277798 -0.047854688 0.0728779361 0.0374856219 -0.0103715807 -0.0323845372 0.0750987157 0.0490045324 -0.0282365978 -0.0601338893 -0.0739357769 -0.0493408106 0.0282944664 0.0776436999 -0.0750780329 0.0561088845 -0.0572902896 -0.0286985338 -0.0473889671 0.0535841063 0.0392706469 0.0647413209 -0.0920809954 -0.0179115087 0.0518255755 -0.0474525541 -0.0380550511 -0.0302917399 -0.0223803371 -0.0714597553 -0.06438829 -0.018086113 0.00358939916 0.0225623623 -0.0243096873 0.0167284235 -0.0860905573 -0.0696610585 -0.0905402601 -0.000404044986 -0.00424786657 0.0156959519 0.0663768128 -0.00309383869 -0.0857530013 -0.0363427699 -0.0782935843 -0.0433808602 -0.0542082302 -0.037915878 0.0600795522 -0.0566194989 0.0252671018 -0.0520395152 -0.0390247442 0.0415542349 0.035917528 -0.0239101127 -0.00980260968 -0.0635374337 0.0373316631 -0.0335949585 0.0753984824 0.0283310041 0.0781964585 -0.0799549818 0.055764325 0.0281152353 -0.0610491522 0.0569498315 -0.0233487114 0.0604980364 0.0196767673 0.0433181301 0.0501344427 -0.0459677503 -0.0189323276 0.00819434226 0.0898106173 0.0857534483 0.0709472373 -0.00312909484 0.0913086012 -0.00983964652 -0.00159648806 -0.0110796988 -0.07689403 -0.0312684961 -0.0130491704 0.0660640821 0.0249166265 -0.0803184435 -0.0722656846 0.079882212 0.0318474621 0.0658377931 -0.0817855448 -0.0835483 -0.0263824165 0.084554933 -0.0765790194 0.0480241403 0.0417684987 0.013507165 0.00901406258 -0.0287532285 0.0161168203 -0.0518190153 0.0126633719 -0.00498405099 0.0592834428 -0.0668109432 -0.0798943192 0.0756597295 -0.0241614282 -0.0767712146 -0.0782345533 -0.000957742333 -0.0825936422 -0.0527717397 0.0342587456 0.0815137699 -0.00483436137 -0.0551046953 0.0252043679 0.0257170349 -0.0195867494 0.0460532233 -0.0729084164 0.0425474271 0.00105220824 -0.0704917759 0.0683519915 -0.015837945 -0.030696027 -0.065206334 0.0383043364 0.0488417521 -0.0582475699 -0.0305930376 0.0180189386 0.0831864104 -0.0847430527 0.0697994605 -0.0677175522 -0.00234732777 0.0279155746 0.0784195736 0.00239445269 -0.0453126319 0.0758997127 -0.011977531 -0.0457662679 -0.0146971419 0.0236039013 -0.0907551944 0.0749821588 -0.0201099589 -0.0433993265 0.0842263326 -0.0393139869 0.0590882376 -0.077143915 0.0652583912 0.0240814835 -0.0472414754 0.0624507293 -0.073756896 0.0725516006 0.0436642691 -0.0884316117 -0.0879511684 0.0334065929 0.040255703 0.0316602141 0.0752350315 -0.00245907903 0.0917652026 0.0602237359 0.0391811058 0.0826917812 -0.00815309584 0.00519621372 -0.0524743982 -0.00015796721 0.0792477205 -0.0482083969 0.0272583216 -0.069923684 -0.0750396699 -0.0810786784 0.0130027533 0.0120187551 -0.0211638436 -0.0880207419 0.0395844653 0.0756538734 -0.0852359086 0.0409150049 0.0533229187 0.0784764066 -0.0474124514 -0.0475477278 0.0204186961 -0.0255350322 0.0327979997 -0.0838906318 -0.0786775798 -0.0733570307 0.0717668608 -0.00288339704 0.0823448822 0.044741489 -0.00460430235 -0.0899717286 0.0740714297 0.017260462 -0.0537689663 -0.0214726031 -0.0114969313 0.0342758521 -0.0292352811 0.0540806577 -0.0880932435 -0.0537161641 0.0117441043 0.0289189219 -0.0908737406 -0.065851219 -0.0341103114 0.00771416724 0.0779271796 0.0891914144 -0.0464344621 0.0251250193 0.0343350694 -0.0229758546 0.0575756356 -0.0449321158 0.0825725272 0.0566559508 0.0683165714 0.0414741561 0.077680923 0.0696423724 0.00660324842 -0.0356161147 -0.00811550021 -0.00628071278 -0.0598747395 -0.0806045309 0.0893124714 -0.0601720996 0.0663680658 0.00260297954 -0.0797981769 0.0666619167 -0.0344192535 0.0478478 -0.0767314583 0.0141631439 0.0087127164 0.0267311037 0.0728412792 0.0559755787 0.0353911892 0.0361608043 0.0600932762 0.0826150849 -0.0338648073 -0.0202607289 0.0600465015 -0.0314847939 -0.0694039091 0.0532312766 0.0177428201 0.0235908031 0.0830036327 0.00989560038 -0.029509902 -0.00996627659 -0.0440333821 -0.0120966509 -0.00932546705 -0.0500445738 -0.06444332 0.0817989036 -0.0321149305 -0.0238542035 -0.0698831007 -0.0854547173 -0.0805422664 -0.0318390951 0.00437238067 -0.0903951898 0.0617361441 0.0619327202 0.0172528028 -0.0805622041 -0.0687605664 -0.0098092556 -0.0347673707 0.0636228397 -0.0482063703 -0.0250013694 -0.0316448547 0.0748561695 0.0758805349 -0.0632332936 -0.0584836975 0.0127416402 0.0605967268 0.0343605503 -0.0293573514 -0.0672984719 -0.0163930058 -0.0803308114 -0.0774092525 -0.0803000629 0.0753927454 -0.0130868554 -0.0604719259 -0.019474782 -0.0519997664 0.0212504268 0.0533295944 0.0897590891 -0.0375825986 -0.0312626213 -0.0493660793 -0.0380711406 0.0180748925 -0.0619105548 0.0277875438 0.00571896136 -0.0411305316 0.0391473398 -0.0603450127 0.026844874 -0.0323379859 0.0095955506 0.0142925903 0.0501675233 0.0243690461 0.0700920448 -0.00319090486 -0.0767757222 -0.0398432054 -0.0207085758 -0.0513788722 0.0667929128 0.0654833093 0.015620105 -0.00658361614 -0.0285806432 0.0390142873 -0.0548800789 0.0747399107 0.012866728 -0.012620233 0.0657529458 0.0189784393 -0.0394438468 -0.0677533001 -0.00324055552 0.0279299244 -0.0857068449 0.0734960362 0.0671927556 -0.0552048422 0.0236993805 -0.064163506 0.0596027151 0.0384226516 -0.0532989353 -0.00184670091 0.0128680468 0.0577013567 0.0375506356 0.0826076791 -0.0644016117 -0.0652792603 -0.0888343602 0.0351723358 -0.0217125192 0.0473509505 0.0510337725 -0.0564662628 -0.0786068141 -0.0652955025 -0.0774459839 -0.0233133808 0.00359220058 -0.014722012 -0.0406507924 -0.0234802216 -0.066068992 -0.0577193648 -0.0134186596 0.043599911 -0.0091079995 -0.0784760341 -0.0449919812 0.0453011617 0.0186058059 -0.0595008023 0.0397362784 0.021075137 -0.00679386407 0.0446152315 0.013171114 0.0658091381 0.0446413383 0.0523648337 0.0473541096 -0.07482557 -0.0859153047 -0.0408226252 0.0309243426 -0.0394716039 0.000613875687 0.015070945 0.0319366008 -0.00925680995 -0.031492386 -0.0556347743 0.065484859 -0.0211648121 -0.0178358331 -0.063625589 0.0586894676 0.00424370915 0.0205996037 -0.0542308353 -0.0215042308 -0.0710195005 0.091408588 0.0655890033 0.0694425777 -0.0133776143 0.0359431282 -0.0474362895 0.0740895197 -0.0504920259 0.0434364751 -0.0599819086 0.00160159171 0.090311788 -0.0178436488 0.024496004 -0.0721535012 -0.0745445862 0.0771200284 -0.052601818 0.00579988956 0.0771365389 -0.0755355433 -0.00535235554 -0.0275977626 0.062851809 -0.0779298395 0.0329374894 0.0546475425 0.0129107907 -0.029750526 -0.05124221 -0.0881424621 0.0558476523 0.0760351792 -0.020093143 -0.0389747173 0.0816282108 -0.0077341944 -0.0390953757 -0.0259654894 0.0355650559 0.0407696739 -0.0877613276 0.000597253442 -0.0654259995 -0.00860536844 -0.0371668413 0.0396517292 0.0841578618 0.0745314732 0.011693567 -0.0922368243 0.0404597148 0.0481887832 0.0596735701 -0.0172911659 -0.0301221684 -0.0403938629 -0.043032147 -0.0717266276 0.0813722834 0.0431592539 0.056185402 0.0195771679 0.0844395533 0.0306424052 -0.0277582631 0.00894353539 -0.0791975781 -0.0674923211 0.0193295106 -0.0921101794 0.0876451507 -0.0759794489 0.0308627337 0.084184669 -0.0895200297 0.0722040161 -0.0742612928 -0.0261109173 0.0635607168 -0.0477038696 -0.0687004775 -0.0836953074 0.00837734342 0.00982151181 0.00463463366 0.0215594321 0.0899075493 0.0236111656 -0.0296302363 -0.0684252381 -0.0626690537 0.0346005484 0.0554379746 0.0543930307 -0.0353270955 -0.0853624716 -0.00717297196 -0.00883049518 0.0750336125 0.016964525 -0.0824198723 0.00546167791 -0.0330283865 -0.0537059531 0.0593389645 -0.0457048155 0.0704543963 -0.0304732807 0.0890637711 -0.0210168734 0.00183235109 -0.0898652822 -0.0791582465 0.0640004501 -0.0419387333 -0.0518144369 -0.0694819838 0.0253044069 0.0713414922 0.0282374322 -0.0193995014 -0.0335592814 -0.041025497 0.0160065442 0.0499179885 -0.00323721021 -0.00623979419 0.0412350222 -0.0424582027 -0.0445150807 0.00747489184 -0.0494308807 -0.00817832351 -0.0170228556 -0.0851813927 -0.00216299295 0.046973668 0.00819507241 0.0156642571 0.0858761743 -0.0738927871 -0.0883229002 -0.0513785183 0.0686205849 -0.00211619586 -0.0423462801 0.0619576946 0.0154525861 0.0772461966 -0.0708236694 0.00582045317 -0.0233747065 0.0665954128 0.00810100138 -0.0198479444 0.0757182911 -0.02184394 0.0897210762 -0.0700842515 0.00369843841 0.0308100879 -0.0795123726 0.0363623574 0.0788775012 -0.0445341878 -0.00421775877 -0.0417819321 -0.00675598532 -0.0136854947 -0.0871196762 0.0200695023 0.0348405316 -0.0655301958 0.0377905145 0.0598724559 0.0657413676 -0.071166046 -0.0265231952 0.0750888661 0.037020959 -0.00616383553 0.0433418378 0.0754653886 0.0128334686 0.0874429271 0.00292820483 0.0450677797 -0.0152361766 0.0184520185 0.0749751106 -0.0424559377 -0.0700655207 0.0457742587 -0.050064493 0.0749139711 0.0866615698 0.0221063495 0.0592437908 -0.0223186836 0.0840123519 0.0384870246 -0.0442113578 -0.0678559095 -0.0590539239 0.0284667164 0.0410082564 0.0208447129 0.0524903312 -0.0403055586 -0.0581637993 -0.040902812 0.0025466308 0.0393212214 0.024623841 0.0586822107 -0.0359282903 0.0292654559 0.0533831194 0.0653904602 0.0521025136 0.0222913474 -0.0740333498 -0.0634634569 0.0736104622 0.0700476095 0.0447442159 0.0228638649 0.0776691511 -0.0192857087 0.0621808842 0.0660453811 -0.0494335629 0.0428402796 0.0381222293 0.048199214 0.079217501 -0.0892055854 -0.0542613864 0.00177980959 0.0161582828 -0.0345273688 -0.0424256511 -0.0446279943 -0.0310669914 -0.000502765179 0.0559446439 0.0308083221 0.0300729126 -0.0113437548 0.0462851599 0.0257746577 -0.0842954889 0.0417893007 0.0805403218 0.00452462584 0.00540672243 -0.0244979635 0.0728695914 0.0612450913 -0.0635398328 -0.087952286 0.089438729 0.0661830232 -0.060876105 -0.0909267217 -0.0413870625 -0.0044830516 0.0730676129 0.0374808386 -0.0262475982 0.00046210736 -0.0466747731 -0.0399579667 0.0305046439 -0.0113629326 0.00147606432 -0.0700466186 -0.0826743543 -0.0315386541 0.0252410844 -0.0863475502 -0.0312564559 0.0396915749 0.00991050154 -0.0779284984 -0.0445330441 0.0630287006 -0.0012312904 -0.090403527 -0.0343152732 0.0813900456 0.0702386275 0.0575535074 -0.0682822317 -0.00535175949 -0.07581646 -0.0787042379 -0.0327303 -0.0574347004 0.0251877084 -0.0599679314 0.0474349037 -0.055091314 -0.0652665123 -0.0127678588 -0.0489089899 -0.0745287836 0.0657540038 0.0234588981 0.0433546528 0.0518504009 0.0422923043 -0.0847800076 -0.0727735609 0.0101921037 -0.0708022788 0.0390599892 0.0471609607 -0.0622954965 -0.073141329 0.011789754 -0.0343205333 -0.00988838077 -0.084838137 -0.0888806432 -0.0537204556 0.0853371099 0.0502780601 0.0876140371 0.0569310561 -0.016658999 0.020976156 0.0888499394 0.0427817628 0.0835494921 -0.0418274477 -0.0115987733 0.0467025265 -0.0854871348 -0.0312636755 -0.0123502761 0.0199774355 0.00796649605 0.0881465301 0.047969453 -0.0719593465 0.0839828923 0.00480851531 -0.0337073468 -0.0628215894 0.0356874689 -0.0312394202 0.0571214035 -0.0805426612 0.0431021228 0.0708272979 -0.00520351529 0.0209027082 -0.0834143907 0.0155303255 0.063216947 0.0711120144 -0.0665131658 -0.00960862637 -0.0647201464 0.0607202724 0.0719613656 -0.0288904384 -0.0650755316 0.0718827471 0.00345181674 0.0191100463 0.00836481899 0.0815359429 0.0424638763 0.0845313743 -0.000830739737 -0.0166236535 -0.0681845993 0.00639764965 0.0519128516 -0.079917565 -0.0631318688 -0.000190675259 0.0333567336 -0.0337447636 0.0196974128 -0.0622133315 0.0115164071 0.0564497039 0.051413931 0.0520983711 -0.0411712937 -0.0834797844 -0.0843180716 -0.0513388142 -0.0323457979 0.0577993467 0.0226193294 0.00917750597 0.0511825606 0.0188421756 0.0839067474 -0.0596304461 0.0778358802 0.0848049447 -0.000316403806 -0.0479907542 0.0720806196 0.0826202706 -0.0134400353 0.0351868197 -0.0391968228 0.0726048723 0.0775093362 0.0768529996 0.0277606472 0.0176472962 -0.0612789169 0.0354054496 0.0760929212 -0.0212305114 -0.0416097008 0.0537914112 0.0812728181 0.0362894759 -0.0762694627 0.0257795006 -0.00997266173 0.038172476 0.0529636517 -0.039712023 0.0430259928 -0.056927558 -0.0178886354 0.0452092066 -0.0742715001 -0.0394057706 -0.0444652513 0.0852413401 0.083244361 -0.0470354371 -0.0850232467 -0.0579346493 0.089753367 0.0646491423 -0.0717637613 -0.0535288975 -0.0297190249 -0.0922747478 -0.0204343051 -0.0332546569 0.0647475645 0.0717578903 -0.020205088 0.0105415434 0.0833752826 -0.00693693012 -0.0266112164 -0.0491181314 0.0143433437 0.00332298875 0.082650207 -0.0150208473 -0.00127691776 0.0559852645 -0.0423020609 0.00848855823 0.0682327822 -0.0384395085 0.0744563714 -0.0758979023 0.0202717781 -0.0602902099 -0.0778341591 0.00503470004 0.0133792609 0.0730996057 0.00195347518 0.0102194175 -0.0314110145 0.0353950188 -0.0197190046 0.0422863737 -0.0621283911 -0.00121766329 -0.0390870571 -0.0859475285 0.0360419974 0.0489809439 -0.064087674 0.0875444636 -0.0815476179 -0.0313799344 -0.0910565332 0.0789678767 0.0542966947 -0.00945026428 -0.0685216859 -0.0269289985 0.00287164003 -0.05576884 -0.0852353349 -0.0108835846 -0.0118065253 0.0744971707 -0.0154862851 0.0355273411 0.000683270395 -0.0632200018 0.0106706545 -0.0772751868 0.0470203832 0.00745895505 -0.0211389661 0.0119916126 -0.0283424705 0.068135865 0.0542329773 -0.068122305 -0.0845407993 0.00301992148 0.0607324913 -0.0675374418 -0.08177571 -0.0796428919 0.0757414028 0.0257378593 -0.0707890093 0.0524418876 -0.067624405 0.0705946758 -0.0819510892 -0.0888125673 0.0129322559 -0.0214631632 -0.0890812278 -0.0865577087 -0.0775956139 0.00644490868 0.0532273725 -0.0119510964 -0.0422962494 -0.0774738491 -0.0544120483 0.0137981251 -0.0535289869 -0.0426276848 0.0604275391 0.0562156662 0.0890263394 0.041303508 0.0154168382 -0.00622141361 -0.0242531896 -0.0669352114 -0.0707544088 -0.00627021492 0.0343346372 -0.0122798383 0.0787778869 0.0244409591 0.089786239 -0.0622633174 0.0419266298 0.00551474839 0.0687185451 -0.0315139368 0.00763043761 -0.00835867226 0.0806936696 -0.0658804476 0.0851793811 0.0368846282 0.00114027411 0.0913190171 -0.0762084052 0.0827502385 -0.0200816095 -0.0207676962 0.0373554304 0.00259197503 -0.0917424262 0.0782960728 0.0671122447 0.0920193419 -0.0820911825 0.0216243863 0.0570800528 0.0691463277 0.0574594811 -0.0412386023 0.0565474108 -0.0681316182 0.00780718029 0.0228941068 0.00492271036 -0.0253222585 -0.0830949768 0.0648788586 0.0605991706 -0.00400984287 0.0539594665 0.03096167 -0.0757663846 -0.0699411631 0.0774613693 0.0207441226 -0.0134791732 0.00856762379 -0.0263319686 0.0567304716 0.0102531835 -0.0897589773 0.0615189597 0.0559846088 0.0353504643 0.0645185784 -0.0331989489 0.0440861806 -0.0528371558 -0.0409049913 0.0713833794 0.00365730375 -0.0371340476 0.00692306459 -0.0319123268 -0.0384802073 0.0588902757 0.0471893921 0.084898226 0.024422951 0.0136223286 0.016342029 -0.0789765939 0.0290855169 0.0917715058 0.0597128347 0.0165146813 -0.0198081285 -0.0591265373 0.0370203331 -0.02741988 0.0602392331 0.0769968554 -0.0752692148 -0.0293223932 -0.0822581798 0.0199418217 0.020813413 -0.0504712686 -0.0669115782 0.0391214564 -0.0670118779 -0.0543663763 0.076139532 -0.0501377471 -0.0504402593 -0.0848381594 -0.0264840797 0.0768978968 0.0533185676 -0.0444833413 0.0555359647 -0.01291731 0.0126556456 0.0206590295 -0.0915444195 -0.0436744802 -0.0344910286 -0.057612218 -0.00679608434 0.0836783573 0.072365351 0.0765939429 0.0785712078 -0.00897091627 0.0409705117 -0.0815604925 0.075704895 -0.0702616349 -0.03905873 0.0119577646 0.0757262036 0.0723558441 0.075256072 -0.0148771629 0.0821059123 -0.0630966574 -0.0309044011 0.0695781633 0.000723816454 0.033126317 0.0475056842 0.0656891987 0.0785734728 -0.0167137384 -0.0883473977 -0.030687023 0.0839827284 -0.0571900122 -0.0242090151 0.0485423878 0.0399459228 -0.0277299359 -0.0240680128 -0.0371288955 0.0899254903 -0.0326623991 0.0792564079 -0.0773322582 0.0873415694 -0.0517515317 0.0494344905 -0.0411474593 -0.0625553504 0.048406519 0.0615813807 -0.0758855939 0.0242880285 -0.0837282166 -0.0584521592 0.0806632116 -0.0579106994 0.055064477 0.00382101536 0.0915947631 0.00360826403 -0.0770582706 0.05766242 0.0441877171 0.0471367463 -0.0818408579 -0.0137299374 0.0257408991 0.0775323585 0.0324841812 -0.0633810908 -0.0720241219 -0.045825541 0.0414280519 0.0304793343 0.00802528113 -0.0573270693 -0.00255893916 -0.0649169236 0.0223162398 0.0140822381 0.042194657 -0.0524982363 -0.0910679623 0.0726104155 -0.0605150908 -0.041141998 0.0226157829 0.0186861008 -0.0686310083 -0.0517543256 0.0838892683 0.0691472664 -0.0737671778 0.0418720618 0.00474219769 -0.0195437148 -0.0183378309 -0.0850124136 -0.0499484986 0.0402959809 -0.0113079026 -0.0633956045 0.0486479923 0.0257686749 0.0854971781 0.0390739813 0.00909657776 -0.0785392895 -0.0834001303 -0.0511039831 -0.0207810327 -0.0696260631 0.0254649743 -0.0794718489 0.017118074 0.0368236974 -0.00065369159 -0.032641422 0.0373486057 0.021847114 0.0872195885 0.0176795423 -0.0673264936 -0.0361984484 -0.0246591046 -0.0337445214 0.0451204106 -0.0222041011 -0.0181249455 0.027462557 0.0720325783 -0.0637734532 -0.0385283865 -0.0756247267 -0.0745134652 -0.00846650451 -0.059269473 -0.0763585344 0.00782521069 0.0658852533 -0.000558406115 -0.0317311585 0.0570100322 0.0203183964 -0.0294221938 0.0359682217 0.0500599816 0.0675087795 -0.0394168198 0.085544534 -0.0486398451 -0.0255187005 -0.0107446089 -0.0584836565 0.0252407342 0.0421481803 -0.0428073779 0.0807635859 -0.0334100053 -0.0131026804 -0.0489750654 0.0684038922 0.0368937775 0.0288818553 -0.0092760697 -0.0746787637 -0.0874724388 0.0470220968 0.0428948924 -0.0448031984 -0.0884587318 -0.0530690327 -0.0354376994 -0.0757262409 -0.087255463 -0.0683797598 -0.086526759 -0.0547979586 -0.0839233175 0.0457078889 0.0803683773 -0.0289217606 -0.0443894006 -0.0580658726 -0.0560374111 0.0354851708 -0.0489041917 -0.0144273564 -0.0315051079 0.0841961727 -0.0247455835 0.0920520052 0.0723567083 -0.0256425515 -0.0402440391 -0.0514981262 0.0696570501 -0.0430941284 -0.00737016648 0.0692928955 0.00403128564 0.074251987 -0.069137454 0.00525031239 0.00292827189 -0.0901167095 0.0459726378 -0.0143861994 0.0625113472 -0.0356789343 -0.0481767021 -0.0421107002 0.0218107477 0.0362201706 0.0580024645 0.0748260841 -0.0745702535 -0.019814536 -0.0018312484 0.00118088722 0.0583289489 -0.0515526459 0.0339422002 -0.0720700398 0.0352996662 0.0580349043 -0.051685039 0.0593608841 0.0224493146 -0.0372074507 0.00312463194 -0.00102516264 0.0257024467 0.0465570763 -0.043348439 -0.0580575988 0.0749565586 -0.034942925 0.0828673467 0.0737716034 -0.0877443776 0.0796486363 -0.0838605389 0.0459579751 -0.0224704295 0.0555006042 -0.0700331181 -0.0776629448 0.0132570192 0.0373726115 0.0036759451 0.0730495527 0.0594489947 -0.0324207656 -0.0816112012 -0.0502637997 -0.0077790767 0.0913698152 0.0570572391 0.0570342615 0.00603623688 0.0710326657 -0.0786707401 -0.0416128039 -0.0662758201 -0.0864122584 0.0131338015 0.0259036422 -0.0132811219 0.0222179443 0.0429499373 0.00591971725 0.0365291908 0.0807412192 0.0193613842 0.0784634575 -0.0432603098 -0.0848247781 0.039415963 -0.0591032952 0.0708707944 0.0283129737 0.00219215453 0.0357500091 0.039150618 0.0887759253 0.0365586206 -0.0506987274 0.0797015354 -0.0760554075 0.0135874152 0.0440953597 0.0097027868 -0.0576575361 0.0670725629 0.0066254586 -0.07734029 -0.00324297696 -0.0374861471 0.00515615195 0.0351858959 0.0834689066 -0.0745929182 0.0585096553 -0.0187244639 0.00444349647 -0.0250397548 0.0123572722 0.0380488411 0.00789863616 -0.00464110821 -0.0152710229 0.0115815774 0.00182031095 -0.0699909329 0.071376048 0.062894024 -0.0183851719 -0.0426281467 0.00232450664 -0.00493007898 -0.032161396 0.00173211098 -0.0391745046 0.0778625831 0.00558469445 0.060194768 0.0107290745 0.0539751425 -0.0279476419 -0.0798344091 -0.0669482648 -0.0579233356 0.0665366724 -0.00539278239 -0.0780212954 0.0311642364 0.0419963524 0.0121700317 -0.0752013326 0.0916068479 0.0839795545 -0.0478382893 -0.0576924682 -0.0334969237 0.0655053332 0.0702688172 -0.0549835488 0.00658093393 -0.0243948027 0.0196280628 0.0799465999 -0.0812174603 -0.0156198665 0.0583201572 0.0342652872 -0.00239669532 -0.0522667542 0.0861625448 0.0290867537 -0.0742072761 -0.0284428149 -0.0599745139 0.036812298 0.048205398 0.0658448115 -0.0562750138 -0.0394410081 -0.0772241652 -0.0222352892 0.0124573782 0.0527110323 0.0662728325 -0.0376349837 0.0765253827 -0.0801819339 -1.30310655e-05 -0.0245031118 -0.0491301939 0.0843431875 -0.0898371115 0.0421105698 -0.0402795635 0.0825755224 0.0543205217 -0.00657144934 0.0753588453 -0.0760560706 0.033641167 0.00450243801 0.0352102891 0.0230974406 -0.0542030595 0.0780372545 0.0427601859 0.0286160111 -0.00496377796 -0.0677871704 -0.042780567 -0.0583357215 0.0181967616 -0.0143215582 -0.016971834 0.0123344734 -0.0305324458 -0.0126180574 -0.0441792011 -0.0484315604 -0.0150613487 0.00428528339 0.0669422969 -0.0504756719 0.0674778596 0.0732742324 0.0157499239 -0.0899093971 -0.0204565749 0.0035078302 -0.0457459725 -0.0107300431 0.074779965 0.0888072923 0.0895299539 -0.0147232935 -0.0462994054 -0.0466691144 -0.0200386196 0.0697882548 -0.019515872 0.0566796735 0.0511654392 0.0281044915 0.0200485513 0.0831796005 0.0627222136 -0.0235877857 0.0316119045 0.0635669008 0.0792827532 -0.0429157801 -0.0102220848 -0.0696889237 0.0860113576 0.0270456523 -0.000717870891 -0.00749126822 -0.0492111705 0.0635329708 -0.0837471858 0.0194599405 0.0517228469 -0.00871088356 -0.0448994301 -0.00168342888 -0.0118525773 -0.0610189736 -0.0446016937 -0.0755659416 0.0741240755 0.054358758 -0.0659133568 0.0597284064 0.0854297504 -0.0897718072 0.0336170122 -0.00320668519 -0.0674970523 -0.0377974398 0.0545480326 -0.0923049897 0.0227857679 0.00389110297 0.0204477534 -0.0753458813 0.00772816688 0.0649276003 0.0247690454 0.0363932326 0.0597630963 0.0893546864 0.00262353569 0.0544105992 0.0330595747 -0.0544251204 -0.0453452282 0.0915676877 0.030381918 -0.0488910936 0.0197412819 -0.0113145709 -0.0515624844 0.0310934931 0.0440509543 0.0771848336 -0.0347492993 -0.0405017808 -0.0126654655 -0.0610168837 -0.0763768256 0.067172952 0.0377278253 -0.0749561638 0.0328075811 0.0451442972 0.0512792245 -0.00785236806 -0.070298478 -0.0695677102 -0.03777292 0.0064895004 -0.0148672387 -0.065947473 0.00946897268 0.0292207301 0.020675011 0.0405988619 0.0230351016 -0.0707909912 -0.0872428939 -0.0752614662 0.0369316414 0.0877713636 -0.0606527664 -0.0142873749 0.0597790107 -0.0251490548 -0.0127754733 0.0149227679 0.0745545849 -0.0223588124 -0.0877082571 -0.0369449332 0.0435473546 0.0074140504 -0.0808919668 -0.0121536329 -0.0124088898 0.0396883115 -0.0313774496 0.0468422547 -0.00127059966 0.0473315194 -0.0220182687 -0.0903290659 -0.0718025416 0.0795013085 0.0417935476 0.00622352958 -0.02600687 -0.0206305459 -0.0807736367 0.0590923503 -0.0143360794 0.0840692744 -0.0809802115 0.0661565885 0.0785069987 0.00208078325 -0.0714908987 0.0332708284 0.0576435402 0.00236485153 -0.0358220451 -0.00131164491 -0.0620777905 -0.0682438239 -0.0822445974 -0.0775292963 -0.0849856064 0.00188674033 0.0016643405 0.0691258982 0.0427618846 0.0356954411 -0.0231943503 0.00492797047 -0.0843569636 0.0688579902 0.0757141188 0.0900687352 -0.0806900635 0.0508215651 0.0902823135 0.00232417136 0.0477913693 -0.078201361 0.0812417194 -0.0267010629 -0.0755953044 0.025976561 -0.0874459371 -0.0377459154 0.00180868804 -0.0536540933 -0.0535433814 0.0261293799 0.0823161528 -0.069011353 0.0202353075 -0.04351037 -0.0239763856 -0.0531849638 -0.0421747081 -0.00179618597 -0.014490135 0.08457122 -0.0456411801 0.0583749041 -0.00577942282 -0.038797643 -0.0222007558 -0.0743784085 0.0812177733 -0.0506502166 0.04766462 0.029690899 -0.0714763254 -0.0721584335 -0.0727276653 -0.0213280618 0.0642524436 0.0542418137 -0.0121331662 0.067582272 -0.087131165 0.00846350938 0.0887119994 -0.0766369477 -0.0106401518 -0.00936678052 0.0260800794 0.0851427838 -0.0708028525 0.0489822403 -0.0823851153 -0.0587328337 0.00277291983 0.0162975043 -0.0304922089 0.0329750553 0.053529121 0.0322802514 -0.0677941293 0.0807251111 -0.0634700656 -0.042267371 0.00860497355 0.0727676824 -0.0533769391 -0.0239729956 -0.0435381681 0.00365585089 0.0769173577 0.0686657503 -0.09153568 -0.00326412916 -0.0503738746 -0.0339260846 0.02164983 -0.0221197754 -0.0693204701 -0.0310481712 0.090933241 -0.0416571759 0.0738399848 0.0738134906 -0.0085933283 -0.041609019 -0.0272390395 -0.0451687276 -0.0151173845 -0.0547672957 0.0204710811 0.0581331179 0.076908879 0.0480791107 0.0355780348 0.0258536339 0.0631984994 0.0688439384 0.0399621055 0.089573212 0.0484712645 -0.0889766589 -0.0175252035 -0.0507414043 -0.0287572369 -0.018181555 0.0729179755 0.0445709452 -0.091616638 -0.0283059776 -0.0300529227 0.0914534107 0.0324673876 0.00204994529 0.0685011223 0.0480849817 0.0770846233 -0.0303970799 0.0259303153 -0.066540502 0.069445841 0.0355328247 -0.0501447245 -0.0719537809 0.0328883603 0.0844803825 0.0363676026 0.0373215899 -0.0766256154 -0.0083438158 0.0497430041 0.0782556459 -0.0425890982 0.00393461436 0.0580722168 -0.0604279935 -0.0278441533 0.0569467917 0.0317602754 0.0872888491 -0.0506704636 -0.0526877455 0.0718363598 0.0543461964 -0.0234022364 -0.0560031198 0.0540044382 -0.0289801806 -0.0650133491 0.0794140324 -0.066101633 -0.0599880032 0.0351130441 0.0572191551 -0.0555631742 0.0870525017 0.0676843897 0.0718966797 0.0391976759 0.0825186744 0.071509473 -0.0452096872 0.0913360044 -0.0856990144 -0.0109020323 -0.0727649778 0.0359813794 -0.0914137661 -0.0252569765 0.00746289641 -0.0873885974 -0.0465791151 0.0776501819 -0.0360773653 0.0600611195 -0.0531460717 -0.0390805863 0.00407262146 0.0122502148 -0.0311514884 0.0658861771 -0.0713928193 -0.00472912937 0.0259855837 -0.086924687 0.0729174837 0.0658292249 0.0725726858 0.0909978524 -0.0643713698 0.0483344868 0.000982835889 -0.078797847 0.0791289285 -0.0432849154 0.0667815879 0.029847987 0.00380933285 0.00570346415 0.0197975636 -0.0272156894 0.0835651681 -0.0560892671 -0.0215287507 0.0253025144 0.051817365 -0.00262602419 -0.0679093525 -0.0559260175 0.0702439323 -0.0564491376 0.0382292941 -0.0132064596 -0.0449037887 -0.0208583549 -0.0154229775 0.0204158127 -0.000173710287 -0.0623915493 0.0268756226 -0.00393969566 0.0578751788 -0.015230611 -0.0536271743 0.079972662 0.0873123184 0.0539532825 -0.0488303453 -0.0333550684 0.0290020779 0.0160446241 -0.0490718447 -0.0157742649 -0.0487883501 -0.0493939891 0.000168003142 0.0191767812 -0.06772995 0.01726605 0.000979423523 -0.0327796713 0.0359939858 0.034894608 0.0641686097 0.0693857446 0.0747199878 0.0800955817 0.0302630365 0.050979279 -0.0388117284 -0.0257451683 0.0730767772 0.039499484 0.0218781233 -0.0746209398 -0.0864934996 -0.0851069763 0.0807639584 0.0586694852 0.0473392084 0.0395031497 -0.0250706151 -0.00256630778 -0.0422302634 -0.0890669003 0.061014615 0.0588132665 -0.0655793697 -0.0431536473 0.0480206832 0.0384420231 0.0723253414 0.0305496752 0.0864413306 0.091325365 0.0687975809 0.0294279829 0.0740879551 -0.00452727079 -0.0112180114 0.0901282057 0.0753954872 0.0560579076 -0.0596376844 0.0187733695 0.017185092 -0.0675978661 0.0282041356 0.0389212295 0.0218589529 0.0686200336 -0.0732911825 -0.0390557125 0.0913673714 -0.0405147672 -0.0885105208 -0.0135996342 0.046379678 -0.0617399737 0.0342738554 0.0421599224 -0.0922015011 0.0297682434 0.0412993804 0.0136348084 0.0832228735 0.015981257 -0.07464993 0.0746113285 0.0921128467 0.0134825781 0.0597974584 -0.0473581962 -0.00765319914 0.0200934932 0.0720694885 0.0209624246 0.0206306577 0.0887981579 0.0459490642 0.0486597642 -0.0358558968 0.0640505478 0.0351639315 -0.076939702 0.0449614152 -0.058876805 0.077853702 -0.0396764763 -0.0318560898 -0.050594043 -0.0811086595 -0.0363908187 0.0894368514 -0.0730902255 0.0188239291 0.0307284668 -0.0480306596 0.0513466522 0.0303787887 0.014643833 0.0406889543 0.00754831731 0.0172024593 -0.0193944201 0.0491503552 -0.0439832658 0.0153624117 -0.0294510275 -0.0633089468 0.055883117 -0.0802865922 -0.0696599558 -0.0220540315 -0.0125932246 -0.0320609175 -0.0455475263 0.0361965969 -0.0166954696 -0.0749000609 -0.0469518825 0.0169246048 0.0369334891 -0.0112530068 0.0607865378 0.0870986059 -0.0274435356 -0.0355660208 -0.0104249269 -0.0414125957 0.0917879865 -0.0557805039 0.0235160813 0.0482160822 -0.0437865779 -0.000607818365 -0.0714185685 0.0547789857 -0.0678428188 0.0874921605 -0.0633013546 0.0374933705 -0.0862509012 -0.0717649311 -0.0160147548 0.0774049088 -0.0312145054 0.0121107996 0.0383613035 0.0433553085 0.00713993609 -0.0815095827 -0.0671454817 0.0837964639 0.0727778748 -0.0471783727 0.00773410499 -0.00251445174 -0.0301380381 0.0542948619 0.0317576155 0.0416484997 -0.0865035579 -0.0366487801 -0.000923827291 -0.0427687056 0.0303221568 0.0184710994 0.0116280466 0.0790669844 0.0298506021 -0.0238369927 -0.0496752821 0.031561695 0.0643861666 -0.0529293343 -0.0760603845 -0.0445500799 0.0906393453 -0.0784163401 0.039927654 -0.0408085845 -0.0207299516 0.0558256879 0.0122098923 0.0341812745 -0.0378054529 -0.0729104206 0.0198265687 0.0185686499 -0.00482621789 -0.0292360038 -0.0104807019 0.0608734861 0.0048783794 -0.0640434101 -0.073763147 -0.047281269 0.0433108732 0.00491616875 0.00381600112 -0.0382242911 -0.0639974549 0.0805959329 -0.0678908676 -0.0218971446 0.0709172413 -0.0216130316 -0.0826806277 -0.0488719456 -0.0688000917 -0.0282598659 -0.0517171286 0.0703915432 0.0218631551 -0.0808896795 -0.0115889311 0.0532942936 -0.024479188 0.0719246194 -0.0338024311 0.0852121338 -0.0312522538 -0.0107468814 -0.0291083679 -0.0336040705 -0.0664925873 -0.0695773289 0.0667710826 0.0118920356 -0.009371005 0.0881308839 -0.0329475217 0.0548032001 0.0412838534 -0.0514052846 0.073617138 -0.00970937312 0.0548994765 -0.0673026592 -0.0737983212 -0.0754424781 -0.00248161703 -0.0743319467 -0.00153598189 0.0640059039 -0.0228823721 0.00689026713 0.0913798735 -0.0761891231 -0.0765111595 -0.0594565384 0.018473655 -0.0492072962 -0.00316625088 -0.0859710574 -0.0674448237 0.0234550238 0.0378750786 -0.0145454481 -0.00417263806 -0.0096443966 0.0311410353 -0.0907132179 -0.024103336 -0.0669448376 0.0585696027 -0.00985366851 0.0851095095 0.00565832108 0.0455335751 0.0755398795 -0.0324390568 -0.0622768104 -0.0878883898 -0.0554090999 0.0726023987 0.0374099985 -0.0765473843 0.0848196968 -0.060912028 0.0319325998 -0.0231664628 0.0567349717 -0.085827373 0.0879573002 0.0905890092 0.00519017875 -0.024278678 -0.0286474004 -0.0852433741 0.0036347881 0.0754470155 0.0562826321 0.0256194621 0.056705676 -0.0399516523 0.00575448573 -0.0456932373 0.0125678927 -0.0124768764 -0.00773181766 -0.0121593326 0.0319818109 0.0653584674 0.00357780606 0.00442637503 -0.00822222978 0.0319204703 0.0275531933 0.00685573369 0.0129679963 0.0481831953 -0.0519492067 -0.0232253 -0.0772760436 0.0410905555 0.0781903341 -0.014125526 0.0361877456 -0.0832083747 0.0639747605 0.0752912238 0.068334721 0.045397751 0.0172085389 0.0584060177 0.0300420523 -0.0678578466 0.0622012392 -0.0258198008 0.0889163986 -0.0338577665 0.0768896714 -0.0272313803 -0.00230077654 0.055992879 -0.00771306455 0.0218998268 -0.0311688557 -0.0679808259 -0.00404972583 0.0672908351 0.0363934115 0.0567513183 0.0198964551 0.0758544132 -0.0810155571 0.0141373724 0.0644451901 0.0714263245 -0.0894610435 -0.0872750729 0.0117740855 0.078595899 -0.0748649538 0.0817466751 -0.0455523692 -0.0876581445 -0.0657911748 -0.0469818413 0.0885954574 -0.0562666953 -0.0764865056 0.00924345106 0.0635991916 0.0588687435 -0.0169659555 -0.0867875591 -0.0543545336 0.0820157304 0.0789097771 0.000805608928 -0.0662364513 0.0681725517 0.0430856124 0.00935935974 0.0488532558 0.0765485093 0.00163839012 -0.0213575959 0.0794842914 0.0422949567 0.0321055576 -0.0330489017 0.0160835832 -0.0772341788 0.0388599113 0.0350539461 -0.0425946228 0.0625506863 0.00946272165 -0.055441916 0.0187958851 0.0916181132 -0.047026962 -0.0121817589 0.00392010808 0.00134406984 0.0301379934 0.046816431 -0.0497067794 0.0864066705 -0.0669306591 0.00820594281 0.060716413 0.00178357214 0.0122921914 -0.044089444 0.0486353114 -0.0515808836 0.0712973848 0.0634013489 0.0278727412 -0.0724960715 0.0266846865 0.0115692541 -0.0240998417 -0.0491897985 0.0663096085 0.014951013 -0.0173614398 -0.0624974407 0.0892314091 -0.0515418611 0.0680392608 0.0135358721 0.0184487626 0.0731950328 0.0143771544 -0.0444883406 0.0370330438 -0.0508922003 0.0743269101 -0.0810249299 0.0549555942 0.0143605769 -0.0596535131 -0.0879601464 0.0716620907 -0.0624333918 0.0653400943 0.0303165466 -0.0361734666 0.00317320228 -0.0353717543 -0.017052725 0.0221853703 0.0486534908 0.0643574372 0.0868746415 -0.0264839232 0.0209928155 0.0712451711 -0.0882055163 0.0717541948 0.0915054157 -0.0699696466 0.0193449184 -0.0558756553 -0.00692643225 -0.0832594112 -0.0257149711 -0.0112075582 -0.0879752934 -0.0508564748 0.0712465122 0.091848962 -0.0906051695 -0.0444612242 0.0110847354 0.0420133695 0.00670900941 -0.087393485 -0.0377204046 -0.0550989956 0.0153453723 -0.0317120068 0.0868867859 0.0342467055 -0.014418073 0.0589602664 -0.00591687858 -0.0564505905 0.00915569812 -0.0327851512 -0.0133223459 -0.0769390836 -0.0523430854 -0.0854836851 0.0587852821 -0.0683789477 -0.059548609 -0.0405832417 0.0405757204 -0.0743162036 0.0132237375 -0.0226756707 0.0407088622 0.0493408367 0.049797155 0.0728437528 -0.0399161242 0.0874720886 -0.0576984324 -0.0789436027 0.0451319888 -0.0354354307 0.0165431798 -0.0561635979 0.0395930931 -0.00971650332 0.0186405182 -0.0736691207 0.0254123881 0.0682055429 -0.0212179422 -0.0571929812 0.0759293512 0.0837568119 0.0210826695 -0.0883669853 -0.0175726116 -0.0737694204 0.00347883999 -0.0150188282 0.0314374492 -0.0610148609 0.0440289304 0.0546238795 0.0684999004 -0.0329841487 0.0876237378 0.0814831182 0.0228651837 -0.0806926414 0.0586370453 -0.0890687481 0.0352015719 -0.0490463339 -0.0647256225 0.0197038203 0.048871465 -0.0520416722 0.0297172219 -0.0607255325 -0.0471888036 -0.0559041388 0.0780865774 0.0275629237 -0.014848046 -0.00600516051 -0.0571203716 -0.00464982539 0.0380540416 0.0769831315 -0.0404362753 -0.0556656085 -0.0779916495 0.0394502804 0.0847351924 0.0916581228 0.0232108831 0.0196401402 0.0602687523 0.0670511052 0.023170054 -0.0121266693 0.0237417966 0.0238500461 0.0788063183 0.0366873816 -0.0343771465 -0.0792628154 0.00420710444 0.0337452218 0.0345649645 0.00507662445 -0.0787676275 -0.0835840702 0.00982842594 -0.081066139 -0.081247896 -0.0165585428 -0.0644059032 0.0300920606 -0.0465799719 -0.0813410878 -0.0652205572 -0.0239891708 0.00314620137 0.060236983 -0.0517737828 -0.0193827748 0.0562159196 0.0532466099 0.0574078783 -0.034736909 -0.00583061576 0.0888389573 0.0695931092 0.0745297894 0.0612431243 0.06370648 0.00300455838 -0.0538722835 0.00768400729 -0.0912991986 -0.0540260039 0.0555554107 0.0430354103 -0.0185371563 0.00817169994 0.0159566253 0.028756395 -0.00305071473 -0.0583572276 -0.0304176398 0.0289402977 0.0882118121 0.08266709 -0.0180647224 -0.0865975469 0.0838387087 0.0614414439 -0.089914389 0.0339662954 0.0855522677 0.0103858188 0.0222112089 0.0261804685 0.0353965983 -0.00344379991 0.0571075454 0.0183197111 -0.0378998108 -0.0264692903 -0.0197905824 0.0132522658 0.0790565982 0.0690162554 -0.0183016211 0.0657120869 -0.0296334699 0.0473556891 -0.00204829127 -0.00180303305 0.0502033308 0.0782539621 -0.00899592042 -0.0307621248 0.0317841992 0.0368102714 -0.0647004023 -0.00298477709 0.0406567976 0.0129668564 -0.0858128518 -0.0574641526 0.0603122786 0.013728261 -0.0306609422 -0.0127691999 -0.0918324739 0.0626445189 -0.0343702361 -0.0893699601 -0.0693047047 -0.014033258 0.0844399408 0.0858030394 -0.0616848581 -0.0821526647 0.041017659 -0.0647954866 0.059364073 0.0912521705 -0.0273084193 -0.0279861838 -0.00362105668 0.0919976011 -0.0453066453 0.080468066 0.0593372658 0.0437847152 0.0445632115 0.0071933493 -0.00559460372 0.0558146611 0.0611250922 -0.0125338882 -0.0401147492 0.0825386867 0.0115395635 0.020947963 0.0443314239 0.00710187852 -0.0342149511 0.0341861024 -0.0911892354 0.0505436435 0.0378554985 0.0228586718 -0.0350831524 0.0375129804 0.00839091837 -0.0723640323 -0.0285258144 0.075822182 0.06467513 -0.0619439855 0.0365954265 -0.0651023164 0.0698575452 -0.0865947306 0.0248992145 0.0393467173 -0.090088211 0.0169323683 0.011037305 0.0315212905 0.010933876 0.0207363069 0.0117072165 0.0587312505 -0.0288298428 0.0282863826 -0.00242605805 -0.0754873827 0.0878596082 -0.0289928541 0.0798692927 0.0301225856 0.00595247 -0.015979737 0.0551793054 0.0327364132 0.0777467564 0.0597720221 0.0835484043 0.0873410627 0.0101657808 -0.0412001051 -0.0319857746 -0.0150457025 0.0541433915 -0.0424655341 -0.0695548803 -0.0251470953 -0.0123780742 0.0241792351 -0.00730433315 -0.047200691 0.0878524557 0.0583629087 -0.0522398129 0.0616468415 0.0385633633 0.0245816931 0.00246651471 0.0529708192 -0.0320968628 -0.0438739397 -0.0757348239 0.0302510634 0.0707578138 0.081387274 0.0743183419 -0.0775822774 -0.0635532364 -0.016431652 -0.0483716466 0.0599237755 -0.0673662424 0.0333086327 -0.0277442038 0.0895232633 -0.0266459212 0.0633507892 0.0565815046 0.062676765 0.06597846 0.0515652522 -0.0756745636 -0.0531559773 0.026761435 0.0766556486 -0.0620033927 -0.0269519091 0.0844779387 0.0550452843 0.0569410995 0.0638834462 -0.0589630194 -0.050665535 0.0858837739 -0.0287200138 0.0228114352 -0.0900255889 -0.0785562396 0.0151874721 0.00443000346 -0.0771999508 0.0465269759 0.0505536124 -0.0774464682 0.00858043134 0.0308564827 0.0423048362 0.0902361646 -0.0915115401 -0.0209782496 -0.0696002617 0.0885162428 -0.0154959038 0.0746614859 -0.0109132528 0.0781856105 -0.0737932175 -0.058706224 0.0090392381 -0.072775051 -0.0901059061 -0.0678222775 -0.0373703279 -0.0714531541 0.0377498493 0.0230464861 0.0906957015 -0.062552996 0.082785286 0.00422011316 -0.0751730055 -0.0679201409 0.0559100583 0.0535694882 0.00518003106 -0.0270735621 0.0036469847 -0.0881414264 -0.0756229013 0.0337591842 0.012060903 -0.0819802731 0.0210111737 -0.0663223118 0.072157003 0.0888850018 0.0234507322 0.0390064791 0.0611229464 0.0105483904 0.0724697188 0.080204092 -0.0411235541 -0.0760896578 0.0164383426 0.0501154885 0.0393182263 -0.0453906357 0.0299069285 0.0848958269 0.0196153373 0.0395636931 -0.019569777 0.00131842494 -0.0313685797 0.045630239 0.04980845 0.0815862641 0.0449780449 0.0178920254 0.0908852741 0.0594831035 0.0429675207 0.0747989193 0.0513876155 0.00431715697 0.090658702 0.00825498253 -0.0716656148 -0.063386336 0.0866380408 0.0740463808 0.0577756688 -0.0754820332 0.0187140331 -0.0254099667 -0.0732944831 -0.0110402331 -0.0882184654 0.0865972564 -0.0536771193 -0.0242922306 -0.0667081326 0.0338917896 -0.0435720198 -0.0475788526 0.0882747248 0.0242030025 0.0502857044 -0.073364608 0.0693259314 0.0536181703 0.0295651257 -0.0347606577 -0.0737232268 0.0920597985 -0.0784669667 -0.0342712738 0.0398441926 -0.0591032505 -0.0842513368 -0.0781178102 -0.0754632801 -0.0171676204 -0.0680496022 0.0613831803 -0.0120099932 -0.087786682 0.0582580492 0.0471680537 -0.00508743525 0.0863177255 0.00440112501 0.0726260021 -0.0114361569 -0.0178644508 0.00563444197 0.0500133261 -0.0480961204 -0.0326401033 0.0558380857 0.00980637223 -0.00951790065 0.0686123446 0.0456218943 -0.081209071 0.0729715899 0.0356110558 -0.0183783472 0.0647783354 -0.0787308663 0.0876930282 0.0715010688 0.0299079865 0.061984174 0.0241135731 -0.0468985513 -0.0542711578 0.0621506199 -0.0561586022 -0.0187424496 -0.064472422 0.0496462807 0.0568554774 0.0242329165 0.0398621932 -0.0823475644 -0.0363905318 0.0354823545 0.0483821407 -0.00337011367 0.0879300609 0.0905376896 0.0881553367 -0.00891952217 -0.0280443132 -0.0640706867 -0.0559160002 -0.0838963985 -0.0494651496 0.0156908035 -0.0748203993 -0.0148998126 -0.0673556775 -0.0827099234 0.0670379624 0.0911403522 -0.0222521499 -0.0742706433 0.092102401 -0.0897611529 0.0920043662 -0.0403219983 -0.0403187424 -0.0293499082 -0.0160601437 0.0593916699 -0.0417351574 -0.0443258807 -0.0771825165 0.00206346065 -0.041148074 -0.015221037 -0.0751207098 -0.052137021 -0.0469264612 -0.0152815878 -0.0012428686 -0.0200131312 -0.0515098572 -0.0128305852 -0.0855096355 0.0633035377 0.0242559165 -0.0753135681 0.0430395678 -0.0650152862 -0.0308685452 0.091903545 -0.0452456549 -0.0873775482 0.039239414 -0.0187088549 -0.0440598615 -0.0874243453 0.0215787366 0.0430616364 0.0492131785 -0.0198021829 -0.0844847783 -0.0472072698 -0.0741684288 -0.0217879713 0.0854001567 0.0651122555 0.0195557326 -0.0161115602 -0.0920001045 0.00722275674 0.0458852723 0.084660776 -0.0681058615 -0.0623917691 0.0264274478 0.0403888896 -0.0726997107 0.00793243945 0.0889261588 0.0669634119 -0.00889641047 -0.0693768784 -0.0503659286 -0.00684224069 -0.00440958142 0.0176600814 0.0672292933 0.00413999707 -0.0286673009 0.0609529391 -0.0553320646 0.0797369406 0.0219879374 -0.0709223449 0.0862362459 0.0544018075 0.00577902794 -0.0902081206 -0.0368622169 0.0297560692 -0.0872211009 0.090899311 -0.0816544518 0.0815416053 -0.0223976374 -0.0225354657 -0.076387763 -0.00457536429 0.025887154 -0.0633755475 -0.0736288428 0.0275543854 -0.0790068805 -0.0100708902 0.0545070246 -0.0281084105 0.0306851938 0.0779924467 0.056230776 -0.00473035872 -0.0244474709 0.0499846414 0.0248520672 0.0175555572 -0.0165435746 -0.0353229158 -0.0338292383 0.0689375028 -0.0280198827 0.0606496409 0.0501111522 0.0834625736 0.0724716857 0.00178302079 -0.0820769444 -0.031420745 -0.0076860562 -0.0778009892 0.0793265328 -0.0530150868 -0.0798956454 -0.0636044145 -0.090209201 -0.0452988297 0.042659007 0.00686682761 0.024820596 0.0853614435 -0.0304663703 -0.0234891623 -0.012245506 0.0891076699 0.065596424 0.0285355896 -0.0797798485 -0.0210009217 0.0550322756 0.0118405372 0.0210532844 -0.0584543794 0.042003639 -0.0560875051 0.0830153152 -0.0487114899 -0.0580614954 0.0636779293 0.0863580778 -0.00729653984 0.0469001606 -0.084408164 0.0730613843 0.0499647185 0.0234779343 0.0899947509 0.0217734873 -0.0709644705 -0.0368874185 -0.0452557355 -0.0177685916 0.0105009973 -0.0264163762 -0.0276317075 0.0747674927 -0.0736002475 -0.0920389742 0.0681326762 -0.0738980472 -0.0662938282 0.0531206951 -0.0875948817 0.0639592186 -0.0334644392 0.0808758512 0.0724915192 0.0594345257 0.0874441341 -0.0525696613 0.0472864136 0.0663617477 0.0103465319 0.0281370655 0.0703457966 -0.00232197344 -0.0910751149 0.0359089002 0.0861473456 0.0130527392 0.0581404045 0.0362645909 0.0814717934 -0.0465475284 -0.0803439096 -0.0214365274 -0.00516030937 0.0687896237 0.0836786702 0.00492790341 -0.0661518574 0.00530239195 -0.0517166443 0.00176534802 -0.0233280882 -0.0659514964 -0.0700570941 0.00518907607 -0.0585006475 0.0187998042 0.0510458574 0.0181690529 -0.00808647275 -0.0725526214 -0.0395568945 0.0270711184 -0.00660470128 0.0400507227 0.0488043502 0.0121752247 0.0679587051 0.0861639753 0.090294607 -0.0799829364 -0.0784971192 -0.0457694791 0.00714594126 0.0222742036 0.0211943686 0.00296784937 -0.0356871225 -0.0870026052 0.0791284516 0.008021079 -0.0510698669 -0.0609895922 -0.0651286393 -0.0423760824 -0.0510734767 0.00907903165 0.0119170845 0.0676815882 -0.0828254744 0.0206363797 -0.00934630632 -0.0917173773 -0.0713148564 -0.0506600104 0.07803718 0.0361492559 4.56720591e-05 -0.0302264318 -0.0596434101 -0.0861333236 -0.0779678747 -0.0769417509 0.023947902 0.0592292622 -0.0515769869 0.0111738816 0.0112096891 -0.0732583404 0.0393385664 0.0661832765 -0.0213403627 0.00671684742 0.0679796115 -0.0735775977 -0.0887466893 0.0568492636 0.0560576841 0.0118636638 0.0869233236 0.0730165914 0.0266527906 -0.0816713348 0.0677134171 -0.0546857901 -0.0360565893 -0.0787743181 0.00141296536 -0.0435861312 0.0291919857 -0.0279531926 -0.0755655617 0.0420504883 0.0614924356 -0.00990988314 -0.0205870345 -0.0587922633 0.049143903 0.0307095423 -0.0301245451 0.0815444514 0.0171432123 0.0305280611 0.0514265224 -0.0440643504 0.0498818681 -0.0520781241 0.048967801 0.052437 -0.0307131298 0.0810338929 0.067249991 -0.053954076 0.000760860741 -0.0712848827 0.0761478469 -0.0467212349 0.0612848029 0.021066837 -0.0555962771 -0.0891015902 -0.00457426161 0.0475952998 -0.091115877 -0.018204093 -0.0835681781 -0.0743539557 -0.0446170792 0.0013383925 0.0352118537 -0.0460976362 -0.0739719421 -0.0314922556 -0.00352134556 -0.0696057677 -0.0487332121 0.0428506508 0.0519164726 -0.0791131929 0.0416307375 0.0582958832 -0.0599182546 -0.0909402296 -0.0881295204 0.0486935452 -0.0691315308 -0.024781175 -0.0532485284 0.00462162495 -0.0837881267 0.040272586 -0.00805497169 -0.0246434137 -0.0768478513 0.0539496318 -0.0221225321 -0.0500217266 0.0673059598 0.0114872456 -0.0376103744 -0.0922606215 -0.0275243819 -0.0377320908 -0.0650268868 0.0909316912 -0.0179984048 0.0263341665 0.0517556742 -0.0807118788 0.0173437893 0.0521590039 0.0321652219 -0.0334024355 -0.0330339111 -0.0469833799 0.0623166934 0.012687102 -0.051977206 0.0412625447 -0.0653615519 0.0886204615 -0.0155143663 0.0474373624 0.052770786 -0.0388165265 0.0304625183 0.00279823691 0.0367709324 0.041211836 -0.000245660543 0.031190291 -0.0599889085 -0.0306950361 0.0569107905 -0.0212382153 -0.0165104717 -0.0136319026 0.0445894524 -0.0851215422 0.0917680487 0.0573646203 0.033432804 0.0854910985 -0.0833090693 0.0070585832 0.0315255597 -0.089482829 -0.0464094132 0.0130322054 0.0241839439 -0.0515666418 -0.0914900526 0.0643720999 -0.0400448442 -0.00967342407 0.0663546398 0.00359624624 0.0558615401 -0.0311757214 -0.0689536408 -0.0407574996 0.00595579296 -0.0407929569 -0.0580862351 0.0576377288 0.0350413844 0.0894089714 -0.0222363025 -0.0382215157 0.0616621897 0.0708033368 0.0852761939 0.0578463599 -0.0576382764 -0.0357705839 0.0465651825 -0.0560536981 -0.0245277658 -0.0674674287 -0.0253954828 0.0782700554 -0.0725975856 -0.0814248845 0.0134172291 0.0893080309 -0.0896343738 0.0515813306 0.092216529 -0.0842618346 -0.000293396413 0.0173913091 -0.0385196917 -0.021626763 0.0691289529 -0.00624027848 -0.0475871488 -0.0526518263 0.0838271901 -0.088660039 0.0923000202 0.000322520733 0.00141973794 -0.0365673639 0.0515212789 -0.0575803444 -0.069821842 -0.0335066319 0.0385399684 0.0589276925 0.0718035772 -0.0129932016 -0.0483687185 -0.0178866759 -0.0564989038 0.0612098351 0.0540713742 0.0198677555 0.00409839302 -0.0202668905 -0.00531238317 -0.0608137287 0.0472010151 0.0102276728 -0.0339659899 0.0238450915 -0.051011648 0.00271134079 0.0286528841 0.0508492514 0.0622023866 -0.000158146024 -0.0616232939 0.0489349887 -0.0147994682 0.00383332372 -0.0598510131 0.0203787014 -0.0735266209 0.0180964172 -0.0535171442 0.0214081779 0.00959298015 -0.0608643293 0.0377395377 0.090691112 -0.0134218782 -0.079648219 0.0287867039 -0.0561579838 0.0261475593 0.0526953861 0.0356213376 0.0202650651 0.0504136309 0.0111357793 -0.00172771513 -0.0901797712 -0.0725483 -0.0241147205 0.0211353824 -0.0464452915 -0.0828655809 -0.0104724094 -0.0202826932 -0.0325062573 -0.0181060135 0.0240637437 0.0508144572 0.022905685 0.0431338772 -0.05210099 -0.0740120411 -0.00828655064 0.0630166903 -0.0648723692 0.0170915946 0.0668281987 0.0605821833 -0.0183641985 0.0861967131 0.0653655753 0.0194350928 -0.0349020734 -0.0735583901 0.0669708923 -0.086133346 -0.0360641405 -0.05145723 -0.00508670509 0.0173269287 -0.0794540495 -0.0217114165 0.0323932767 0.0828757063 0.0803413913 -0.0279063955 -0.0206202269 -0.0449227393 -0.0514315441 0.0812263563 0.0121201798 -0.0502181053 -0.0341314413 -0.0797759444 -0.0173907205 -0.0153678879 -0.0774599835 0.0637906715 0.0803864524 -0.00946932286 0.0566060022 0.0133864582 -0.000591814518 -0.0675907731 -0.0506582931 0.0604968891 -0.0374688022 0.090440549 0.0350758061 0.0556041524 0.0175343156 -0.0252806768 0.00370337069 0.0427111909 0.0667551979 0.01668863 -0.0372241363 -0.033299908 0.0176834986 0.0869720951 -0.0169465244 0.0265863165 0.068883203 4.91961837e-05 -0.0304709263 -0.0475828573 -0.0777560025 -0.0707735345 -0.0733797699 0.0634755716 -0.000673010945 -0.0636159256 0.0539659634 -0.0505432673 -0.0913251936 0.0344173983 -0.0808972493 -0.0131115094 0.0112169757 -0.0644754991 0.0721276626 -0.0501023531 0.0656524375 -0.0524629094 -0.0111293346 -0.0597199388 0.0792738274 0.0362723842 0.0717174485 0.0118143186 -0.0284303352 0.0474432185 -0.0207295045 0.0202585086 -0.0805615038 -0.0531266145 -0.0133323818 0.0287075788 -0.056319695 -0.00729281455 0.0294591933 0.0868633017 -0.060070809 -0.0736931562 0.062300466 0.0830489472 0.0779438242 -0.0418435186 0.0775344744 -0.00260809064 0.0442992523 0.00940685719 0.0336213037 0.0706404373 0.0625685379 -0.0882224441 -0.0072651729 -0.0526694134 0.0832496658 0.031110175 -0.0285233483 0.0741712078 0.0822802559 -0.0556120574 0.0135310739 0.0258750916 0.0189076364 0.00720275193 0.0465585068 -0.00326161832 -0.0921294615 -0.0916801617 -0.0152474046 -0.0190928504 0.0897783861 0.0676558837 0.0278517455 0.0845665261 0.0688896105 -0.0307115205 -0.0234471858 0.0671481416 -0.066495955 0.051911585 -0.0119265318 -0.0677128211 -0.0452476554 -0.06954588 -0.0427960195 0.0577784404 0.0295436233 -0.0650128201 0.0286131278 0.0158065781 -0.00644537061 0.0172755346 0.00886742771 -0.0684261173 -0.00113525987 0.0285705626 -0.00762289017 0.0243675336 0.0518638119 0.0281529576 -0.0477776937 -0.0807913542 0.02606152 0.0349227414 -0.0569682345 -0.0322260186 0.0535400435 0.0417329744 0.0125179738 0.0346051082 -0.0184790716 0.0529327914 -0.0104379132 -0.0269044787 -0.0780546218 0.0580685809 0.0744213089 0.0408395305 0.0438680127 0.0791008398 0.0736665502 0.0334065035 -0.0187162086 -0.0448320098 -0.0746328905 0.0336983874 -0.0377260409 -0.0121873096 0.00882960856 -0.0825217366 0.00246021897 0.0746853724 -0.0183769166 -0.0684754401 -0.0499360859 -0.0913993493 0.0840137824 0.0730753168 0.0436433777 0.00821151584 0.0554962829 0.0422655866 0.0914276615 0.0179801807 -0.0611291155 -0.0702250525 0.0904276744 0.0456517264 -0.0729967654 -0.0345725119 -0.00976668298 -0.0711401626 0.0704131499 -0.00701601803 -0.0301133655 -0.0594398566 -0.0755403191 -0.0540628508 -0.0676605478 0.0664364174 0.0583942905 -0.0248474255 -0.020391427 -0.0526943058 0.0506471172 -0.0501154475 0.0561021939 0.0841884091 0.0782334581 0.017661579 0.068645142 0.00920628011 -0.0869014859 0.00883764774 -0.0237951502 0.0015732646 0.0852861181 -0.0188715607 0.0676849112 0.0592879876 -0.0117866546 0.0716818795 -0.0469410978 -0.0105170459 -0.0248394981 -0.0645913631 -0.0912989378 -0.0824366659 0.0793213174 -0.0551488027 0.034056358 0.0487091169 0.0849372521 0.0466401652 -0.0850039199 -0.014233008 -0.0667972565 0.00581941754 0.0445396677 -0.00297506899 -0.0244887173 0.068574883 0.0589131191 0.0370336398 0.0759818926 0.0396149829 0.0568975732 -0.00832484663 0.0625335351 -0.0810392648 0.0214575902 -0.0515039153 0.0482668057 0.0375993326 -0.0242071822 -0.0797357559 0.044312425 0.0643418506 0.0357629731 0.0236528516 -0.000176854432 0.00843846053 0.0584184602 -0.00644607842 0.0715473369 0.0536307618 0.0720151588 -0.0500071123 -0.0421320945 -0.0234406888 0.0130362958 0.00472263247 0.0140782744 0.0626526102 -0.0608388409 0.00515227765 0.053305842 0.0601198748 0.0577773377 0.0230449438 -0.069408156 0.00832838565 -0.0820431113 -0.0170791149 -0.0775664523 -0.0825229436 -0.082810685 -0.00929071009 0.050439395 0.0583362356 0.0730560794 0.0260584876 0.0128170252 0.0557755902 0.0142354742 -0.0417339504 -0.071869567 -0.0508848019 0.01160115 0.0499161705 0.0662096366 -0.0459462255 -0.0701978728 0.0651944652 0.0300497115 0.0778803453 0.00768215954 0.0486289486 0.0527915284 0.0664415136 -0.0796956569 -0.0717335641 0.0709216669 0.022530295 5.69447875e-05 -0.0251344666 -0.00425557047 -0.0259288251 -0.0592794642 0.0488748923 0.0256345868 -0.0274730995 -0.0487019159 -0.0824956074 0.0896883383 0.0725164786 -0.0635436177 -0.0206975043 -0.0374956764 0.0600203797 0.065628536 -0.0635421872 -0.033132147 0.00924268365 0.0163164958 0.0219371319 -0.064356491 0.00763290375 0.0209118649 -0.0824351236 0.0504985675 0.0388972834 0.0741724744 0.0658007786 0.0499312207 -0.0444188528 0.0907231644 0.078241922 -0.00503480434 -0.0787156373 -0.064252533 -0.0511607714 -0.00535081327 -0.0699782968 -0.0137827843 -0.0877180994 -0.0394194387 -0.0318009965 0.0400219485 0.020550102 0.0401777849 -0.0703113377 -0.0278222486 -0.0205497667 -0.0800499544 -0.00765751302 6.34044409e-06 -0.0160817727 -0.0227981657 0.0579656586 -0.0301595218 -0.086211063 0.0622594878 -0.0762811452 0.079081215 -0.0330293365 0.0647665635 0.0324362814 -0.03370893 0.0417788103 0.021020487 0.0335137919 0.00256298482 -0.018422924 -0.0239259973 0.0350694433 -0.0826533362 0.0418660119 -0.0411811322 -0.092297554 -0.00737093389 -0.0475656912 -0.0158906579 -0.00512819737 -0.0711378753 0.0550272688 -0.0152376294 -0.0277255774 -0.051140368 0.0763750449 0.0285881311 0.0699920282 0.035037674 -0.0258453116 -0.0579422414 -0.0910471156 -0.0451180376 0.045817025 0.0106856897 -0.0393390767 -0.0767985061 0.0819060132 0.0584904626 -0.0725168735 0.0260815546 -0.00605688244 -0.0221985057 0.0238531232 0.000552728772 0.0296001285 0.0443331227 0.0414129719 0.090635784 -0.0633816272 -0.0207965076 0.0426653251 0.00844209641 -0.0441499501 -0.0726401955 0.0488644168 0.0632942393 -0.0563556366 -0.0280455053 0.0321707726 0.0834797993 -0.0317330956 -0.0155155584 0.0836584643 -0.063501671 -0.0555946045 0.0759287998 -0.0896372125 -0.0551343448 0.0387072489 0.02884195 -0.016839996 -0.048545111 0.086942561 0.0355852619 0.0773740187 -0.0858765021 -0.0324738547 -0.0365553237 0.0295524076 0.0430687591 -0.068038404 0.0414703265 -0.0568922311 -0.0692907125 -0.0904955342 0.0109886825 -0.0663544908 0.0150738955 0.0406609997 0.044951953 0.0262095183 -0.0301018097 -0.0294008628 -0.0445810705 -0.0801142454 0.0480444357 0.0523404852 -0.0392670371 -0.0759031624 -0.0570355207 -0.0821067244 0.0114635155 -0.0383606665 0.0839189813 -0.012057513 0.0626995042 0.0250673741 -0.0484819636 -0.0297933519 0.00241868943 0.0816391632 0.0655327514 0.0898618326 -0.0608269796 -0.0135315955 -0.0919598937 -0.0451598354 -0.0107244924 0.0467813686 0.0722529814 0.0315812677 -0.0466499664 0.00566639751 0.0111451149 0.0114545375 -0.0301394463 0.0403432772 -0.060608767 -0.056458097 -0.0687172934 -0.0725845546 0.050275974 0.0362385884 -0.03469982 -0.0213552415 -0.0540567748 -0.0330953673 -0.091339238 -0.0637675747 -0.0557792932 0.0698022917 -0.0314339064 -0.0706683025 0.0133371353 0.00329080969 -0.0547741205 -0.0812849849 -0.0741517469 -0.0746231228 -0.0610704124 0.00901284814 0.0104256794 -0.0828641951 0.0885237232 0.0849033073 0.0614254251 -0.00713830441 -0.0462512895 -0.0325720906 0.0767396465 -0.0705426857 0.0904687867 0.0182337612 -0.0278364047 0.0656448677 0.0612676069 -0.0848357379 0.0449124649 0.0204486772 0.0632433519 -0.0655114427 0.00104763359 0.00217905641 -0.0674900338 0.0678093806 -0.0894180536 -0.0688139871 -0.0575379543 0.0360041186 0.0178168416 0.0706362352 0.0156025887 -0.067440182 0.0216059834 0.0183958039 0.0451421216 -0.0120783821 -0.0346714929 0.0633483455 -0.0355508104 -0.0619897917 -0.0179337412 -0.01396285 0.00701715797 -0.0623905584 0.0446217284 -0.00897298753 0.0593863204 -0.0540545098 0.00655980408 0.0810192302 -0.0785920024 0.0690297261 -0.0566616058 0.0416924134 -0.0722378045 -0.036168579 -0.0649591386 -0.00665984303 -0.0448279381 0.0702350214 0.00813740492 -0.0165493265 0.0813008174 0.0804635957 0.0567908511 -0.0390947163 -0.0157212466 -0.0863650292 -0.0820491463 -0.0851018205 0.0851645693 0.0793621466 0.0869625881 0.0344615355 -0.0138854831 0.0407867953 -0.0655267686 -0.00154493749 0.0426009819 0.0404855981 -0.084978275 0.0434884205 0.0470030531 -0.0912496746 -0.0152365938 -0.030092366 0.0579710677 -0.0602386817 0.0830666646 0.029199183 0.0593672171 0.0303875282 0.00353362411 -0.0252139196 0.0242198408 -0.0337474048 -0.0211238712 -0.0909673944 -0.0194236934 0.0411901847 0.0585799888 0.0323625505 0.0587382987 0.0121994615 -0.0493223891 0.0717083886 0.029256016 -0.0894679725 0.0857258663 -0.079471238 0.00582339615 0.0516886488 -0.0550270863 0.0056225732 0.0420858935 0.0255602151 0.0346611068 0.0566955432 0.0896189287 -0.0781133026 -0.0291346461 -0.049201794 -0.0524404161 -0.076739803 -0.00163526833 0.0829960778 -0.0539712012 0.00377587229 -0.063593477 -0.0838219598 0.0360994264 0.0400822982 0.0919577107 0.0519945249 -0.0393401794 -0.00994818658 -0.0285052583 0.0104019269 -0.0370864794 -0.0904914811 -0.0902730078 -0.0541865714 0.0350209251 0.00441620499 0.0840867832 -0.00111857057 -0.0452809371 -0.0061847046 0.0294171721 -0.0390571244 -0.0221213624 0.000273898244 -0.0227465034 0.0876159295 -2.49147415e-05 0.0830895826 -0.00293505192 -0.0178884417 0.0827732757 -0.0407042988 -0.076960437 0.0194418281 -0.0845390558 0.0579207614 0.0839461014 -0.0806719735 0.035951905 -0.0194370747 -0.0385202207 0.00508457422 -0.0436864085 0.0341540202 0.0389653817 -0.0395894684 0.0143272579 -0.0112782568 -0.00856094807 -0.0203173831 -0.0402879044 -0.0691455901 0.0685228482 0.0114617124 -0.00210274756 -0.0226376206 0.0599560067 0.0186481327 0.0707495585 -0.0446337387 -0.0911799297 -0.0416239612 0.056584321 0.0556915328 -0.0644436479 -0.00612604618 -0.0843976215 0.0634499267 0.0346724316 -0.071406886 0.0212002918 0.0426915511 0.0849043205 -0.0294583589 0.0819991156 0.0393748209 0.077845715 0.0145918652 -0.0300886482 -0.0732256994 -0.0542652383 0.0857662484 0.00914471596 -0.0438764915 -0.0674563572 -0.00784307718 -0.0891581774 -0.0601111986 -0.0585231632 0.0335287675 -0.00400603563 -0.000729776919 -0.058686614 0.00135093927 -0.0116348043 0.00373061746 0.0768254176 0.0786960647 0.0460043326 -0.0358787887 0.0323132649 0.0327944979 -0.00842175633 -0.00171899796 -0.0561526343 0.026939787 0.0335064307 -0.0731825382 -0.0435278676 -0.0183507502 0.0492039546 -0.0720270947 -0.0484256186 -0.0142986178 0.0845129266 -0.0361456871 0.0809699669 -0.0804780573 -0.0838970095 -0.00157929212 0.0588529184 -0.0821811631 0.00720607489 -0.0128139704 -0.0426398329 -0.0146312192 -0.0442086756 -0.0189784393 -0.0016406849 -0.0176482201 0.000619880855 0.0688175038 -0.00371882319 0.0154064745 0.0268741474 -0.0176792964 -0.0785260648 0.0844921991 -0.0333271138 -0.0772434697 -0.0365448929 -0.0206486657 0.0628806874 -0.077050373 0.0638978854 -0.0900542662 0.0422713384 0.0623958185 -0.0120589882 0.0564220175 -0.0224611834 -0.08250954 0.048402153 -0.0786028802 0.028698951 -0.0307560042 -0.0819616765 0.0800891742 0.00803692639 -0.0725556985 -0.0321774408 -0.011204347 0.057658501 0.0400477871 -0.063806206 -0.0918274745 0.0178622231 -0.0416503325 0.0570031926 0.0626057312 -0.043978028 0.0504396632 0.0299392417 0.0386696234 -0.0717427433 0.00687003881 -0.0232689008 -0.0918442011 0.0179050565 -0.0763337985 -0.0323123224 -0.0460405834 -0.0278501362 0.0568312034 0.0627885982 -0.0706357509 0.0907965079 -0.080983907 0.0515849814 0.068414934 0.0903489068 0.0267396197 0.00490516424 -0.0169527084 -0.0134630129 -0.0121048614 -0.0141029283 -0.0641624928 -0.0855682045 -0.0435757637 -0.0565129034 -0.0191163197 -0.0100183785 0.0418396369 -0.0484915823 -0.0803362504 -0.0296378955 0.0368639156 -0.0574111715 -0.0284841061 0.0204312205 -0.0899336934 0.018274039 -0.0178299397 -0.0504346676 0.0104529262 0.0179469883 -0.0659456477 0.0753952488 -0.0551304482 -0.00278089195 0.0354953483 0.0448796675 -0.0430056714 -0.0774008855 0.0621637776 0.0239188671 -0.0781927556 0.0236164927 0.0366364792 -0.0724702552 -0.0473226719 -0.0439345352 0.0474664196 -0.0417751297 -0.0887148827 -0.0181746632 -0.0157975107 -0.0815872326 0.030485101 0.0106027275 0.0787207857 -0.0781895667 0.0498177335 -0.0407068096 -0.0268860385 -0.0110008344 -0.0886871293 0.0758211538 0.00667857379 -0.0115581378 0.0143007115 -0.00949358195 0.00784222037 0.0424074754 0.0632892027 -0.0470017828 0.0540973023 0.0744256005 0.00905708969 -0.0502785668 0.00881495327 -0.0501299538 0.0886291787 0.0146201029 -0.0910632089 0.0792785361 -0.0841576606 -0.0780551881 0.0380212888 0.0561101362 0.083347939 0.0237686485 0.0666595176 0.0584415272 0.0101404041 -0.0867514387 0.0224658921 -0.0894895643 0.048197858 0.0879120752 0.0536309555 0.0619057789 0.0667789802 -0.0344259664 0.0181180984 0.047705017 -0.0586839728 0.0334618017 -0.0640904307 -0.0197308511 0.0345807448 0.00851123035 -0.0549941361 0.0149063542 -0.0885137096 0.00803232938 0.0865609422 -0.0593334585 -0.0734078586 -0.0632067025 -0.0426943302 -0.000466622412 0.0881903693 0.0569551215 0.0385449007 0.030115746 -0.0576244332 0.0427611843 0.0457900837 0.0783066377 -0.0322196558 0.0444409326 0.0119716749 0.0187614858 0.0148809478 -0.0907528102 0.0820291415 -0.0818493366 0.032932885 -0.0179809481 -0.0332276262 0.0471807942 -0.00727402419 0.0667409524 -0.00254888088 -0.0596242584 0.0346551761 -0.0494434237 -0.0219598711 0.0769412592 0.0801877901 -0.0341431983 0.0869759694 0.0533895567 0.0856247917 -0.0855628774 0.0171202049 -0.0545134731 0.0474509969 0.0624380782 0.0147413164 -0.0277105495 0.0629133508 -0.0573090203 -0.00801537931 -0.0807580799 0.0715855286 -0.0222282261 -0.0663409755 -0.0849707946 -0.0463488176 0.0381704047 -0.0747983009 -0.0275037587 -0.0805274546 -0.0698363706 -0.0463012084 -0.0204491392 0.0620317683 -0.0258694366 0.037789382 0.00453536958 -0.000661149621 0.0545808747 -0.0126769319 -0.0794989243 -0.0496498607 0.00554395467 0.0593196079 0.079592146 -0.0478557423 0.0139020979 -0.0816619843 0.0377656743 0.0701160356 0.0149745643 -0.0485399403 0.0591954365 0.0700102821 -0.0084078908 0.051819019 0.00787065923 0.0372611061 0.0460038856 0.0617817417 -0.0147110075 0.033985801 -0.00881561637 0.0755672529 0.0306976363 0.0601737574 0.0499123111 -0.04771569 -0.0296833664 0.0742584094 0.00592368096 -0.086041823 0.050007306 0.0608805493 0.00194904953 0.06960354 -0.00165060908 0.0884172395 -0.0886658281 -0.0383516215 -0.0593982562 -0.0848287642 -0.00487270206 -0.0870114937 0.0270452574 0.0753403082 0.056753628 0.0791926309 -0.01137501 -0.0265200436 0.0802915618 -0.0902331024 -0.000166751444 0.0693872049 0.0341896787 0.0143959969 0.00172945112 0.0667417422 -0.0244790167 0.00552370399 0.00103105605 0.019233413 0.0586084947 -0.00510623306 -0.0528675504 0.02260755 -0.010882549 0.0359766707 -0.00189380348 -0.0431534052 -0.0697193891 0.058339633 0.0103458017 0.0914417431 -0.0412531756 -0.083560124 -0.0571700707 0.0263272747 0.0584615543 -0.0630331337 0.0107535273 0.00900888443 -0.0476094037 -0.0143106356 -0.0111200213 -0.021471858 -0.00395020097 0.0376188681 -0.0358704254 -0.0373730585 -0.0619315282 -0.0517097786 0.0739894137 0.000364601612 0.0184405744 0.0162737072 -0.0643674508 -0.0563980527 0.0124700963 -0.0551558025 -0.0458575226 -0.035501793 -0.086139001 0.021915257 0.061127089 0.0251014903 -0.0236166641 0.0111532137 0.00314542651 0.0352324769 0.0905618444 -0.0776371881 -0.0316146761 0.0660646185 0.00467434525 -0.034422949 -0.0698189139 -0.00510838628 0.0794652328 0.0460982099 0.0876810327 -0.0445129238 0.0476826355 -0.0580142364 -0.0819604024 0.0248430669 -0.0391343571 0.0121320859 -0.0241991282 0.063694723 -0.0397719778 0.0542440191 -0.0707887635 0.0281753838 0.0566124544 0.0691571906 -0.0868589431 -0.0920390859 -0.0826307088 0.0768750533 -0.0476643629 0.0700719878 -0.0517819263 0.0740941241 -0.0703360066 -0.0866050497 0.0153924078 -0.0427913964 -0.0212829858 -0.0552198552 0.0109875202 -0.0914913565 -0.0885194764 0.00275278091 -0.044921793 -0.0183340833 -0.0822896361 -0.00870679319 0.0569175258 -0.0179483294 -0.0433669724 -0.0474026576 0.0187049434 0.0703079626 -0.0713658333 -0.0242853686 -0.00778420269 0.0615158007 -0.0637985021 0.00697205961 -0.0805931538 0.0274500996 0.0427988991 -0.00414065272 0.0726293847 -0.0850522518 0.0144713596 0.0497617796 -0.0122359991 0.079862915 0.0634160265 -0.0519472249 -0.00774464756 -7.83577561e-05 0.0253711641 0.0161264539 -0.0845365301 0.0882447585 0.0595140085 0.0732361302 0.0819287524 0.0417583957 -0.0405460224 -0.0419579037 0.0415603891 0.00735979527 -0.0670819134 0.0550684705 0.0601499155 -0.0343242325 -0.0567225106 -0.0106308833 -0.00662323833 -0.0421151929 0.0553887561 0.00494603813 -0.0377811305 -0.0125240237 0.0483377352 -0.00647445023 -0.0808788687 0.0757594928 0.005047068 0.0767504051 0.0624930188 -0.018050611 0.030403398 -0.0309370421 0.0497585461 0.0883846208 -0.00858456641 -0.0849250332 -0.026675351 -0.0792638063 -0.0521562584 0.0881173834 0.0798958465 0.0873430446 -0.0270628035 0.0154305547 0.0494412854 -0.0605697185 0.0136699155 0.068169497 -0.0661437213 0.0916075483 0.0263870135 0.0162418112 -0.0459179431 -0.0105868652 0.0754757002 0.0076161772 0.0648473725 -0.0804221556 -0.0588599443 0.0421153829 0.0663752481 0.0233271196 -0.0834685564 0.026884608 -0.0892843157 0.085752584 -0.0667249486 -0.044036705 0.0290679336 0.0504175797 -0.0572815537 0.0856395438 -0.0744021833 -0.0275609195 -0.0651929975 -0.0024721697 0.0237716213 0.0784306303 0.0310740992 0.00491824001 -0.0416435301 0.0409546271 0.0679108128 0.0171460956 0.0857240334 -0.0749185905 0.0422055051 -0.0537737422 0.0861284807 0.0264347345 -0.0461657345 -0.0762525797 0.0460478738 -0.0403863564 0.0175337866 0.0449476764 -0.0327397436 -0.090335384 -0.00778484344 0.0677951798 -0.0894957334 -0.016847454 0.0426023975 -0.0469027795 -0.0582788028 -0.0159662664 -0.00350741297 0.00436456501 0.0764878765 0.0203633606 0.0281639621 -0.0291156322 -0.0585891083 -0.0655455366 0.0352468714 -0.0631882846 0.0480744615 0.0783444121 -0.0635116622 0.051303573 0.0272910297 0.0611509308 -0.05139089 -0.0641317368 0.0257634148 0.0555438772 0.0289246663 -0.0117673278 -0.0712757707 0.0145811886 0.048523657 0.0629203543 0.00633043051 -0.0441132374 0.00733619928 -0.0482208543 0.0847282186 -0.0564443395 -0.0374924205 -0.0908993781 -0.0353286602 0.0605501756 0.0162353218 0.0506349131 0.034230046 -0.070225805 -0.0738539845 0.0359421149 -0.0107075647 0.0799611732 -0.0908278674 0.034899272 -0.0895221829 0.0303897709 -0.0667527691 0.0901053473 0.0749660507 -0.0121392608 0.0854664668 -0.0272590443 0.0548735335 0.0115051791 -0.0878359824 0.00816971809 0.0253690332 -0.053980995 -0.0546311848 -0.00568180531 0.0471114889 0.025561884 0.056898348 -0.0508421473 -0.0203118399 -0.00975000113 -0.0102830082 -0.072942093 -0.0275788605 0.0562999472 0.0370567068 0.0574421808 -0.0614357889 -0.0198459402 -0.0747559071 0.0549613908 0.0656113103 -0.0624259263 0.0165078565 -0.0305009484 0.00931613147 0.0261518732 -0.0134537295 -0.0400841534 -0.0387718678 -0.0548074879 -0.0865238532 0.0536306724 0.0415479168 -0.0415160432 0.0848446563 -0.0281872079 -0.0140221044 0.0165701434 -0.0896033198 0.0532815382 -0.0584054291 -0.0588994548 0.00378659368 0.073261179 -0.0562524088 -0.0764533579 0.0260186046 -0.0358482376 0.0904518887 -0.0865316465 0.00127581507 0.0749038383 -0.0313203745 0.0790725574 0.0617474094 -0.0835796222 0.0133325607 0.0283225924 0.0514344051 -0.0633181259 -0.0696890131 -0.0190840289 -0.0317807682 -0.0549716428 0.00661370903 0.0862617716 0.023561269 0.0198117122 -0.0475028493 -0.0389704034 -0.0770302117 -0.0706771463 0.0795230046 -0.00619460642 -0.0584758855 0.0454253629 -0.0374223627 -0.0686015636 0.0760550275 -0.067576997 -0.0504095741 -0.0475257412 0.00737603754 -0.0459491313 0.0917511806 -0.0876971632 0.0540890917 0.0200221986 -0.0159581453 0.081222631 0.0374931023 -0.0261631906 0.0830541626 0.0258430466 0.0114178434 0.0215012357 -0.00789570808 0.0701752678 0.0639949664 -0.0239693373 -0.000676378608 -0.0530095398 0.0440826789 0.0137312785 0.0279892683 0.0136375576 -0.0739171579 -0.0817274153 0.031954363 0.0527390763 0.0698831454 0.0504507944 0.0480296537 -0.0209536403 0.0316695496 -0.0493284203 0.0245054066 -0.0185919628 0.00725764781 -0.0477349944 0.035235174 0.04267589 0.0152342841 0.0647269711 0.0827619508 0.0387482718 -0.0725371838 0.0384534672 0.0421084836 -0.044365719 0.0760764703 -0.0479512028 -0.0880804807 -0.0907532573 -0.0472388342 0.0369401351 -0.0632840246 0.00615619868 0.0660616234 0.0252512097 0.0519689247 0.0517135486 0.0443467423 -0.0157329738 0.0181162506 0.0604645684 0.0469645783 -0.0702926219 -0.0528670214 0.0356314555 -0.0655524507 0.0236545205 -0.0237839893 0.0905569866 0.0904209986 -0.0563824028 -0.0898839533 -0.0176301897 -0.0668882877 -0.0241940469 0.0135580301 -0.0703148767 -0.0299594477 0.0860836729 0.0856831148 0.0815519765 -0.0549775846 -0.00796629488 -0.0241642445 0.0318643227 0.0408789292 -0.078839533 0.0398293361 -0.0627729893 0.0226619393 0.0566915795 0.0114206374 0.0205648243 0.0607897118 0.0674912408 -0.0630460083 -0.0320470072 -0.0232746899 -0.0451124907 -0.0623434335 -0.00629856437 0.0392907932 -0.0713359639 -0.0310029835 -0.0823842809 0.0210387781 0.0480910763 -0.0607142635 0.00459994376 -0.00939906389 -0.035833668 -0.01139348 0.0435556844 -0.0388242975 -0.0439998619 0.00327891856 0.0765969381 0.0919284001 0.0515954718 -0.0514934361 -0.0665313229 0.0705374107 -0.0382763222 0.0104845762 -0.0498127379 -0.0500934832 0.0523779318 0.0716690347 0.00600102544 0.01880683 -0.0719013736 0.0413021967 -0.0304278731 0.029688783 -0.0567448065 -0.0366066322 -0.00385949016 0.0081339702 -0.00902451575 0.0452952459 -0.0361075439 0.0625728741 -0.0609618351 0.0115868002 -0.0872032717 0.0253449753 -0.0185332373 0.0891063437 0.017546773 0.000360839069 0.0795180276 -0.0879627243 0.00108087063 0.085815154 -0.00129505247 -0.076697737 -0.0636875704 0.0703934953 0.0629745647 -0.0678935722 -0.0110780224 -0.0794021189 -0.0350868963 -0.0680307224 0.0599595681 0.0469707474 0.0849938169 -0.0139007345 -0.00363593549 -0.00789630413 0.0335307792 0.0478744283 0.0494070426 -0.0915855616 -0.000679239631 -0.0477152504 -0.0849602744 -0.0596612357 -0.0549328141 -0.0408420414 0.0223722607 0.0493868068 0.044328697 -0.0257144198 -0.0566378348 0.0835171565 -0.0154711157 -0.05841377 -0.0565299839 0.0724063739 0.0921025202 -0.0229433849 -0.0883017033 -0.0539616235 0.0335248336 0.0799336359 -0.0528208651 0.02132117 0.060718812 0.0346555784 -0.0623314157 0.0340463445 0.0559266284 0.0332046971 -0.0742988586 -0.0168344453 -0.070797503 0.0607925132 0.0703169182 -0.0770433471 -0.0326011665 -0.0313283205 -0.0762927458 0.0909607485 0.0588944629 0.0155910552 -0.00633593649 0.0527826622 -0.0568594374 -0.0680725574 -0.0172650814 0.0390303358 0.0134470537 0.0579979494 -0.074184984 -0.081498839 0.0572123304 -0.0547624975 0.0199971497 0.0791801438 0.067772381 -0.0817742124 -0.00651344657 0.0716995522 -0.0479168445 0.0920338258 -0.0638485327 -0.0670739263 0.018597573 0.0600257292 -0.0595363937 0.00759471208 0.0344362631 0.00801418722 -0.0152421892 0.0123909935 -0.0275981426 0.0651949272 0.0387855098 0.0552984998 -0.0178318545 0.0765167549 0.00330154598 0.0790582374 0.0851121619 0.0216806456 0.0351950303 0.0584149435 0.00750280172 0.0290608928 0.0327215567 -0.0851890296 0.0293239579 0.0385924354 0.0536699817 0.0440141931 -0.0693278387 0.00149869174 0.0555034205 0.0550155565 -0.0825716779 -0.00587956607 0.0417962596 -0.0723881349 -0.0431741811 -0.0284427479 -0.00535307825 0.0254472792 -0.0841969922 -0.029131107 -0.000473640859 -0.0201508552 -0.086128369 -0.0263574123 0.013641566 0.0598202571 -0.043866545 0.0129722431 -0.0327044614 -0.0252457932 0.0243066475 0.0609368309 0.0706496313 0.0311293006 0.0209863037 0.0273069441 -0.049346447 0.0464703813 -0.0763098076 -0.0315018073 0.0358506367 0.0362580344 -0.0531354845 0.0430677459 0.0463976786 -0.0335493982 -0.0885953903 -0.024186343 -0.0558656864 -0.0263365433 0.0857513919 -0.0103259087 0.0476977453 -0.0785404816 -0.0182058737 -0.0626836047 -0.0108750239 -0.0282953456 -0.0127789304 -0.0613291487 -0.0112935305 0.0599936768 0.0175795481 -0.0764817297 0.0471047536 0.0686984584 -0.0246272087 0.048868604 -0.013428852 -0.0820354149 -0.0490984768 0.0899705216 0.00533428043 -0.0287979543 0.0766959563 -0.0205623806 -0.0634624436 -0.0326098576 0.0529908314 -0.057249438 0.0849467739 -0.0253489763 -0.0903135985 -0.0123185366 -0.00652447343 0.0342986062 0.0028943345 0.0431663916 0.0619514063 0.0276213139 0.0428904817 -0.0621309653 0.0189059824 -0.040070463 -0.0468650535 0.0483635291 0.000971741974 0.0521259233 -0.0902772993 0.0108531862 -0.0126450136 -0.0178401694 0.0574607328 0.00495862961 -0.0420655161 -0.0674886256 0.0656453297 0.0910125002 0.0131696165 -0.000154450536 0.0724305883 -0.0781338364 0.0547905341 -0.00169192255 -0.0231992826 0.0272085294 -0.00764162093 0.0207720548 0.0455773696 0.0536421016 0.0757715181 -0.00473647565 -0.0628547817 -0.0658188909 0.0795516893 -0.0707081854 0.0731574818 -0.0430538282 -0.0744184852 0.0454304144 0.0327040479 0.0622201934 -0.0723703504 0.0211735666 0.0747974142 -0.0710792989 -0.0394203402 -0.0162173361 -0.031800095 -0.0003695786 0.0661306009 -0.00956062227 0.0491371974 0.0872321054 -0.0130819231 0.0801342353 -0.0209825411 0.00964979082 0.0547172949 0.0663077608 -0.0556545593 0.0299055204 -0.0177144483 0.00813449919 0.00412511826 -0.0222451016 -0.0688273907 -0.0161026418 0.00259503722 0.0716776773 -0.00291130692 0.085954912 -0.0498746969 0.0416822508 0.0478271767 -0.0821849257 0.0583290979 -0.01752498 0.0720565394 0.033649303 0.0665208623 0.0821524635 0.0180725157 -0.0310352296 0.0484326854 -0.0284161791 0.0768513009 0.0273825005 0.0375675038 0.0272571519 -0.0151296481 -0.031806387 0.0739327446 0.0372904316 -0.0744306147 -0.0158222765 0.0312269405 -0.0126364529 -0.0644828081 0.0618212298 -0.00969471037 -0.023646906 -0.00136365741 -0.0745538324 0.0331018791 0.0820019618 0.0827924237 -0.053756509 -0.0162638873 0.0515748337 -0.00919567049 0.0349276885 0.0503863171 -0.0650761873 -0.025758855 0.0209781826 -0.0758726597 0.0870442465 -0.0298634134 0.0420987979 0.0859056041 0.0304606482 0.0837148502 -0.0480655022 -0.0249430388 0.0827740803 -0.0730091184 -0.0861501843 -0.0253774822 0.0649318621 -0.00173719972 -0.0294710994 0.0219026208 0.0421234742 -0.000337794423 0.0329720154 -0.0586915649 -0.0441769138 0.0225623623 -0.0184437633 0.0401753411 -0.0593667366 -0.0125754848 -0.0424221717 -0.0279258564 0.0558237061 -0.00121636689 -0.0809425488 0.00850603729 0.0428153053 0.0864208415 -0.0413063504 -0.0559881516 0.0517722443 -0.0911947414 0.0258667544 0.0504961833 0.0259773806 -0.0651755854 -0.0354209282 -0.0913686454 -0.0192381442 -0.0292417705 0.0701884106 -0.0792696178 -0.00976710021 0.031144537 0.0847756937 0.0209725052 -0.0727186203 0.0738361552 -0.0383851007 -0.0858654305 -0.0265388191 -0.0153074041 -0.0664827451 0.0383743569 0.0691392496 0.0751054808 -0.0475669652 0.0381890461 -0.0467229299 -0.0276573449 0.0704665259 0.0883977786 -0.0697446987 -0.091311574 0.0832691267 0.0242983326 0.0235489383 -0.0237367973 -0.0261499137 -0.0479327589 0.0505439863 -0.0371264517 0.00569813699 -0.0444905199 -0.0668977946 -0.0302983411 -0.0182066262 0.0105836913 -0.0163364783 0.0418112949 -0.0422644466 0.0575054362 0.0739136413 -0.0467014499 -0.0677210093 0.069408752 -0.0417449772 0.00702184439 -0.0277765095 -0.0891511738 -0.0725635588 -0.0110737309 -0.0780968815 0.00282555073 0.00036688894 -0.0187062621 0.0655553564 0.0212953314 0.0241553262 -0.0270380154 0.0792776123 -0.0367160887 0.0610611215 -0.0144902021 0.0532740578 0.0419188365 -0.0847468376 0.056894131 0.0726204738 -0.0471913777 0.0896210596 0.0349671766 -0.0540552363 0.0468376949 0.0513308272 0.00573643297 0.0735067055 0.0907424912 -0.0361709557 -0.0310142748 0.0623731688 -0.0807074532 -0.00266689807 0.0721153542 -0.01612553 -0.0255563185 -0.00661348552 -0.0910558328 -0.0683942884 0.0159948319 -0.0690274686 -0.0880033299 -0.0441246144 -0.0260941461 0.0466362461 0.0380403325 -0.0570505746 -0.0396791399 0.0339618996 0.0540192947 0.0532003269 -0.0244213492 -0.0514546111 -0.0907419175 0.0630413219 0.0103394836 -0.0867331326 0.0605306253 0.0274309069 0.0816167966 -0.027262345 -0.051173538 -0.0126216188 -0.079407163 -0.0419556163 -0.038878154 0.091934599 0.0586979464 -0.0785529837 -0.0920325667 -0.0474362038 -0.0680695027 -0.0666045994 0.0773199722 0.0519323274 -0.0530889742 0.0555659458 -0.0411178768 -0.00187309086 0.0848679468 0.026660189 -0.0465558916 -0.0631531551 -0.0916025043 0.0249791145 0.0390496776 0.0037991181 0.0231283009 -0.0146061704 0.0559279993 0.0237981007 0.00717306137 -0.00116373599 0.0630322322 -0.0182264298 -0.0746873692 -0.0813928396 0.0585486069 -0.087034367 0.000819385052 -0.0281369537 0.0448580757 -0.0371283889 0.0862280354 0.00614406914 0.0203156695 -0.0868645087 -0.0469595864 0.0227469429 0.0229508951 0.0548060611 -0.0532832406 0.0642743185 0.0467873141 0.052963905 0.0429958925 0.0643447563 0.0413702503 0.0234274641 0.0769669935 0.0163698047 0.07936012 -0.0234800056 -0.0653525516 -0.0480703004 -0.0164844766 -0.0325377323 0.0413988605 -0.0378265381 -0.0856027156 -0.0658444017 -0.00658579916 -0.0540850833 -0.0229062364 -0.0827162415 -0.0629609823 0.0836978033 0.0328524783 -0.0511785336 -0.031122148 0.00623857975 -0.0522322394 0.0572785214 -0.0467463955 -0.0914392099 0.0714488849 -0.0494720824 -0.0685624033 0.00619493425 0.0363624468 0.0265516713 -0.0331990793 -0.0569149032 0.0337141976 0.00348051637 0.0123215094 0.0850745812 0.0490299538 -0.0345757455 -0.0490692481 0.050963439 -0.0832774416 0.060893707 0.0115042329 0.0159272403 0.0249476135 -0.0692701489 0.0729515627 0.0292987376 -0.00728084147 -0.0372404456 0.0450755581 -0.0758658797 0.00160707533 0.0895934179 0.0157848746 0.0692998245 -0.0361267142 -0.0414646082 0.0572220162 0.00757604837 -0.0285900608 0.0681522116 0.00892104208 -0.0462135412 -0.0154964328 0.0166278556 -0.0132112578 0.0572390482 -0.0700295791 -0.0774992704 0.00720061362 0.0291038081 0.00458277762 0.0136074498 -0.0917818025 -0.0481800251 0.00858285278 -0.0628899112 0.0830142125 -0.0264672637 -0.0850436687 0.0313905254 -0.0533611998 -0.0679884851 0.0614101961 0.0636309311 0.069693692 -0.0836574733 0.090545781 0.00593426824 -0.0676005706 -0.0187795311 0.00190743059 -0.0677280277 -0.0521295182 -0.0118924603 0.0706599578 0.0369796231 -0.0860395357 -0.0396158583 0.0617341027 0.0648242161 0.0160389245 0.0319202468 0.0761265531 -0.0841709748 0.0406720117 0.0330305025 -0.0168914124 -0.0113826469 0.0740403309 0.0759547278 -0.0581488982 0.0702761784 -0.0374507979 0.0377015248 0.076766409 -0.0570214316 -0.0727174953 -0.0384540595 -0.0750305578 0.0296442807 -0.0677949414 0.0906131193 -0.0492791831 0.0160562694 -0.0583607927 -0.0718457103 -0.031803418 0.00716790557 0.013616316 -0.0794089213 -0.0196601972 0.0241577253 0.0306761265 0.0247539654 0.0322305709 0.0287429914 0.00217927992 -0.0680803508 -0.0530767143 0.00150095671 -0.0740042776 0.0708215162 -0.0571867973 -0.0882791877 -0.0515298657 0.0301568136 0.0435948297 0.0691583529 0.0707950965 -0.024317652 0.0767670497 -0.0535532199 0.0657181218 -0.0558813773 0.0134557709 -0.0633116961 -0.0355505235 -0.037810646 0.034567453 0.0208534896 0.0310017765 0.0697035864 0.0920372531 -0.0698552579 0.0831770226 -0.03311643 0.0542683378 0.0590763018 0.0705628917 0.0695144311 -0.0101680234 0.0687089935 -0.0229586661 -0.00228710473 0.0260011256 0.00705985725 -0.0829208493 0.0631024167 0.00557304919 -0.0543968156 0.0859159455 0.0148713291 -0.0723380819 0.0239632651 0.0879964903 3.94880772e-07 -0.0501174293 -0.02732829 -0.00614820421 -0.060736008 0.0308685675 0.0687238798 -0.0346525647 0.0546680316 -0.0517537557 -0.0518654585 -0.0414955094 -0.0242379308 0.0198807418 -0.0459774807 -0.00323287398 -0.0702116936 0.0397262648 -0.0308441333 0.0558936819 -0.0217047259 -0.0166395009 0.0111624822 -0.0845831707 -0.0295198336 0.0882356539 -0.0319946893 0.010573566 0.053494893 -0.00511613488 -0.0884837508 0.0295453593 0.0193394125 -0.0635465235 0.0442446247 -0.0338742957 -0.0843731463 -0.0169365332 0.0422519222 -0.0875900388 0.0711820647 -0.0355167389 0.0913177058 0.0652910098 0.039245747 -0.0752203315 -0.0872944146 -0.0202840567 0.0543175712 -0.0713425875 -0.0901079103 0.0811570361 -0.032765761 -0.0699322969 -0.00829444826 0.0836587772 0.0283170491 0.0576070473 -0.0427629836 -0.0214518011 0.0520520583 0.0536443666 -0.00361984223 -0.0886383355 -0.0610366724 -0.00289466232 0.00920838863 -0.0489018559 -0.0773622841 0.0690512732 0.0916927233 -0.0816242546 -0.0272653177 -0.0393231846 -0.0369605385 0.0330271944 0.0300230756 0.0921386108 0.00801709294 -0.0153083727 -0.068527624 0.0279590711 -0.0344625898 -0.0549003296 -0.0807595551 -0.0419801362 -0.0370013453 0.0641671345 -0.0206301063 0.00769937038 0.0201145783 -0.0160129517 -0.0525004156 0.00872860849 0.0758250281 0.0740753189 -0.0398095734 -0.0379741192 0.0511978343 -0.0457672365 0.0767895207 0.0492288694 0.0151150078 -0.0371473618 0.0921899453 0.0198802352 -0.00884928554 -0.0726766661 0.00348194689 0.0783802643 -0.00401121378 -0.0242938846 0.0483344421 0.078209199 -0.0578480139 -0.0646375194 0.066487439 -0.0429933667 0.0693638995 -0.0814234987 0.0261384472 0.0376100913 -0.0414155684 -0.0566440187 0.0638827756 -0.0501732267 0.0293964595 -0.0275951475 -0.0921296105 -0.00894477218 0.0884535089 -0.053695783 -0.0574145615 -0.0765554458 0.0121054053 0.091774337 -0.0203631669 0.0112916157 0.0896662846 0.0591641739 0.0539027527 0.0808881 0.0488383099 0.0147617832 -0.0176012069 -0.0132991895 0.0114963576 -0.0857915431 0.00296395272 -0.0263971612 -0.0786943138 0.046525456 -0.0687068403 -0.0828730613 0.0430802032 -0.0784293264 -0.0515850224 -0.021827586 0.00828764588 -0.053353563 0.0173018426 -0.0638696402 0.066023387 0.0512644574 -0.0815515369 0.0321878493 -0.0183004066 0.0810983852 0.0171277598 -0.0152044371 0.0574467704 -0.058022581 -0.0637886673 -0.05336041 0.0609320179 -0.0457716398 -0.0127389804 -0.0667315722 -0.00875134021 0.0254392177 0.06302201 -0.0790220648 -0.0382306501 0.00119030476 0.0750889257 -0.0899529308 0.0605260655 0.00206273049 -0.0499438122 0.061619021 -0.0391764864 0.0256846622 -0.00420699269 -0.00850273669 0.0195229575 0.0604774579 0.0110404119 0.0506939068 -0.0180717856 -0.0795227438 0.00947716087 0.0332162902 0.0658480003 -0.0604721457 -0.0543575287 0.0878310129 0.0207625926 -0.0785379484 -0.00147936493 0.0630619451 0.0270946324 0.0323053673 -0.0437511876 0.0835242644 0.0413730368 -0.0829154775 -0.050383646 -0.0482839793 -0.00997263938 -0.0675560832 0.026523456 -0.0712890625 0.0193086639 0.0502413884 0.0107718185 -0.0920203552 -0.0196050182 -0.00163339823 0.0285128057 0.0113480911 0.0287027135 -0.00845754892 0.0526466593 -0.00431843102 -0.0693176687 -0.0680268854 0.0496269092 0.0427722856 0.0873496607 0.0281202942 0.00199881196 0.0605930313 -0.0736776143 0.0143334419 -0.0437390581 0.0613305047 0.0372838899 -0.075713411 -0.0214072764 0.0912692472 -0.0325292796 -0.0789608136 0.0470733121 0.00726658106 0.0134775639 -0.00514193624 9.96664166e-05 -0.0348847061 -0.0168398842 0.0114110187 -0.0230258629 -0.0871008113 -0.00252493471 -0.0180277899 0.0415228084 0.0127784908 0.0502511933 -0.0202246532 0.0282514542 -0.0837781578 -0.000342965126 0.0535983369 -0.0784189999 0.0635479763 -0.0810451582 0.0199974626 0.0385170355 -0.0882046595 -0.0694008917 0.0783574656 0.00853836536 0.00521291792 0.0484627113 0.0402986482 0.0435744897 0.0801777318 -0.0196185485 0.0254760459 0.00911653787 -0.0567920394 -0.0364498049 0.0695415363 -0.0446901545 0.0544934049 -0.0777321234 0.0770201012 0.0411115959 0.0119376257 -0.0454076715 -0.0695616826 0.00240706652 -0.0893573686 0.0328338668 -0.0184980631 -0.0539187491 0.0617223904 -0.0103394389 -0.01979056 0.0708524659 -0.00658476353 0.064269729 0.0803227946 -0.00407765806 -0.0140354186 -0.00643564016 0.00160553306 0.0478351489 0.074566789 0.0436961427 -0.0680483282 -0.0919235051 0.0423536524 -0.0355498642 0.0640442446 -0.0733959675 -0.0705048516 0.0262621492 0.0446421728 0.0446336493 0.00425764173 -0.0343913659 -0.0114215612 0.045345448 0.0354852453 0.0836366937 -0.0246531814 0.0916824415 0.0714792833 0.0262688845 -0.0669835284 0.00912034512 0.0552343801 0.0271217898 -0.00821177661 0.0402921364 -0.00611131638 0.0861585662 -0.0617857315 0.0724185482 -0.000402063131 -0.0797046795 0.0602093413 0.0372378752 0.00102876872 -0.031546995 0.00289963931 0.0185481384 -0.0433464348 0.0663071498 -0.0549316928 0.0731602833 -0.0664928034 -0.0830214396 -0.0783237219 -0.0536555685 -0.00111000985 -0.0781825036 0.0565718636 -0.0105592161 -0.0819539279 0.0532507971 0.0425626263 -0.0865667313 -0.0795184448 0.0376768187 -0.00251095742 -0.0237606987 0.00126370788 -0.000344596803 -0.0338448212 0.089253135 0.0499004796 -0.00434458256 0.0861676857 -0.0131324381 0.0209442228 -0.0120782703 0.0848101452 -0.0364034288 -0.0798590407 0.0136127919 -0.0738687813 0.017732054 -0.0756193101 0.0896697715 0.0656210557 0.0619490966 0.0463829115 -0.0312110707 -0.0849949196 -0.0844510198 0.0720270053 -0.0140455887 -0.0178059042 0.075955309 0.0282334089 0.0133005306 0.036561884 -0.0869680494 -0.0464191437 0.0720042214 0.0411779806 -0.0578899682 -0.0549184866 0.0735646412 -0.0673502013 -0.0747992024 -0.0171597824 0.0525850877 0.0775864795 0.0627804026 -0.0332571007 -0.0854130536 0.0890145823 0.0785295442 0.0726578757 -0.0159180388 -0.017504178 0.0270483419 -0.02224911 -0.0293980688 0.0117432922 -0.050808955 -0.0541784279 -0.0368834548 0.0338111743 -0.0493885763 0.0483701453 -0.0224139243 -0.0274968669 -0.0268084705 0.011214532 0.0693523362 -0.040340554 -0.0787141621 0.0883762166 0.0876985118 -0.0784726664 -0.0341235846 0.0375981554 -0.0753665268 0.0113139153 -0.0558110774 -0.0706543922 -0.0135693476 -0.036674533 0.0912177339 0.0369106457 0.045136489 -0.0835219547 0.0709958449 -0.0739100054 -0.0798906907 0.0813440457 -0.0185224488 0.0491943583 0.0700134858 0.0191818401 0.000441797078 0.0749256983 0.0119188055 0.0457314178 -0.0319092646 -0.0534564629 0.0497018024 -0.0727572441 -0.024225302 0.0209168419 -0.0317042619 0.0185056999 -0.0221920609 0.0352608487 -0.0608145408 0.0336855724 -0.0701793805 0.0191952661 0.0128619745 0.00455951691 0.0157476142 -0.0471162349 -0.0167161599 0.0916091129 -0.013041161 -0.0224550217 -0.0239491314 0.0424886867 -0.0602816232 0.0696670189 0.0127235278 -0.0668571219 -0.00974603742 -0.0277484506 0.070765458 0.0837119445 -0.00507695973 0.0695485249 0.00483180583 0.0553982779 0.0363041386 0.0223544985 -0.0731800497 -0.0302782245 -0.0843537301 -0.0609591305 -0.0786360949 0.0485620126 -0.0859072506 0.0664202347 0.0725595728 0.00193569064 0.070494689 0.0647281185 -0.0310706012 0.0760741606 0.0438440964 0.00772202015 0.0289578587 -0.0800265819 -0.0141929239 0.0460452512 0.0491759107 -0.0824144557 0.0273760334 -0.0289016888 -0.0154660791 0.0292750746 0.0331920758 -0.0666336045 0.0240596682 0.0664418712 0.085580878 -0.0436072387 0.0430223718 -0.0334823988 0.0831926391 -0.0745045096 0.0612134114 0.00609465688 -0.0665376186 0.0691787824 0.0816733763 -0.0665192828 0.0457635894 -0.0401481614 0.0838805214 0.0180979595 -0.0633726642 0.0323779583 -0.0602098927 0.0858562812 0.0137648657 -0.0229337215 -0.0345641673 0.0841567144 0.0549743548 -0.0200836137 -0.000180751085 0.00209520012 -0.030729726 0.0331022069 -0.0745211691 0.0569753274 -0.00178280473 0.0603409186 0.083349131 -0.0687909871 0.0451918766 0.00801108778 0.0342787132 -0.0426538102 0.00539888442 0.0873715654 0.0808297172 0.0323337391 -0.077081494 0.0477353856 0.0118659362 0.0241188332 -0.0347459093 -0.0341322348 0.0330451205 0.0731769726 -0.00934983045 0.0686371699 -0.077774711 0.0462157801 0.0757745132 0.00366523117 0.0387527123 0.0857842341 0.0204118341 0.0751653537 -0.0806601346 0.071580939 -0.00918100774 0.0453841463 -0.0164721757 -0.0799770579 -0.0751758069 0.0359132066 0.0345244631 -0.020312652 -0.0283106863 -0.0612715892 -0.0191491544 -0.0375707783 -0.0354901701 0.0452017412 -0.0917332917 0.00518223643 0.0285563469 0.045852907 0.00324469805 -0.00685989112 0.0737202987 0.0222540647 -0.0210750476 0.0465770885 0.0426965579 -0.0562344491 -0.0250401944 -0.0175302401 0.0767340288 -0.00827307999 -0.00715443492 0.0902501866 0.0408895239 -0.045622848 -0.016490221 0.0792204514 0.0010330826 0.082839109 -0.0732608438 0.0392873362 0.0220624208 0.0782276019 0.0315003544 0.0487068668 -0.0388602614 0.0691508725 -0.0729086399 0.0554265156 0.0193250403 0.0644463822 -0.0600759573 -0.0694843382 0.0644636527 0.0149340183 0.00937304646 0.050772436 0.0885684267 -0.0709505826 0.0428389385 -0.0902150348 -0.0342855826 -0.00742543489 -0.0844145864 0.0801556036 -0.0139044598 -0.051568184 0.0596472099 -0.0867861509 0.072744973 -0.0460912511 0.0908085033 0.0701722279 -0.0504453853 -0.0302922018 -0.0359896757 0.0818454102 -0.0177909583 -0.0625284985 -0.0222258046 -0.0489998907 0.0568111464 -0.0660091192 0.0216678604 -0.00205674767 0.0444946513 -0.00108285248 -0.0718307644 0.0735410675 -0.0621081442 -0.0547323674 0.0774615631 -0.0909307897 0.061794959 0.0223821849 0.0428586379 -0.0299096368 -0.017981261 -0.0192180276 -0.0548759624 -0.0759523958 -0.0263983086 -0.0334416553 0.0621593371 0.0895370468 -0.0779534131 -0.0128669515 0.0648470297 0.000583432615 -0.047971759 0.0718109086 0.0476939008 -0.0226483569 0.0602820441 -0.0375163034 0.0565772131 -0.0561208948 -0.0515807532 -0.0881539285 -0.0171084777 -0.0525756478 0.06337706 0.0231475756 0.0397108272 -0.0121298656 -0.0470758229 -0.0447906107 0.00018799305 0.0372323915 0.0118084401 0.058252044 -0.0654295012 0.0566433594 0.011161156 -0.00607062131 0.0126696676 0.0849957392 0.022265248 0.0732949153 -0.00783795118 -0.066155687 0.0593031719 0.0299870893 0.0224498659 0.00687054545 -0.0312997513 -0.0334769599 -0.00100076944 0.0174883083 -0.0425835326 -0.074772723 -0.0546586737 -0.0145823359 0.0118354484 -0.0902202725 -0.0344512127 -0.0176169425 -0.0500562862 0.0180137232 -0.0821227059 -0.0839833617 0.0880361423 0.0660667643 0.0662949756 0.0191488937 0.0699196979 0.0560770556 0.069677867 0.0300989896 -0.0207628086 0.0146251917 -0.0627058595 -0.0920857936 -0.0256102011 -0.00452328473 -0.0565219484 0.0402774438 -0.0520871915 -0.0838609189 0.0479714349 -0.0340482667 -0.0911417827 0.0354264006 0.063248001 -0.0268048421 0.0351754203 -0.0323029682 0.00542617589 0.0072523877 -0.00949247926 -0.0688682422 -0.0194984376 -0.030425407 0.0356307253 -0.00317811221 0.0641476288 0.0315997303 -0.0653103366 0.00757902116 -0.0258092806 0.0632869378 -0.079558067 -0.0366637483 -0.054349713 -0.0449404344 -0.0297361463 -0.0278876871 -0.0447520465 -0.086485751 -0.0225806311 0.0801088139 0.0723863766 0.041660212 0.0208800808 0.0268634334 0.0614305958 0.010215655 0.0907227471 0.0107738003 0.0690679476 -0.0899167433 -0.0317039751 -0.0655942932 0.00115927309 0.0414256677 -0.0822875872 0.00118566304 -0.0886987299 0.0542977974 0.0558938757 0.0813534781 0.0485367104 0.0263148397 0.0511377975 0.0533847138 0.0610256717 -0.0455162488 -0.00771947205 0.00987812132 -0.0807023048 0.0263960361 0.059021838 0.0742337778 -0.0581128448 -0.00910826772 0.0513995811 0.00322400779 -0.0114104301 0.0114848688 0.0893828794 -0.0142994747 0.0523903444 -0.0415303744 0.000904850662 0.0154933482 -0.0820114464 -0.0574222654 -0.0467711538 -0.0852739885 -0.0830955207 -0.0887403339 -0.0698468015 -0.0023720935 0.0566469505 0.0470253602 0.0504999682 -0.0335956216 0.0195434764 0.0423172936 -0.0348658897 0.0864595547 -0.056406945 0.0876069739 -0.0317162797 0.0423582718 0.0361946002 0.0497889742 -0.00556625426 0.0425486639 0.0231125131 -0.0371038243 0.0150933117 0.0892239735 -0.0814222023 -0.0288869888 0.0446608588 -0.000680498779 0.0355189666 0.0707922801 0.018962726 0.0323222727 -0.0576547831 -0.00934307277 0.0501421914 0.0420902148 0.0417198464 -0.0860081241 0.0578218475 0.0378515497 0.0496431962 0.0915872529 0.0297857374 -0.0315141343 -0.0315483361 -0.063059479 -0.010078311 0.0206957236 -0.0180917978 -0.0404917859 -0.0843413621 -0.0144498125 -0.0155531317 -0.0897785202 -0.0710949302 -0.0323479362 0.0120135993 0.044660531 0.0170397386 -0.0916150957 0.0138366669 0.0773221329 -0.0431426615 -0.0247750357 -0.0683630556 0.00831659138 0.0862018242 0.0150257349 0.0856570527 0.0551954433 0.0779779628 0.0679941997 -0.0463428535 0.0335561708 0.0239183381 0.0472601876 -0.0459417365 0.0554387197 -0.0035026148 -0.0513780154 0.0741967186 -0.0648678839 7.08773732e-05 -0.0413930491 0.0865001753 -0.0571043678 -0.0791096464 0.020251967 0.00543005019 -0.00700254738 -0.0639782622 -0.0388638936 -0.0307094529 -0.0365681127 -0.0343291424 -0.0270836428 0.0834087059 0.0330896601 -0.014956668 0.0311497301 -0.0455030017 0.0512224063 0.0922359899 0.063004382 0.0879549459 0.0725537613 0.0237824246 -0.0593256429 -0.0508221835 -0.0306030549 -0.0661163181 -0.049308084 -0.0292035192 -0.0363142639 0.0158388466 -0.0176444352 -0.0867398679 -0.0647530258 0.00267310441 -0.0518424548 0.0418704823 0.00579188019 0.087799035 -0.0869171992 0.0203062892 0.0333456323 -0.0210216343 -0.0599239543 -0.0779632106 0.0402620658 -0.00557294488 -0.0178376809 -0.0222719386 -0.0797784775 0.0106346011 0.0600792393 -0.0603587925 -0.037803188 0.0505698845 0.0610870495 0.0135996565 0.0295053944 0.0303705558 -0.00613617152 0.0703361854 -0.0487714447 0.0592547432 -0.000407636166 0.0672131404 0.0369899198 0.0626867786 -0.0916965157 0.0571703389 0.0735061541 -0.03773183 0.00287089497 0.0439367965 0.0401611403 0.00544255227 0.0419758931 -0.0275427848 -0.0742073879 -0.0392459519 0.0672169998 0.0785690919 -0.0921068564 0.0890718028 0.0494370833 0.0782699659 -0.0509211868 -0.0194038376 0.0656764582 0.0773352012 -0.0161861926 -0.0649027675 0.0122862682 -0.0375710428 -0.0875746086 0.027294904 -0.0200010017 0.0875428692 -0.0539800711 0.0444815531 -0.0790757537 0.0791194364 -0.0807659328 0.0541184768 -0.0634854883 0.0148314685 -0.0131342858 -0.0209234655 0.0395975634 -0.00680717826 -0.0415128097 0.084241055 -0.0407810509 -0.0843644962 -0.019460164 0.0455847904 -0.0437175333 -0.0434979126 -0.0798420683 -0.0495699421 0.0912708119 -0.075809814 -0.0177843049 0.0531247035 -0.0266861767 -0.0156973228 -0.044778876 0.0704388842 0.0639614239 -0.00144115835 -0.0847797021 -0.00701073557 0.043051742 0.084320806 0.064455159 -0.00752599537 0.06557367 0.0117297992 -0.0408409387 0.0112365484 -0.0169413984 0.0520282313 0.0483798161 -0.0552780069 -0.0338231437 0.0753138736 -0.0799872503 -0.0837819204 0.0372892842 -0.0489900745 0.0854363665 -0.0586053953 -0.00278795511 -0.0562519245 0.0267377943 0.0898404792 -0.0269514322 0.082169272 -0.0600416437 0.0835839584 -0.0834921971 0.0490675047 0.0629573688 0.0584875718 -0.0617902428 0.0575592443 0.0574252084 -0.00720985979 -0.0822733194 0.0236194357 -0.0776783973 -0.0442175455 -0.0642763078 -0.0445872992 0.0589676872 -0.052884873 0.00640055537 -0.0722945184 0.078283377 0.0563946888 0.0329786465 0.0702355579 -0.0335073136 -0.00724609196 -0.0542687811 -0.0405947752 -0.0676563457 -0.0809428096 -0.0547436774 0.0497434959 -0.019754909 0.062276803 -0.0803306103 -0.0475744717 -0.0141099244 0.030057393 0.00974591076 0.0389227197 0.073150374 0.0620673969 0.00411564857 -0.0412926599 0.0411879495 -0.0298708752 0.0322051495 0.0689098611 -0.0542153604 0.0163909793 -0.00302822143 -0.0748637393 -0.0483611263 0.0209344923 0.0787575021 -0.0792552903 -0.0175492167 -0.0513064563 -0.0692248493 0.0460488424 -0.0664770678 0.0871598199 0.0618706718 -0.0284007713 0.0563623235 -0.0877251625 -0.00563446432 0.00263027102 0.00399679691 -0.00054064393 -0.0628627241 0.019017756 0.0420512483 -0.0723025128 0.064895235 0.0310413465 0.0769198313 0.035309352 -0.0782215446 0.0644632652 0.0873778537 0.0672463998 -0.0559503809 0.0633841828 -0.00408941507 -0.0800647736 -0.0119953752 -0.0862915367 -0.00836580992 0.0391422138 -0.0436604805 0.0157458112 0.0573559925 -0.0771623179 -0.0396099165 -0.0192890763 -0.02905301 -0.0161967576 -0.0616390556 0.0759956017 0.0792261288 0.00329217315 -0.0712118894 0.0405475572 0.0750277117 -0.0765932798 0.00913438946 0.0800907388 0.0160540417 0.0356131867 0.0649476871 -0.0700642467 -0.0495037548 0.06996236 -0.0667443201 0.0609627441 0.00733470172 0.0453194156 0.0443795845 -0.0688638166 0.0723496303 -0.0856570825 -0.0559842996 0.0916676298 0.0653419271 0.0596081093 0.0407270566 0.0509908274 0.0827136263 -0.0535375066 -0.00286719203 -0.0314746015 -0.084071666 0.0596582368 -0.0289503112 0.0656264499 -0.0567954071 0.0331667885 0.00865885615 0.0518179312 0.0879384652 -0.0600903109 -0.0834234133 -0.0236297399 -0.00312403589 0.0752854124 -0.0430485681 0.0731564984 -0.0747692287 -0.0355109945 0.00819408149 0.0483137593 0.0402566269 0.00560951978 0.0017490387 0.0158414245 0.0916206464 0.0499458537 0.0668238178 -0.00229095668 0.0623020157 0.0522213951 -0.0801160336 -0.0412472077 0.0277211815 0.0431220159 -0.0872079805 0.000930689275 -0.0233276039 -0.0845265388 0.0918594822 0.0745476857 0.00407783687 0.0773637816 -0.0722394064 -0.0821886063 -0.0756661519 0.0680346414 0.0361204669 0.0453756228 0.0641936734 -0.0832784101 0.0707255974 0.0480202213 -0.00500824302 0.0426572189 0.0698050484 0.0152591094 -0.0570385791 -0.0157407001 0.00789493322 -0.0274416208 -0.00693289936 0.0726367161 -0.0202684775 0.0110729188 0.0772799328 -0.0805128589 0.0204708204 0.0644668564 0.0450257882 0.0287565514 -0.0525714867 0.0419914201 0.0362760797 -0.00502485782 0.0281639621 0.0647092536 -0.0519734174 -0.0303953625 0.00179983675 -0.0158704296 0.0463306978 -0.0557489432 -0.0437126011 -0.0573480688 -0.0603820346 -0.0573910773 -0.0632501766 0.0304104835 -0.0554100685 0.0904079154 -0.0379065461 0.0201204792 0.0418072417 0.0155410692 -0.00719816983 0.0451031402 -0.0233123302 -0.0491732247 -0.0659987554 -0.0448223054 -0.000130608678 -0.0752181113 -0.0359320752 0.0830916688 0.0350858644 -0.0111445859 -0.052699279 0.0650375113 0.077713348 -0.000580899417 -0.0474306345 0.0750000104 -0.0393027812 0.0821816996 0.0547624603 0.0188433453 0.0130117983 0.0126828551 -0.0150889903 -0.00694839656 0.0118201971 0.024889864 0.0126310438 0.0310699642 0.0140452981 -0.0623331107 0.0447470024 -0.0753087029 -0.0592268817 0.0552029237 0.0617223904 0.0464154258 0.0247887447 0.0837860629 -0.00870019197 -0.0523681976 -0.0895259306 -0.0376739614 -0.0361196697 -0.0554015934 -0.0436607674 -0.0463940054 -0.0188693181 0.0829480961 0.0560835823 0.0741341636 -0.0248988643 -1.34259462e-05 -0.0347676761 -0.0286526158 -0.0702950656 0.000220566988 0.043558456 0.0430864468 -0.0250938088 -0.0119580477 0.0595098212 -0.0855172724 -0.0397236235 0.043437995 -0.0918561518 -0.0786398798 0.0561442748 0.0477949753 0.0189049467 0.0821640566 0.0111189857 -0.0191687867 -0.00653207302 -0.0910241157 0.0117613599 0.0121122301 -0.0823832452 -0.0632251725 0.060593687 -0.0306670368 0.0507336631 0.0458225533 -0.0443778038 0.0808918998 -0.00751628727 -0.00397916138 -0.0630105287 0.0753916129 0.0837211236 -0.0200914443 0.0440155342 0.00259105116 0.0627027079 -0.0497252457 -0.0413106866 -0.066856131 0.0660410449 0.0165420845 -0.013543576 -0.0218802392 0.0882517174 -0.0214772001 0.070625715 0.01397755 -0.0288315415 -0.0350790173 0.0284434557 -0.0824773386 -0.0282450244 0.0379154012 -0.0480400361 0.025136508 -0.00206977874 0.0669379607 0.0141127631 -0.0672441274 -0.0312792584 0.0189846307 0.0480105504 0.0697979406 -0.00229432434 0.0738651827 0.0202283263 0.0877413824 -0.0786824003 -0.0462685451 -0.05497545 -0.0665017217 -0.0478551276 -0.0674616843 0.0710360482 0.0204092115 -0.0688458979 -0.0655575097 -0.0737058967 0.0743696913 -0.0614488833 0.0686681494 0.00739109516 0.0286232531 0.0848106518 -0.0184183419 -0.0365148038 -0.0842666551 -0.0198726878 0.0479980782 -0.0477365367 0.0408437774 -0.0880831182 -0.0119870603 -0.0297546387 0.0830005929 -0.0146790519 -0.0521526486 0.0914667919 0.0512156263 -0.0864413157 -0.0497101918 0.0734465793 0.0616265908 0.0128717721 0.0498075858 0.0889483765 0.0672310814 0.0495271757 -0.0495809689 0.0379654244 -0.00741823018 0.0449670181 -0.072145246 0.0313561633 -0.0545423701 -0.012605533 0.0235689878 -0.0725914836 -0.0379367471 0.0177663043 0.0270061716 0.0415299311 0.0643891469 -0.0724397674 -0.0459370241 -0.018034257 0.00371149182 0.0698135421 -0.0222696438 -0.0557363071 -0.0828497559 0.0148622617 -0.0466140434 -0.0232582241 0.0194555223 -0.0317712389 -0.0128172264 0.0530367717 -0.0687327459 0.0570859686 -0.0152984038 0.0886690989 0.080915384 -0.0119365007 0.00220502913 0.0126638338 0.0488547161 0.0820082799 -0.0511807129 -0.0852883607 -0.00825080276 -0.0637759641 0.0691074505 0.0552816316 0.014296636 -0.0394327305 0.0131746083 0.0140333697 0.0560700074 -0.0675881952 0.0346197709 0.0895315334 0.00425861031 -0.0901645198 -0.0448781438 0.0341042802 0.0342303291 -0.0627955943 -0.0896873325 0.0585852936 0.0652145669 -0.00153956562 -0.00195963681 -0.0170175508 0.00622392446 -0.0680425391 -0.0367411599 0.073123239 0.0377850011 0.0258537903 0.0491465405 0.0828681365 0.0218342319 0.0090899542 0.0243424624 -0.0738858804 0.00567234308 -0.0749951601 0.0561794266 0.063506119 -0.0896300152 0.0281738937 -0.0860332176 -0.0859222189 0.032226786 0.0473900512 -0.0239653587 0.0867497697 -0.000171683729 -0.0324929841 -0.069958657 -0.0541929118 -0.00669873506 -0.032833375 0.0917250887 -0.0473639853 -0.0734926611 0.0796397105 -0.07509166 -0.0615382455 0.0546126291 -0.0131687969 0.0648576841 -0.0705728382 0.0116817057 0.0214503706 -0.0582391843 0.00797243416 -0.0710224286 0.057751812 -0.0480814613 0.0553244725 0.0458973125 -0.0749856308 -0.00769213587 -0.00634218752 0.0697762892 -0.0802792832 -0.0349188447 0.0170279369 -0.0230857283 -0.010018222 0.0337056294 0.0803642198 -0.0831264928 -0.0232492238 -0.0509623028 -0.0390943438 -0.0168324634 -0.0856966376 -0.0430248193 -0.081200555 0.0604403839 -0.0390077531 -0.013061963 -0.0253497735 -0.0504418425 0.0683696344 -0.0795795023 0.0403217748 -0.0106520802 0.0496054515 -0.0838615075 0.0572644994 0.01715637 0.0210260302 0.0298828036 0.0885384008 -0.0671560243 -0.0504698157 0.0530368313 -0.0827653855 -0.0289024338 0.0257377028 0.030838944 0.0825174823 0.00139253587 -0.0568217747 -0.0610695332 0.0428991988 -0.000666543841 0.0901477411 0.0274492204 -0.0268230215 -0.0138496533 0.0891222134 0.0753780827 0.0758034363 0.0680917278 0.0857248679 0.030481644 0.0111597478 0.086145781 0.00218762457 0.0809584633 0.0594929233 0.0583079681 -0.0771172792 -0.0293643698 -0.0333991759 0.0249796212 0.0802754536 -0.0413237847 -0.0504940934 0.0717312321 0.0436372384 0.0668989643 -0.0906441957 -0.0444393642 -0.00152741373 0.0904873088 0.0656239018 0.0702113584 0.040556632 -0.00104892999 0.0567539856 0.0838315263 -0.0865555704 0.0098413229 0.0796609148 0.0220585018 -0.049371846 0.0336792842 -0.0787194893 -0.018953681 -0.0499269739 -0.073958382 -0.0388141274 -0.0595299453 0.0755991712 -0.0709430799 0.0823609456 -0.0700531974 0.0149827898 0.0734775439 0.0334485844 0.070977591 -0.0397878923 0.0905854478 -0.0581428446 0.0575720444 0.00908178836 0.012568593 0.0899567977 0.0919684246 -0.0826841891 -0.00618897378 -0.0712628216 -0.0335781015 0.0815940574 0.0645621493 -0.0798673332 -0.0557351187 -0.00624005497 -0.0357565209 0.00694617629 -0.0523571484 0.0346314833 0.0459763333 -0.0097265169 -0.0724509507 -0.0500876941 0.0575496331 -0.0488801785 -0.0428872742 0.00618366897 0.00715327263 -0.0568813346 0.0746305808 -0.0636205673 -0.071460478 -0.0636715665 -0.0531519912 -0.0902445018 0.0381381884 0.0911317691 -0.0205659494 0.0418198928 0.0483925417 0.0159825757 -0.0149834082 -0.0133094713 0.0186335146 0.0107157752 -0.0630041659 -0.0448070951 0.0587827042 -0.0159152448 0.0602000132 -0.0868497863 -0.0888387859 -0.03090702 0.0655410662 -0.0458169803 0.0724809244 -0.0487010777 0.0514927581 -0.0544697158 0.0581481978 0.0750057325 -0.0751303956 -0.0582617 -0.0384969786 -0.0488135964 -0.0395012051 -0.0554768927 0.00281570852 -0.0296386182 0.0187420473 -0.0546095259 -0.0223247409 -0.0297947451 0.0840673521 0.0368521139 -0.025321357 0.0847545788 -0.03879641 0.0481802002 0.0462002084 0.0805801675 0.0644374713 0.0854287371 -0.0804568827 0.00492352247 0.0600624457 0.0509641692 -0.0303831026 0.0604472682 -0.0531390496 0.0340419337 0.0852181539 0.02083157 -0.0446030349 0.0623994991 -0.0651132315 -0.0652540103 0.0184918121 0.0442369804 -0.0591255464 -0.0517055504 0.00353433192 -0.022690244 -0.0313192531 -0.0114843398 0.0725939795 0.0211823508 -0.0795479864 -0.0360164419 -0.00524542481 -0.0573392212 0.0305556655 0.0547559187 -0.0222352892 0.0691051409 -0.0451084189 0.0345036611 -0.0277132317 0.0902348682 0.0666771159 0.0593000874 0.0269561186 -0.0552104115 0.0650974736 0.00851950794 0.0501154736 0.0276278108 -0.0454554781 0.0738569573 -0.0551959276 0.0375537351 0.0058349967 -0.0551562421 0.00593274832 0.0515492484 -0.0358032919 -0.0657648966 -0.00371296704 -0.00208025426 -0.0118488744 -0.000486627221 -0.00944205374 -0.0299832597 -0.0398886353 -0.0667756796 -0.0798136294 -0.0216370672 0.0130022466 0.0825227425 -0.0376002938 -0.0241804421 -0.0525286347 -0.0375250392 0.0218222365 -0.0762095004 0.0313490778 -0.0454826392 0.0428048894 0.0281508416 0.0244370848 0.0254298449 -0.0145840496 -0.00164090097 0.0845566019 -0.0245193392 0.0764068887 0.0261948407 -1.17942691e-05 0.0258914232 0.0628928766 0.0180762783 -0.0244725198 0.0497925505 0.0858459249 -0.0876805931 0.0569529161 -0.019033052 -0.0813229531 0.066309683 -0.0411604233 -0.0317721181 -0.00935526192 -0.0494006574 0.0394556299 -0.00602640212 0.0312400386 -0.0710020438 -0.0827377886 -0.0250377059 -0.038982749 0.0436322913 0.0766320154 -0.0284197703 -0.0385525338 0.0392562971 -0.0713873357 -0.0311656632 0.0177517757 0.0565344766 -0.0251603276 0.0761612728 0.0914441869 -0.0426697247 0.0686047748 0.053285338 0.0282250866 0.0644930676 -0.0424715206 0.00396688282 -0.0237134248 0.00724186748 0.0502680019 0.0814470723 0.00780359656 -0.0564808547 -0.0881300867 0.056400843 0.0420177951 -0.0264674425 -0.0859400928 0.0209889859 0.066390343 6.65560365e-05 0.0419341847 0.0806840584 0.0694632307 -0.0824098513 -0.0455269031 0.0841839686 0.0827297345 0.0454719886 -0.00026705116 0.0664260611 -0.0893738121 0.0911772028 0.0289881006 0.0276832134 -0.022171326 -0.04859237 0.0358269587 -0.0883752629 -0.0686485544 -0.0650775954 0.0895749852 0.053664811 -0.0887133926 0.069870241 0.0714927688 0.0801560059 -0.0195092261 0.0294337943 -0.0226488635 0.0531261936 -0.0760769099 0.0078151077 -0.0635142624 -0.0851607919 0.0224925652 0.0751734748 -0.0759560764 -0.00136176497 0.0213830173 -0.0566666909 -0.0874314308 0.0253481194 -0.0861574858 0.0401230082 -0.0416268222 -0.0909133106 0.0397816375 -0.0491731577 -0.0322974846 -0.00871387869 0.00246349722 0.0747527257 0.00804795325 0.0464036539 -0.0433373004 -0.00934335589 0.075672932 0.0659199134 -0.0614958778 -0.00713700801 -0.058432173 -0.0159925669 -0.0900795758 -0.0532453619 -0.0308391154 -0.0187270641 -0.0486090071 0.0187081993 0.0224833712 0.0226784497 0.020226039 -0.0362463407 0.0169143677 0.0696058944 -0.045854222 0.0194935724 -0.0349303782 0.02201996 0.0231411979 -0.043177221 0.0618040934 -0.0434505679 -0.060914427 0.028833434 0.00999669731 0.0747681484 0.00176946819 -0.0408751443 0.00736206025 -0.0106523857 0.0189022869 -0.0763840899 -0.00161510706 0.0294042304 -0.0863009319 -0.0254289433 -0.00245968997 0.0744362101 -0.00723695755 0.0689512566 -0.0845045224 -0.0818446875 -0.0761783347 0.0166413262 0.0181616768 0.0328484699 0.0652611628 -0.0163484588 0.0358366594 -0.07659024 -0.0111367926 0.0445506051 0.0271961167 0.0717331842 -0.0486432575 -0.0236314163 -0.0339776985 -0.00143323094 0.0244479105 -0.0524524339 -0.0545469932 0.0854872689 0.0823492631 0.0199932382 0.0757804736 0.00254747272 0.0588628724 0.0731738135 -0.00960341096 -0.0386838019 -0.0375530384 0.0171033293 -0.0550504848 -0.0336568765 0.0362712815 -0.02349253 -0.0819430798 0.0233612582 0.054115735 0.0886502191 0.0730590597 -0.0189824253 -0.0793479085 -0.00166236609 -0.00468461961 -0.0367616303 -0.0874147713 0.0620223954 0.00507710874 0.0719902888 0.0189878866 -0.0361223556 0.0862525031 -0.0269072726 0.0465312228 0.0524177626 0.00916859508 -0.0549812838 -0.0646601468 -0.0252660438 -0.0229068696 0.0693144426 -0.0623583794 0.0687448308 0.0223580003 -0.0269850418 -0.0539633185 -0.0169767216 -0.0481057391 -0.0730386302 0.0601854548 0.0317072123 -0.0605234765 0.0329689011 0.0506866053 -0.0535661206 0.00762407482 0.01356107 -0.0143748671 -0.0914717168 0.0713885203 0.0679895207 -0.0231352076 0.00905165076 0.0343465731 -0.070274733 0.027055338 -0.0624712482 0.0597949103 0.0238999873 -0.0522226654 0.0424172655 0.0875555947 -0.090732038 -0.0617125481 -0.0647165626 0.0266548395 -0.0737261921 -0.0165679008 -0.0269414112 0.0636640415 0.0410648808 -0.0873014852 -0.0579066947 0.0711680278 0.0893051401 -0.0889321044 -0.0390760526 -0.0169295967 0.0338941738 -0.0517598502 0.0238549039 0.0133712739 0.0853539929 0.0892258212 -0.0414133444 -0.0685593188 0.0703645572 0.0131921098 0.049892135 0.0886343047 -0.0499079116 -0.03856574 -0.0618956089 0.0168254897 0.0568386987 0.0737769231 -0.0304719172 0.0192128792 0.0547226742 0.0595781878 0.0154718459 0.00936814398 -0.0647754595 0.0696129873 0.0824851766 -0.0210471377 0.0466400161 0.0704758391 -0.0302062482 -0.0917886719 -0.0142528787 0.0325518399 -0.00586975366 -0.016245842 -0.0136110336 -0.0645776689 -0.0217075869 0.0460665599 -0.0905096456 0.0785056874 -0.0658229813 0.000711046159 0.0793494806 0.0226977319 0.0572979972 0.0837615803 -0.056899298 -0.0264238119 0.0149192289 -0.0836428776 0.0109484494 0.0233405009 -0.0220682323 -0.037633881 -0.00728055835 -0.0127552673 0.0460411534 0.0834853575 -0.00525935739 0.019866541 -0.00937564671 0.0476967022 -0.0129333735 0.0303999633 0.0120975077 0.071711041 -0.00238896906 0.0492334738 0.050522007 0.0239941701 0.0152658448 -0.0382369235 0.00300335139 -0.0696649998 -0.00126624107 0.0670793131 -0.0511530675 -0.0728669688 0.0888462439 -0.0532187484 -0.00619871914 0.0133071393 -0.0309347063 -0.0162070841 0.0838767365 -0.0755336508 0.0551488772 0.0130372196 -0.0204784125 -0.079593569 0.0899690166 -0.0723133832 -0.0895844772 -0.0204158798 0.0629250631 -0.0432552248 0.0719982013 -0.0723857135 0.0771915689 -0.0658658817 0.0489194617 -0.0330997445 0.0855835155 0.0298828483 -0.0295476764 0.0921690837 -0.0145159513 -0.0364891626 0.012754783 -0.06594228 0.00143567473 -0.0343182236 -0.0208214 -0.00143605471 -0.000755749643 -0.0365139656 -0.0283961073 -0.0277230963 -0.0873625875 -0.0479359701 0.0837632492 -0.0806097239 0.0253691152 0.0367083624 -0.025196515 -0.0259652734 -0.0502854362 -0.0586716905 0.0821915492 0.0402327403 -0.0412303917 -0.0761047751 -0.064910911 0.0813311264 0.0819196329 -0.0195340514 -0.0296923518 -0.0508661605 0.0113608167 0.0423960611 -0.0661721975 -0.0916267857 -0.0700345337 -0.00317102671 0.0210430697 -0.0302316286 0.0125742555 -0.0457450263 -0.0904584229 0.0119607523 -0.0295350403 0.0437108353 -0.0168530047 -0.0632528216 0.0275038481 -0.0870429948 0.0594555214 -0.0433077626 0.0154962763 0.0625248179 -0.0625123829 0.0896124318 0.0852641091 -0.0146532059 0.0240228474 -0.0574209876 -0.073540315 0.0366272554 -0.0150119811 -0.0418805182 0.0440015122 0.0199926868 0.0421430841 -0.0797897726 0.0517994538 0.0132330954 0.00304343551 -0.0327827297 0.00646315515 -0.0168160871 0.0279103369 0.0749221519 -0.048860237 0.00196073949 0.0396496728 -0.0316267163 -0.0795818791 -0.0712934881 0.0556373075 0.0405540988 -0.0516552813 -0.062143378 0.0576196834 0.013481833 0.000666566193 0.0686726347 -0.00787902623 0.0421408936 -0.034864258 -0.0784332678 -0.0652999431 0.0336591378 0.0137129202 0.0325943828 -0.0590716861 0.056652762 0.0475684032 0.018775329 0.021272704 0.0460827723 0.000733323395 0.0772870556 -0.0105245486 0.0505769476 0.0493541285 -0.036740981 -0.0387519263 -0.0567234121 0.0454493836 -0.0319666453 0.0212695375 0.0175656378 -0.0369722024 0.0687301978 -0.0588995665 0.0290651172 0.0256902054 0.0804439858 -0.0891713202 -0.0513103753 0.0566633418 -0.0320843607 -0.0626098067 0.0350217298 0.0891397521 -0.000461556017 -0.0304312855 -0.0541294552 0.0462940112 0.0676869676 -0.0413913541 0.0776538476 -0.0585512929 -0.0215297192 -0.0529627241 0.0886788741 0.0674255267 0.0253220797 0.0570474043 -0.072044149 -0.0906467661 0.0898283049 0.0687633827 0.0242284015 0.0563735142 0.0913704261 0.0246516019 -0.0679131001 0.0882010236 -0.0277569667 -0.044453498 -0.0472700894 -0.00351159275 -0.0213129595 0.087128453 -0.0479337499 -0.0158182904 0.0487746969 -0.0432455167 0.0272901729 -0.0456353948 -0.0373653322 0.0887088701 -0.0230031461 0.0885893628 0.0791560188 -0.00630714744 0.0178257301 0.0207186341 0.0227855295 -0.0461064838 -0.0779217854 -0.0528480932 -0.0334049426 -0.0140796602 -0.0153383315 0.0575110987 -0.0718737915 -0.014948234 -0.057644859 0.00811021775 0.0415614471 0.0469086543 0.0460898206 0.00204193592 -0.051295694 -0.0007564798 0.00518392771 0.0836115554 0.090897046 0.0631544963 0.0922245458 -0.0570647493 0.00847112387 -0.0699369609 -0.0923126116 -0.000826336443 -0.0717877746 -0.0332628004 0.0734684542 -0.0484065115 0.036214076 0.00527566671 0.0397118405 -0.0846779197 0.000979490578 -0.0496283807 -0.0832097381 -0.0577236563 0.0505873039 0.0469431505 0.088746734 -0.0177945644 0.0101686195 -0.0101471171 0.0790220723 -0.0835821107 -0.0773736387 0.0307756364 0.00785639882 0.059384726 -0.0015469864 0.0914059356 -0.0457477123 -0.0448430367 0.0598154888 -0.0274387151 -0.0813730955 0.0204762742 0.0182355195 -0.0321587101 0.0543608293 0.0645675436 -0.0534820817 -0.0556371734 0.000929124653 0.0532664433 0.0612225011 -0.0596067384 0.0685130283 -0.0785900652 -0.0359793752 -0.00766955316 0.0353889689 -0.0591200218 0.0724665597 0.063577719 0.0820497647 -0.0762186348 0.0196139514 0.0122732595 -0.0910261199 0.0417236313 0.0333437547 0.0469256416 -0.0093370378 -0.0907591283 0.0336948708 -0.0453146771 0.0552120581 -0.0111059546 -0.0749247521 -0.0050374046 -0.0479016565 -0.0580080971 -0.0636948571 -0.0721577704 -0.0450417474 0.0530551746 -0.0315282643 0.0472581759 -0.0375696346 0.000948451459 -0.0592486523 -0.0433189236 0.0286350772 -0.00366170704 -0.035105098 0.0695730224 0.0706211254 0.0528952554 -0.00497817248 -0.0260064527 0.0785511062 0.0176243782 0.085307993 -0.0852949619 -0.0509661995 0.0916712955 0.0869254991 -0.0138664469 -0.0561313741 -0.0696111396 0.0509120449 -0.0858584791 -0.0134294927 -0.0477698147 -0.0782081187 0.0748941973 0.017435886 0.0215103701 0.0539454445 -0.026202172 -0.0829220116 -0.0677320808 -0.0307880528 0.056963481 -0.0393514484 0.00802149624 0.0859656855 0.068746902 0.0721785203 0.0305189714 0.0764689371 0.0482748523 0.0679942891 -0.0223739296 0.0863718763 -0.0837523416 -0.0748011395 0.0683117881 0.030141294 -0.0911416039 -0.0516400486 0.00062045455 -0.0871692002 0.059228994 -0.0363110304 -0.0205190182 -0.00981057435 0.0476751551 0.0818778798 0.0112572983 -0.00808953494 -0.0138665289 -0.065119192 -0.0285722613 -0.00866072625 0.00248365849 0.0817251131 0.0111136138 0.0462761 0.0192189962 0.0684325173 -0.00416602939 0.0154465958 -0.0714180917 0.0656721368 0.0226723701 0.0535450354 0.0901758745 -0.0255168304 0.0368284509 0.0435336307 0.0344232842 0.0394146815 0.0641781762 0.00147250295 -0.0438278504 -0.0642204657 0.051089935 -0.024381198 0.00583577156 -0.0559814833 0.0420786515 -0.0895780921 -0.0422074832 0.017230086 0.00194203109 0.0212361664 0.000277504325 0.0844131634 0.0398255363 -0.0888218805 0.0202972442 0.0498745218 0.0439383462 -0.00496732444 -0.0267858654 0.0596536025 -0.0239554495 -0.00712457299 0.0221722946 0.0243502334 -0.0658026859 0.0835052952 -0.0560563616 0.0725273564 -0.0234288722 -0.0565290153 0.00224658847 -0.0387618095 -0.0346308835 -0.0153065473 0.0277750641 0.0443548933 -0.0383400656 -0.0335174613 -0.030969616 0.0758304819 -0.0692785159 0.0297097117 0.0896663293 -0.0095429942 -0.0586883314 0.0160739645 0.0545581952 0.0383318588 0.000793918967 -0.0296676755 0.0203826427 -0.029768154 0.0318779871 -0.0827547163 -0.0341720507 -0.0233244523 0.0471153334 -0.0631706566 -0.0352956876 -0.0473227166 0.0176209658 0.000346466899 0.0496106669 0.0903708711 0.0784576908 -0.0477292724 0.0515098944 0.0501291677 0.0200608969 -0.0437544882 -0.0683184192 0.0846861824 -0.0300317295 0.00126870722 -0.0373681709 -0.0239753947 0.0623920038 0.0804269686 0.0858762786 0.00794692338 0.0359126404 0.0729440972 -0.000311866403 -0.0591199547 0.0659765527 0.0216315389 0.0317296162 -0.0272698998 -0.00661498308 -0.0147251636 -0.0415683649 -0.0834685341 0.0208855867 -0.0660402477 -0.00777541846 -0.0757052898 -0.0323613174 0.0895281509 -0.00380750746 -0.0651040301 0.0654933974 0.0838066116 0.0749984011 0.0542574003 0.0202949345 -0.0378712192 0.0902309045 0.0805050954 0.0631249622 0.00575543195 0.00124077499 -0.0278629735 -0.0683871135 0.0209624246 -0.0912174731 0.0636495724 -0.0643504411 0.0807640478 0.0611533746 -0.0379087031 -0.0362903848 0.0381785259 0.075171493 0.00814691186 -0.0304916799 0.0155898407 -0.0276852548 0.0272960663 -0.0406344831 0.0663697049 0.0589014962 0.0372054651 0.00970034301 -0.0713756084 0.0712114945 0.0592564866 0.0638559237 0.0481191501 0.0594852343 -0.0872581676 -0.0599474832 -0.0445110314 -0.0897792652 -0.050142765 -0.0874028206 -0.0506372079 -0.0916503146 0.0897726044 -0.0573495664 -0.0564805679 -0.0377473682 -0.0584433302 0.0355914161 0.0822867975 -0.0575484745 -0.00548683852 0.0250850469 -0.076183863 0.0675872937 0.00927212834 -0.029748477 -0.0504736267 0.0336141363 -0.0643138736 -0.024850376 0.0824146792 -0.0402956977 0.0817887411 -0.0639059767 -0.0412384495 0.045260556 -0.0422348641 0.0389013961 0.0817059651 0.0731539056 0.0830233023 0.00690246373 -0.0723931938 -0.0147745535 0.0706038997 -0.0399869978 -0.0823036507 0.00305514038 0.0809820369 0.0916924402 -0.0176853687 -0.0723977089 0.0580588505 0.00780240446 0.0024421066 0.0882164761 0.08339075 0.0648703948 0.0314351618 -0.028930746 0.0543773398 0.0589913949 0.0109285936 -0.0389687493 -0.0629467219 0.070381619 0.0862830207 -0.0768736005 0.0308485404 0.0254898444 -0.0037914142 0.0694998577 0.0657330975 -0.0383753702 -0.0316196755 -0.0167079493 0.0532055721 -0.0313069262 0.0426154211 -0.0418914109 0.0134729221 -0.0317833647 0.00439251959 -0.0593556426 -0.061063569 0.0509058163 -0.0819303542 0.032883577 0.0793959871 0.0588310435 0.0661042705 0.042088069 -0.0623845719 0.049203597 -0.0806294084 -0.020360902 -0.00297264755 -0.0511255302 0.0527025089 -0.0398814604 0.0697497353 -0.00527460873 0.0907686129 -0.0169821829 0.0652757809 -0.0873610228 -0.0179557279 0.0226853117 -0.0442487337 -0.0531787574 0.0313578844 -0.0843454525 -0.05470144 -0.0722905174 0.0366451666 0.061372973 0.0457250848 -0.0592964143 -0.0188551843 -0.0301405042 -0.0822450817 0.0904098526 -0.0467366651 0.0709431693 -0.0565608181 -0.0693962723 0.0140405446 -0.0884601623 -0.046182245 0.0686852857 -0.0593360104 0.0415797904 -0.068830803 -0.0813942477 -0.0221348107 -0.041588679 -0.00519220531 0.0088378191 -0.0218860954 0.0600651279 0.0265294686 -0.026665315 -0.0221161023 -0.085698612 -0.000753946602 -0.00384756178 0.00525702536 0.0876993015 0.050732784 0.0370211527 0.0518180057 0.071268566 -0.0398424119 -0.00111062825 0.0611219183 0.0306905881 0.0881844088 0.0148380771 0.00849025697 -0.0907402262 -0.080860272 -0.0876604766 -0.0491516329 -0.0645273775 -0.0787525252 0.0689142421 -0.0758482441 0.00969611853 -0.0251122341 -0.0339602232 -0.0699381009 -0.0160749331 0.0215305313 -0.0533629842 -0.0865005851 0.0188224316 -0.0810477138 0.0592573211 -0.0395806208 -0.041140195 -0.0140853375 -0.0400127955 -0.0369477719 -0.0324501731 -0.0240642726 0.0202033892 0.00151716173 0.00875701755 0.0442176536 -0.0706811547 0.0615664348 -0.0161990225 -0.0829637721 -0.0692894086 0.0280988812 -0.0574142337 0.0502343699 -0.000519402325 0.0359798893 -0.0712794438 -0.0135803744 0.00504880399 -0.0576037876 0.0134134218 0.0581655428 0.0888096914 -0.091533877 -0.0454955399 -0.0499376692 0.00667978078 -0.0202670023 -0.0651702136 0.04209245 -0.0696880668 -0.0128611848 -0.00285561383 -0.0285109133 0.0508164093 -0.073811397 0.0327521339 0.011351265 -0.0387062095 -0.0181572288 -0.00863435864 0.0704914853 -0.00222719461 0.00943368673 0.0277580917 -0.00871454179 -0.0447219126 -0.0814679116 -0.0812352896 -0.0764971823 -0.0776756629 0.0634226725 -0.0194519088 0.0238057822 -0.0453132913 0.00827760994 0.0116432086 -0.089602679 0.0686807111 -0.0410469584 -0.0375841372 0.0142715722 0.0101094991 0.0714348629 0.0541322753 0.0187107548 -0.0469997339 0.069156386 0.0791800544 -0.0673077181 -0.0110523403 0.0105758756 -0.0107931644 -0.0904616788 -0.0755472332 -0.0917588696 -0.0374716856 0.0861163363 -0.0280871019 -0.00796992332 -0.0789430961 -0.0359534472 -0.0753052235 0.0921620056 -0.0449807346 0.0700304583 -0.0536038466 0.0297197104 -0.0809926242 -0.0693375021 -0.0289410427 -0.0177384838 0.0803776309 -0.0165995061 -0.0546962693 -0.084911786 0.00345396996 0.090519391 0.020043835 -0.057242088 0.0712038353 0.0902876928 -0.0880918577 -0.0742925704 -0.0729009137 -0.0825329348 0.00665666908 0.0130347535 -0.0437190495 -0.0421892591 -0.0763929635 0.0186470747 -0.0745225325 0.024695836 0.0276881382 0.0840971991 -0.0781559348 0.0178936124 0.0684170201 0.0601365492 0.00422152132 0.0622271076 0.0699580386 -0.0651952177 0.091389887 0.0262270644 -0.058153674 -0.0651502982 -0.0131889433 -0.0907992572 -0.0454907641 -0.0163782984 0.0217195153 -0.0559732281 -0.00825066864 -0.0502529927 0.0227418393 -0.0497785993 0.00752454251 -0.0526965074 0.0774951354 -0.0108228326 0.0554936603 -0.02747605 0.0748377219 -0.084221825 0.0356912836 0.0328521952 -0.0880402029 0.0681522563 0.0814839676 -0.0768069997 -0.0595348738 -0.054620441 0.0114445686 -0.0770315304 -0.0276157707 0.0268159285 0.00970947742 0.0904649422 0.0913522914 -0.0861588567 -0.0561358184 0.013788484 -0.0869768262 0.0830520317 -0.0853679925 -0.0845984221 0.0597940013 0.0906646028 -0.0527813137 -0.046997752 -0.0179754719 -0.0552781373 0.00903078914 0.0509527251 0.0305474326 0.0525031164 -0.082054846 0.0503806695 -0.00503551215 -0.0214730203 -0.0626163632 -0.051131364 -0.0334789418 -0.0854815915 -0.0535912998 -0.0110565647 -0.0461752452 0.0734615251 -0.0860971361 0.0727139488 0.0364143476 -0.0486485623 0.072845377 -0.0206568539 0.00144192576 0.0286095887 0.0529348329 -0.0657772645 0.0683607385 -0.0118295923 0.0470381007 0.0620998666 0.0478703305 -0.0693546981 -0.0720557943 0.0108411685 -0.0441256501 0.0590645298 -0.0147074461 -0.0676536113 0.0250196829 -0.017547518 0.0536467656 -0.0337997675 0.0635125712 -0.0199999511 0.0232304931 -0.0578872375 -0.0379638635 0.0742082521 0.0322487354 -0.0361825787 -0.0254763737 -0.0375429802 -0.0853223652 -0.0849311948 0.033859767 0.0874420926 -0.0246627107 -0.0795983672 -0.0309958309 -0.0197359324 0.0362982377 0.0399538502 -0.00945072621 -0.0640877858 -0.0606153905 -0.0613285303 0.0815436319 -0.0810814574 -0.0227833912 0.0196006596 0.0153991655 -0.0362709947 0.076300256 -0.0436546691 -0.0430931412 -0.0665873811 -0.0314156823 0.0773361549 -0.0714328587 -0.0218912438 -0.00797078758 -0.055988878 0.0574649051 0.0690449551 0.0761655495 0.0224774033 0.0328326896 -0.0347759537 0.0790831968 -0.0108154193 0.0914871916 0.0353243425 0.0255088657 -0.0461565778 0.0619274303 -0.0646962896 0.0569266602 -0.0836550742 -0.0182215273 0.0556597039 0.0730673596 -0.0313466564 -0.0405984707 -0.0901438743 0.03153456 -0.0675396621 0.0587909147 -0.00565710664 0.0748752132 -0.058110334 -0.00708407164 -0.0794379562 -0.00127671659 -0.0699649975 -0.0233722404 0.0747273788 0.0846193507 -0.00298625231 0.0754423514 0.0184382871 0.00226153433 -0.0878577754 -0.0747812241 0.0442691222 0.0779831484 -0.0888564363 0.01843483 0.0385610685 -0.0895994231 -0.0613545701 0.0831553116 -0.0448311754 -0.05397043 -0.0920553058 0.0087383762 0.082771875 -0.0875743255 0.0025235042 0.00510810316 0.0476038828 -0.0204784796 0.0418275222 -0.0850874931 0.00997103006 0.0526259467 0.0492381975 0.053105481 -0.0351229273 0.0828553215 -0.000604428351 -0.0705510303 0.0752388462 -0.0920997262 0.0267186239 0.0715872422 0.0833317563 -0.0347030759 -0.0629416108 -0.00480710715 -0.0301650017 -0.013563931 0.0343354866 0.0486624315 -0.0221490487 0.074085556 -0.0636574179 -0.0188572332 0.0614087805 -0.0297363475 -0.0687893108 -0.0576043352 -0.00851913542 -0.0690006986 -0.0516585149 0.057732068 -0.0297094956 0.0426746979 0.0196404308 -0.0744847655 -0.0600797646 0.0760541335 -0.00872356445 0.0242440552 0.075412564 0.0776503757 -0.0827334076 -0.0714617968 0.000582948327 -0.0576148592 0.0186944231 -0.0482985079 0.0705426708 -0.0209219456 -0.0605930723 -0.0777243525 -0.0573465936 -0.0102725327 0.0688333139 -0.0469959266 0.0172787756 0.0515331402 0.0615636185 -0.0411264598 0.0314279422 0.0301615447 0.0272102728 0.0267574489 0.0733294263 0.0351677909 0.062953718 -0.0654559359 0.0816140249 0.0500002876 0.0335008278 0.00357280672 0.0284477696 -0.0431431234 -0.040810544 -0.0415784903 0.0673272684 0.0493647531 -0.0496815108 0.00214055926 0.0906362012 -0.0111091062 0.0898946747 -0.0652861893 0.0208787844 -0.076716274 0.0307736993 -0.0608900599 -0.0881976634 0.0021590963 -0.0492196679 0.0214691013 -0.0215292796 0.0155601501 -0.0921671838 -0.0343824513 -0.0213519186 -0.0797760785 0.036082007 -0.065295741 -0.0713592544 -0.0611979887 -0.0492995419 0.089087747 -0.082786873 -0.0272027031 -0.0800743848 -0.0658060312 0.0842481628 -0.0390072018 0.0616706684 -0.0458628051 0.0450730249 -0.0405576639 -0.0800806582 0.0285703018 0.0441715196 -0.0910656899 0.0203888714 -0.0568152182 -0.0419530645 0.00323985517 -0.00206328183 0.0311499238 -0.0347436629 0.030594252 0.0768150613 -0.0600446165 -0.0801156387 0.0764627084 -0.0589424632 0.0519913062 0.0491676405 0.0468065217 -0.0157308877 0.034704484 -0.0585940145 -0.00695284456 0.0333309397 0.0652698204 -0.0883872136 -0.0673763677 -0.0753249004 -0.00342430174 -0.0497618057 -0.0922420621 -0.0205822363 -0.00140561163 0.0423106179 0.00769525766 0.0678936318 -0.057575196 0.0211031586 -0.00800313801 0.0868681893 -0.00303634256 0.0315263271 -0.0814876109 0.00615606457 0.0470592901 -0.0418211557 -0.0283992961 -0.00691672415 -0.0712992996 -0.0318866372 0.00703327358 -0.0731399208 -0.0722739846 0.0849523321 -0.0188976899 0.0478298441 0.0774846151 -0.00186862051 0.0608987585 -0.0300094299 0.0401715562 0.0646871701 -0.0772417933 0.0754053965 -0.0711810142 -0.0512774922 0.0543775633 0.0908922479 0.070853062 0.0347163305 -0.0476497933 -0.041931361 -0.0836508721 0.0459860042 0.0816245154 0.0188959911 -0.0619519576 0.0766267851 0.0573629662 0.0842248574 0.0522523597 0.0339214876 -0.0415557064 -0.0399403162 0.0679031238 -0.0474313609 -0.0433535911 0.0063771829 0.0319648236 0.0244171843 -0.044711329 -0.0295910984 -0.0351030529 -0.0290521979 0.0287602469 -0.0615992174 -0.0197299868 0.0477181152 -0.011731185 -0.0525095277 0.088408567 -0.0873712748 -0.0133415833 0.0117021948 0.0789639577 -0.0512795374 -0.0110066906 -0.0685452819 -0.0600240342 -0.081582278 -0.0689039379 0.0254267827 -0.0150859356 0.0170812905 0.0292779133 0.0864029899 -0.0357222296 -0.0510987453 0.0234260783 0.0434104428 -0.00975880772 0.0327719823 0.0296575502 -0.065733619 -0.012373738 0.0496737882 -0.0275614932 -0.0822221264 -0.0604632311 0.017863214 -0.0183446705 -0.0729445815 -0.0125240013 0.0409824029 0.0212752596 -0.00298061222 0.0547624305 0.0169641972 -0.0353504717 0.0192077458 0.0179633424 -0.0544781238 0.00445768982 0.0441382453 0.0379556343 -0.0314238891 -0.0868435353 -0.0107029676 0.0436429605 0.0283650309 0.0515582636 -0.00976718962 -0.0018607229 -0.0066055879 -0.0878615379 -0.0408432931 0.0676504895 -0.0866794437 0.00246077031 -0.00715078413 -0.0451411903 -0.0301980823 -0.058631476 0.006429106 0.0132333115 0.0898265317 -0.022042498 -0.0659731179 -0.0580456033 -0.0281695351 -0.0535690673 0.0632393882 0.0286374539 -0.0112454817 -0.00308434665 -0.0768411607 0.0792610571 -0.0455129482 -0.0451477058 -0.0645190179 -0.0197782144 0.0628750995 -0.0348207466 0.0705219135 -0.0807947665 -0.0386475511 -0.0490597375 -0.00623631477 -0.0878167301 0.008157745 -0.016851835 -0.0798659697 0.0266314596 -0.0201920122 0.0130890533 -0.0463875122 -0.0368582122 -0.0282148048 -0.0837605447 -0.0859548151 0.0475554094 0.00127779692 -0.0683951899 -0.0890591964 -0.0807357803 -0.0780287981 -0.000733941793 0.0821617767 0.016457431 -0.0603833348 -0.00443427265 -0.0269331411 0.00447488576 0.0265269801 -0.0388939604 -0.0401302204 -0.025017105 -0.0877213106 -0.0247572511 -0.0483131222 -0.0841641352 0.0102391839 -0.0153786987 0.0556390807 -0.0840928853 0.0266495571 0.00280087441 0.0749113485 0.0368515924 -0.0630676225 -0.0445147529 -0.00337602943 -0.0570416152 -0.081644021 -0.0603285059 -0.0389748923 -0.0403209217 -0.0599687882 0.0129741803 0.0437678024 -0.0362359323 0.00490170717 0.0375273451 -0.0188520551 -0.0588891543 -0.0315929316 -0.027486302 -0.0538356379 0.000565670431 -0.0736441612 -0.0391090028 0.0133677945 0.0596498623 -0.0414884426 0.00375179201 -0.0776135474 -0.0548556447 0.0805538371 -0.0911703557 -0.0315156318 0.00134384632 -0.0872957408 -0.03092793 0.0510390028 0.044629626 0.0562122986 0.0849037096 0.0642602816 -0.0126120672 0.0460676178 -0.0866003856 0.060308747 -0.0443971716 -0.0734026879 -0.0527843721 0.0740799829 0.0800060704 -0.0439242534 0.000549577177 0.00878937542 -0.000225670636 0.0539068356 -0.04474058 -0.0543042831 -0.0631869882 -0.0445523672 -0.0515691303 0.0274889246 0.0731547996 0.0375702754 -0.0165627524 -0.000256001949 -0.0630896762 -0.0607442185 0.0815318152 0.0647723302 -0.0397289284 -0.0546374992 -0.024282746 0.0711356029 0.0172331408 0.0540167764 -0.073830016 -0.0458985716 0.0561494157 -0.0705354661 0.0220721439 -0.021413222 0.0733814612 -0.0389493592 -0.0689851195 -0.0115323663 0.0770481303 0.0688187107 -0.00192252547 0.056388475 -0.00759832561 0.0198467746 -0.028807506 0.0711390004 0.0229674652 0.0149201974 0.0206690654 0.0672313049 0.00209669769 -0.0863668993 -0.0318081938 0.024083972 -0.0276260972 -0.0516398288 -0.0292884335 0.0119574741 0.0173415244 -0.0891938135 0.064553 -0.0516862273 -0.0116336122 -0.0503412746 0.0698592886 0.0593406484 0.0355938002 0.0439712927 0.0461807474 -0.0783252195 -0.0251185298 -0.0462118462 -0.0317954719 0.0262423158 0.0557010248 0.0322827175 -0.0102651119 -0.0583779812 -0.0272472054 0.0783121362 0.0249988362 0.0890375748 0.0445617661 -0.0843764246 -0.0509151556 -0.0247367769 -0.0202726126 0.0643828139 -0.00188422948 -0.0910611376 -0.0683381185 -0.028008461 0.0555150583 0.0841178373 0.0608078912 -0.0472759232 -0.0483443327 0.0282163471 0.0263256282 0.0350180939 -0.0108686835 0.0789755806 0.0356966779 -0.0351107754 0.0910157487 -0.0138946176 0.0899837837 0.0902564302 0.0566062555 0.0448974445 0.000865541399 -0.00351396948 0.0874600634 -0.0877068043 0.0878503397 -0.0478841811 -0.0828405321 0.0457695499 0.00415564328 -0.0728419647 0.0575136468 0.0680205896 -0.0122245103 0.0662139729 -0.0899015144 0.0628864542 -0.0464062206 0.0569126084 -0.0187416524 -0.0397490896 -0.0174756348 -0.0898526311 -0.080467537 0.0182308108 0.0351917073 -0.0419339798 -0.039483618 -0.0350282602 0.0866813436 0.0284080803 -0.0618491247 0.036607109 -0.0270044506 0.0884090438 0.00296863914 0.0453900173 -0.0520508736 -0.0645559877 0.0810421929 -0.041909527 -0.0147613436 -0.0661183 -0.0490616523 0.0326026157 -0.0553405359 -0.0589566827 0.0845716521 0.0285249129 0.0048000887 0.0910497829 -0.0640052035 -0.0676699653 0.0890688971 -0.052811183 0.0787101164 -0.0523677133 0.0626849756 -0.021093294 0.0920935348 0.0308690518 -0.0399554595 0.001477696 0.0260792598 0.0449397042 0.0571135506 0.0758445635 -0.0781040788 0.0119597465 -0.049195081 -0.0880649611 -0.0894216001 -0.0830165297 -0.0433864295 0.0847060904 0.0551079586 0.0921675637 0.0635897592 0.0167259797 0.0384709612 0.0453206226 -0.0152259022 0.0527895913 -0.0121988431 -0.012793541 -0.0317258947 -0.0492936671 -0.0536170714 0.0556054935 0.00899536908 0.00952232629 -0.0691230595 -0.0306422114 -0.0147595629 0.0503153279 0.0590340421 0.0758897588 -0.0769941807 -0.0215784311 0.060445644 -0.0431618989 -0.0306999013 0.0726162121 0.0258218944 -0.0424841978 -0.076161474 -0.0910586715 -0.0492050722 -0.0759720132 0.0325937271 -0.0850043818 0.0842272863 -0.00449685007 0.0310245976 0.0500425771 -0.0676795691 -0.00157777965 -0.0578922555 0.0307914168 0.00393399596 0.0297350734 0.0702902302 0.0041674003 -0.000495232642 -0.0137538165 -0.0376464948 0.0909635797 0.0223877802 -0.0887716711 -0.0540954471 -0.0820607021 -0.0776950568 -0.0240691826 0.0448976085 -0.0678053498 -0.0712027401 0.0212523416 0.0370244756 0.0356923416 0.0558250472 -0.0671469793 0.0254101679 0.00650407374 0.0522847995 0.00107741356 -0.0462547913 0.00749459118 0.0569228306 0.0426120833 -0.0315779857 -0.0610445738 -0.0822117627 -0.0266414136 -0.0734824538 -0.025312461 0.0312738419 0.00652652234 0.035471864 -0.0687832981 -0.0619776174 -0.043137338 0.0572580472 0.053771086 0.0411398187 0.0807507709 0.04971876 -0.0360286795 -0.0271876901 0.0303660035 -0.00294931233 -0.0271881074 0.089166306 0.073282592 0.0856160149 -0.058765851 -0.0597376563 -0.076662764 0.0623747334 -0.0529937148 0.00908451527 -0.0183261186 -0.0781626925 -0.0779114217 0.0342718735 0.051609315 -0.000627651811 0.0171466395 -0.00693743676 -0.0575711653 0.0829564109 -0.000546716154 0.0607490614 -0.0526045039 -0.0212109834 -0.0416458622 0.0190847963 -0.00974269211 0.0735663995 0.0901097581 -0.0241760388 0.0440044329 0.0643004254 0.00203612447 0.0778704807 -0.0796152502 -0.00288902968 -0.0838366151 0.0564542189 0.0539015755 -0.0264572278 -0.0495787002 -0.0626809895 -0.0716222525 -0.0607253537 0.0283539817 -0.028427586 -0.0537166037 -0.0441287756 0.0251127854 -0.00178751349 0.0795551166 -0.0233791694 -0.0165331662 -0.0727784187 0.0390183404 -0.0758151859 0.077662982 -0.00681532174 0.0534574315 -0.0448521078 -0.0788297802 -0.0583450533 0.0476146564 0.0490817204 0.0244084671 -0.045785021 -0.00530047715 -0.0762560368 0.0617867485 0.0859906301 -0.0811556131 -0.0762337595 0.0433985367 0.0707187727 -0.00639423728 -0.0857073963 0.0636700913 0.0275141075 0.0335200205 0.00915393233 0.0895271972 -0.0642732903 0.0662627742 0.0452787355 0.0539413765 0.0689291582 0.00470599532 -0.0491221808 0.0177186057 -0.0165764615 0.0167831853 0.0381693318 -0.0916950628 0.0673480406 -0.0452439599 -0.00189978629 0.0514201596 0.0634646192 0.000194773078 0.0276488736 -0.018152371 -0.0758943334 0.00707163662 -0.0829026029 -0.00400973856 -0.0160893276 -0.0866758376 0.0882932022 -0.0803058073 -0.0395613164 0.0644685403 0.00261799246 0.00131772459 0.0703209713 -0.0156641528 -0.068676576 0.0792683437 -0.0315155648 0.0831837878 -0.00703791529 -0.0859885588 0.0393917039 -0.0829254687 0.0912057087 0.0466655716 -0.0446562134 -0.0513210297 -0.00100623071 -0.0334757082 -0.0921492875 -0.0574586056 -0.0586004853 0.0137666464 -0.0842774883 0.0281471908 -0.0817411542 -0.0534090735 -0.0388418175 0.0356251374 -0.080462873 0.0389175788 -0.0409054086 -0.0745765865 0.0605154261 0.068501763 0.0374286547 -0.0240352824 -0.0921148211 0.0604897514 -0.0232061669 -0.0516671874 -0.0425863266 0.0251314268 -0.0817845389 -0.0561693646 0.0807623044 -0.0100265443 -0.0290741399 -0.0889727846 0.0225926712 0.0374208912 -0.0596182942 0.082831271 -0.0176732466 0.0288638771 -0.0807546899 0.0789583251 -0.0043265745 -0.0124376789 -0.00895610452 -0.0209267214 -0.0404611491 0.0805286244 0.0214642212 -0.00595143437 0.0331653878 -0.0644480735 -0.0206691995 0.0207891092 -0.0829672068 0.025512889 0.0509058461 0.0443250909 -0.0918700024 -0.0766776204 0.029003419 0.053323172 -0.079497315 0.0530582443 0.00664404035 -0.0335536227 0.0721490756 -0.0406282507 -0.0840265676 0.0364612564 0.0284674242 -0.0523249917 -0.0257532224 0.0752708241 -0.0872589126 -0.0612951852 -0.0842921883 -0.0676275566 -0.0708255917 -0.0356241725 0.0266764536 -0.0485287569 -0.0730127022 -0.0792204887 -0.0865085348 0.0244040489 -0.0721731782 0.0913471803 0.0114287436 0.0503158495 0.0286882743 -0.0117743686 0.0871696845 -0.0796651244 -0.0744712949 -0.0808997378 0.00935898721 0.0153871924 -0.0791212469 -0.0864727423 -0.0711499304 0.0859261528 -0.0270173922 0.00165457278 0.045093976 -0.0807760134 -0.0580652356 0.0768739358 -0.0417237356 0.0445887223 -0.0479354002 0.0888871029 -0.0359999351 0.0414704606 0.0302005485 0.0881294534 -0.00497872382 -0.03607006 0.0373919383 0.00873096287 0.0146252736 -0.0781038776 -0.00490358472 0.0818501785 -0.0246562436 0.0176710412 -0.0342540182 -0.0480455197 0.0484760031 -0.0624688044 0.0565786436 -0.0733236223 0.0066223368 -0.0177581385 -0.000840775669 0.0845424309 -0.0164134055 0.0437070802 0.0271921754 0.0733863339 -0.0828205496 -0.0843574926 0.0460968837 -0.0539380088 0.041502662 0.0118199736 0.0163394287 0.0217437968 0.000400103629 0.0178724378 -0.0668623596 0.0345699415 -0.0310082883 0.0746499076 0.077358909 -0.0287282914 0.00864331424 0.0544472858 0.0232449323 0.0044329986 0.00755386055 -0.047616601 -0.0829469338 0.0261308774 0.0238421187 0.0467253998 0.0795350149 0.0438760594 0.0119503886 0.0600268915 0.0071503222 0.0609337017 -0.0747324005 -0.0136156753 -0.0396468043 -0.0683187246 0.0178060085 0.0433034971 0.0282816961 -0.00846567005 -0.00359746069 -0.00962628424 0.0268782005 -0.0590298437 -0.0398153402 0.00751890987 0.0138702542 0.0467016026 -0.0762005225 0.0160193741 -0.075038217 0.031728074 0.0365500227 -0.0156216025 -0.0859122947 -0.0440377854 0.0531408712 -0.0149125159 -0.0392931849 0.0441339538 -0.0571546406 -0.0750097781 0.0133698881 -0.0725444928 -0.0900982693 0.0330463871 0.00815052539 -0.0919482708 -0.0511436015 0.0519475415 0.0913063511 0.0358910039 0.0381361172 0.0548646078 -0.0519309603 0.0161863044 0.0173019692 0.0432865843 0.0111891106 0.0117608532 0.074208729 -0.0725353807 0.0509238318 -0.0280234963 -0.0357324183 -0.046697773 -0.0808825269 -0.064406544 0.0202291682 -0.0723437592 -0.0598901249 0.0692868754 0.0560999438 -0.0280980617 0.0368562117 0.0203606337 0.0705024227 0.080732353 0.0416359827 0.0500096604 -0.0884510055 0.000357739627 0.0518270954 -0.0415144376 -0.0206494555 -0.0254051909 -0.0625259653 0.00440137088 0.0725847259 0.0909741297 -0.026113905 0.0305101722 -0.0909059197 -0.0118628517 -0.0483247638 0.00288282335 0.0196700096 0.0572614148 -0.0445193946 0.0398871228 0.00455310941 0.0565632358 0.0590477809 -0.0715235397 0.0129221752 -0.0831969231 -0.0458393209 -0.0534988344 -0.0623929352 -0.0507485569 -0.0537876338 -0.0593907274 -0.000483460724 0.0353047922 0.0867180899 -0.0534722432 0.0413341299 0.0416947976 0.0296439454 0.0808363929 0.080685623 -0.0853700191 -0.0661193058 0.0348931327 -0.0254991129 -0.0743211806 0.0900499299 0.00130865723 0.0265906975 0.0447177365 0.0862930492 0.0885829404 -0.0115287751 -0.0884061679 0.0550132617 -0.0202903971 -0.0582907125 0.0162931904 -0.0272794291 0.035311617 -0.0639065057 -0.0884843022 0.0225988105 -0.0624992251 0.0565625802 0.0556041971 0.0788726136 0.0614866689 0.0772277489 -0.0691758171 0.0410383716 0.021607548 0.0276096091 0.0543420389 -0.0432460681 0.0322852731 -0.0860121995 0.0362003669 0.044539772 -0.0768863484 -0.0384275131 0.00521250069 0.0635172501 -0.0444433056 0.0467424914 0.0849284306 0.0837857798 0.081847094 -0.0231421441 0.0259674937 -0.00126635283 -0.0465490483 0.0919262096 -0.0821733922 -0.0920407996 0.0534373149 -0.0884326249 0.0494785532 0.0159430876 0.0359839574 0.0866103992 0.0607851073 -0.0183358267 -0.0378044397 -0.0276258066 -0.0409137718 -0.0286512524 0.0835805461 0.00844255835 -0.012276493 0.0600710437 0.0111623257 -0.0720805824 -0.0552725233 0.00923860818 -0.0259522647 -0.0860371813 0.0422785804 0.0592419431 -0.00949069858 -0.0576191731 -0.0444628075 -0.0403761677 -0.0611076131 -0.00742424279 0.0108307824 0.0871657655 0.0576599315 -0.0511883721 -0.0629806146 0.0376295522 0.0635631457 -4.13805246e-05 0.0133984759 -0.0137020722 0.0874103978 0.0248635337 0.0656826869 -0.00693470985 -0.076490134 0.0191717371 -0.0527275205 0.0188040063 0.0543488041 0.0747469142 -0.0470614508 -0.0902686715 -0.00424918532 0.031264998 0.02782958 0.0200121626 -0.077277936 0.0164984539 -0.0262862295 0.00775686651 0.0854587033 -0.0900294185 -0.0537391193 -0.086899288 0.00445696712 0.0182761103 -0.0275889859 0.0564428195 -0.0154067352 -0.0595863797 0.0179991946 -0.00491870195 -0.0261003077 0.0244733766 0.0276052058 -0.0730270967 0.0200910047 -0.0220614299 -0.0794206336 -0.0692121536 0.0590824261 0.0375231877 -0.00651485473 0.0220023096 0.0334471837 0.0729684159 0.00766979158 -0.0128023028 0.0472899452 0.0308785588 -0.0140886381 0.062266998 -0.0565895438 0.0630847737 -0.0041436702 -0.0833573192 -0.0193832591 -0.0120949969 0.0287418291 0.0380510911 0.0112582892 -0.0177911296 -0.00154808164 0.0781342164 -0.0234948173 0.0573291555 0.0637433454 0.0800994113 -0.0295794755 -0.0908983946 -0.00201162696 0.00459017605 0.0398105457 0.01284419 -0.0609113872 -0.0759429112 0.0183122978 0.0207936466 -0.000209495425 -0.0421055295 -0.0468685292 -0.046449516 0.058051385 -0.0824967325 -0.058583077 -0.0279997215 0.0323287174 0.0316434205 0.0594571307 -0.0921937749 0.0760403797 -0.0209629983 0.024397023 0.0636953786 -0.0791392475 0.0496637896 -0.0581636876 -0.0380192623 -0.0615138561 -0.0543317087 -0.0328265317 -0.0090226233 -0.0388091952 -0.0190702677 0.0384510234 0.0516864434 -0.0561152622 -0.0796384513 -0.0211112127 -0.0168922246 0.0430838242 0.0495859459 0.0346717313 -0.0805047378 0.070002906 0.0175588802 0.0659257546 -0.0107745901 -0.0335090086 0.00399786979 -0.0675401986 -0.0160548165 0.0656528249 -0.0893114358 0.0244574249 0.0248733535 0.0596031323 -0.0664881393 0.0137856901 0.0646012053 -0.054170087 -0.0651407242 0.0194142684 -0.0271281749 -0.0164704621 0.0669229552 0.0140687898 -0.0248715729 0.0629746094 -0.082015492 -0.034253668 -0.0909812599 -0.0771324039 -0.0651393831 0.031031996 -0.0476963446 0.0697602555 0.0723665878 -0.0071227178 0.036905311 0.0689421669 0.0324928537 -0.0550288036 -0.0232007578 -0.0723593682 -0.00379005075 -0.0639533028 0.00317276269 -0.077780284 -0.0656490102 -0.0645337179 0.0847781375 -0.0894953087 0.0544517711 -0.0159355402 -0.00210116059 0.0419710949 -0.0549986698 -0.053299617 0.0137740001 0.0209428966 0.0626727566 -0.0821711048 -0.0862873495 -0.0420567989 0.066504024 0.00713055581 0.0905077979 -0.0603714474 -0.0736948699 0.0141179785 -0.0412080958 0.0361916497 0.0809867159 0.0617234632 0.0247233063 0.0181940123 -0.0822817758 -0.0702819303 -0.0847170129 0.0515182391 -0.0548918545 -0.0128601044 -0.00495781749 -0.0467598625 -0.090846248 -0.0174151734 0.0186849758 0.0295675695 -0.0684991702 -0.0628737733 -0.0480465293 0.0538113341 -0.0415333025 -0.015440762 -0.0624471232 0.0363946036 0.00173081458 0.0219740495 0.00510066003 -0.00486541539 -0.0830989331 -0.0250742659 0.0151593834 0.0295690224 -0.0545886606 0.0764617398 0.0724415556 0.0643369928 -0.00316638499 0.0500114337 -0.0439172983 0.0205170438 0.0479232743 0.0528728589 -0.091058366 0.0778776333 -0.0640987903 -0.0428860225 -0.0542475618 0.0144106522 0.025778994 -0.0470530204 -0.0414428599 -0.0221223533 0.0766901746 0.0225273445 -0.0431548804 -0.0189448968 0.0326800942 0.0250409171 -0.0172212124 -0.0857049748 -0.0675300062 -0.00953744352 -0.0894723982 0.0637022778 -0.0529838316 0.0464119241 -0.00984860957 0.0769157782 -0.0440839194 -0.00116107613 -0.0154725239 -0.0912209079 -0.0290044323 0.0324739218 -0.0294564217 -0.0549817234 -0.0169971883 -0.0585448891 0.0867897347 -0.0555624478 -0.0869830772 -0.00561627746 -0.0656455085 0.0333263502 0.0597628132 -0.00280560553 -0.0424247049 -0.0899156928 0.0647599474 -0.024703145 -0.0396517366 -0.0717778727 0.0537853912 -0.0450873114 0.0448501632 0.0531772599 -0.01699882 0.00536408275 0.0709579512 0.0416061059 0.0367154256 0.073373653 -0.0297461674 0.00535932928 0.0526918843 -0.0538609065 0.0155737773 -0.0555267036 -0.0284267664 -0.028146863 -0.0166401789 0.00869648904 -0.0491436198 -0.0605958477 0.0828168765 0.00312306732 0.0913920626 -0.0686923116 0.0559703186 -0.00329817832 -0.0706982315 0.00664579868 0.0663670823 0.0141587853 0.00478496403 -0.0686111376 -0.0603296086 -0.0922698006 0.0363006666 0.051468648 -0.0388358943 0.032568872 -0.079656519 0.0743765309 -0.0916513726 0.069927536 0.0810685828 0.00504931062 -0.040575847 -0.0704278126 -0.0383764915 -0.061268352 0.0378054157 -0.0334393233 -0.0081730634 0.0546365604 -0.0200064853 -0.0822183192 -0.00657650828 -0.0480741523 0.0873487666 -0.0693199635 -0.0531285293 -0.0076848492 -0.0228575021 0.0745299235 0.0759380087 0.0517396852 -0.0557891093 0.00564903021 0.0307786316 -0.0823854879 0.0559471175 -0.0032126084 0.0313594863 -0.0415126346 0.0496813133 0.0399992988 0.0529479161 0.0459957644 -0.0773103982 -0.0287855193 0.0492219403 -0.0283484757 -0.0664729327 -0.0184760094 -0.0171668902 -0.080392085 0.0559768602 -0.0534249209 -0.0236526728 -0.0437030718 -0.0787531659 0.0093325302 0.0814366564 -0.0363719761 0.0542664751 -0.0464648344 0.0339798406 0.0159276798 -0.00343735516 -0.0104853287 -0.0401430763 -0.0156440511 0.0106597394 0.02055455 0.0672677085 -0.0464862511 -0.00589731336 0.0644707903 0.0838487074 -0.0835757926 0.0645620003 -0.0255897716 -0.0847670659 0.0586797968 0.00632922351 -0.0389261842 -0.0749411955 -0.0650287122 0.00460384041 0.00563195348 -0.00691815466 -0.0695074052 0.057895489 0.0763054267 0.0614510849 -0.0592911318 -0.0785919577 -0.0232360139 0.0499565527 0.0318554714 -0.0028135106 -0.0525289625 -0.00691067427 0.0724096224 0.0489893928 -0.0250298455 -0.0870817974 0.00982327759 -0.0323466808 0.0435384139 0.0227073655 0.0349735841 0.0230237246 -0.0439076386 -0.00280794501 0.024945721 -0.0310407765 0.0821066871 0.0812778547 0.00802794844 0.0740342066 -0.0487620682 0.0549796298 -0.060151808 0.030328691 0.00490098447 0.0716384277 -0.027357541 0.0794509873 -0.0298708975 -0.0240892097 0.0445489362 0.0161806047 0.088237457 -0.0621294044 0.0632974729 0.00634694099 -0.0757980198 -0.0820451826 -0.0806841254 -0.0767810941 -0.022478722 0.0819245055 0.0060884729 0.0645564571 0.0212834924 0.0151551589 -0.0518785752 -0.00804518163 -0.000847361982 -0.0789494142 -0.00517239422 -0.0893717036 -0.0252786353 -0.00251152366 0.0232860222 -0.0484143682 -0.043466568 0.0423109755 0.0820909068 -0.0229025781 0.0293251947 -0.0527949594 -0.000638745725 -0.00339139253 0.0447228774 0.026004605 -0.00940533727 0.0474456176 0.0188944265 0.0230932757 0.0358595327 -0.0366320983 0.091851823 -0.0682313219 0.0583406463 -0.0785844773 -0.0412143916 -0.0153742954 0.0758291408 -0.0906078517 -0.0268137753 -0.0830477625 0.00041115284 0.0513118133 -0.0841812119 0.0484368578 0.0586286411 -0.0847903341 0.0749108568 0.0196049064 0.060579367 0.0117515475 0.0857401118 0.0138476491 -0.0530376248 -0.0264147669 -0.0101383105 0.0241445675 -0.066442728 -0.0347519405 0.0611675456 0.0605525747 -0.0590156689 0.00574823469 0.0136678219 0.0903493688 -0.0188643858 0.0562498942 -0.0545479171 -8.04290175e-05 0.0680121258 -0.0750537813 0.0789098367 -0.0797952488 0.0299679637 0.0672503635 0.0865062401 0.0300895944 -0.0193496495 -0.0665544569 -0.0702024475 0.0851730928 -0.0706217289 -0.0575409904 -0.0827971697 -0.0645823404 0.0870515332 -0.0793011189 0.0629704967 0.0910133794 0.0523352697 0.0769720152 -0.0871310085 0.0447283611 0.0515920445 0.0222607329 -0.0084156841 0.0742370412 0.0382432416 -0.00768823922 0.0879231021 0.0336123332 0.0592652634 -0.071451433 -0.0622656271 -0.0717064887 -0.0517045408 -0.0503671169 -0.0273306891 -0.0360881314 -0.0221931413 -0.0455824584 -0.0380981266 0.00440821052 0.00589656085 -0.0601642653 0.0349253342 -0.0247635022 0.0657514855 -0.0728859231 0.00582467765 0.00782562792 -0.0902410448 0.00105111301 0.000204145908 0.0796607509 0.0794454142 0.00682872534 -0.0263270587 0.0680274144 -0.0659058541 0.0682242289 0.0489615276 0.0597597286 0.0451439247 -0.0387139134 0.00279343873 -0.047525961 -0.0194609091 0.0608622804 -0.0911970735 -0.0403168909 0.0690586045 0.061329253 0.00846392661 -0.0711190999 -0.0534958169 -0.0649650395 -0.0434143618 -0.0457536131 0.00442696363 -0.0373149514 0.0570913628 -0.0799423456 0.0550742969 0.0297684595 0.0698962882 0.0502886549 -0.0414735191 -0.0298587047 0.0225717202 0.000201702118 0.00778891146 0.0847709402 0.0432480052 0.0137235969 0.0893182531 -0.0705116317 -0.00817620754 0.0807703659 -0.0640339926 -0.0389724933 -0.0419872887 0.0189078301 -0.0121727362 -0.00116737187 0.0690116808 -0.0588812083 0.0515333191 0.0569443777 -0.0379380211 0.0582869872 0.0571239814 -0.00780055672 0.041200988 -0.0612218007 0.0359453633 0.066703625 0.0063323006 0.0792769715 0.0359836742 0.0146435872 -0.0807409734 -0.0150115192 0.0352669582 0.0136011764 0.058591865 0.0790152028 0.00145982206 0.00073800981 -0.0136889294 -0.0737156048 -0.0908176377 0.0021128282 0.0743939504 0.0892672315 -0.0484518744 0.0215103701 -0.0808512941 0.0319106728 -0.00789601356 -0.0545179397 0.0475096032 -0.0877563953 0.0296301022 0.0634584203 0.0808104351 0.0811642781 0.041156508 0.0484756306 -0.0506735668 0.0853222981 0.0240987167 0.0529242232 -0.0218851268 -0.0107682049 0.0589292422 -0.0280005559 0.0744310543 -0.00896163285 -0.0508383177 0.0290569514 -0.00207886845 0.0661757216 -0.0238271281 -0.070579797 0.0130006596 -0.0559086278 -0.0355508551 0.0706559941 -0.0654517114 -0.0372919478 0.0260684788 -0.0710305274 0.0915125981 0.0120107606 -0.0842289776 0.0331155732 0.00208124518 -0.0320277028 -0.045780465 -0.0404983908 0.0700264797 -0.0163369402 -0.0487000644 0.0418534204 -0.0755811036 0.0318931788 -0.0912427008 -0.0753990114 0.000776350498 0.0471140519 -0.0195760503 -0.00318396837 -0.0852241591 0.0856088176 -0.0520564653 0.0132490471 -0.000840932131 0.052642189 -0.0729466677 -0.00292783231 0.0877127722 -0.0872811228 -0.09198571 0.0334105566 -0.0717841014 0.0913662687 0.0787790045 -0.0915182531 0.0127511322 -0.087568298 -0.0372359529 0.0596909449 -0.0662889406 -0.0149996057 0.027034454 0.0858071223 0.00861879438 0.0439293608 -0.0903067067 0.024692826 -0.025787957 -0.0554106422 -0.0718548149 -0.0832640827 0.0150315911 0.0615849271 0.0331237093 0.0328011587 -0.0289332718 -0.0722035542 0.000418484211 -0.0849380866 0.0429215953 -0.001491189 0.0918796137 0.0585684404 -0.0487118401 0.0116261989 -0.0854493454 0.0472867265 0.0173512995 -0.0805865526 -0.078576006 -0.00444620103 0.0120261684 -0.0845015943 0.0398427919 0.0445080325 -0.0496766716 -0.0876216441 -0.0232457891 0.0124989152 -0.0377845205 -0.0142501965 -0.0184289739 0.0633556023 0.0859406367 -0.0306219161 -0.0878139511 -0.00123663992 0.00850313157 -0.0152707323 -0.0291422829 -0.0663411915 -0.0304468013 -0.0917144045 -0.0278801844 -0.0239634439 -0.0175946429 0.015252687 -0.0299972147 -0.0523505472 0.0730753019 0.0223584846 -0.0352831855 -0.0184311271 0.0207748264 0.0720567182 -0.056055747 -0.0859253481 0.013351202 0.0471800491 0.0874020681 -0.0316879936 0.0180304721 -0.0373125933 -0.0221739262 -0.0311283544 0.0365275517 0.0385524705 0.0331998542 -0.0605286248 0.0221845731 -0.0676542968 0.0339323953 -0.052138146 0.0879117921 0.0581255481 -0.0585085265 -0.0469639003 -0.019982405 0.0455973223 0.0193594024 -0.0231750458 0.0910856351 0.0696979985 0.0530269518 0.0197241604 0.077828221 -0.00701092929 0.0562360361 -0.027629815 -0.0355206579 -0.0268762857 0.0658378378 0.0179915801 -0.0330831073 -0.0177737251 0.0516414419 0.0887002423 -0.0863722414 0.0871113613 0.0849567577 -0.0854865909 0.0873219594 -0.0660207868 -0.00216092169 0.0124363378 -0.0739550591 0.0178513974 -0.0255903229 -0.0630480349 0.0102249682 0.00356574357 0.0034693554 -0.0141233727 -0.0481405593 0.0183201507 0.0451358482 -0.0921950042 0.0182756931 0.0848456845 0.0201758593 0.0411233529 0.00607715547 0.00889207423 -0.0563979857 0.0284161568 0.0353830531 -0.0710251331 -0.064792715 -0.0797808766 0.0186923295 -0.015943177 0.0148926601 0.0445024297 0.0549565628 0.0855280384 -0.0535326861 -0.0883396715 -0.0513734147 0.0100760013 -0.0722551495 -0.0507542603 -0.0724100322 0.0286513194 0.00656893849 -0.0399154872 0.0918926224 0.0617897138 0.0517227426 0.0205093399 0.062061958 -0.0533168279 -0.00983954221 0.0302327499 0.0537188873 -0.0453040488 -0.0069436878 0.00710843503 -0.0564959124 -0.080442667 0.0738945082 -0.0758856237 -0.0904425308 0.0434419438 0.0121511221 -0.0264926851 -0.0528149679 0.0401001945 0.0260140672 0.0292926356 -0.0662544966 -0.057620734 0.0309008807 -0.012249954 -0.0172908083 -0.0565144643 0.0219703019 0.0303497985 0.0391404703 0.0357950404 -0.00736307353 0.0576044098 0.0664166883 -0.0363287032 -0.0113007054 0.0204058215 0.0532506183 0.0468774661 0.0734395906 0.0182244554 -0.0603832677 -0.057972353 -0.0728440806 -0.0355548821 -0.0461308286 -0.0603822134 -0.00500575453 -0.0550388172 0.0559311286 0.0711904094 0.0646916404 0.0115139186 0.0384732559 -0.0524659902 -0.0714048594 -0.0725827515 -0.0081043914 -0.0181266144 -0.00896733254 0.0798584595 0.00695312768 0.0301192626 -0.033837162 0.032791771 0.0336084589 -0.0503482744 0.0115045011 0.0882656947 0.0670948848 -0.0589677095 0.0547006652 0.0503018126 -0.0442377925 -0.020825386 0.0534777865 -0.0754410774 0.0270314813 0.0384279266 -0.000195719302 0.0229014382 0.0865626857 0.058134608 0.0667098984 -0.0844309181 0.0474161133 0.00928126276 -0.0173918605 -0.0399622582 0.0419971868 0.0498828366 -0.055995062 -0.0412712432 0.00557062775 -0.0626817346 0.0739171281 0.0699249431 0.0495678112 0.00779049844 -0.0594597086 -0.000283800066 0.062980853 0.0176457316 0.000938922167 -0.00832429528 -0.0489780121 0.0152432397 -0.0682780519 0.0159435496 -0.0416560322 -0.00155413896 0.0801245943 0.0758475885 0.0373580083 -0.0664698482 0.0821729973 -0.0126973391 -0.0249309987 0.0198592544 0.0137646869 0.089580752 -0.0759810358 -0.037952859 -0.0377409831 -0.0656235218 -0.0292938724 -0.036202848 0.0375448093 -0.089214392 -0.083544448 0.0237152502 0.046535857 -0.0385464132 0.0806710199 -0.0298789553 -0.0485912226 0.0124593601 -0.0685339421 -0.0553383343 0.0229339227 -0.0747786239 -0.0712116957 -0.0288916528 -0.0293079987 -0.0546982065 -0.072562784 -0.0204547942 -0.0196876004 0.0406216308 0.030009076 -0.0546808839 0.0106955022 -0.090170458 0.00889876485 -0.048148416 -0.0721998513 0.0293285623 -0.00763659924 -0.0115290657 0.0599411502 -0.0660547093 0.00879248232 -0.054652974 0.0482418016 -0.0265998989 0.0205132142 -0.0446569175 0.053419508 -0.0744383857 0.0575876907 0.00372892618 -0.0240225419 0.0865719691 -0.077081427 -0.00312517583 0.072802417 0.086582996 -0.0499136113 0.0250270292 0.0349403992 0.00474442542 -0.0815842003 0.0745616034 -0.0865884125 0.0206538364 0.0921445563 0.0503247008 -0.0530832298 -0.0728633851 0.0339036062 0.0437474921 0.0262225941 0.0408166125 0.0267455876 0.0693675056 -0.0837521628 0.0269634426 0.00192796439 0.0789682791 -0.0154832453 0.0126143098 -0.066583313 0.0654953942 0.0300526172 0.0122130364 0.0515497848 0.0134727657 0.0885623321 -0.022259675 0.0639801547 -0.0790523961 0.0795155689 0.00148718059 0.078918837 0.0230542123 -0.0607256852 -0.0403498188 0.0148762167 0.0619161054 0.0596086606 0.066404365 0.0317166299 -0.0723516792 0.0378316417 -0.0515495203 -0.0296975449 0.0147702172 -0.0295276642 -0.0616450384 -0.0782073736 0.0354897305 0.0386943892 0.0194335952 0.0664961115 -0.00438072532 -0.0412444584 -0.0194132403 -0.0253800973 0.00266522914 0.0580247864 -0.0154591873 0.0366762653 -0.0474918894 0.0478268191 -0.084141463 0.0377057269 -0.0763327852 -0.0608484372 0.0718041733 0.0722272769 -0.0649828613 0.0532534793 0.0832048878 0.0302345976 0.00929442793 -0.0685860664 -0.0094511658 0.0290222168 0.0220646635 0.0815973803 0.0422018692 0.0891525373 -0.0469712317 0.059526138 0.0845709071 -0.0533665717 -0.0711214989 -0.0765398368 -0.00106991082 0.0735431835 -0.0271233991 0.05760739 -0.0410201065 -0.0653479546 0.0621075407 -0.014245905 0.0678923801 -0.0908115581 0.0490855798 -0.00513283908 -0.00879494846 0.0392156467 0.0688013509 0.0859206095 -0.0286505744 -0.032194566 -0.0278946683 -0.0479934402 -0.0025331825 -0.0694503337 -0.0437942408 0.00708656013 -0.0342927352 -0.0192585289 0.0329098776 0.0140779242 0.0125409514 0.072908856 -0.0396750458 0.0313430652 0.0476079509 -0.0138551742 0.085885711 0.0248761028 0.000214777887 -0.0291998833 -0.0318474174 0.0321258232 0.0080967322 -0.0409637578 -0.0852587819 0.0353079066 0.0281701908 0.00932438672 0.049143903 -0.0390655324 -0.0656253025 -0.00565770268 0.000110469759 0.0189458653 -0.0430037566 -0.00959328562 0.0112652481 0.0820806697 0.0288472772 -0.0368076526 0.0866601244 -0.0782096162 0.068986766 -0.00482223183 0.019788824 -0.0697559267 0.0151977241 -0.0412691534 -0.0734593421 -0.075905472 -0.00959962606 0.0656726435 0.0730055496 -0.00874502212 -0.00351634622 0.0918392912 -0.0750799701 -0.0151055902 -0.00866077095 0.0575513765 -0.0437522866 -0.0694973618 -0.0535073057 -0.0761739314 0.0877302215 0.0633377358 0.0169584528 -0.0442009494 -0.0824440122 -0.0517803878 -0.00914055109 0.045201458 0.0901383981 0.0896230564 0.0132106841 -0.0418545455 0.0553403422 -0.0132085979 0.0432665423 -0.0379995853 0.0574503317 0.0894893631 0.0412682518 0.0469544157 -0.0297032446 -0.0483355075 0.0641203448 0.0606891885 -0.0114925727 0.0711063072 0.0241706669 0.0484330729 -0.0778112933 -0.0341243111 -0.00165113807 0.00997202098 0.044438161 0.0635651276 0.0816934779 0.0539447442 0.0844441131 0.070334442 0.00236293674 0.0259497315 -0.0405198075 0.0593233481 0.016005598 -0.0403791592 0.0563131794 0.0493408516 -0.0879277885 0.0260825679 0.0258710906 0.0120536834 -0.0783170313 -0.0284667388 -0.0249929577 0.0494756326 -0.0260869488 0.0337255076 -0.0481094792 0.0520837978 0.00995883346 -0.0253665 0.0366657302 0.0710260794 -0.028482765 0.0219628215 -0.0899259672 0.0508344844 0.028792806 -0.0278178677 0.0605131462 0.0236482918 0.0071862638 0.0823127851 -0.0126453713 0.0784605369 0.0314894393 -0.00108163804 -0.0485517159 -0.0631642267 -0.0511190146 0.0133671388 0.0679882988 -0.0264187306 -0.0128578991 0.0287143141 -0.0438446663 0.0411547646 0.013306655 0.0701803789 0.0351971909 0.0770941898 -0.0311166458 -0.026250042 0.034677811 0.00983872265 0.00351782143 0.075192295 0.0830255523 -0.0218125805 -0.05788761 0.0516575202 -0.0740786269 0.028207235 -0.0531749725 -0.0347493663 0.0147480071 0.0806007311 -0.0279248431 0.0212181658 0.0350219682 -0.0719687045 -0.0129544213 0.0667495951 0.0183851272 -0.0573216565 -0.0445237979 0.0140046701 0.0897764489 0.067539908 -0.0115869045 -0.0408023559 -0.076895684 -0.0297513157 0.00665394217 -0.0529737733 0.019930616 -0.0186437294 0.0526887551 0.021528095 -0.0877566412 0.0705302879 -0.0436728746 0.0858003423 -0.0298409648 0.0650280938 0.0368760899 0.0175387785 0.0347287133 0.0716133639 0.0222155899 -0.0716652423 -0.0297332406 0.0733985826 -0.0588938184 -0.00330084562 0.0886473134 -0.0687620863 -0.0284517929 0.0133329332 -0.0631907284 -0.0121470317 0.0407939032 0.00840639323 0.048431389 0.0912663415 -0.0391636528 -0.0128325447 0.0779116228 -0.0618028343 -0.0243676156 -0.0423676968 -0.0303290002 0.0753823444 -0.0727636963 -0.0287934616 -0.081882596 0.0237072632 -0.0384272486 -0.041686736 0.0194847509 0.0704022571 0.0278152749 -0.0532257482 -0.0695490018 -0.0171488002 -0.0251239613 0.0534472242 0.0333499983 -0.078422524 -0.0083662495 0.0406772867 0.0282543153 0.00974667817 -0.0343105644 0.0142871514 -0.0380203426 -0.0489637069 -0.0371734872 -0.0471665971 -0.0415267646 -0.0833370686 0.0490405485 -0.0339926668 -0.0840920061 -0.000107325613 0.0774224773 -0.0134915411 0.00527412444 0.0264440849 -0.00140860677 0.057685487 0.00570306927 0.0802406743 0.0576558635 -0.0332268551 0.049111791 0.03353291 -0.0186578184 -0.0402518287 -0.0078337267 -0.007486552 0.0352782533 -0.0348481685 0.0629934296 0.0612133965 -0.0669204667 0.00844013691 0.0522906706 0.0856700018 0.0180177316 0.018073678 -0.0286431983 -0.00741383433 -0.0490423068 -0.0657133013 -0.0277902707 -0.0355497114 -0.00883866102 -0.0480751209 -0.0907035097 -0.018930681 0.0613256916 0.0770115033 -0.0256040171 -0.0751702338 0.0586651787 -0.077477172 -0.0525298007 0.0867925808 0.0306080952 0.0101317316 0.0411278531 -0.078704834 0.0920405313 0.0140964761 0.00303605944 0.0852866694 -0.0921543762 0.0786573961 -0.0618122965 0.0547252074 0.064677991 0.00363448262 0.0908797309 0.00276513398 0.0581424013 -0.00808794796 0.042044647 0.0710026249 0.0826895908 -0.0621562116 0.0910396799 0.0641475841 0.0240900442 -0.00964091718 0.0673643276 0.0863109306 0.027068615 0.0473892167 0.0274281129 0.0344429538 0.0526168719 0.0133168399 0.021057792 0.000970907509 -0.0522544049 0.0600844398 -0.0647839308 -0.069199875 -0.0758317411 0.0197255686 0.0608306602 -0.0673459768 -0.0671916381 -0.0835065916 0.0842060223 -0.0494846515 -0.00703269988 0.00272989273 -0.0464466773 0.050176464 -0.00991347432 -0.0536141694 -0.075500235 -0.0721789449 0.0140191317 -0.0134377927 0.0771572515 0.055277504 0.088817589 -0.0537706167 0.00376751274 0.0878336802 -0.0578252561 -0.0390922725 -0.074743256 0.07736402 0.000150352716 -0.00262664258 -0.000460743904 0.0850049779 -0.0242810324 0.0918409601 0.0804518685 -0.0643125772 0.0336390957 0.068516098 -0.0442619622 -0.0772696584 -0.0346352831 0.0511175022 0.0835160986 -0.0424325168 0.00299698859 0.0257039815 0.00521811098 0.0469501689 0.039304547 0.0474711731 0.0507836416 0.0862121806 0.0639567748 0.0699069425 -0.0150348693 -0.0520720258 0.0639231727 0.0658184066 -0.0897100046 0.0348873511 0.0213059857 -0.0666229948 -0.0517138727 0.0208532065 -0.0305167958 0.0742190257 -0.0482553877 0.016017288 -0.0194569752 0.0448904112 0.0673258826 -0.0887508541 0.0716171935 0.0168478265 0.00818362832 0.0754740164 0.0142124742 -0.0836375356 -0.0143349841 0.0490011945 -4.39360738e-05 0.0381381139 -0.0792995542 0.00256928056 0.0559048876 0.0855266079 0.0759915784 -0.0391738005 -0.0824458003 0.0788450614 0.0713511035 0.0736158267 -0.0286614224 0.0885599926 -0.047259964 0.00117040426 0.0741791949 0.0501812771 0.0181882232 -0.0768910348 0.0523897186 -0.0914216489 -0.0646045506 -0.00575842708 0.0685299113 -0.0859939083 0.0839908943 -0.0433769189 -0.0311117806 0.0138808414 0.0656415001 0.0683579966 0.0488986596 -0.0823230445 -0.0633569062 0.000579029322 -0.0215727761 0.0721168146 0.0562568828 0.00694593042 -0.0681729317 -0.00424531102 0.0164272115 -0.0707851127 -0.0458472446 0.0828380212 -0.0505700298 0.0198934376 -0.043132361 -0.0210082009 0.0623432174 -0.0361690857 0.0256651565 -0.00778556615 0.0339466706 0.0340767428 -0.0557154194 -0.0706925094 0.00543658435 0.0134510398 0.0515681133 -0.0871264115 -0.0330276825 0.0742262229 0.077961497 0.0892423913 0.0804922506 -0.0562392473 0.0463692024 0.0442556217 -0.0907375589 -0.0896755308 -0.0197130665 0.016727455 0.0815297589 -0.0576012544 -0.0864775181 -0.0814478621 0.0177751109 0.0135531053 0.0309960768 -0.0195649788 -0.0625466108 -0.0662702993 0.00474396348 -0.0865589827 0.0903272703 -0.0443833061 -0.0701966584 -0.0658841506 -0.0412965119 -0.0108668581 0.0275480449 0.0140279159 -0.0123558193 0.0262806565 0.024706468 0.0614260212 0.0521088466 0.00876084715 -0.0860352218 0.0654876307 -0.0771234855 0.025544256 -0.0616766699 0.0525051877 0.0688552335 -0.0736840218 0.0583947822 -0.0220120549 0.0561042801 0.0769175217 -0.0911480561 0.0895585194 -0.00977813452 -0.00658617169 0.0649672374 0.0262589604 0.0494584516 0.0698124692 -0.0440721437 0.0729653612 0.0577460155 -0.0238578767 -0.0455069169 -0.0786139965 0.054263033 0.0720476583 0.0864805207 0.0536362454 -0.0457438156 -0.0706754327 -0.0139741227 0.0429763272 -0.0589248762 0.0404788181 -0.036904566 0.01460848 -0.0870532691 0.0283606052 -0.0419087335 -0.0060685277 -0.0703897178 -0.0400522836 -0.0403978676 -0.0864588991 0.0518835261 -0.0549356118 0.0911367014 -0.0355498642 -0.0430077836 0.0499194488 0.0876588002 -0.0208921656 -0.0534917675 0.0368357673 0.0605702922 -0.00692537427 -0.061834354 -0.0791480541 -0.0557646565 -0.0520226993 0.0625799522 -0.0176313147 -0.0539677441 0.0503596738 0.0786231533 0.0595329627 0.0375127867 -0.0405014493 0.0638822094 -0.065881528 -0.00393503159 0.0636441186 0.00577197969 -0.0745804608 0.068909429 0.0919104293 -0.0828996748 -0.0762736872 0.0716006383 -0.00258990377 0.0139726028 0.00978051126 -0.0590369329 0.0515658334 -0.0879423171 -0.0763865337 -0.0111783519 -0.00748299062 0.0133687183 0.0695777908 -0.071577929 -0.0513630696 -0.0819736049 0.0752441511 0.031062983 -0.0743913949 -0.0662433356 0.0453439578 -0.0920395479 0.00980986655 -0.0282390863 0.090288572 -0.092248559 -0.0514058359 -0.000499173999 0.0565912798 -0.00485106558 -0.0598707758 0.0512344167 -0.0579943173 0.0559275374 0.0753346905 -0.0817714632 0.0247282386 -0.0236920044 -0.0109084323 -0.0828931183 -0.00390271842 0.00360558182 -0.023765415 0.077447392 -0.0557959564 -0.0836086124 0.0295108259 -0.0660538971 0.0732200816 -0.0324898139 0.0508562401 0.0513535663 -0.0629450232 0.0183085725 0.06350521 0.0508202091 -0.0842845961 -0.0240605101 -0.02833087 0.0334622636 0.0333864614 0.0533891097 0.0857577845 -0.0379734375 -0.051731877 0.063406162 -0.00303484499 -0.0398320667 0.00612718612 -0.0173319504 -0.0493755676 -0.0185396001 -0.0823466182 0.0609701797 0.0526770279 -0.0223151445 0.0666988865 -0.0911465138 0.0233193487 0.0813488588 -0.0608695038 0.0658179149 -0.0188894123 -0.0257022455 -0.0531946048 0.0778542534 -0.0712035298 0.00430859625 0.0639440194 0.0230647326 -0.0876261815 -0.07486891 0.0631760433 0.0661244765 0.0578762963 0.00750286132 0.047628589 -0.0248989984 0.0575436577 0.0263418481 0.0709808692 0.0160640106 0.0644221529 -0.00890249014 -0.0754273385 -0.0684622377 -0.0302465707 0.0411398038 -0.0604544505 0.0914880261 -0.0641025752 -0.0609615073 0.0916782841 -0.0541592129 0.0114158392 0.0226929113 0.0350559428 0.00832812488 0.0321522579 -0.0409255698 -0.0116454363 -0.0762277097 -0.0211375132 0.0895220116 0.0227424949 0.0886267945 -0.0338275209 -0.0579962321 0.0344762877 -0.0754368231 0.0129271448 -0.0707571805 0.0640849844 -0.080115743 0.0365433022 0.0753454342 0.0549679175 -0.0304434784 0.0115817785 0.00629035383 0.0105714351 -0.011933066 0.0471855626 -0.0715946779 0.0878589675 -0.0738995671 0.0186656713 0.0868693069 -0.0870298967 0.0150662139 -0.00809457153 -0.0716126412 0.0592209026 -9.75057483e-05 -1.59367919e-05 0.00795412064 -0.0850397348 0.0227658078 -0.0532193892 -0.0866380632 -0.00489068031 -0.0794168264 0.042049177 -0.0322550721 0.0588361546 -0.0557000563 0.049740769 -0.0704597533 -0.0114815682 0.0097290948 -0.0331770256 0.0577548221 0.0436893627 0.052264832 0.0375224873 -0.0384980142 -0.0310602561 -0.00131105632 0.0183719471 -0.0898967385 0.0373054817 0.0896556601 -0.0204213411 -0.084486939 -0.0522020198 0.0334230736 0.0834807083 -0.0467404053 0.0781723782 -0.0046993494 0.0619518831 -0.0413030721 0.0214766338 0.060003452 0.030669108 0.016790688 0.0847290978 0.0619457737 -0.0709744021 0.0724139139 -0.0193207264 0.0795140937 0.00320731848 -0.0348742083 -0.0391704999 0.0583506897 -0.0773976296 -0.045953203 0.0583558902 0.0728835389 0.000235773623 0.0223124102 0.0729543343 -0.0885956585 0.0309735984 -0.00418480486 -0.0110831112 0.0340119228 0.0636216626 0.0565465763 0.0513865575 -0.0254576653 0.0286933184 -0.0464279018 0.0120865256 -0.0329510644 0.0701810345 0.044134669 -0.060531266 -0.00537452102 -0.0717123896 0.04573109 0.0546671674 0.0783432052 -0.0271761566 -0.0496962816 0.0180320144 0.0696547851 0.0177559555 0.0117078349 0.0542523637 -0.0631429404 -0.0146747753 -0.0225982442 0.0278538615 7.70390034e-05 -0.0633832067 0.070107393 -0.0428106561 -0.0394549184 -0.000660933554 -0.0352162085 -0.0145775154 -0.0104505494 0.0549647585 -0.0579165109 -0.0541106127 0.0242204815 -0.0237764195 0.0143149272 -0.0243068486 0.0690598264 0.0392641947 -0.0257340521 -0.00615412742 0.0395546928 0.046964027 0.0688124821 -0.00399784744 0.0305922031 -0.0866864696 0.0584374592 -0.0196361616 -0.0808509141 0.0379950032 -0.0343763083 0.0529337749 -0.000477075577 -0.0196859017 0.0723840222 0.0221683308 -0.0282363594 -0.039502129 -0.0462331548 0.0642137453 0.0377827808 -0.0780453309 0.0507531539 -0.0432668254 0.0653169379 -0.0204187185 0.00180675089 -0.013942115 -0.0436640047 0.0314904302 0.0119948462 0.0614197031 -0.0731280148 0.0475858226 -0.0838286504 0.0101350769 0.00532657653 -0.026951693 -0.0583901331 -0.0835101753 -0.0748364031 -0.0806444362 -0.00776023418 -0.0151162222 0.0382670835 0.0728635862 -0.0908715576 -0.0516004749 0.0188851655 -0.0477265418 0.0837387368 0.0466800556 -0.0393619686 -0.0522760637 0.0122229904 -0.0582753047 -0.059345562 -0.0567073002 -0.00765299797 0.0275505558 0.00870217383 0.0704057887 -0.0436795875 -0.0334888026 0.0594028309 -0.0295344666 0.0454286262 0.0907076523 -0.0745434463 0.087243028 -0.0478154197 -0.0784179717 0.0499257371 -0.0609858483 0.0090951249 -0.029472135 0.0853720233 0.0816548094 0.0884676799 0.0358306095 0.0463123843 -0.0207694769 0.00157716125 -0.0323986039 -0.0299006552 0.0689486042 0.0184212923 0.0261956081 -0.0800178424 0.00350847095 0.0611531958 0.0176204816 -0.0586653091 -0.0686133802 -0.0904271677 -0.00734606385 -0.0841507912 0.0428536609 0.00780005008 -0.0554482564 -0.0447725616 0.0366168246 0.0629726723 -0.0230526924 0.0898253545 -0.0667624101 -0.0474299714 -0.0291427672 0.0567307696 0.00845277309 0.0500204489 -0.0127279982 -0.0663049892 0.0331717655 -0.059825018 -0.0616458133 0.0840440914 0.0120994896 -0.00614001602 -0.0602654889 -0.00174058974 -0.0195140243 -0.0279170498 -0.0198160484 -0.0863818005 -0.0852535665 -0.00679711998 -0.091538012 0.0671168491 0.0579916313 -0.0117960945 -0.0648182258 -0.0647795051 0.0741540119 -0.0135068372 -0.085735105 -0.0717420131 -0.0716705918 0.029091768 0.0173906982 -0.0695108324 0.0572910979 -0.0500416681 0.0915516391 -0.0547453947 0.0788840577 -0.00733692944 0.000786326826 -0.0447484143 0.0501227751 0.0150541291 0.0559567437 0.0829794779 0.0560491607 0.0275783315 -0.0883375406 -0.00284208357 0.0301409885 0.0090162158 0.0187838078 0.087805979 0.00100310892 0.0875410214 -0.0598849952 0.0295909047 0.0178738683 0.0898310617 0.0381247178 0.0156113282 -0.0187146217 0.00277034938 -0.0109447539 -0.0297937542 0.0390831158 0.0795658603 0.0690116361 -0.0874675065 -0.0652379692 -0.0270983279 -0.0142530799 -0.00552757829 -0.0669069514 -0.00039292872 -0.0368433744 -0.04106877 -0.088840656 -0.0493729934 0.0359177664 0.0553616658 -0.0789834633 0.00708233565 -0.0449415147 -0.0717239231 0.0767902508 -0.0758991987 -0.0395535678 0.0734666064 0.00547268242 0.0194760337 -0.0072818324 0.0171608403 -0.0492624342 0.0688002035 -0.0845203474 -0.0456454754 0.0795967653 0.0177259371 0.0883027241 0.0252158567 -0.0730408132 -0.0509553254 -0.0131288096 0.0198925808 0.0823277608 -0.0383927599 0.0173786357 0.00273513049 0.0497832075 -0.0729028732 0.00163639337 -0.0353201181 -0.0751624405 0.00105879456 -0.0483258665 -0.00732883066 -0.0789759979 -0.0237353668 -0.0717834607 0.077510722 0.00554408878 0.0671149269 -0.0602392778 -0.0108725131 -0.00438426435 0.0765279904 0.0903780386 0.061613299 0.0455897823 -0.0322675519 -0.0391517244 -0.0685123056 0.00497249514 -0.0885172784 -0.0408885255 -0.0538973548 -0.0153485388 -0.00733393431 -0.0867710784 -0.0819279552 0.0902553722 -0.0257058963 -0.0706587285 0.0305854455 0.0303567797 -0.011262916 0.0169631392 -0.0762172937 0.0699660107 0.0379229262 -0.0266079977 0.051721178 -0.0626196414 0.0474923775 0.0531147793 -0.0316150971 0.0475847945 0.033567749 0.0546084717 -0.0674761459 0.0717066452 -0.0106151477 -0.0430701151 0.0582680181 0.0550129786 0.0582196638 -0.0355530977 -0.0796597525 0.0468702093 0.0253843069 0.0355949029 0.00373700261 -0.00653272867 -0.0646028742 0.0369265303 -0.076213114 0.0880100951 -0.0134952366 -0.0168885514 0.0765339807 0.0672441348 -0.0486466885 0.0213957429 0.0830073282 -0.0546036921 0.0886778161 -0.0540668778 -0.0524773933 0.050164856 -0.0242203921 -0.0168660954 0.0675913468 0.0122755021 -0.0224891827 -0.0366841741 0.0148667097 0.0517603382 0.0618583038 -0.0847542584 0.0902352408 -0.0716853589 0.0727312937 -0.0380381905 0.0793778822 -0.0165341794 0.0349201486 0.0374793634 -0.0180739909 -0.0708077401 -0.0503587537 0.0491215065 -0.0650797114 -0.0129986182 0.0520699397 0.0248610303 0.0290938392 -0.0870127082 -0.0522158854 0.0308370069 0.00885019451 0.0857523605 -0.0758752525 0.0898420885 -0.0356234685 0.0653939769 -0.0564617068 -0.0583280846 0.0233735591 0.0297747999 0.0385653451 0.0132612884 -0.0494847819 -0.0205415636 0.0707112476 -0.0259640366 0.0733908936 -0.0491285212 0.00428009033 0.00952938944 -0.0455856919 0.0812173113 -0.0829143375 -0.00656785816 0.0769989565 0.0138366669 -0.0374620035 -0.0765386224 -0.0919074193 -0.0585558936 -0.041231297 -0.0778140873 0.0767159685 0.0297812894 -0.0401162878 -0.0506678894 0.0108671859 -0.0817871317 -0.0561409704 0.0526634231 -0.0757992938 -0.00865378976 -0.0292719454 -0.0844057649 0.0298029706 0.0488818213 0.091031231 -0.0170952082 0.0365197137 -0.0672153383 -0.00178010017 -0.0602968112 0.0659618601 -0.00671693683 0.0624289289 -0.0767906681 -0.0910834298 -0.000230714679 -0.0709564835 -0.0842879191 -0.0535997525 -0.00806318223 0.0710240081 -0.078952603 0.0516699627 0.0589899793 -0.0325327106 -0.0669292063 0.00270581245 0.0431682989 0.0844649002 -0.00423756987 -0.0625620186 0.0541850552 0.0174581558 0.0862271711 0.0820155814 0.0470281467 -0.00831273943 -0.00849280506 0.0917005017 -0.0809653476 -0.0205180496 0.0586736277 0.0242540017 0.0546438769 -0.0730243251 -0.015765354 -0.0291768163 0.0407201424 0.00331711024 -0.0285110697 0.00683165342 0.063836433 0.0484953746 -0.0799870268 0.0491637215 -0.0197502375 -0.0817805082 0.0374198034 0.0648390278 -0.0106665418 -0.0787005126 0.0783378109 0.0147295445 0.0879815891 -0.0303593986 -0.0610003546 0.0235147551 -0.0175944045 0.058672525 0.0451927856 -0.0362010226 0.0764444694 -0.0355699584 -0.0298087597 0.0803202614 -0.0633238256 0.0475726947 -0.0899958089 -0.0471655615 -0.0902962983 -0.0765450075 0.0471978113 -0.0272853076 0.0664143786 -0.0643462092 0.0723962113 -0.0154187977 -0.038583789 0.0734480843 -0.0262938887 0.0265007615 0.0416621789 0.055660747 -0.0128807724 0.0776555017 0.089477174 -0.00466685742 -0.0281245634 -0.00980830938 -0.0584936924 -0.0895258188 0.0313974768 0.0787921473 -0.0716871172 0.0871601328 0.00926275551 -0.0885551572 -0.0346409194 -0.0893726274 -0.0500082597 -0.0641474575 0.0741827413 0.00398926437 -0.046567712 0.00575296581 0.0739069805 -0.0889349654 -0.0418225415 -0.0160969645 -0.0334749818 0.0806050375 -0.0106895417 0.028929837 0.0251068398 -0.0800838768 -0.0702735409 -0.0763699412 0.0201186985 -0.0303496681 -0.0212645382 -0.0440237634 -0.0838881657 0.0186479092 0.0842744932 0.0319444388 -0.0288591832 -0.0264566541 0.045920454 0.048480995 -0.0127535313 -0.0286963508 -0.00928302854 -0.0252555013 -0.06185247 0.040973492 0.063814126 -0.00761945546 0.00409319997 -0.0427598804 0.065642558 0.0628351197 0.0475096926 0.0331723616 0.0109053776 -0.0824449137 0.0151631907 -0.00112453848 -0.0519385748 -0.0358377174 0.0851802304 0.0843838677 0.0704613999 0.00840029866 -0.07669653 0.0178731903 0.011611715 0.0327009186 0.024348557 -0.0188183412 -0.0746629387 0.0899569765 0.0555793718 0.0184233636 0.0223882422 -0.015540272 0.0178698599 0.0452842638 0.00173055381 -0.0614908561 -0.0133343861 -0.091023542 0.00936466455 -0.00625900924 0.0376398638 0.0491970405 -0.0723719969 -0.0762301534 0.00442595035 0.0494741276 -0.0543290004 0.0830262527 -0.0412516333 0.0484113172 -0.0879001468 -0.0151966065 -0.0868049487 -0.0352629125 -0.0798840821 -0.0377278663 0.0152011141 0.011471048 -0.0631150305 0.0815143064 -0.0029361546 -0.0546111315 -0.0736889318 0.0285884812 0.068126224 -0.0664992929 0.0085804984 0.0893600807 0.00302958488 -0.0328569263 0.00924607366 0.0514322296 -0.00769730657 -0.0623418242 -0.0333047509 -0.0520423129 -0.0632719696 0.0529646352 -0.0269941315 -0.02150172 -0.0146565959 0.0779830143 0.019942835 0.0468662009 0.0297474191 0.0585647449 0.0531186685 0.050849326 0.004630059 -0.0696029514 0.0638797209 0.0519259796 0.0769200698 0.0772832558 0.0697558746 0.0373766646 -0.0137865692 -0.00867591053 -0.0911598057 -0.0691946596 -0.0593440868 -0.0675962567 0.0594755635 0.0618934557 0.0370005742 0.00797148794 -0.0107843801 -0.0613682158 0.00429215282 0.077177681 0.0348715857 -0.0239249915 0.0386810228 -0.0452019647 0.0171241239 -0.0178880692 -0.0353492834 -0.00458300114 0.0450716391 0.0466369763 -0.0865766108 -0.00603553653 -0.0178347155 0.0313704237 -0.0355658419 0.0534600243 -0.0252290443 0.0740664378 -0.00414622575 -0.0217979848 -0.0519243143 0.0396030471 -0.0515979417 0.0149419457 -0.0774765164 -0.0488252155 -0.0486789569 -0.0328505002 -0.066637896 0.0412667319 0.058828257 0.00174041092 -0.0135888904 0.0492317751 -0.043391712 -0.0320193842 0.00509487092 -0.0867514834 0.0878874287 -0.0317575261 0.0595713481 -0.023328945 -0.0704223812 0.0153744891 0.045772098 -0.0657549948 -0.030409053 -0.0556702539 -0.043526724 -0.068838194 -0.055085063 0.00861043483 -0.0388222262 0.0192437768 -0.0317486115 -0.0151251107 0.0482323244 -0.00347615778 -0.0174274743 -0.0194834918 -0.00135496259 -0.0121005252 0.0859925225 0.0497999564 0.0116744637 -0.0791933537 0.00508180261 0.0646073893 0.0116246343 -0.0783706903 -0.0841579884 -0.0220316052 0.00630749762 -0.0264314115 0.0112871453 -0.0214427337 0.0103280842 0.0330316648 -0.0755378306 -0.0272575915 -0.0693487972 0.00412192196 -0.0755597949 -0.0362803899 -0.0534031317 -0.0317510106 -0.078399919 0.0254075676 0.0818905458 -0.0401335657 0.078430213 -0.0819081664 0.0616118982 0.00736796111 0.052413322 0.0017285049 0.0564700738 0.0744343624 0.000188961625 0.0126734301 -0.081345275 0.0829594508 -0.0775555074 0.0674380884 -0.0603293888 -0.0109923854 0.0242629796 -0.0633419156 -0.0417553633 0.0296062231 -0.00762665272 0.077029638 -0.0538478754 0.0210355446 0.0552462861 -0.0687189251 0.0608266965 0.0690623745 -0.0559918918 -0.0717567801 -0.063221015 -0.0808193758 0.00834784657 -0.0220696628 -0.0743219256 -0.0619193353 0.0696439371 -0.0554870591 0.0365238562 -0.0350465961 -0.0856369659 -0.024358198 0.0663145259 -0.069086954 0.0901341364 -0.0622868463 0.030005604 0.0411101207 0.0327205732 -0.0566921122 0.0783898607 -0.0134409815 0.0653318688 0.0304163173 0.0912233517 -0.0219493061 -0.0258503109 -0.0140762478 0.0181557387 0.0787283853 0.0617701486 -0.0460386239 -0.0662659407 -0.065278247 0.0662429854 0.0222474635 -0.0454235859 -0.0749955177 0.0178521872 0.0615799055 0.0800965354 0.0487061813 0.0169202015 0.0463511571 0.0343225971 0.0698092952 -0.0620853379 -0.0213393494 -0.0129617006 0.0659030154 -0.0736010671 -0.00233770907 0.0205535591 -0.034680672 0.0491529033 0.0421643481 0.0797990188 -0.0765551999 -0.0431776829 0.00277607143 0.0144759342 -0.0855265558 0.00141441822 -0.0575118698 -0.0320699848 0.0388779566 -0.0485145375 -0.0143951997 -0.0527308881 -0.0180771351 0.0323862135 0.0206849575 -0.0632394999 0.0684716776 -0.0408788435 -0.0196063593 -0.0491661169 0.0497352108 -0.0365293734 -0.0352738537 -0.0609700233 -0.00734817237 0.0374893621 -0.0612231866 -0.0210343525 -0.0392211452 0.042842336 -0.0718605444 0.00217208266 -0.0707022175 -0.0136320964 -0.0526209213 -0.0360793695 0.0341352001 0.0882947519 -0.0107533038 0.0607889816 -0.0179901272 0.0138064623 0.0164391398 -0.0427691899 -0.0326543413 -0.0830347314 -0.070721522 -0.0298375972 0.0827168748 0.0612884536 -0.0522824228 -0.0761289224 0.0745198205 0.0225315243 0.0387443528 0.0793396756 -0.0712137222 -0.075913772 0.0296444744 -0.082422927 -0.0871510655 0.0677470341 0.0511708781 0.0553146526 -0.0281929523 -0.0643622577 -0.0530417636 -0.00909723341 0.0497494861 0.0698555186 -0.0164264366 -0.0159675404 -0.0879839808 -0.0382098965 0.0435534641 0.0185144618 -0.0236189142 -0.0404791757 0.0216492787 0.0631886944 -0.000253647566 0.0792766139 0.0884728804 -0.0198326707 -0.00780016184 -0.0808395818 0.0507366732 0.0300521553 -0.00589713454 -0.02229736 0.033494018 -0.0724163502 -0.026005201 -0.0468230546 0.0250265673 0.0568578467 0.0879220292 0.0615310743 -0.0449986309 0.0483125076 -0.0253500342 0.0399854556 -0.0592703745 -0.0477717072 -0.0147695765 -0.058369752 -0.0134448558 -0.0408062749 0.0013101548 -0.0142424703 -0.0272773355 -0.00284287333 0.0773303881 -0.0804127529 0.0773750916 -0.0526717678 0.0459474549 0.0495453402 0.0382786617 -0.0532668643 0.00683623552 -0.0173915997 -0.0161127001 -0.0157929957 0.0096539706 0.0635469928 -0.00472738594 -0.0383079536 0.0613140538 -0.0766389295 -0.0908783153 0.0356494561 -0.01077912 0.0539212301 0.0160309076 -0.0706041381 0.0267314315 0.0441632047 0.0753887519 0.0317870229 -0.0207980499 0.0273823515 -0.0228588656 0.0497742817 0.0821997896 0.0908324048 -0.0885706097 -0.0231484845 0.0287646726 -0.0620466247 0.00833792239 -0.0345929377 0.061525993 -0.00261481851 -0.0307136998 0.0707090273 -0.0517306887 -0.0595982447 0.0287263319 -0.0458654687 -0.0349414721 0.010474585 -0.0889659375 -0.0175238177 0.0202742219 -0.0691041276 0.0371046439 -0.080256328 0.0403467193 0.0782461539 -0.0909152105 -0.0844156668 0.044330962 -0.0749908239 0.0374719724 -0.0195643604 -0.0226685852 0.000414147973 -0.0524944961 -0.00599397719 -0.0479532927 0.0701892897 0.0535347983 0.0642777607 0.0574316904 -0.0476670042 -0.0269320384 -0.0671723336 0.00243618339 0.0650718585 -0.0253911689 -0.00775378197 0.0724219903 0.0413242206 -0.0392211005 0.0922214016 -0.0474969931 0.081703566 0.0283838287 0.0412609503 0.0711558536 -0.0798697099 -0.0274715796 0.0384096876 0.0908166841 0.0890090391 0.0656945929 0.00795806199 0.0620312169 -0.0917372555 0.0756976232 0.0436406955 0.069121398 -0.0618860349 0.00567954034 0.024929367 -0.0411775894 0.0780709311 0.0485865995 -0.0763841793 -0.0420603193 0.0624276474 -0.0894306451 0.0920807049 0.0457414612 -0.0762941986 -0.0837543458 -0.0502632931 -0.0132358447 0.00952604413 0.0336210206 0.021271579 0.0918440893 0.0855659172 0.0567905381 -0.0678224564 0.0682808235 -0.0312623568 -0.0674226806 -0.00560501218 0.0727012828 0.00308839977 0.0605925843 -0.0255988166 -0.0775613636 -0.0512308069 -0.0515724532 0.00407092273 -0.0840056762 -0.0846004039 -0.0580868274 -0.0326518118 -0.064367339 0.0562257096 -0.0738763511 0.0146218464 -0.0597933233 -0.0774565712 0.0915269479 -0.00601504743 0.0846658424 0.0105920359 0.0912524983 -0.0751193911 -0.0799526945 -0.0634066314 -0.0181879774 -0.0339021385 0.0333815739 0.0580304787 -0.0213868693 0.0735380873 -0.0703210384 -0.0528500527 0.0201932043 -0.0661955327 0.0316287652 -0.0461736806 0.00107188523 -0.013204284 0.0919539258 0.0271943361 -0.0564720519 0.0655912086 -0.0667872801 0.0228034258 0.017513141 0.0221675187 -0.0628479123 0.00668233633 -0.0184097365 0.0838804469 0.00292941928 0.0706054345 0.0597787574 0.0830911919 0.0328676626 -0.031232357 0.0293310285 0.0874413177 -0.073853679 0.00302146375 -0.047230538 0.0390943661 0.07850077 0.0316321552 -0.0544647202 0.0700904801 -0.0129991621 -0.00907978415 -0.0284967646 -0.0576382987 -0.00113235414 -0.0326075479 -0.0506556965 -0.011376597 0.040793024 0.0334532931 0.0865450278 0.00267033279 -0.0723152757 0.00758054107 -0.0798805431 -0.0411035009 -0.0776411518 0.0660624728 0.0592555031 -0.0538093336 -0.0747390538 0.00620475411 -0.0579114482 0.0838812068 -0.00865555555 0.0656507239 -0.0231326744 0.0396496728 0.0912274942 -0.0414865501 -0.0764364302 0.0782003328 0.0100099221 0.0320170298 -0.0709745139 -0.0173233896 -0.0775747225 -0.0559924655 0.0733253881 -0.033697594 0.0747591034 0.0606850311 -0.024596855 0.0567253307 0.0176684037 0.0131662041 0.0143076852 -0.0529120341 -0.0902338922 -0.0639291555 0.0902260318 -0.077383101 -0.0396204591 -0.073358953 -0.0385850631 -0.0807141438 -0.05645933 -0.0558234453 -0.0177194849 -0.069668889 -0.0234764367 0.0782970712 -0.0101032257 0.0737477168 0.069032751 0.0666653588 0.0583592728 0.0138097703 -0.0514904223 0.0413655117 -0.0919432715 0.0672928616 0.0758949891 -0.0193400308 0.062963821 -0.00249222666 -0.0568791367 -0.0571138337 -0.0918558016 -0.0389316417 0.0706189796 -0.0896641091 -0.0318730809 0.00914651901 -0.0497410297 0.0622165725 0.0112103298 0.0594758168 0.0100923553 -0.0573966466 0.0154752806 -0.0679151416 0.0409826413 0.0205368698 0.0771296248 -0.0131718814 0.0585901365 -0.044429373 0.0292551294 0.0473739579 0.0611791238 -0.0699031502 -0.0223656818 0.0277785808 0.0360511765 -0.0804043263 -0.079380244 0.0812743083 0.0185308158 0.03951139 0.0533514693 0.0874929354 0.0668412521 -0.0827559456 0.0366314873 -0.0466072001 -0.0876606703 0.015402399 -0.0401960313 0.0116110295 0.0125597715 0.0471437648 0.0402916446 0.0670300797 0.0699609742 -0.0596810468 0.0339206532 0.0759244934 -0.0909508169 0.00143666565 -0.0329905748 0.00477836281 -0.0320333615 0.0396276936 -0.0466912352 -0.0435146838 0.018037647 -0.0462089851 -0.0582037494 0.0496515408 0.060723044 -0.0791170672 0.0248909146 0.0415671542 -0.0809772611 0.0226561278 -0.0186521783 0.0651749298 0.0766113475 -0.0489477068 -0.0733744875 -0.0786874667 -0.0260430798 0.0484272167 0.0415378734 0.0451277718 0.0366097614 -0.0561448894 -0.053920202 0.0896727964 -0.012592569 -0.0444521084 0.0449307784 -0.0819390267 0.00618005544 0.0655212328 0.0620299652 0.0816388205 -0.0149351209 0.0618494079 0.0701557919 -0.00130733103 0.00586339086 0.0902230367 0.0508599356 -0.0320017524 0.0210224241 -0.0226687416 -0.00538554788 -0.0525105186 -0.0898874253 0.013868995 0.0907900408 0.0799830183 -0.0742946118 0.0811024532 0.0865439251 0.00621069223 0.0268367976 -0.00015629828 -0.000861801207 -0.0794731528 0.0747257099 -0.0618150495 -0.0887539312 -0.018521376 -0.00250424445 -0.0468241796 -0.0363322273 0.0502454266 -0.0756945238 -0.0253196359 0.00109370053 0.0385616049 0.00396230072 0.0461158529 -0.0309215672 0.0331379101 0.0652812794 -0.0289611593 0.0026832968 0.0875292942 0.0593345091 0.0287790447 -0.0553438626 0.0788250491 -0.0118606761 -0.0412371941 0.0170394108 0.03770376 0.010796465 -0.0920886546 0.00705713034 -0.00483077019 0.0414139405 -0.0708224177 -0.0105089247 0.0747322664 0.0710604861 0.090580605 0.0614669994 0.00589779764 -0.0533075631 -0.0168477595 0.0690278187 0.0791935101 0.041361548 -0.0377538837 0.0140111595 -0.0486463383 0.0416266099 0.00516735762 0.080000855 -0.0331346542 0.00884389877 0.0337735042 -0.068261832 -0.00598099083 0.00676482916 0.0284395143 -0.0294656828 0.00558803976 0.033590354 -0.0738420561 0.0747168437 0.0919699892 -0.0262390375 -0.0695637688 0.00994254649 0.0372076705 0.0517743155 -0.0101046562 0.01504042 0.0786866322 0.0255435258 0.0663793609 -0.0204673856 -0.0714498907 -0.020949766 0.00711996853 -0.0384304412 -0.0883246213 0.0302543417 -0.0390479006 -0.0783356279 0.0776735768 0.00113704056 0.00789993256 0.0807315782 0.0143620968 -0.00367059559 -0.012072809 -0.0765495002 -0.0782185793 -0.0302399471 0.0136175305 0.0718376264 -0.0428466424 0.0313428715 0.00775470585 0.000775560737 0.0352954045 0.0262215808 0.0568425134 0.0536644682 0.025744617 -0.0744447932 -0.0760502592 0.0203619748 0.090783976 -0.000874362886 0.0778857544 0.0324321911 0.0540930554 -0.0138995275 -0.0610222109 0.0379916355 -0.0818601847 -0.0032511428 -0.0407812484 0.0407151952 -0.0160045624 -0.0097873956 -0.0770705789 -0.0323304795 0.0114700124 0.032108441 -0.0312012322 0.0281126797 0.0082161352 0.0576077327 -0.0769938231 -0.0335359946 -0.0639706701 -0.0121282339 -0.00525294989 -0.0133031309 -0.00644818693 0.040474467 0.0867962316 0.0253010616 0.0128730014 -0.0329713598 0.0588698313 0.00488498062 0.0500140861 0.0195866376 -0.0080460608 -0.0478128232 0.0797773823 0.0755754188 0.0350691602 0.0704511181 0.0336118415 -0.0600025095 -0.0914019719 0.0615464523 0.0277385414 -0.0681877211 -0.0338808522 0.00207778811 -0.0284746662 -0.0448908024 0.0566118583 -0.0264534876 -0.0553316027 0.0383753702 -0.0535984077 0.0907224789 -0.0778251141 -0.067157194 -0.0572736748 0.0865152404 -0.0411974639 0.0309922621 -0.0652644411 -0.0882300809 -0.0640841126 -0.0720488429 0.00371534377 -0.0289376974 0.0470409319 -0.0207229033 -0.0660805702 0.000685669482 -0.0238704234 -0.0614213049 -0.0537874997 -0.0682740882 0.000618778169 0.0126994699 0.0816256031 0.0701114163 0.0361637548 0.0695471689 0.061612092 -0.0797365308 -0.0445876047 0.0658606812 0.0772726163 0.0838013366 -0.0587215014 -0.0735366642 0.0724025294 0.0508165285 0.0274787098 -0.077250272 0.0642824396 0.0641315207 -0.0689421073 0.038579233 -0.0395818539 -0.0337458402 -0.0160422474 -0.0754016787 -0.0593931489 0.0430907831 -0.0155148953 -0.0634033233 0.0145877302 0.034708716 -0.0038216114 -0.0185043588 -0.0704713464 -0.0450404286 0.0841897056 0.0202145725 -0.0134990662 0.0378114209 -0.0015322119 0.00429917127 0.0724068806 0.0159247294 0.00352270901 0.0564736351 -0.0309992433 0.0349940583 0.0363982394 -0.0325678848 0.0439829305 0.0891597345 -0.0131566077 0.0881513134 -0.046354454 -0.0109577179 0.0341868028 -0.0217675865 0.0841756836 -0.0412008986 -0.0899751186 -0.00429531932 0.0398356989 0.0423942879 0.0491085425 0.0393412337 0.0846080109 -0.0383827426 0.0713384524 0.0590135083 -0.0192748159 0.0830203369 0.033863686 0.048960112 0.00149070472 -0.0160713866 -0.0244850442 -0.0610412732 0.0653501227 -0.0238307863 -0.021157898 -0.00940621644 0.0198011696 0.0380216911 -0.0698839799 -0.0473346226 0.0338984653 0.0158845186 0.0871674791 0.0215991661 0.050961934 0.0891230926 0.0793534145 -0.033788342 0.0875309482 0.0371755138 -0.0362771787 -0.0354952775 0.0493332818 0.0234784856 0.0608609691 -0.0652719513 -0.0775778964 -0.0344112851 -0.00455322117 -0.0221399814 0.00385795534 0.0585169569 0.015482761 -0.00413171947 0.0431620255 0.0303522199 0.0287366137 -0.0425731428 0.0169304088 0.0692322031 -0.000792354345 0.00245773047 0.0313274637 -0.00816448033 -0.0659202486 -0.00203066319 -0.0510504544 -0.000630885363 0.0542250052 0.070869498 -0.0269202366 -0.0461445823 -0.0183938891 -0.0383072495 -0.0114082024 0.00461716205 -0.0426102504 -0.0117020458 0.0347647741 -0.0627371594 -0.015170522 0.00873395056 -0.0450408682 0.0625765249 0.0209722817 -0.0817231908 0.0727437809 -0.00687303394 -0.04453291 0.0527594313 -0.00510632247 0.0919432268 0.00759834796 0.0595619753 0.0032588467 -0.0552662089 -0.0306506865 -0.0731022432 0.00852740556 -0.0494698361 0.000399820507 -0.0161299556 -0.0672522336 -0.0499352701 0.0371122137 -0.0626193359 -0.0903683752 0.00968280435 -0.0456452742 0.0481831208 0.0444088802 -0.0619605407 -0.0580097921 0.089357309 -0.0718405098 0.091165714 0.03185644 -0.089120999 0.00995639712 0.0195867047 -0.0398578197 -0.0615046136 -0.0888985172 -0.000507935882 0.0495407954 -0.0055770576 0.0406313613 -0.0864669383 -0.0899492577 0.0693345591 0.0362620577 -0.0579751022 -0.0658074394 -0.0241579935 0.0536259487 -0.0628433824 0.0505853072 -0.0622332692 0.0558530465 -0.0150271431 7.3581934e-05 0.0511544123 0.0392286703 0.0898850039 0.0780504569 -0.0549649708 0.0609598532 0.0752184168 0.085518904 -0.0920512527 -0.0922082141 0.0724257454 0.00702587515 0.0885866806 -0.0491136424 -0.0105416998 0.0232098028 0.037821807 -0.0528924875 -0.0667466298 -0.0529908985 0.0577174649 -0.0699434504 -0.0756029189 -0.0217508376 0.0494857803 0.00801086426 0.0879297331 -0.0107988417 0.0861271843 0.0240415335 0.00612135231 -0.0374385826 0.0153053999 0.0148151144 -0.0294248089 0.0415388718 -0.0221661329 -0.0175376385 0.0856635794 -0.0462221466 -0.067476213 -0.0880131945 0.0237104297 0.0147095099 0.0323143229 0.0701547489 0.06554728 -0.0750613958 0.0451955423 0.0646649823 -0.0495271757 -0.0686127841 0.0673638061 0.0845750198 0.0279150233 -0.033627823 0.0284543484 -0.030541908 -0.00249449164 -0.0134521425 -0.0303217806 0.0750126466 -0.0852262899 -0.0173003227 -0.0664622113 0.0369038209 0.0708618388 -0.0428314358 -0.0387768187 0.0744078383 0.0774444267 -0.0129284263 -0.0311553627 0.0167353079 0.00640276074 0.0757765397 -0.0484232605 -0.0215328038 0.0298368707 0.0709711686 -8.61734152e-05 0.0532262102 -0.0191795304 0.0699337646 -0.0848027691 -0.0752935559 -0.0722887516 -0.0187488049 -0.0111174211 -0.0798625797 -0.0679637641 0.0146953613 -0.0604079217 -0.0465494432 0.0568632856 0.0319758505 0.0490871891 -0.0118479729 -0.0859325454 0.0587279871 -0.0843452364 -0.0712211579 -0.0698520616 -0.0654656217 0.0888364539 -0.00617605448 -0.0757409036 -0.0314242654 0.0628632978 -0.0363345593 0.0497154817 -0.0145960003 0.0900997147 0.0177109465 -0.0161690712 -0.0893338397 0.0420328453 -0.0636510327 0.0136055127 -0.0683165044 -0.0440410636 -0.0834038034 -0.0805873647 0.0650100037 -0.0209222063 -0.0109902918 -0.0912799612 0.0122903436 0.0102273226 0.0747434571 0.0578837171 -0.0564621016 0.0819162503 0.0120290965 -0.0770684406 0.08549238 -0.0201650262 0.0906933919 0.0331313238 -0.0587111339 0.00673694164 0.0583438203 -0.059074901 -0.0491931215 -0.0798171312 -0.0893154219 -0.0236887261 0.08067628 0.0406810716 -0.0689713806 0.0352672264 0.0199196562 0.034717299 -0.0805114061 0.0827194378 0.0158720836 0.00892911851 0.0516992286 -0.0575662144 0.0130930394 -0.0422726758 0.0290709287 0.0918963924 0.0179750547 0.0918446258 -0.00474880636 -0.0517123975 0.00265835971 0.067753382 -0.0516750887 -0.0273725316 0.060094364 0.0141377226 0.0107873306 0.0524168387 0.0217647478 0.0469781831 0.00218797475 -0.0258807763 -0.0874060094 0.0570704713 -0.00754802674 -0.0356448628 -0.00731357187 -0.0384178273 0.0203822479 -0.0651059672 -0.0042129159 0.059926264 0.00824125111 -0.00331286341 0.0133652017 0.0106163099 0.0257675275 0.00829880685 0.0405837223 -0.072407499 0.0343730226 0.0580873117 -0.07629475 -0.0145609602 0.0452943668 0.0684118494 0.0750654861 -0.0349108577 -0.0330606997 0.0168361887 -0.0431139171 -0.00820662826 0.0684932098 -0.0563533492 0.0223992914 0.0543429777 -0.0160476789 0.0379219577 0.0200100094 0.0902453884 -0.0922101513 -0.0847451836 0.049649559 0.00502485782 -0.0140551403 -0.0276946574 0.0660248175 -0.0909826681 0.045224838 0.0690926984 0.0913356766 0.0133515969 -0.0486807637 -0.0459605083 0.0504596904 0.00650037825 -0.0367039181 0.027196072 -0.0253908411 0.0260760039 0.00637724996 -0.040868476 -0.00153278559 0.025334537 0.0896915123 -0.0722456574 -0.039772287 -0.00816729665 -0.0671379566 0.0300496221 0.0825720653 -0.00347928703 -0.0313623287 -0.0833303779 -0.0443475805 0.0375874862 0.0765166357 0.0583840981 0.0857641175 -0.0855836123 0.0347457156 -0.0807638466 0.0803674832 -0.00159732252 0.0654936805 0.0337176248 0.0913986638 0.0467193499 -0.0882269368 -0.0655278638 -0.0789189264 -0.0215114281 0.0727491304 0.0569752827 0.0274467543 0.0414830521 -0.0123670474 0.0597521141 0.042536281 -0.04244579 -0.0618454441 0.0718119219 0.00863979012 -0.00077342242 0.0463696346 0.0714040026 -0.0550837405 -0.0705486313 -0.0521071777 -0.0639320612 0.0740412548 0.0569898263 -0.0274567455 0.0807038024 -0.0727830678 0.00659772754 0.0801530257 0.0189862326 -0.0090854615 0.0182917565 -0.0221064612 0.00799695402 0.000584512949 -0.0453608111 0.0327286497 0.0128144547 -0.064574942 -0.0412445441 0.0853994414 0.0374772772 0.0641237721 -0.046646487 -0.0566026606 -0.0239548534 -0.0186271146 0.03967271 0.0603329912 -0.0433265157 -0.0825779065 0.0802390203 -0.0438443348 -0.0263480321 -0.0856769979 0.0646989271 -0.0653946996 -0.0492651612 -0.0532694384 0.0805870965 -0.0913751572 0.00411384553 0.0192110464 -0.00184967369 0.0587558821 0.0163325891 -0.0917567313 -0.0458195321 -0.0408850275 -0.0230234191 0.0787843391 -0.0130615234 -0.0918414071 0.0896001086 -0.00408948213 0.0570663139 0.00069271028 0.0655471012 -0.0365516469 0.0247062296 -0.0501665808 -0.0315360352 -0.0702765808 -0.0920875743 -0.0100001097 -0.0370781384 -0.0364486612 -0.0157725066 -0.0821813196 0.0888980553 0.0783256069 0.0649821535 0.0158364028 0.0745798722 -0.0689949766 -0.0113835558 -0.0248555914 -0.0827718154 -0.0456595607 -0.0580531284 -0.025582552 -0.084199369 0.0112575665 0.00169300288 0.0665367171 -0.0309156477 0.00459180027 0.0659291372 -0.00469861925 -0.0265778899 -0.00608906895 -0.0815652683 0.0207354724 -0.0100816339 -0.0727983192 -0.085777238 0.0420723185 0.0637030825 -0.028045699 0.0658193752 -0.0886269137 0.0194555894 0.0383406207 0.0215039924 -0.0177658871 -0.0127937868 -0.0365486778 0.0129917264 0.0581549034 0.0418149754 0.0171187967 -0.0518774092 -0.00694500655 0.0281762704 -0.0521351956 -0.071589157 0.0310242921 0.0567521974 0.00198538601 -0.0773784593 0.0587447807 -0.00292012841 0.0514750853 -0.00047916919 -0.0810914263 0.088036783 -0.0686622858 -0.0788583755 -0.0654890165 0.0209387615 0.0190552846 -0.0897311792 -0.0769743249 0.0135029852 -0.00362840295 0.0194966123 -0.0701970607 0.0921684578 0.0151353255 -0.065061219 0.0488951877 -0.0459734946 -0.00541448593 -0.0125713721 -0.0117149875 -0.0585416742 0.0478409454 0.0578212067 0.0805973187 -0.0359990746 -0.0556343347 -0.0853526965 0.0246266797 0.0216322243 0.0137271434 -0.0715631172 -0.0345596783 0.0699372962 0.00116382539 -0.0512110405 0.0109993815 0.0159315988 0.0236452818 0.0636809841 -0.0375886932 0.0815448388 0.0768303052 -0.040960744 -0.0463777632 -0.0266910195 -0.0387720205 -0.0373310633 0.0218136534 0.0715470091 0.0409048423 -0.0852556303 -0.0153849944 -0.021504432 -0.0830088034 -0.0405951031 -0.00738248974 0.0589783564 -0.0143230259 0.0402266905 0.00258887559 -0.00973545015 0.0772209987 0.0345118716 -0.0794034004 -0.0638181344 0.0378914103 0.0584510192 0.0539044663 -0.0614437982 0.013449721 0.0718537644 0.0472726151 -0.0353604853 0.0476721749 -0.012260519 -0.0427079797 0.0317183062 -0.0217504427 0.0756012425 0.0671339408 -0.0679815933 0.0259313285 -0.0413237624 0.0637382194 0.0663479343 0.0825214311 0.00198625028 -0.00348355621 -0.0301661678 -0.00554884225 0.00469271839 -0.0401057899 -0.0555913039 0.0548447147 -0.0528139099 0.0162709132 0.0860987827 0.087837927 0.0889496282 -0.0352770016 0.041129075 -0.04979489 -0.0473720841 0.0904230997 -0.02775307 0.0860385224 -0.0193406045 0.0300618187 -0.00456620753 -0.0162048116 -0.0884627774 -0.0780387521 0.0425275639 -0.0179971084 -0.078134343 -0.0613509379 -0.0912472978 0.0109749287 0.0708220825 0.0345522836 0.0414450243 0.0451342538 0.0575993136 0.0793144777 -0.0591162145 0.0769810304 -0.0910118744 0.0135821104 0.0524357036 0.0552584603 0.0306233242 0.0300469175 0.0914983526 -0.0595871732 -0.0809446126 0.048883833 -0.0822129026 -0.0734205991 0.040950574 0.0581794903 0.0522053912 -0.0320093036 0.0244223997 -0.0244586542 -0.0397075117 -0.043616306 0.0431978181 -0.0678439587 0.00453977287 -0.0410583802 0.0355405137 0.0636870638 0.0547183678 -0.0594861656 -0.0195759386 0.0656415001 0.0563973263 -0.0891602933 0.0176925659 -0.0195781216 -0.0784910619 0.0112235174 0.0337069109 -0.0143546611 0.0200885162 -0.0767236203 -0.0525738411 0.0643116906 0.0755489841 0.0466400757 -0.0646077171 -0.0579822548 -0.0333150961 0.0821647421 0.0818711743 0.0440705642 -0.0508072376 -0.0345484093 0.00904830545 -0.0674741641 0.0800832137 -0.0916664004 -0.0829082355 -0.0106911659 -0.0143052414 -0.0316576213 -0.0216345564 -0.0552776307 -0.00361037999 -0.0863128155 -0.0152024999 0.0692024902 -0.0427021235 -0.0677644387 0.0161129683 -0.00618366897 -0.0150167122 0.063215591 -0.0241552368 -0.0164365396 -0.00126958638 -0.0229703039 0.0132813379 -0.0705509409 0.0541451052 0.0269805044 -0.0338132381 0.0536059961 0.0427234694 0.0571324751 -0.0686142594 -0.0420609377 -0.0822079331 -0.0556377023 0.0360719338 0.0145369247 -0.0164249614 -0.0196158439 0.0659256354 0.052214615 -0.0315170623 0.0552740023 0.0302479118 0.0524821952 -0.08135923 -0.0351348333 -0.0115354061 0.0784327164 0.0297433883 -0.0309469253 0.00335122645 -0.0361034498 -0.0705984384 0.0698496476 0.0621447638 0.00439731777 0.0312550068 -0.0837214813 0.0451344773 -0.0100331232 0.00565946847 -0.0228804126 -0.0328137428 -0.0403717421 0.0480005518 -0.0798222795 -0.0665200949 0.0546031818 0.0529021546 -0.021349743 0.0596893653 0.00690864772 -0.086120002 -0.0649437532 0.0196149647 0.0898338482 -0.00222303718 0.0625437126 0.0315729007 0.0690525845 0.0668752119 0.0383026227 -0.0676926821 0.0854570046 0.0739225969 -0.0124899969 -0.0308007076 -0.0750385895 0.0480286404 0.0300357118 -0.0133231804 -0.0608477555 0.0346620753 -0.0719421133 -0.086665377 0.0733959451 0.0279245302 -0.0860768184 -0.0222764462 -0.00493195653 0.00499532372 -0.0811819583 0.015757978 0.0308115557 -0.0368441679 -0.0134642944 0.0355914906 -0.0378212146 0.0403164104 0.0252981782 -0.0336287022 -0.0855638683 0.0516579673 0.0239099115 -0.0200794935 -0.0617301315 0.0617897585 0.0636909977 -0.0322709419 0.0473261699 -0.0623635948 -0.0036052689 -0.064940691 0.0134104788 0.0416563824 -0.0247443318 0.0495261177 -0.00400603563 0.0744796768 -0.0673799589 0.0435434356 0.0689373091 -0.0751954764 0.0863077566 -0.0777355134 -0.0306430236 0.0584312901 -0.00938918442 -0.0895719528 0.0656863227 -0.0836909488 -0.0640930235 -0.0180170909 0.0675104335 -0.07745184 -0.0152931437 -0.0777085945 -0.0483657941 0.0859044716 -0.062083602 0.045541577 0.0288163126 0.0614301339 0.0140797272 -0.041204948 0.0759603903 -0.0640799031 -0.0133943409 -0.0749022812 0.0181206539 -0.0109582022 0.0893644765 0.00897178054 -0.0653237849 0.0556353256 -0.0721520931 0.0534900948 -0.00594011694 0.0329475626 -0.0338149108 -0.0201166943 0.0653718784 -0.0441872142 0.0313994363 0.0156883821 0.055646874 0.000245220959 -0.051070109 -0.037937209 -0.0870199725 -0.0484371297 -0.0476447716 0.0274092257 0.0681435242 0.0845095888 0.0525427237 0.0821369663 0.0173946321 0.0515881851 0.00582498312 -0.0222720653 -0.0402925275 0.0851336941 0.00365917385 -0.0673612058 -0.0195658132 -0.0857138932 -0.0463241674 0.0829660073 0.00445562601 -0.0198575631 0.0583160296 -0.0858159512 -0.0892632529 0.0340884998 0.01948715 -0.000795170665 0.043280758 -0.0134620443 -0.0599189587 -0.0477769896 0.0591648594 -0.0600886382 -0.0473245196 -0.0711749643 -0.046346046 0.0347092226 -0.0135078505 0.0422208235 0.0743773952 -0.00238025934 -0.0600780509 -0.00788659602 -0.0588186756 0.0328719839 0.0394356772 0.0522455499 -0.0636098981 0.0605779067 0.0179070383 -0.0637142062 -0.0337153114 0.0661057308 -0.0831372738 -0.0209623128 -0.0789544955 -0.0707931221 -0.00464561582 0.0149824843 0.00842741132 -0.0691846833 0.0838736221 0.0655385777 -0.0525406934 0.0592907742 0.0893354341 0.0103375018 0.014592506 0.0110105649 0.0895377025 -0.0705873892 -0.00596094131 0.0583445951 0.0014679879 0.0256111026 -0.0447423831 -0.0552925095 0.0891875848 0.0116637275 0.0122029781 -0.0744799674 -0.0402436852 0.0272429362 0.0228470489 -0.0682267696 0.0159644186 0.0299887434 -0.0573156029 0.0611694828 0.0194715858 0.0390334204 0.0125939995 -0.0329388715 0.0564761683 -0.0797993913 -0.0526411943 0.0656381324 0.0368189886 0.0285923108 -0.0154995322 0.0306588486 -0.0794028044 0.00555084646 -0.0669488162 0.0190209672 -0.0755784214 0.0743547007 0.0624970272 -0.0345264412 -0.0529846884 -0.0714224651 0.0406727865 0.0850711688 0.0738488808 0.0554413423 0.0609938577 0.0256575868 -0.0720803142 -0.0828639269 0.0358729735 0.0334308669 0.0723458305 0.0660909787 0.0809717998 -0.0691018552 0.0777791366 -0.0179305226 -0.0177612007 -0.0346497223 0.0504238084 -0.0742495358 -0.0479413196 -0.0729396045 -0.0561677366 -0.0684195608 -0.0164223909 0.050756596 -0.0164898708 -0.0732842684 -0.000412739813 -0.0129656643 -0.00759913772 0.0733857974 -0.0262053162 0.0090399012 0.000655911863 0.0794281438 0.00603996217 0.0483048186 0.0857859924 0.062891759 -0.0442265905 -0.0413056463 0.034439303 0.0347556397 0.0489273891 0.0799975023 -0.0184042752 -0.0642166585 -0.0714505315 -0.00307845324 0.0201135874 -0.0920392573 0.00667181611 -0.048725158 -0.027172856 -0.0286060423 0.0309078544 0.0239485428 0.0110642463 -0.077793397 -0.0217821151 0.0323003456 0.00547928363 0.0623023584 0.0878835693 -0.0549642891 -0.0725407749 0.0110884607 0.0735044405 -0.031642586 -0.0629341081 0.0290643871 -0.0168577135 0.053511925 0.00720711052 0.0880406126 0.00901084393 0.0895244256 0.045250304 0.0919021741 -0.0557472035 -0.0092286393 -0.0761847422 -0.0892241672 0.0865688249 -0.0804615319 -0.0842487663 0.0749598518 0.0437605456 0.0435756817 0.0834665373 0.0398744419 -0.0900311545 0.05309432 0.0239269063 0.0697352365 -0.000344835222 -0.0373767763 -0.0767444 0.0730076805 -0.0587632991 -0.00458286703 -0.0351018198 0.0411468819 0.064464055 -0.059929125 0.0917705074 -0.0775471702 0.0788488463 -0.0325156748 0.00572729856 -0.0748086721 0.0383830741 -0.0157865062 -0.0296244472 -0.0504553579 -0.0443380959 0.0450485572 0.0544718429 0.030385308 0.0922672823 0.00345232338 -0.0860591233 -0.0703290328 0.0460421965 -0.0730616972 0.0718899444 -0.0879248679 0.0607232377 0.0535019413 0.0628729835 0.0486944541 0.0781451538 -0.0706882849 0.0746317431 0.0545298085 -0.0633367226 -0.0427022763 -0.0140104815 -0.0184171721 0.0154558867 -0.051944565 0.041670464 -0.0569929965 0.0922941193 -0.0795116723 -0.0320791416 0.0464757755 -0.0308631286 -0.00763116032 0.00525337458 0.0420396551 -0.0420327857 0.0494643375 -0.0217940211 -0.0905713812 -0.00841995329 0.0221265778 -0.0917355567 0.0912439153 -0.0787876546 -0.0123521462 0.0661517754 0.0352553353 0.0450046137 -0.0227830186 -0.0577461943 0.0316631421 -0.0605927408 0.0207628757 0.0528733358 0.0292010978 -0.0199023783 0.0859219506 0.0570827797 0.00511195511 0.0809639022 0.0362555906 -0.0733092502 0.0700843856 -0.0445232466 0.0581063554 -0.0527905561 0.0108275488 0.0612783208 0.0867583677 0.0757050887 0.0451537147 0.065940313 0.0179703608 0.00831183791 -0.0286263376 -0.0299833491 -0.0152553469 -0.0228258744 0.0528220758 -0.0708312467 -0.0205639228 -0.0725053176 0.0640405342 0.01013349 0.0871123895 0.00170660764 -0.0753047168 -0.0372156613 0.0660376921 0.0255356058 0.07263612 0.00917812437 0.0531220064 -0.0406939089 0.0176166743 -0.00376319885 0.0683472231 -0.0368779115 0.0751674846 0.0742843822 0.0679408982 -0.00144787133 0.0396751985 0.0732236281 -0.0844759792 0.0835710987 -0.0623589084 0.0241356269 0.0889815167 -0.000214226544 -0.0675807819 0.0877006277 0.017076537 0.0490015224 -0.0852562264 0.00493074208 0.0498910472 0.0346769318 -0.0099119097 0.0645234361 0.081479542 -0.0860876739 0.0516410097 -0.00917605311 0.0430356488 0.0497107431 -0.0372635759 0.0611612573 0.0919329301 0.0308376849 -0.0709088072 0.0662487969 -0.0407729261 0.0621898398 -0.0210235864 0.0344091728 -0.0795660987 -0.0589198805 -0.0149924979 0.0151511058 0.043737717 0.0127532631 -0.0303842053 0.0447126105 0.000460699201 -0.084737815 -0.00363839418 0.0863890126 -0.0536613576 0.042328544 0.0184533373 -0.0513256937 0.0656898245 -0.0314070955 -0.0247751176 0.0662221834 -0.0041892305 -0.000381350517 0.000819474459 -0.0433702059 0.0575583056 0.0170672759 -0.0497013442 -0.082080029 -0.0614589453 0.0429803208 -0.0660542473 0.0209373981 -0.0761546493 0.0139492005 0.0418287888 0.0612276569 0.0128879249 -0.00172126293 0.0115183443 -0.0654914826 0.0114735737 0.00221436471 0.00852161646 0.0822970793 -0.0403703116 0.0621810332 -0.0377742872 -0.0166187435 -0.056534607 -0.0514796786 0.0267841294 0.00920464844 0.0290600285 0.0537319854 -0.0614105612 0.0781927779 0.00354058295 0.0860962495 0.0687846914 -0.00610598922 -0.0836254731 -0.045563329 0.00547572225 -0.0737196133 0.0119606256 -0.051143799 0.0826912299 0.04463429 -0.059046153 0.0247764662 -0.0133147538 0.0625235513 -0.0719970912 0.00172617286 -0.0552271605 0.0451803878 0.047082074 -0.00193641335 0.0530917123 0.0765444413 -0.0563395284 0.0873581842 -0.0139050037 0.0394252464 -0.0399062634 -0.0712122023 0.0259179249 -0.0161817893 0.0485819355 0.0754998699 -0.0507578924 0.00815644115 -0.0364788175 0.0175825357 -0.0359000303 0.0214041919 -0.047093302 0.0642564669 0.0725940689 0.061928384 0.0293697193 0.0665084049 0.0828310922 0.0111405775 -0.042528417 -0.0742625669 -0.0591026992 -0.0579725057 0.0387938395 -0.0762693509 -0.0084477067 -0.0128419474 0.0116508007 -0.0202584416 -0.0475943014 -0.00492411852 -0.0427138768 0.0347846672 -0.064673923 0.0339399353 -0.0726499259 -0.0469569005 0.0366543308 -0.018743217 0.0906487331 0.0686621293 0.0158983842 0.0843209997 0.0440488532 0.0813565925 -0.0138326362 -0.0713774562 -0.00201800466 -0.0461129993 0.0330899283 0.0603471473 0.0617514029 -0.0074339509 0.0349661931 0.0176686198 0.00693787634 -0.0752564296 0.0278574228 0.0680670813 0.0545960739 -0.0515330769 0.0556391552 -0.0553198457 -0.033026319 0.0569137111 -0.0717039406 -0.0786489248 0.0522400066 -0.0568851456 0.0379760936 -0.00542853028 -0.0145188347 -0.0182812139 0.0614007637 -0.0612881631 0.000743076205 -0.0307939276 0.0113780051 -0.0577241406 -0.0512971021 0.0316920877 -0.0382359549 -0.0606313497 0.0327055231 -0.0161809549 0.0252863169 0.0661638156 -0.0225852132 0.0530148819 0.0796278194 -0.0849279612 -0.0693630353 0.067414023 -0.00723645091 -0.0660853013 -0.0066568926 0.052904062 0.0679332837 -0.062156938 0.0687763467 0.0235138535 0.0543457791 0.0467237011 0.0533457771 0.00347970426 0.00629803538 -0.0486236885 -0.0275750086 0.0623643175 -0.0348222852 0.0095513761 0.0251187235 0.0133192614 -0.0860538855 0.0508010164 0.0389676467 0.0222098902 0.073742412 0.0801225081 0.0369840637 0.0577851012 -0.0866725743 0.0823222771 -0.043075487 0.0695475116 -0.0469883531 0.0921966061 0.0482124165 -0.021962069 -0.0508747883 -0.000223226845 -0.0776746273 0.0475248322 -0.0371278599 0.0426975861 0.0779239163 0.0694568828 0.0517954901 0.0893844441 -0.0702648684 -0.0161991119 0.0532668158 -0.0790087059 0.0711434409 0.0824636444 0.0367165729 0.0779679194 -0.0144946426 -0.0617675707 0.0711447671 0.0158213675 -0.0368566029 -0.0458306484 0.0238787681 -0.0777869299 0.0217517614 0.00554058701 0.0241538286 -0.0297453701 0.00973358005 0.0417287573 -0.0402220935 -0.0800959393 0.0744007751 0.0417077616 0.00546064228 0.0543797389 0.0426089093 -0.043453034 0.0256649405 0.052099295 -0.032568302 0.0652814284 -0.00554263592 0.0728689954 -0.043134585 0.0137995332 0.0362494066 -0.0254804939 -0.0530218221 0.0462084636 -0.024233751 -0.0343809314 -0.0543352105 0.0220500231 0.0321954489 -0.00481254607 -0.0189176053 0.0263132602 0.0530781969 0.011488013 0.0898376629 -0.0592376031 0.0326934382 -0.0740261301 0.0437526181 -0.0666519627 0.0430754498 0.0176111311 -0.0180558935 0.0732014254 0.0371066257 0.0867392197 -0.0557866693 -0.00177884102 0.0216501653 0.0504053012 0.0337866023 0.043543689 0.0345572606 0.020374015 0.0454392806 0.0632391497 0.037192665 0.0352251455 -0.0560183488 0.0181209147 0.066103898 0.0716795102 0.0262440965 -0.0499834977 -0.0721517429 -0.00518408418 0.0361528173 0.00719638914 -0.0466456972 0.0555943176 -0.0657842234 0.0299886987 0.0830104128 -0.0394873172 -0.00368763506 -0.0136809424 0.038605772 -0.0649061799 0.0280567706 0.0494508818 0.0262199119 -0.0891167745 0.0506562516 0.00670617074 0.0580392256 -0.0552635677 -0.068996869 -0.0177739412 -0.0416582115 0.0364427194 0.0567128733 -0.0556792989 -0.0169291571 0.0484595075 -0.0591019727 -0.0150677115 -0.0270492435 -0.0487139113 0.0747838691 0.0182984322 -0.0888137817 -0.0830726102 0.0693180487 0.0116614103 0.023255609 -0.0260183141 0.0071914196 0.046721749 -0.0887168422 -0.0114217177 -0.0750630647 0.00650750846 0.0488515571 -0.0646647438 0.00486706942 -0.0533076935 0.0916336551 0.0804411247 -0.0353837498 0.0226094872 0.0227089301 -0.0400849469 0.0426454172 0.0534260198 0.064315863 -0.00618221611 -0.013749741 -0.00321317464 0.0835469738 -0.0816455185 -0.0448959731 0.035557352 -0.0843669176 -0.0359492004 0.0782356933 0.0625660196 -0.0686850473 0.0550585464 -0.0628384277 -0.00153758377 -0.054659687 0.0835347399 0.0819474831 -0.0719078183 -0.028231293 0.0454430506 0.0148805082 0.0445867702 0.0663269982 -0.0267784446 0.00617264211 -0.0783927888 0.0166585594 0.0224195793 -0.0503086559 -0.0106914788 -0.018178232 -0.0705854073 -0.0729964823 -0.0726612806 -0.0521430112 0.0443407223 -0.00211714208 -0.0311924517 0.00208791345 0.0740351602 -0.0732116774 0.0424769595 -0.0177707747 0.0708184764 -0.0213783756 -0.0532034747 0.0321928039 0.0621176288 -0.0758204907 0.0482497737 -0.0321640149 0.0407354161 0.0671738461 -0.0825784802 0.0228473991 -0.0680698529 -0.0895465538 0.0842682049 0.0782425478 -0.0482763425 -0.0896408856 -0.0303609818 0.0826590136 -0.0512654074 0.0512638167 0.0215587765 0.0752064809 0.0912074372 -0.0239873677 -0.0828619301 0.0702582076 -0.0301108137 0.0222500786 -0.0598851927 -0.0859737918 -0.0413132831 0.0319982991 0.0313097909 0.0743458048 -0.0858219862 -0.0699172392 -0.0774751753 0.00166650116 0.0232871026 0.00929440558 0.0865933374 0.00733292103 -0.019092828 -0.00831887871 -0.0262745619 0.0416251346 -0.00833591819 -0.0549866073 0.00632655621 0.0393073335 -0.0152514279 0.0520626679 -0.00384989381 0.0263016149 0.0746137276 -0.0438450389 0.0822145566 0.0840319321 -0.0862531215 -0.0194030702 0.0508038774 -0.0127068907 -0.0589344949 -0.0501131602 -0.0299458653 0.0678254738 0.0507777706 0.0712483898 0.0241455957 0.0564015731 -0.0353363417 0.0317809209 -0.0140985027 0.0849281326 0.0788886026 0.0785115138 0.0807121173 0.0358081087 0.040900521 -0.0809574947 -0.00208733976 -0.0764350221 0.0570895746 -0.00511825085 -0.00386776775 0.0787755027 0.0467508808 0.0839909539 0.0652477369 0.0859996453 -0.0634330362 -0.052008085 0.0262955576 0.0248850882 0.0921694264 0.0753008947 0.0913945064 0.0347711071 -0.0750989616 -0.0179013833 0.0495556071 -0.055798091 0.0914352313 -0.0916491449 -0.000396363437 -0.0259857401 -0.0439809747 -0.0334296189 -0.00191755593 -0.0157399327 0.0902659371 0.000630050898 -0.0253270119 0.0248648822 0.0602990165 -0.056000784 0.0605277047 0.0185987204 0.000394232571 -0.056343358 -0.0221531913 -0.018954806 -0.00242256373 -0.00627049804 -0.0220453814 -0.0109627098 -0.068544507 0.0344119444 -0.0842195302 0.078588523 -0.0592997819 -0.0814024359 0.06524802 0.0815854743 0.0895484611 0.0292728916 -0.0242273659 -0.0742547289 -0.00674893707 -0.067897357 0.0227687806 0.0553141013 -0.0863000751 0.0395066366 0.061862357 0.0191718042 -0.0654630661 0.0283941925 0.0700934604 0.0233250484 0.0194070712 0.0641009733 0.044405289 -0.00946067274 -0.0836389437 -0.0201259553 -0.0738312081 0.0120055005 -0.0254012942 -0.0287161395 0.0463774726 -0.0142017752 -0.00549740344 0.0452274308 -0.0348312892 0.0134748369 0.0819787756 -0.0767208934 -0.000888213515 0.0318325385 0.0367950425 -0.0738957822 -0.00163238496 -0.0146428198 0.070773907 0.00132848322 -0.0919338316 0.0103592947 0.0916411951 -0.0430507474 0.055614166 0.0533276126 -0.0578921251 0.00974852592 0.0581451729 -0.0610396229 -0.015184693 -0.0885760635 -0.0811538249 0.0831912234 -0.0431143567 0.0212315917 -0.0282540545 -0.0655788854 -0.0534623601 0.087621741 -0.00606969744 0.0376703367 -0.0862749368 -0.0663350523 0.0583216771 -0.0138553753 0.0221435726 0.0455906615 0.0735955909 -0.0671019852 -0.00591240823 0.0269162357 0.0420045927 -0.0841932073 0.0193585604 0.00480306149 -0.089960061 0.0150241256 0.0169625282 -0.0649873763 -5.66318631e-05 0.0470475629 -0.0816364512 0.089422904 0.0887283757 0.023884356 0.0685135648 -0.0688751712 -0.0594005249 -0.0180407315 0.0674069896 -0.0302506238 0.0544177219 -0.00889720768 0.0281967819 -0.0311573893 -0.0106258392 0.00159111619 0.0577052608 0.0632737353 0.0221605599 0.04536625 0.0695531145 0.0143685713 0.0448852703 0.0327844247 -0.0365012884 -0.0546568483 -0.0568301603 0.0273088366 -0.0548189767 -0.0197048783 0.0709154531 0.0706972256 -0.0423610508 -0.00624890625 -0.0775870979 0.074498035 -0.0421693176 -0.0581239834 -0.0242428631 0.0517900512 -0.0433283001 -0.0635723472 -0.0815870762 -0.0208056644 0.0304783657 -0.0736502334 0.0329000875 -0.024395965 -0.088241443 0.0013134554 0.0622273013 0.0349055752 0.024766162 -0.00277305394 -0.0490894541 0.0184332207 -0.0238686204 -0.0140232891 -0.0423449166 0.0728683099 -0.0425292738 0.0896772966 -0.0541148856 -0.0391894504 -0.0517931767 0.0170249715 0.0739515349 0.0301214457 0.0565304831 0.0083848685 0.0519909337 -0.0853833109 0.0804361925 0.079058744 0.0235936865 0.0621697083 0.036027737 0.00820233673 -0.0542130955 0.0467704013 0.0074178353 -0.0572862178 -0.0705185831 -0.0162458643 -0.0276758373 0.0681554899 -0.0535451435 -0.039498169 -0.0511441305 -0.0475436784 -0.0149588212 -0.0528845191 0.0652624145 -0.0629556552 0.0910649672 0.0916902199 0.0470918044 -0.076763086 0.0699955896 0.0152755529 -0.0206154063 0.0768507197 0.0782711878 0.0636078492 -0.0729750618 0.0788835958 -0.0513215773 -0.0696335882 0.058517836 0.0164361224 -0.00269593298 0.043010585 -0.0320968628 -0.0751471221 0.0165381879 0.0304067209 0.00493985415 -0.0298577361 -0.0183797777 -0.0807550624 -0.0439068228 0.0540881827 -0.0801859573 0.0427137688 0.00986844301 0.0574321225 0.0541212484 0.0557309613 -0.0784312859 0.088846229 0.0695350692 -0.00366382301 -0.0903094336 0.0834478065 -0.00281406194 -0.0151314288 0.0446975455 -0.0211757496 -0.0619271696 -0.0329487994 0.0591521785 0.0859783068 0.07173457 -0.0592530295 0.0413209274 -0.0593019165 0.0106899589 -0.0603887476 -0.0246336609 0.00963002443 -0.0608438812 -0.0794902965 0.0134819224 -0.0678098425 -0.0721146315 0.0438321158 0.0444141403 -0.0357450545 0.0570052788 0.00832999498 -0.0764611512 -0.0603386536 0.0432773605 -0.0655859038 0.00276444852 -0.00239348412 -0.0256646276 0.0666740313 -0.0370686986 -0.0279173106 0.0894849226 0.00752390921 -0.0538126789 -0.0421065427 -0.0286300108 0.0136174858 -0.0125280544 -0.0265019983 0.0819792673 -0.000503823161 0.079633899 -0.0812413171 0.00344446301 0.0314304903 -0.0653407127 0.00104325265 -0.0571312197 0.0897308215 0.0626333281 -0.0738925487 0.0607710257 -0.0358166322 -0.0352676474 -0.0745837837 0.0239081755 -0.0208226368 -0.0116295889 -0.00244903564 -0.025475122 0.0252918601 0.0916844234 -0.0851535276 0.0655880645 -0.00486913323 -0.00177884102 0.0756926909 -0.0251461938 -0.069830209 -0.0396377146 0.0543546006 -0.0834417492 -0.00235131383 0.00727912784 0.090438135 0.081372045 0.0539760366 -0.00500619411 -0.0370895863 -0.044307854 -0.00408872962 0.0708989426 0.0481195375 -0.0699041858 -0.0276186317 -0.0184794664 -0.0819768831 0.0555003062 -0.0091079995 0.0384634361 0.0679634735 0.0735928789 -0.0137397274 0.0871086344 -0.0769815892 0.0357144549 -0.0420547947 0.0678080842 0.0735555664 0.0268489271 -0.0306215212 0.0848305151 0.0083162412 0.0471388176 0.00944601744 0.0712455437 -0.0761891231 0.0834791735 0.0294523239 -0.060502544 0.0517351702 -0.0259077325 0.0365990177 0.084363021 -0.000629588962 0.00959037989 -0.0371706262 0.0707708076 0.0340088829 0.0483588353 -0.00162177533 -0.0829838663 -0.0484017804 -0.00227434188 0.0489599034 0.0381788239 -0.0321583152 -0.082490541 -0.0226082355 0.0574091002 -0.016091615 0.0682865307 0.034570612 0.085422866 0.0239823461 0.0886928365 0.0373940989 0.0242316127 0.0705653802 0.00297896564 0.0304358825 0.0831515417 -0.0871821195 0.0593059286 -0.0510814227 -0.0217443481 -0.0688488483 -0.0321564637 -0.0655129626 -0.0219434053 0.0595638677 -0.0550824851 -0.01929079 0.00194904953 0.0215948522 0.0301946923 0.021046415 0.069041796 0.0601365939 -0.0574770048 -0.000601306558 0.0740387216 -0.0795679241 -0.063914828 -0.0742641315 -0.0556106046 0.0106154531 0.029979825 0.0850688145 0.0584718361 0.0824901238 0.00268018991 -0.0670104697 0.00869435817 0.0359696969 0.0131908581 0.0806320831 -0.00119342655 -0.0322241262 0.0884519443 0.0754769966 0.089794524 0.00151970983 0.0407876149 -0.0476795062 -0.0875296667 0.00699798763 0.00379385799 0.000366717577 -0.0768043399 0.0832199976 0.0283915773 0.0495509729 0.0384777412 -0.0741205364 -0.0664737672 -0.0220446587 -0.03082316 0.0759788528 0.0776827112 -0.0547486991 -0.0516373403 0.0239322707 0.0768261775 -0.0660066381 -0.0599664114 0.0321998671 0.0285405815 0.0863817707 -0.00370449573 0.00360269845 0.014388375 -0.0579971336 0.0211254954 0.0602098629 0.00211285055 0.05469767 0.0333959386 -0.0229893699 -0.0518604815 -0.00223432481 0.0181371346 -0.0531677082 0.088908188 -0.0354686454 0.0580413267 -0.0344696566 0.0813004449 0.0141096786 -0.0252422243 -0.0531702377 0.0295623541 0.0670228228 0.0278743058 0.00398794562 -0.0513398908 -0.0443459973 -0.00400835276 0.075694792 -0.0600130521 0.00791661441 -0.0476448387 0.0214870647 -0.024003014 0.0808537379 0.0678657666 0.0704369918 -0.0861101896 -0.0920731351 0.0362774804 0.0484193936 0.00359840691 -0.0708697885 0.00710354745 -0.0284828097 0.0497359857 -0.00396787375 -0.0142371878 -0.0917453542 -0.0241503119 0.0348180607 0.0608538017 -0.0638577789 -0.0295081884 0.0816225335 -0.00957706571 -0.00459253043 0.0848542973 -0.0138140172 -0.0595838912 0.0850074366 0.0626477525 -0.014114812 0.0154067352 0.0712559596 0.021492742 -0.0259673372 -0.00431969017 -0.000471644104 -0.0650199279 0.0809321329 0.0898133442 0.0712473318 0.089682661 -0.0215362385 0.0921127722 -0.00677682459 0.0833938792 0.0617382154 -0.0156473145 -0.0319893174 -0.0569149666 0.0470520779 0.0887398049 -0.0725378469 0.0335650221 0.0300831199 -0.0876171589 -0.0146002322 0.019806236 0.0174642727 0.0295199603 -0.039001327 0.0630554929 -0.0654312819 0.0292294696 0.0461722687 -0.0387157388 -0.0808906257 0.0521566346 0.033333756 0.0657127127 0.0396713689 0.04186555 0.0775351748 -0.0701821148 0.0840286538 0.0796264336 -0.0510389209 -0.0868516341 0.0349844173 0.0721170679 -0.00465609878 0.0306870937 -0.0867702141 0.0018138364 -0.0822191089 0.0884359255 -0.052510187 0.0858424082 0.0291570798 -0.0190977603 0.0158089772 0.0699069574 0.0860065594 -0.0104045048 0.0482921824 0.00193998218 0.025610283 0.0723456815 -0.084439151 -0.0430566035 0.0105698705 0.0690990463 -0.0282208845 0.0686471835 -0.0915853381 -0.0128706023 0.0401722416 0.0686194077 -0.0167153701 0.0729011968 0.0608512089 0.076847516 0.00575155765 0.0703141317 0.0629126653 0.0523045883 -0.00348023325 0.0325153023 0.0325881317 -0.0582115166 -0.0701222196 -0.0181731209 0.00461670011 -0.0576674826 0.0395126268 0.0923110917 -0.0241822004 -0.0378846042 0.00948955119 -0.01929079 -0.0342862867 -0.0147695318 -0.0517356619 0.0696789548 0.0533060208 0.0427755788 0.0817134902 0.0604406968 0.0525580868 -0.0689273402 -0.0520924963 -0.00461823493 -0.0457164571 0.0692168698 0.0608216301 -0.0613353103 -0.0523809195 -0.0726882443 0.0588567778 -0.0491739735 0.0409746245 -0.0378421657 0.0622535273 0.0548309311 -0.0832752436 0.030558832 0.0524621829 0.0205700621 -0.0726654455 -0.0445174575 0.0702902898 -0.0778944716 0.00482865423 0.0163699612 0.0202068463 0.066018261 -0.0329627767 0.000155061483 -0.0460205115 0.0476468131 -0.0383275189 0.0166040882 0.00483521819 -0.038995713 0.0178370476 0.0656780228 0.0392557308 -0.0412699915 -0.0893023014 -0.0899566486 -0.00567483157 -0.0915651992 0.0313504413 0.0131015331 -0.079299137 -0.0206903741 0.00996618718 -0.0844406486 -0.0269834101 -0.0680814534 0.0462903604 0.0898811147 0.029064104 0.0172896236 -0.0672764853 0.0165316686 -0.0363221467 -0.070282653 0.0682533309 -0.00372837484 -0.0456830449 0.0856265351 0.0466945991 0.0235998258 0.0523179993 -0.0681757256 0.0323716402 0.0410515293 -0.0516543984 0.00491478294 0.0600870475 0.0209504068 0.0236261934 -0.0242184997 -0.0219716281 -0.0229686126 0.0253019631 0.063020058 -0.00534506887 0.0889083073 -0.0865772292 -0.0364945754 0.0264164209 0.0196210593 0.048175849 -0.00905898213 0.0383747593 0.072512053 -0.0158295333 -0.0395233035 0.0682902411 0.0225650072 -0.0374160223 0.084289588 0.0762885138 -0.00792955607 -0.0345528349 0.0405696854 -0.0101710409 0.00834150612 0.0586125925 -0.037691284 -0.0559125021 -0.06394016 0.030322969 0.0508167967 0.0910628363 0.00337226689 -0.00299976021 -0.0469719358 0.0755946413 0.0703011379 0.0119114518 -0.0634378642 0.0301487595 -0.0241550654 0.0848883912 0.0818008408 -0.0548392944 0.0465462282 0.0262290016 -0.00827129185 0.0537405536 0.0541596487 -0.0788356811 -0.0379610658 0.0659595355 0.0613849387 -0.0715332478 -0.0723502487 0.0582743809 0.0230820775 -0.0180856287 0.078535594 -0.040848732 -0.0332165547 0.0814848021 -0.0492121838 -0.021278359 -0.0833112076 -0.000568091869 -0.0120070428 0.0493350849 -0.0147919878 -0.0721471831 -0.0505982935 0.0461765006 -0.0716476366 -0.00604867935 0.0472910479 -0.0671598315 0.0291689634 0.0641882792 0.0636722222 0.0157427713 -0.0493955091 0.0105536953 0.0383596495 -0.0384696871 -0.0161705688 0.0675432757 0.0361306146 -0.0464440361 -0.00985754281 0.0668271258 -0.0742088184 -0.0113739595 0.0680837855 0.0440129414 -0.0635116398 0.0133948252 -0.0578053147 0.0433504805 0.0195830911 0.0775539055 0.029074803 -0.0187416524 -0.0858367085 0.0168820769 -0.00839552283 0.0848694369 -0.00458933413 -0.0708577484 -0.00553888828 0.0430054292 -0.0603890345 0.0116711184 -0.002512604 -0.0168862343 0.000758104026 0.0312476754 -0.0401825607 0.0199837461 0.0504134074 -0.0256751329 -0.0625350326 0.0145900175 -0.0814693719 -0.0813994184 -0.0267282873 -0.0745760426 0.00993838906 0.0174856707 0.00163698196 0.0915814713 -0.0474229939 -0.0504003763 -0.0231885612 0.00186796486 0.0783331022 -0.0917756408 0.0554563329 -0.0118979141 -0.0486718267 -0.0645402744 0.0893914625 -0.00781717151 0.0698221549 0.0302494094 -0.0867945626 0.0666404888 -0.0859182328 -0.0529247783 -0.0282280147 0.0239134133 0.0500154719 -0.0139923468 0.0360782668 -0.0693178922 0.072679989 -0.0114185959 -0.040408235 0.0338785425 -0.0456548519 0.000184029341 0.0499741659 -0.0756306499 0.0660615787 0.0163284019 0.0488577113 0.0799466148 -0.00603043288 0.0585278049 0.0612785891 -0.0675155446 0.0142027438 0.0398366526 0.0501494333 0.0249641687 -0.0825498626 0.0332809612 0.0326611623 0.0142437294 0.0434469506 -0.0551053993 0.0502585396 0.0505828187 0.0645027086 0.0170197561 -0.0204932466 0.08722464 0.0459366217 0.0329777822 -0.0360009037 0.00639430434 0.0706681684 0.0116403699 0.0114700794 0.000436358154 0.0282407776 -0.0330789238 -0.0622528382 0.0604360029 -0.0857215747 -0.00723537058 -0.0330263861 0.0375778601 -0.0815970749 -0.012207754 -0.0166223943 -0.0674670339 0.0332285687 -0.0421899632 -0.0873764306 -0.0182610527 -0.051285591 0.0180274174 -0.000973805785 0.0894358829 -0.0407361053 0.0852509812 0.00965175033 0.00995407999 -0.0148496106 0.0154846311 0.00282151997 0.0366101936 -0.0346661881 0.0893750712 0.0851546451 0.0762289241 -0.0491809957 0.0371867791 -0.019403331 -0.00429140031 -0.0717814341 0.0292361826 0.0340712294 -0.0637622029 -0.0585206971 -0.0794775486 -0.0406552367 0.0102802143 0.041575782 0.0893774256 0.0127302855 -0.0897599012 0.00155345351 -0.0608684011 0.0275861472 -0.00865438581 -0.0454588048 0.0453315154 -0.00472450256 -0.0649413913 -0.074109219 0.0273332223 0.0237717927 -0.0164316967 -6.74650073e-05 0.0371741876 -0.0772804692 -0.00274576247 0.0447384641 0.0909534767 0.00169863552 0.0916088447 0.00906322896 0.076710023 -0.0111790299 -0.0114888102 -0.0358459055 -0.0435736068 0.00373381376 -0.0815490484 -0.0634283274 0.0698645934 -0.00290381908 -0.0506407954 -0.00216290355 0.03518603 0.0410273746 0.0381504223 0.014468208 0.00905971229 0.0852562413 -0.0922952667 -0.0656120554 -0.079237923 -0.00145661086 -0.0797716156 0.0388541594 -0.00223791599 -0.00516103953 0.0811859891 -0.00381201506 -0.0027718693 0.0287594348 -0.0839200616 -0.0878174528 -0.042041216 0.0684739277 0.0167828724 -0.0660922155 0.0176755115 0.052602075 0.0714536533 -0.00401175767 -0.0526563823 0.0811148509 -0.0702387244 0.0828053877 -0.0762993917 -0.0725715011 0.040971227 -0.0158739761 -0.0187012404 0.0882268921 0.0665059015 0.0336634591 0.0225040838 0.0268175825 0.036762841 0.0369914547 -0.0247578397 -0.0672668889 -0.0900741667 0.0420917049 0.0325803012 0.0227265432 0.0827259496 -0.0768017173 -0.0756823719 0.0401845202 -0.0390010178 0.0692814663 0.0651286021 -0.043893639 -0.0679270327 -0.0813344419 -0.0339485146 0.0825845972 0.0528852418 -0.0736136958 0.0304630473 -0.00772937387 0.0569983497 0.0815778598 0.0276720971 -0.0301994719 0.0474566743 -0.0618180856 0.0391171202 -0.0438286625 0.0677166954 0.0175368413 0.0836938098 -0.0386658646 -0.001577802 -0.0520136319 -0.0841246024 0.0308299363 -0.0725680888 0.0739229247 -0.0626060665 -0.075140655 0.00107144564 0.0014391765 -0.0346541926 0.00146063417 -0.0784852952 -0.00912012905 0.0462146625 -0.0194892213 -0.0129728615 0.0358223543 0.0176273733 -0.0608728901 -0.0396356694 -0.0284198374 0.0153324753 -0.0194507241 -0.0337309167 0.0456175879 -0.0669719055 0.0835676119 -0.0284167975 -0.0385309197 0.0794895664 -0.0308834687 -0.0506344102 0.056517832 -0.082998015 0.0103999674 0.0527872816 0.00181150436 -0.0227303505 0.0587820485 0.0065241009 -0.0550116785 0.0434457883 -0.0907616839 0.0212024227 -0.0487467498 0.0748254582 -0.0340590961 0.000765323639 -0.0635814592 -0.0175613835 -0.0706387833 -0.0360556878 -0.0849826112 0.0382424518 -0.0453949943 0.0436504856 -0.0128502399 -0.0167613924 0.0216966271 -0.0408872068 -0.0700710043 -0.019940719 -0.0655896217 -0.0201015249 -0.0208073556 0.0663607642 -0.0453689359 0.0454903468 0.0523292348 0.0776665136 0.0324187651 0.00265963376 -0.0417563096 0.00260058045 0.0165294707 -0.0914904699 -0.0408200957 -0.0275005251 -0.0818000734 0.0773613974 -0.0695101321 -0.0776412636 0.0332834646 0.0268454701 -0.0383154564 0.0337944999 0.00390700996 0.0496209189 -0.0366953984 -0.0904584005 -0.0265978947 0.0804955587 -0.0405872241 0.0261496305 -0.0532859899 0.0239016339 -0.0144598037 -0.0831319317 0.0540182814 0.0265612453 -0.0255355611 -0.0416291356 0.0189434439 -0.0129600093 -0.0234777331 0.0781051144 -0.0643839538 0.00946353376 0.0578144863 -0.023833096 -0.0452084988 -0.0540022552 -0.0642029643 -0.0138787478 -0.0344608948 -0.00728388131 -0.0406427346 0.0489037558 0.00671649724 -0.0833178312 0.0394981727 -0.0183755755 0.0402503386 -0.0790747404 -0.0115262046 0.00981066376 -0.0181137845 0.0813708678 -0.0752125159 -0.0636741221 0.0746737942 0.0691049024 -0.076628536 0.0705557987 0.0417067632 0.00394517928 -0.0138205066 0.0319599807 0.0883672908 -0.0308336802 0.0125522465 -0.0836161152 0.0332616046 -0.0201420039 0.00468534976 -0.0677249953 0.000845640898 0.0672109798 0.00671860576 0.0323189497 0.0618739054 -0.085716486 0.0147730559 0.0634988472 -0.0373239294 -0.0294467807 -0.00637216121 -0.0104684457 0.0833071992 -0.0439190157 -0.0135643259 -0.0734093115 -0.0820917338 -0.0286500007 -0.0278097689 0.0575539544 -0.0455713198 0.0277215317 0.031602174 -0.00299432874 -0.00575829297 -0.0800607651 0.0822419301 0.0222200379 0.00870516151 0.0724235252 0.0279348791 -0.00879549235 -0.006593436 0.0278941616 0.0638731197 -0.01995489 0.0094614625 0.00866015255 0.0572197214 -0.0496815778 -0.0331284925 -0.0828992128 0.0196657628 -0.0191153735 0.0458110794 -0.0652529299 -0.0177835152 -0.0376109891 -0.0466310605 0.0644324645 0.0881694928 -0.0501896478 0.0502785966 -0.0345899425 -0.0198018104 0.0702211186 0.00234919786 0.04001192 0.0771212056 0.0494358316 -0.0319020897 0.0856789425 0.083734341 -0.0462210476 0.0717851296 0.0388861075 0.0501921102 0.0584684685 -0.0513192452 -0.0714252144 -0.0885543451 0.05858735 -0.00829719752 0.0306215212 0.0340318605 -0.0205458552 0.0756339058 0.0837159082 -0.0730194151 -0.0912174582 0.055626668 0.0327471867 -0.00629354268 0.0612661913 0.0655683205 -0.0494995974 -0.0289999023 -0.0708887354 0.0205212459 0.0128909424 -0.0450893342 0.0630433187 -0.0419934951 -0.0680548698 -0.0837053061 0.0685138032 -0.0599473082 -0.00768517703 0.00748527795 -0.010872297 0.0834861621 -0.0527943 0.0178931952 0.0626431778 0.0269820914 -0.0540995412 -0.0751913637 -0.0518145487 0.041791968 0.0252913758 0.0251940265 0.071946539 0.0577230975 0.0532324687 -0.0362061709 -0.056001205 -0.0245296359 0.0041981712 -0.0674565583 0.0317380652 -0.0491716191 -0.0181598067 -0.0571505018 -0.0490243472 0.0823315158 -0.0795077085 -0.0807893574 -0.0595336854 -0.00525286794 0.0204013512 -0.0201823041 -0.057951618 -0.0149017498 0.0828306004 0.0765516981 -0.0722442269 -0.0254147872 0.0572232679 0.0719284043 0.0919317678 0.0422854647 0.0722133294 0.0832389221 0.0703502074 -0.00300049037 0.0307775959 -0.0076655224 0.0168642253 0.0456034318 0.091807209 -0.00119584799 -0.0249584243 0.0909892693 -0.0625290498 0.0236716717 -0.0820179135 -0.0806563646 -0.0602229871 0.0700656697 -0.0569506697 -0.0624079257 0.0795056596 0.0314875692 -0.061765328 -0.0635697916 0.0153116286 0.0252486989 0.00669085234 0.083547093 -0.0649017319 -0.0279997662 -0.008346349 0.0565732494 0.0635207072 0.0591150299 -0.0822551847 -0.0152619332 -0.0337187685 -0.0746884719 -0.0561716519 0.0572123006 -0.0173217356 0.00377386808 -0.0362097584 0.0134522095 0.0561428145 -0.0784822181 0.0640364066 -0.0614264309 -0.0730183125 -0.0421296768 0.0117559507 -0.083700195 -0.0869141668 -0.0726001412 -0.0146617889 -2.34395266e-05 -0.0253349543 0.0460506454 -0.0915026888 -0.0340093933 -0.0842529908 0.0833470151 -0.0597957447 -0.055193156 0.0459580198 -0.00640163571 -0.0354257897 -0.0564263351 -0.0306178443 -0.0107492954 -0.0495355614 -0.0289051682 0.00900393724 0.0576087311 -0.0476625785 0.00458601117 0.00897520781 0.0491023287 -0.0684104636 0.0677821264 -0.0107404962 -0.0496122465 -0.0815834254 0.00527408719 -0.0590254851 -0.0785773247 0.0188784525 -0.0201630667 0.0903783217 0.0660376772 -0.0537738986 -0.00305890292 0.0318506062 -0.00334130228 -0.0487806462 -0.0375611372 0.0717071518 0.0809051469 0.0593942031 0.0196136683 0.0430372581 0.0584989712 -0.0553492084 -0.0113546997 -0.0799906403 0.0207001865 0.0755734071 -0.0917899907 -0.0584509484 0.0401399508 -0.0882387981 -0.00588344038 0.062330313 0.0560731515 0.000227436423 -0.0714901984 0.00690488517 0.0544274375 0.0361999944 0.00607398897 0.0662547573 0.0280563757 -0.0457966216 -0.0303432643 0.0340396836 0.0902930573 0.0676590726 -0.00307103246 0.0107031614 0.0494279489 -0.0453004614 -0.0485144965 0.0769763067 0.0530228838 -0.0491969734 0.0534297898 0.075325869 -0.0840403661 -0.00737266988 -0.0655905902 0.00861051679 0.053658165 0.00577718019 0.000181540847 0.0166449398 0.06888818 -0.0522073694 -0.0863857567 -0.0235220194 -0.0114848912 -0.0430347659 -0.069742322 -0.0122361705 -0.00430773944 0.0802420601 -0.0202199668 0.0686627105 -0.0908020511 -0.0831669942 0.0752818212 -0.0709480792 -0.0878449678 -0.0679504052 -0.0342122428 -0.0661601797 -0.0423724279 0.0671125129 -0.0787862241 -0.0492549948 0.0418945774 -0.0389125347 -0.0797523335 -0.0523900315 -0.00707392395 -0.0641998649 -0.0206853524 0.0297000557 -0.0403424241 -0.0130258426 0.0863397643 0.0761201605 -0.0541506298 -0.00776427984 0.0764738992 0.0282557681 -0.0741224885 0.025916934 -0.0103095546 -0.0173238963 0.0556121841 0.0581567064 -0.0225667432 -0.0125677809 -0.0354059152 -0.0274171904 -0.0185849369 0.036896877 0.0740740225 0.000726476312 -0.0109842196 0.0897985771 0.0354291424 0.019101128 0.0249330923 -0.0266653374 -0.0257657915 -0.0570205525 0.0640414134 -0.0196410492 0.0479417667 -0.00170207024 -0.0358968601 0.0662455633 -0.0608785935 0.0596871153 0.000315874815 0.00909679383 -0.0720569417 -0.059581846 0.0894837305 -0.00814183056 0.0360466912 0.091226019 -0.071459353 0.0626684651 -0.0262114555 0.0667924955 0.019565396 0.031095475 0.0428095385 -0.0357173868 0.0290192217 -0.0111438558 -0.0813818574 -0.045990333 0.0195476115 0.0413242504 -0.0313958488 -0.0226516798 0.00270684808 0.0432039127 0.079015635 -0.0133943632 -0.0922482461 0.0394889191 0.0736657307 0.0482313558 -0.0811983123 0.0732731596 0.0425916985 -0.00660356134 0.0566181317 0.0903710648 -0.0346662104 0.0460903123 -0.00231745839 -0.0890427753 0.0777075514 0.000590585172 0.00282407552 0.0464896187 -0.0143544599 0.0404914096 0.0871532187 0.0246981308 0.0842309967 -0.00806456804 0.00802514702 0.0753147975 0.036379762 -0.0144222528 0.00216525793 -0.0589751042 6.37173653e-05 -0.0530337058 -0.0729001164 -0.069792591 0.017817013 0.0112677142 0.0846098736 -0.0684166253 -0.0677238479 -0.000434532762 0.00653849542 0.0327457562 -0.022034198 -0.0750099123 -0.0387094021 0.0849306062 -0.0898520127 -0.0273108184 0.0400960669 -0.0496618785 0.0349754319 0.0246802568 0.0290076882 -0.010152176 0.0303862542 -0.0438487828 -0.0596548095 0.0891770795 -0.0708404928 0.0482976064 -0.00532250851 0.0703725889 0.0389634743 -0.073277995 -0.0696917176 -0.0401497222 -0.0257806703 0.0601949021 -0.0367084518 0.0822639391 -0.0664055943 0.040693514 0.0485030785 0.0235389471 0.090006195 0.0810923055 0.0204400495 -0.0515534803 0.0195938349 -0.0869833231 0.0146096721 -0.0722825676 -0.0503606014 -0.0111645237 -0.0393948071 0.0573768988 0.0674176142 -0.0278738663 0.0679242983 0.0877278969 0.0545238331 -0.0127064288 0.0710946694 0.038527064 0.0610633418 0.0194812939 0.0140683427 0.0785835758 -0.0630957708 0.00481127203 -0.0838448703 0.0564863309 0.000886358321 0.0284538642 0.00657422096 0.00745598227 0.0437675342 0.0523472205 -0.0475420058 0.0299621075 -0.0444709286 -0.00191110373 -0.0660193339 0.0656327233 0.0116388276 0.0297860503 -0.0471729562 -0.040639963 0.020981282 0.0897095874 -0.0659410208 -0.0254971534 -0.0585522838 0.0538927689 0.059163399 0.0659723654 -0.0017272532 -0.0562808253 -0.0341632478 0.079860352 0.0225753486 0.0341553017 0.0132936239 -0.000649683177 0.000858850777 -0.0161829144 -0.0418416671 0.00552845746 0.0706280842 -0.0726075768 -0.00948345661 0.0859001353 -0.0136323199 0.0813613907 0.05002556 0.00631436706 0.00256703794 -0.0266521275 -0.0376127064 0.0359481648 -0.0198369175 -0.0869805291 0.0420209393 0.0844277516 0.0574717298 0.0607582405 0.0855515227 0.0483523682 -0.0489674695 0.0114837214 -0.0900520012 0.0029547289 -0.0742702484 -0.0842759684 0.00257317722 -0.0109797269 -0.0155656338 -0.0325093828 0.0421882644 0.0128170252 0.0390680358 -0.0165972412 -0.00384133309 0.0126825199 0.0600325391 -0.0127109811 0.013819389 -0.0410979129 -0.0276976079 0.0173677579 -0.0293897912 0.00406115502 -0.0861653015 0.0699720159 -0.0159278363 0.0695724264 -0.0866942778 0.0890819952 0.0191686824 0.0659489855 0.0457098112 -0.0499833636 -0.00868757814 0.0149702728 0.0236441791 0.0140175 -0.072505407 0.0155419037 0.0224151984 0.023795478 0.0398483947 -0.0607563034 -0.0636895522 0.0143802315 0.0872931257 -0.0334450454 0.0826188847 0.000606454909 -0.0568623617 0.0762277916 -0.0868929699 -0.08023718 -0.00818615407 0.0590708479 -0.00708501786 0.00437413901 -0.0406307168 -0.000656992197 0.0362803712 0.0520707294 -0.0367545858 0.0497234687 0.0863666311 -0.0900611803 0.0295918733 0.0912225172 0.0811793581 -0.058669664 -0.0289921984 0.0798357949 -0.0239558443 0.0712674633 -0.0653381348 -0.0863094032 -0.0666316003 0.0386085734 -0.0303965956 0.0509579703 0.0757794008 0.0478860959 0.0532554463 0.0576914772 0.0395869985 0.0659336075 0.0238684416 -0.0770818219 -0.0531993359 0.00675230473 -0.0815457255 -0.00297865272 0.035356991 0.0757349506 0.0633065179 -0.0639299452 -0.0908787549 -0.0210903287 -0.0892264768 0.0554816052 0.0212200359 0.023073338 0.0432464257 -0.0121290013 0.0903774872 -0.005623959 0.032297045 0.0181301832 -0.0478715673 0.0213165283 0.0684063509 0.000450201333 0.0901340768 0.0279435292 0.0560986921 -0.0493430123 0.0184610188 0.0450222269 0.0302037373 0.0261449665 0.0134890079 0.034674041 -0.0909153372 -0.0823931694 0.0878150389 0.0490871593 0.0428365692 0.0362394676 -0.00369227678 -0.0556258373 -0.00945287943 0.0910302773 -0.0604835935 0.0882617161 0.0844165757 0.00962863863 0.0891010091 0.0871586725 0.00751289725 -0.0530103967 -0.0720689818 -0.0270847455 -0.033462368 -0.0755196512 0.0112038627 -0.039447017 0.0592330173 0.0430045053 0.0173921287 -0.0665199235 0.019834429 0.0502201244 0.00343226641 0.0191227421 -0.0528176986 0.0234474689 0.0748400763 -0.00804264843 -0.0170032457 0.0280947164 0.0898320749 0.0751729682 0.061186336 -0.0522816107 -0.016077131 -0.0317471586 -0.0256145149 -0.0108278766 0.00690124929 -0.0611611195 -0.0670309365 -0.0131452084 -0.0393151753 -0.0831924826 -0.0289172903 -0.0695537552 0.00523840636 -0.0160094947 0.0246335939 0.0414473042 0.04573185 -0.0383304022 -0.0576508678 0.0672337189 0.0453174338 0.0302095711 -0.045356255 -0.0574915335 0.00260927528 -0.00611358136 -0.054552827 0.0379562303 -0.0330310278 -0.0532937832 -0.0601321943 -0.023999162 -0.055964116 0.0870380327 -0.0543301031 -0.0718403161 -0.0355462767 0.0664831921 0.0830618665 0.0468527004 -0.0682922676 -0.057743948 0.0705878958 0.0802727416 -0.0896256343 -0.0737968683 -0.00309403241 0.0065395087 0.015204832 0.0502572432 0.034152545 0.071777679 -0.0734888539 0.0484698638 0.0290584937 -0.0505979396 0.0878104344 0.014023684 -0.0413963944 -0.0557814725 0.0264606178 0.0219173655 0.0358242467 0.0901668742 0.0342820808 -0.00451401621 -0.083702594 0.0517056659 -0.087288782 0.0775997266 0.0895962492 -0.0368333161 -0.0512540489 0.0124417245 -0.0139468014 -0.0428403504 -0.0482854769 0.0655244067 0.0616982207 -0.0200833902 -0.0160617456 -0.0156312659 0.0850241408 0.0659253225 -0.00192439556 0.0553032532 0.0751190558 0.0339234248 -0.0605869554 -0.0655540824 0.0166207924 0.069537662 0.0332473889 -0.0555774793 -0.0485452451 0.0893144682 0.0572589114 -0.00551032275 -0.0383175723 0.0171434283 0.0909850076 -0.0265057608 -0.0671541095 0.00236638635 -0.00991935283 0.045918338 -0.0391575582 -0.0380990952 0.028975971 0.0905330554 0.0315157175 -0.0894271433 -0.030561585 -0.0421880037 -0.0066838786 0.0682346448 -0.0475706197 0.0608881637 0.0619709715 0.0185539499 -0.0196010992 -0.00413730741 0.016891852 0.0488773361 0.071824275 0.0181678161 0.0724871829 0.0668144152 0.00525511056 0.0138474703 0.0672335699 -0.0555952862 -0.0506129079 0.0526045486 0.0897506103 -0.0563381836 0.0172812343 0.0125200003 -0.0716398656 -0.0119876117 -0.0239607319 -0.0540798008 0.0592062399 -0.0263465568 0.0382518098 0.0890898332 -0.0596198589 -0.0904201716 0.038385801 -0.0646243989 -0.0810801759 0.02268406 0.00842726231 0.0034481585 0.0270464271 -0.0305846296 0.079363443 0.0592626259 0.0637906864 0.00281725079 -0.0534964763 0.0648277327 0.020223245 -0.0295611471 0.0418727025 -0.068593815 0.06197723 0.0312514603 -0.0732035115 0.0882652327 0.075848572 0.0617338493 -0.0107315332 0.0413017496 0.036856927 -0.0868524686 -0.00546564162 -0.0592700243 -0.0893067718 0.0321313962 -0.0582680404 0.00445747375 0.0680700019 0.0142321512 -0.0840049088 -0.00744449347 -0.0497438908 -0.0122429281 0.0661905929 -0.02400022 0.0490648523 0.0296489671 0.0775039867 -0.00244124979 -0.068327263 -0.0886867121 0.0163910463 0.040755339 0.065197669 -0.060845267 -0.0234778896 0.0576095507 0.0130864829 -0.0691704229 0.00798781961 -0.0770250559 0.00452960283 -0.0633950979 -0.054000143 -0.00311021507 -0.0480137132 0.00881075114 0.0836479887 -0.0685610399 -0.0175701231 -0.0242593959 0.000713318586 -0.0167550519 -0.0582272559 0.0834925249 -0.0419362038 0.0749877468 -0.0780220628 -0.0224030316 -0.033907596 -0.0628756732 0.0512688234 0.0586413816 -0.0537030697 -0.0319473669 -0.0587557256 -0.0305475444 -0.0052530393 -0.00324650109 0.0559279248 -0.0807136595 -0.0497078374 -0.0672399029 0.0261152089 0.0910374746 -0.0468881838 0.0516570881 0.0186452493 -0.0818429962 -0.0650489852 -0.0899540111 -0.0088108778 0.0823060498 0.0113910362 0.0446244255 0.0102079287 -0.0196650624 -0.0181698203 -0.0335793085 0.00621362031 -0.0702295676 -0.0464090817 -0.0211886242 0.0371881649 -0.0404574089 0.0023772195 0.0353955701 -0.0884486288 -0.0502135269 0.0105407685 -0.00758051872 -0.00454146415 -0.0164081901 0.0333881751 -0.00870084763 0.0641397461 -0.00580607355 -0.0887801275 -0.082279861 -0.0382778868 0.0539768711 0.0889353827 -0.0524639003 0.078463681 0.0634361431 -0.0519941747 0.0741301551 0.0314054042 0.0736820176 0.0231923908 0.00672763586 0.0718603507 -0.060397774 -0.00623442233 -0.024011068 -0.0502440333 -0.0238968134 0.044805415 0.03716176 0.0866432115 -0.0333108939 -0.0817748979 -0.0134241208 -0.00522872061 -0.0359961689 0.0138792098 0.0848171189 -0.0624926649 0.0848621801 0.0476989672 -0.0466288812 -0.0116913021 -0.0306325257 0.0658282265 0.0614019111 0.00328691304 -0.0322239511 0.0655945316 0.0084971413 0.086652942 -0.00222917646 -0.0606245697 0.0438054129 0.0614505187 -0.0537781455 -0.0822727978 -0.0658394247 -0.0830445439 -0.000728301704 -0.0846520364 0.0179623291 -0.0693880394 0.0296948105 0.0169596449 -0.0126947388 -0.0416296199 -0.0248242691 -0.0540439896 -0.0434490703 0.0114598423 0.0148696154 0.0632136986 0.0274999067 -0.0507304445 -0.0635118186 0.0843986794 -0.057290379 -0.0548526533 0.0653604493 0.0672484413 -0.0385114625 0.00801108778 -0.0438951999 -0.0303793848 -0.0315494835 0.0652649775 0.004901357 0.0399690345 -0.0791071132 -0.0551356412 0.0109100416 0.0328877345 -0.031780988 0.0241330117 0.0442699119 0.0468556508 0.022691302 0.0620602742 0.0341575965 0.0443343744 0.0145924613 0.0771635547 -0.0437043905 -0.0840514377 -0.0595939085 -0.0281249806 0.040136911 0.0280683041 0.028155975 -0.0454803072 -0.0238094553 -0.088113673 0.0186308101 -0.0260364115 -0.0071246326 0.0606869236 -0.0145625919 -0.0361072123 -0.0280172005 0.0743361041 -0.0694953427 -0.0360549614 -0.0182278603 0.0349920467 0.0577459112 -0.0392514542 -0.0730342492 0.016227752 0.0875464007 0.0800387338 0.0724099651 0.0504808053 -0.0106149241 0.0182168782 0.0902558193 0.0854625925 -0.0497673303 0.0111328065 0.0756930783 0.0317866877 -0.039710328 -0.00107556581 -0.0471415482 -0.0369691886 -0.00974432379 0.0111865997 -0.0044811368 -0.0248006061 -0.0343325734 0.0701516494 0.0243751258 -0.0276767612 0.0295438468 -0.0228981748 -0.0187737048 -0.0717720166 0.0278871357 -0.0880351812 0.0889703855 0.0128898174 -0.0374262333 0.0411262885 -0.0280338153 -0.0801803693 0.0594585612 0.0178878233 -0.0479707718 0.00231871754 0.0481788144 -0.0599289276 -0.0354419015 0.0289686695 0.00817883015 0.0266318396 -0.0208193362 0.0896193162 0.00926870108 0.0340128019 0.0866080448 0.0613125786 -0.0255525783 0.0567194 0.0770707056 0.0784818158 -0.0561278947 0.00895603746 0.0699640587 -0.0423903652 0.0258065984 -0.0209744424 0.0239702165 0.0912013426 0.0410929844 0.0680784211 0.0676013455 0.0799748525 0.0778850242 -0.0809571445 -0.0485545769 0.0373921469 0.0534635261 0.0156047642 -0.0463864803 -0.0762455985 -0.0920696557 -0.0355380885 -0.0512720346 0.0030406788 0.0494132861 -0.000837787986 0.0720236823 0.0259418339 0.0521891192 0.0504899099 -0.0143442005 -0.0156626105 -0.0255633369 -0.00902590156 0.0253952891 -0.0845051855 0.0711695477 0.0800358877 -0.0728882998 0.084878169 0.071782358 -0.0817806646 0.040077962 -0.0440430455 -0.0247468799 0.0543578342 0.0194355771 -0.032321807 -0.0160121769 -0.0176372528 0.0687336847 0.0919501111 -0.0663749352 -0.0346084312 0.0404525921 0.0557674542 0.0738795027 0.0832091793 -0.0506817549 0.0157810897 0.0212106556 0.0795802549 -0.026343964 0.0591238365 -0.0209486634 -0.0368987098 -0.00894069672 0.0205766708 -0.057158757 -0.0277944058 0.0247230008 0.0708055571 0.0430708453 -0.0659603253 0.0840475634 0.0805856213 -0.0787347183 0.00240164995 0.0459522083 -0.076741606 -0.0184753463 -0.0515926816 -0.0206495225 0.0109975785 0.0268712416 0.0646271929 0.0487682149 0.0828679726 0.0294161141 -0.0340196304 0.0892602876 0.0246401057 -0.0263224095 -0.039881371 0.0740597025 0.0878100172 -0.0805840418 -0.076888375 0.0153023601 -0.0763068795 0.0861743912 -0.0912674442 -0.0767520145 -0.0404524319 0.00172370672 -0.0211072043 -0.0370333269 -0.0652076304 0.0182034075 0.00630353391 0.0891098157 -0.0874347091 -0.0642225146 -0.0116002038 -0.0638870522 0.0443636104 -0.0854940265 0.0488350764 -0.0285331234 0.0134582371 0.0875275806 -0.0741704553 0.0716903582 0.0793155804 0.0348582789 0.0701143816 -0.0231312215 0.0730510876 0.0356755033 -0.0712756142 0.00882402062 0.00125862658 0.0782864168 -0.000534832478 0.0829248354 0.0238016844 0.0893230364 -0.0477464832 0.0893439278 0.0686622187 -0.0817282572 -0.0575004704 0.0823340937 -0.0161790848 -0.0560752675 -0.00556992739 0.0208469778 0.0416112617 -0.0112131462 0.0232331976 0.0294193551 -0.0847662538 -0.0202047974 0.0146003813 -0.0241549537 0.0486337468 -0.0203270018 -0.0505338684 0.0872772262 -0.0243151262 0.0802100375 -0.00532783568 0.0818887278 0.0753694549 0.0198987648 0.00310402364 -0.000548258424 -0.0559710711 0.0610449687 -0.0656017736 0.0368102714 -0.0641975105 -0.0611163303 -0.0775725245 -0.00941968709 0.0306788385 0.0843313709 0.034271501 6.95064664e-05 -0.00243563205 0.0352229252 -0.0390638374 0.0581196025 0.065670155 0.0141450763 0.0178681687 -0.0354627259 0.057952188 0.0672771707 -0.0572467111 0.0786492154 -0.0651638582 -0.0483451039 -0.0250732079 -0.0795644969 -0.0756258965 0.0781184658 -0.0589162931 -0.0568547696 0.0376744047 -0.0409404933 -0.0481391512 -0.00520472974 -0.00502437353 0.0618470684 -0.0861824304 0.0180812329 0.0241561681 0.0118249059 0.036368452 -0.0109876916 -0.0384975523 -0.0510925837 0.0415098593 0.0273642987 0.0327793583 0.0563225523 0.00496076792 0.0513857827 0.0872582719 0.0143002272 0.0708018616 -0.017889671 0.0742098764 -0.0817545801 -0.00989375263 -0.0533016399 -0.0698689669 -0.0825026482 -0.0240472332 -0.0548172593 0.0312533528 0.0749759302 0.0848601237 0.010336183 -0.00269086659 0.00602851808 -0.0606395379 -0.00234121084 0.0520278737 0.082319431 -0.0665093511 0.0753033087 0.0159885809 0.0684010014 -0.0914960206 0.0502850637 0.0842634216 -0.0263637081 0.000470846891 -0.00508543104 -0.089117147 0.0759389773 -0.039316427 -0.0030734539 0.0875152126 0.0259787664 -0.0206250474 0.00107868761 -0.0322635025 -0.028956145 -0.00763433427 -0.0436886102 -0.0875325277 0.0338042751 -0.00669532269 0.0622604117 -0.0249196216 0.0435016379 0.0154566765 -0.0525258146 0.0113652647 0.0393719897 -0.0350634977 0.0286183059 0.0253256932 -0.00666769594 -0.0716381967 -0.0879089087 0.0297472179 -0.075027518 -0.0509686843 -0.0515384711 -0.0585313514 -0.0532592051 0.00847174227 0.0454187915 0.0346005335 -0.0226799473 0.0331792906 -0.0349445529 0.0798304304 -0.0156024322 0.0143850967 -0.00959330797 0.065459542 -0.00613863021 0.0498886034 -0.00439392775 -0.0691997185 0.0891360566 0.0798450634 0.0103019997 0.0303772911 0.0593604669 +tensor_conv2dbias0 10 +0 0 0 0 0 0 0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.h5 b/tmva/sofie/test/KerasParserTest/CNNtest.h5 new file mode 100644 index 0000000000000..a74502815ec37 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/CNNtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/CNNtest.hxx b/tmva/sofie/test/KerasParserTest/CNNtest.hxx new file mode 100644 index 0000000000000..49427d4466794 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/CNNtest.hxx @@ -0,0 +1,302 @@ +//Code generated automatically by TMVA for Inference of Model file [CNNtest.h5] at [Thu Aug 24 08:55:45 202] + +#ifndef ROOT_TMVA_SOFIE_CNNTEST +#define ROOT_TMVA_SOFIE_CNNTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_CNNtest{ +namespace BLAS{ + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_dense1bias0 = std::vector(2); +float * tensor_dense1bias0 = fTensor_dense1bias0.data(); +std::vector fTensor_dense1kernel0 = std::vector(128); +float * tensor_dense1kernel0 = fTensor_dense1kernel0.data(); +std::vector fTensor_densebias0 = std::vector(64); +float * tensor_densebias0 = fTensor_densebias0.data(); +std::vector fTensor_conv2dkernel0 = std::vector(90); +float * tensor_conv2dkernel0 = fTensor_conv2dkernel0.data(); +std::vector fTensor_densekernel0 = std::vector(40960); +float * tensor_densekernel0 = fTensor_densekernel0.data(); +std::vector fTensor_conv2dbias0 = std::vector(10); +float * tensor_conv2dbias0 = fTensor_conv2dbias0.data(); +std::vector fTensor_dense1Sigmoid0 = std::vector(2); +float * tensor_dense1Sigmoid0 = fTensor_dense1Sigmoid0.data(); +std::vector fTensor_dense1Dense = std::vector(2); +float * tensor_dense1Dense = fTensor_dense1Dense.data(); +std::vector fTensor_denseTanh0 = std::vector(64); +float * tensor_denseTanh0 = fTensor_denseTanh0.data(); +std::vector fTensor_denseDense = std::vector(64); +float * tensor_denseDense = fTensor_denseDense.data(); +std::vector fTensor_conv2dRelu0 = std::vector(2560); +float * tensor_conv2dRelu0 = fTensor_conv2dRelu0.data(); +std::vector fTensor_densebias0bcast = std::vector(64); +float * tensor_densebias0bcast = fTensor_densebias0bcast.data(); +std::vector fTensor_flattenReshape0 = std::vector(640); +float * tensor_flattenReshape0 = fTensor_flattenReshape0.data(); +std::vector fTensor_reshapeReshape0 = std::vector(256); +float * tensor_reshapeReshape0 = fTensor_reshapeReshape0.data(); +std::vector fTensor_maxpooling2dPostTrans = std::vector(640); +float * tensor_maxpooling2dPostTrans = fTensor_maxpooling2dPostTrans.data(); +std::vector fTensor_maxpooling2dPreTrans = std::vector(2560); +float * tensor_maxpooling2dPreTrans = fTensor_maxpooling2dPreTrans.data(); +std::vector fTensor_conv2dPostTrans = std::vector(2560); +float * tensor_conv2dPostTrans = fTensor_conv2dPostTrans.data(); +std::vector fTensor_conv2dConv2D = std::vector(2560); +float * tensor_conv2dConv2D = fTensor_conv2dConv2D.data(); +std::vector fTensor_conv2dPreTrans = std::vector(256); +float * tensor_conv2dPreTrans = fTensor_conv2dPreTrans.data(); +std::vector fTensor_maxpooling2dMaxPooling2D = std::vector(640); +float * tensor_maxpooling2dMaxPooling2D = fTensor_maxpooling2dMaxPooling2D.data(); +std::vector fTensor_dense1bias0bcast = std::vector(2); +float * tensor_dense1bias0bcast = fTensor_dense1bias0bcast.data(); +std::vector fTensor_conv2dbias0bcast = std::vector(2560); +float * tensor_conv2dbias0bcast = fTensor_conv2dbias0bcast.data(); + +std::vector fVec_op_2_f = std::vector(90); +std::vector fVec_op_2_xcol = std::vector(2304); + +std::vector fVec_op_6_xpad = std::vector(2560); + +Session(std::string filename ="") { + if (filename.empty()) filename = "CNNtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 2) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 2 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 128) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 128 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densebias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densebias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densebias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2dkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2dkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 90) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 90 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2dkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densekernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densekernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 40960) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 40960 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densekernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2dbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2dbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 10) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 10 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2dbias0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_conv2dbias0, { 10 , 1 , 1 }, { 1 , 10 , 16 , 16 }); + std::copy(data, data + 2560, tensor_conv2dbias0bcast); + delete[] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_densebias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_densebias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense1bias0,{ 2 }, { 1 , 2 }); + std::copy(data, data + 2, tensor_dense1bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_reshapeinput){ + ///--------Reshape operator + + std::copy( tensor_reshapeinput, tensor_reshapeinput + 256, tensor_reshapeReshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 256 ; id++){ + tensor_conv2dPreTrans[id] = tensor_reshapeReshape0[ ( id / 256 ) * 256 + ( (id % 256) / 16 ) * 16 + ( (id % 16) ) * 1 + ( (id % 256) / 256 )]; + } + +//---- operator Conv op_2 + float * op_2_f = fVec_op_2_f.data(); + for (std::size_t oc = 0; oc < 10; oc++) { + for (std::size_t ic = 0; ic < 1; ic++) { + for (std::size_t kh = 0; kh < 3; kh++) { + for (std::size_t kw = 0; kw < 3; kw++) { + op_2_f[oc * 9 + ic * 9 + kh * 3 + kw * 1 ] = tensor_conv2dkernel0[oc * 9 + ic * 9 + kh * 3 + kw ]; + } + } + } + } + char op_2_transA = 'N'; + char op_2_transB = 'N'; + int op_2_m = 256; + int op_2_n = 10; + int op_2_k = 9; + float op_2_alpha = 1.0; + float op_2_beta = 0.0; + float * op_2_xcol = fVec_op_2_xcol.data(); + for (size_t n = 0; n < 1; n++) { + size_t out_offset = n * 2560; + size_t x_offset = n * 256; + TMVA::Experimental::SOFIE::UTILITY::Im2col(tensor_conv2dPreTrans + x_offset,1,16,16,3,3,1,1,1,1,1,1,op_2_xcol); + + BLAS::sgemm_(&op_2_transA, &op_2_transB, &op_2_m, &op_2_n, &op_2_k, &op_2_alpha, op_2_xcol, &op_2_m, + op_2_f, &op_2_k, &op_2_beta, tensor_conv2dConv2D + out_offset, &op_2_m); + int op_2_size = 2560; + float op_2_gamma = 1.0; + int op_2_incx = 1; + int op_2_incy = 1; + BLAS::saxpy_(&op_2_size, &op_2_gamma, tensor_conv2dbias0bcast, &op_2_incx, tensor_conv2dConv2D + out_offset, &op_2_incy); + } + ///------- Transpose operator + + for (size_t id = 0; id < 2560 ; id++){ + tensor_conv2dPostTrans[id] = tensor_conv2dConv2D[ ( id / 2560 ) * 2560 + ( (id % 10) ) * 256 + ( (id % 2560) / 160 ) * 16 + ( (id % 160) / 10 )]; + } + +//------ RELU + for (int id = 0; id < 2560 ; id++){ + tensor_conv2dRelu0[id] = ((tensor_conv2dPostTrans[id] > 0 )? tensor_conv2dPostTrans[id] : 0); + } + ///------- Transpose operator + + for (size_t id = 0; id < 2560 ; id++){ + tensor_maxpooling2dPreTrans[id] = tensor_conv2dRelu0[ ( id / 2560 ) * 2560 + ( (id % 256) / 16 ) * 160 + ( (id % 16) ) * 10 + ( (id % 2560) / 256 )]; + } + +//---- operator MaxPool op_6 +{ + constexpr int hsize = 16; + constexpr int hmin = 0; + constexpr int hmax = 15; + constexpr int kh = 2; + constexpr int wsize = 16; + constexpr int wmin = 0; + constexpr int wmax = 15; + constexpr int kw = 2; + size_t outIndex = 0; + for (size_t n = 0; n < 10; n++) { + size_t inputOffset = n*256; + for (int i = hmin; i < hmax; i+=2) { + for (int j = wmin; j < wmax; j+=2) { + float value = -INFINITY; + for (int l = i; l < i + kh; l++) { + if (l < 0 || l >= hsize) continue; + for (int m = j; m < j + kw; m++) { + if (m < 0 || m >= wsize) continue; + int index = inputOffset + l*wsize + m; + auto xval = tensor_maxpooling2dPreTrans[index]; + if (xval > value) value = xval; + } + } + tensor_maxpooling2dMaxPooling2D[outIndex++] = value; + } + } + } + } + ///------- Transpose operator + + for (size_t id = 0; id < 640 ; id++){ + tensor_maxpooling2dPostTrans[id] = tensor_maxpooling2dMaxPooling2D[ ( id / 640 ) * 640 + ( (id % 10) ) * 64 + ( (id % 640) / 80 ) * 8 + ( (id % 80) / 10 )]; + } + ///--------Flatten operator + + std::copy( tensor_maxpooling2dPostTrans, tensor_maxpooling2dPostTrans + 640, tensor_flattenReshape0); + +//--------- Gemm + char op_9_transA = 'n'; + char op_9_transB = 'n'; + int op_9_m = 1; + int op_9_n = 64; + int op_9_k = 640; + float op_9_alpha = 1; + float op_9_beta = 1; + int op_9_lda = 640; + int op_9_ldb = 64; + std::copy(tensor_densebias0bcast, tensor_densebias0bcast + 64, tensor_denseDense); + BLAS::sgemm_(&op_9_transB, &op_9_transA, &op_9_n, &op_9_m, &op_9_k, &op_9_alpha, tensor_densekernel0, &op_9_ldb, tensor_flattenReshape0, &op_9_lda, &op_9_beta, tensor_denseDense, &op_9_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_denseTanh0[id] = std::tanh(tensor_denseDense[id]); + } + +//--------- Gemm + char op_11_transA = 'n'; + char op_11_transB = 'n'; + int op_11_m = 1; + int op_11_n = 2; + int op_11_k = 64; + float op_11_alpha = 1; + float op_11_beta = 1; + int op_11_lda = 64; + int op_11_ldb = 2; + std::copy(tensor_dense1bias0bcast, tensor_dense1bias0bcast + 2, tensor_dense1Dense); + BLAS::sgemm_(&op_11_transB, &op_11_transA, &op_11_n, &op_11_m, &op_11_k, &op_11_alpha, tensor_dense1kernel0, &op_11_ldb, tensor_denseTanh0, &op_11_lda, &op_11_beta, tensor_dense1Dense, &op_11_n); + for (int id = 0; id < 2 ; id++){ + tensor_dense1Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense1Dense[id])); + } + std::vector ret (tensor_dense1Sigmoid0, tensor_dense1Sigmoid0 + 2); + return ret; +} +}; +} //TMVA_SOFIE_CNNtest + +#endif // ROOT_TMVA_SOFIE_CNNTEST diff --git a/tmva/sofie/test/KerasParserTest/Convtest.dat b/tmva/sofie/test/KerasParserTest/Convtest.dat new file mode 100644 index 0000000000000..4f3a6cf22d8a1 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Convtest.dat @@ -0,0 +1,4 @@ +tensor_conv2d2bias0 1 +0 +tensor_conv2d2kernel0 4 +0.0131092193 0.0967286974 -0.00668216217 0.0209297948 diff --git a/tmva/sofie/test/KerasParserTest/Convtest.h5 b/tmva/sofie/test/KerasParserTest/Convtest.h5 new file mode 100644 index 0000000000000..ca2c842ba32dd Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Convtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Convtest.hxx b/tmva/sofie/test/KerasParserTest/Convtest.hxx new file mode 100644 index 0000000000000..bd529f121b0eb --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Convtest.hxx @@ -0,0 +1,136 @@ +//Code generated automatically by TMVA for Inference of Model file [Convtest.h5] at [Thu Aug 24 08:55:47 202] + +#ifndef ROOT_TMVA_SOFIE_CONVTEST +#define ROOT_TMVA_SOFIE_CONVTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Convtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_conv2d2bias0 = std::vector(1); +float * tensor_conv2d2bias0 = fTensor_conv2d2bias0.data(); +std::vector fTensor_conv2d2kernel0 = std::vector(4); +float * tensor_conv2d2kernel0 = fTensor_conv2d2kernel0.data(); +std::vector fTensor_conv2d2PostTrans = std::vector(3); +float * tensor_conv2d2PostTrans = fTensor_conv2d2PostTrans.data(); +std::vector fTensor_conv2d2bias0bcast = std::vector(3); +float * tensor_conv2d2bias0bcast = fTensor_conv2d2bias0bcast.data(); +std::vector fTensor_conv2d2Conv2D = std::vector(3); +float * tensor_conv2d2Conv2D = fTensor_conv2d2Conv2D.data(); +std::vector fTensor_conv2d2Sigmoid0 = std::vector(3); +float * tensor_conv2d2Sigmoid0 = fTensor_conv2d2Sigmoid0.data(); +std::vector fTensor_conv2d2PreTrans = std::vector(4); +float * tensor_conv2d2PreTrans = fTensor_conv2d2PreTrans.data(); +std::vector fTensor_reshape2Reshape0 = std::vector(4); +float * tensor_reshape2Reshape0 = fTensor_reshape2Reshape0.data(); + +std::vector fVec_op_2_f = std::vector(4); +std::vector fVec_op_2_xcol = std::vector(12); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Convtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2d2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2d2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 1) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 1 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2d2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_conv2d2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_conv2d2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_conv2d2kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_conv2d2bias0, { 1 , 1 , 1 }, { 1 , 1 , 1 , 3 }); + std::copy(data, data + 3, tensor_conv2d2bias0bcast); + delete[] data; + } +} + +std::vector infer(float* tensor_reshape2input){ + ///--------Reshape operator + + std::copy( tensor_reshape2input, tensor_reshape2input + 4, tensor_reshape2Reshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 4 ; id++){ + tensor_conv2d2PreTrans[id] = tensor_reshape2Reshape0[ ( id / 4 ) * 4 + ( (id % 4) / 2 ) * 2 + ( (id % 2) ) * 1 + ( (id % 4) / 4 )]; + } + +//---- operator Conv op_2 + float * op_2_f = fVec_op_2_f.data(); + for (std::size_t oc = 0; oc < 1; oc++) { + for (std::size_t ic = 0; ic < 1; ic++) { + for (std::size_t kh = 0; kh < 2; kh++) { + for (std::size_t kw = 0; kw < 2; kw++) { + op_2_f[oc * 4 + ic * 4 + kh * 2 + kw * 1 ] = tensor_conv2d2kernel0[oc * 4 + ic * 4 + kh * 2 + kw ]; + } + } + } + } + char op_2_transA = 'N'; + char op_2_transB = 'N'; + int op_2_m = 3; + int op_2_n = 1; + int op_2_k = 4; + float op_2_alpha = 1.0; + float op_2_beta = 0.0; + float * op_2_xcol = fVec_op_2_xcol.data(); + for (size_t n = 0; n < 1; n++) { + size_t out_offset = n * 3; + size_t x_offset = n * 4; + TMVA::Experimental::SOFIE::UTILITY::Im2col(tensor_conv2d2PreTrans + x_offset,1,2,2,2,2,0,1,1,1,1,1,op_2_xcol); + + BLAS::sgemm_(&op_2_transA, &op_2_transB, &op_2_m, &op_2_n, &op_2_k, &op_2_alpha, op_2_xcol, &op_2_m, + op_2_f, &op_2_k, &op_2_beta, tensor_conv2d2Conv2D + out_offset, &op_2_m); + int op_2_size = 3; + float op_2_gamma = 1.0; + int op_2_incx = 1; + int op_2_incy = 1; + BLAS::saxpy_(&op_2_size, &op_2_gamma, tensor_conv2d2bias0bcast, &op_2_incx, tensor_conv2d2Conv2D + out_offset, &op_2_incy); + } + ///------- Transpose operator + + for (size_t id = 0; id < 3 ; id++){ + tensor_conv2d2PostTrans[id] = tensor_conv2d2Conv2D[ ( id / 3 ) * 3 + ( (id % 1) ) * 3 + ( (id % 3) / 3 ) * 3 + ( (id % 3) / 1 )]; + } + for (int id = 0; id < 3 ; id++){ + tensor_conv2d2Sigmoid0[id] = 1 / (1 + std::exp( - tensor_conv2d2PostTrans[id])); + } + std::vector ret (tensor_conv2d2Sigmoid0, tensor_conv2d2Sigmoid0 + 3); + return ret; +} +}; +} //TMVA_SOFIE_Convtest + +#endif // ROOT_TMVA_SOFIE_CONVTEST diff --git a/tmva/sofie/test/KerasParserTest/Flattentest.h5 b/tmva/sofie/test/KerasParserTest/Flattentest.h5 new file mode 100644 index 0000000000000..8e688d183d1da Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Flattentest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Flattentest.hxx b/tmva/sofie/test/KerasParserTest/Flattentest.hxx new file mode 100644 index 0000000000000..3bb4732100aa9 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Flattentest.hxx @@ -0,0 +1,33 @@ +//Code generated automatically by TMVA for Inference of Model file [Flattentest.h5] at [Thu Aug 24 08:55:48 202] + +#ifndef ROOT_TMVA_SOFIE_FLATTENTEST +#define ROOT_TMVA_SOFIE_FLATTENTEST + +#include +#include "TMVA/SOFIE_common.hxx" + +namespace TMVA_SOFIE_Flattentest{ +struct Session { +std::vector fTensor_flatten1Reshape0 = std::vector(4); +float * tensor_flatten1Reshape0 = fTensor_flatten1Reshape0.data(); +std::vector fTensor_reshape4Reshape0 = std::vector(4); +float * tensor_reshape4Reshape0 = fTensor_reshape4Reshape0.data(); + + +Session(std::string = "") { +} + +std::vector infer(float* tensor_reshape4input){ + ///--------Reshape operator + + std::copy( tensor_reshape4input, tensor_reshape4input + 4, tensor_reshape4Reshape0); + ///--------Flatten operator + + std::copy( tensor_reshape4Reshape0, tensor_reshape4Reshape0 + 4, tensor_flatten1Reshape0); + std::vector ret (tensor_flatten1Reshape0, tensor_flatten1Reshape0 + 4); + return ret; +} +}; +} //TMVA_SOFIE_Flattentest + +#endif // ROOT_TMVA_SOFIE_FLATTENTEST diff --git a/tmva/sofie/test/KerasParserTest/GRUtest.dat b/tmva/sofie/test/KerasParserTest/GRUtest.dat new file mode 100644 index 0000000000000..2e5a52319955f --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtest.dat @@ -0,0 +1,6 @@ +tensor_grugrucellbias0 36 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_grugrucellrecurrentkernel0 27 +0.142976522 0.265595526 -0.0871705934 0.508418024 -0.128727555 -0.215290904 -0.100724742 0.418239772 -0.214236975 0.24607569 0.177591771 0.0677626505 -0.288328648 -0.608325481 -0.138291806 -0.263606548 0.520514011 -0.232579231 -0.176627934 -0.162072167 0.297724485 0.452055812 -0.181038439 -0.606996059 0.512051105 0.0799251646 0.604367495 +tensor_grugrucellkernel0 18 +-0.451334268 -0.545931935 0.648837268 0.414247096 0.0038985014 -0.251027346 0.296413839 -0.0346105099 -0.609088242 -0.557753861 -0.107886195 -0.425599784 0.236953855 0.342886388 0.0363264084 0.0106346011 0.510130703 0.246422052 diff --git a/tmva/sofie/test/KerasParserTest/GRUtest.h5 b/tmva/sofie/test/KerasParserTest/GRUtest.h5 new file mode 100644 index 0000000000000..75a9cf06d00fb Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/GRUtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/GRUtest.hxx b/tmva/sofie/test/KerasParserTest/GRUtest.hxx new file mode 100644 index 0000000000000..b9e272a290464 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtest.hxx @@ -0,0 +1,187 @@ +//Code generated automatically by TMVA for Inference of Model file [GRUtest.h5] at [Thu Aug 24 08:55:48 202] + +#ifndef ROOT_TMVA_SOFIE_GRUTEST +#define ROOT_TMVA_SOFIE_GRUTEST + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_GRUtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_grugrucellbias0 = std::vector(36); +float * tensor_grugrucellbias0 = fTensor_grugrucellbias0.data(); +std::vector fTensor_grugrucellrecurrentkernel0 = std::vector(27); +float * tensor_grugrucellrecurrentkernel0 = fTensor_grugrucellrecurrentkernel0.data(); +std::vector fTensor_grugrucellkernel0 = std::vector(18); +float * tensor_grugrucellkernel0 = fTensor_grugrucellkernel0.data(); +std::vector fTensor_gruPartitionedCall1 = std::vector(6); +float * tensor_gruPartitionedCall1 = fTensor_gruPartitionedCall1.data(); +std::vector fTensor_reshape1Reshape0 = std::vector(4); +float * tensor_reshape1Reshape0 = fTensor_reshape1Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_f_update_gate = std::vector(6); +std::vector fVec_op_1_f_reset_gate = std::vector(6); +std::vector fVec_op_1_f_hidden_gate = std::vector(6); +std::vector fVec_op_1_update_gate = std::vector(6); +std::vector fVec_op_1_reset_gate = std::vector(6); +std::vector fVec_op_1_hidden_gate = std::vector(6); +std::vector fVec_op_1_feedback = std::vector(3); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "GRUtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellbias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 27) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 27 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_grugrucellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_grugrucellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 18) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 18 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_grugrucellkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape1input){ + ///--------Reshape operator + + std::copy( tensor_reshape1input, tensor_reshape1input + 4, tensor_reshape1Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape1Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_f_update_gate = fVec_op_1_f_update_gate.data(); + float * op_1_f_reset_gate = fVec_op_1_f_reset_gate.data(); + float * op_1_f_hidden_gate = fVec_op_1_f_hidden_gate.data(); + float * op_1_update_gate = fVec_op_1_update_gate.data(); + float * op_1_reset_gate = fVec_op_1_reset_gate.data(); + float * op_1_hidden_gate = fVec_op_1_hidden_gate.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + float * op_1_feedback = fVec_op_1_feedback.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_m2 = 1; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + int op_1_feedback_size = 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_update_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_reset_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_grugrucellkernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_hidden_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 18, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 6, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 24, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_grugrucellbias0 + 12, &op_1_incx, op_1_f_hidden_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_f_update_gate + offset, op_1_f_update_gate + offset + 3, op_1_update_gate + gate_offset); + std::copy(op_1_f_reset_gate + offset, op_1_f_reset_gate + offset + 3, op_1_reset_gate + gate_offset); + std::copy(op_1_f_hidden_gate + offset, op_1_f_hidden_gate + offset + 3, op_1_hidden_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_update_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_reset_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_update_gate[i] = 1. / (1. + exp(-op_1_update_gate[i])); + op_1_reset_gate[i] = 1. / (1. + exp(-op_1_reset_gate[i])); + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m2, &op_1_n, &op_1_alpha, tensor_grugrucellrecurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_beta, op_1_feedback, &op_1_n); + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, tensor_grugrucellbias0 + 30, &op_1_incx, op_1_feedback, &op_1_incy); + for (size_t i = 0; i < 3; i++) { + op_1_feedback[i] *= op_1_reset_gate[i + offset]; + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, op_1_feedback, &op_1_incx, op_1_hidden_gate + offset, &op_1_incy); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_hidden_gate[i]); + op_1_hidden_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = ( 1. - op_1_update_gate[i]) * op_1_hidden_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_hidden_state[i + offset] += op_1_update_gate[i + offset] * op_1_hidden_state[i + previous_offset]; + } + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_gruPartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_gruPartitionedCall1, tensor_gruPartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_GRUtest + +#endif // ROOT_TMVA_SOFIE_GRUTEST diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat new file mode 100644 index 0000000000000..70ba36fc93803 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_gru2grucell2bias0 36 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_gru2grucell2recurrentkernel0 27 +0.496271729 -0.224326789 -0.0511889234 0.0169668663 0.270514786 0.148597926 -0.383253664 -0.386070579 0.393358439 0.0115303406 -0.537418008 0.462909847 -0.177885264 -0.195221469 -0.158118606 0.152738422 0.118375264 0.564330816 0.0670160875 0.228355959 0.426117003 -0.650368094 -0.144520357 -0.164931223 0.352091342 -0.559887469 -0.232450277 +tensor_gru2grucell2kernel0 18 +0.0454398394 0.438350499 0.283750355 0.723625958 0.111354887 0.718402088 0.12022084 -0.136382341 0.496713221 -0.0765696764 0.506236136 -0.504955649 0.0743073821 0.157554507 -0.357403427 -0.293779075 0.65359956 -0.324276775 diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 new file mode 100644 index 0000000000000..754ba4470ca31 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx new file mode 100644 index 0000000000000..2fa9c244f60d4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/GRUtestWithBias.hxx @@ -0,0 +1,187 @@ +//Code generated automatically by TMVA for Inference of Model file [GRUtestWithBias.h5] at [Thu Aug 24 08:55:50 202] + +#ifndef ROOT_TMVA_SOFIE_GRUTESTWITHBIAS +#define ROOT_TMVA_SOFIE_GRUTESTWITHBIAS + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_GRUtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_gru2grucell2bias0 = std::vector(36); +float * tensor_gru2grucell2bias0 = fTensor_gru2grucell2bias0.data(); +std::vector fTensor_gru2grucell2recurrentkernel0 = std::vector(27); +float * tensor_gru2grucell2recurrentkernel0 = fTensor_gru2grucell2recurrentkernel0.data(); +std::vector fTensor_gru2grucell2kernel0 = std::vector(18); +float * tensor_gru2grucell2kernel0 = fTensor_gru2grucell2kernel0.data(); +std::vector fTensor_gru2PartitionedCall1 = std::vector(6); +float * tensor_gru2PartitionedCall1 = fTensor_gru2PartitionedCall1.data(); +std::vector fTensor_reshape8Reshape0 = std::vector(4); +float * tensor_reshape8Reshape0 = fTensor_reshape8Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_f_update_gate = std::vector(6); +std::vector fVec_op_1_f_reset_gate = std::vector(6); +std::vector fVec_op_1_f_hidden_gate = std::vector(6); +std::vector fVec_op_1_update_gate = std::vector(6); +std::vector fVec_op_1_reset_gate = std::vector(6); +std::vector fVec_op_1_hidden_gate = std::vector(6); +std::vector fVec_op_1_feedback = std::vector(3); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "GRUtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 27) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 27 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2recurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_gru2grucell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_gru2grucell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 18) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 18 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_gru2grucell2kernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape8input){ + ///--------Reshape operator + + std::copy( tensor_reshape8input, tensor_reshape8input + 4, tensor_reshape8Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape8Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_f_update_gate = fVec_op_1_f_update_gate.data(); + float * op_1_f_reset_gate = fVec_op_1_f_reset_gate.data(); + float * op_1_f_hidden_gate = fVec_op_1_f_hidden_gate.data(); + float * op_1_update_gate = fVec_op_1_update_gate.data(); + float * op_1_reset_gate = fVec_op_1_reset_gate.data(); + float * op_1_hidden_gate = fVec_op_1_hidden_gate.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + float * op_1_feedback = fVec_op_1_feedback.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_m2 = 1; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + int op_1_feedback_size = 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_update_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_reset_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_gru2grucell2kernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_f_hidden_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 18, &op_1_incx, op_1_f_update_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 6, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 24, &op_1_incx, op_1_f_reset_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_gru2grucell2bias0 + 12, &op_1_incx, op_1_f_hidden_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_f_update_gate + offset, op_1_f_update_gate + offset + 3, op_1_update_gate + gate_offset); + std::copy(op_1_f_reset_gate + offset, op_1_f_reset_gate + offset + 3, op_1_reset_gate + gate_offset); + std::copy(op_1_f_hidden_gate + offset, op_1_f_hidden_gate + offset + 3, op_1_hidden_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_update_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_reset_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_update_gate[i] = 1. / (1. + exp(-op_1_update_gate[i])); + op_1_reset_gate[i] = 1. / (1. + exp(-op_1_reset_gate[i])); + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m2, &op_1_n, &op_1_alpha, tensor_gru2grucell2recurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_beta, op_1_feedback, &op_1_n); + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, tensor_gru2grucell2bias0 + 30, &op_1_incx, op_1_feedback, &op_1_incy); + for (size_t i = 0; i < 3; i++) { + op_1_feedback[i] *= op_1_reset_gate[i + offset]; + } + BLAS::saxpy_(&op_1_feedback_size, &op_1_alpha, op_1_feedback, &op_1_incx, op_1_hidden_gate + offset, &op_1_incy); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_hidden_gate[i]); + op_1_hidden_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = ( 1. - op_1_update_gate[i]) * op_1_hidden_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_hidden_state[i + offset] += op_1_update_gate[i + offset] * op_1_hidden_state[i + previous_offset]; + } + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_gru2PartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_gru2PartitionedCall1, tensor_gru2PartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_GRUtestWithBias + +#endif // ROOT_TMVA_SOFIE_GRUTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.dat b/tmva/sofie/test/KerasParserTest/LSTMtest.dat new file mode 100644 index 0000000000000..edb9ca0866e39 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtest.dat @@ -0,0 +1,6 @@ +tensor_lstmlstmcell2bias0 24 +0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 +tensor_lstmlstmcell2kernel0 24 +0.199474633 0.0524432659 0.0961398482 0.225956857 0.510208249 -0.524776936 -0.154692471 -0.524948001 -0.41483444 -0.569589376 0.286657929 -0.258122444 0.400176048 0.599097371 0.610831141 0.320216715 -0.603321075 0.371819496 -0.246326417 0.215083897 0.0255909562 0.586698413 -0.160219163 -0.240281075 +tensor_lstmlstmcell2recurrentkernel0 36 +-0.128875136 0.467512578 -0.502396047 -0.157231271 0.004708983 0.109334841 -0.539759755 0.232447669 0.0177659541 0.0254211631 -0.175078109 -0.094724603 -0.222316459 0.0891792625 -0.0196319446 -0.113376565 -0.347394764 -0.0771321058 0.0576719232 0.298089236 -0.0619482473 -0.263137221 -0.057006143 0.168538436 -0.117840923 0.589754224 0.147639573 -0.409794927 -0.330703616 -0.342414796 0.324285954 0.0180809796 -0.708968639 0.494829744 0.135943279 0.214700684 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.h5 b/tmva/sofie/test/KerasParserTest/LSTMtest.h5 new file mode 100644 index 0000000000000..c96f9cc4f2195 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/LSTMtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/LSTMtest.hxx b/tmva/sofie/test/KerasParserTest/LSTMtest.hxx new file mode 100644 index 0000000000000..ffce847b72538 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtest.hxx @@ -0,0 +1,197 @@ +//Code generated automatically by TMVA for Inference of Model file [LSTMtest.h5] at [Thu Aug 24 08:55:54 202] + +#ifndef ROOT_TMVA_SOFIE_LSTMTEST +#define ROOT_TMVA_SOFIE_LSTMTEST + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LSTMtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_lstmlstmcell2bias0 = std::vector(24); +float * tensor_lstmlstmcell2bias0 = fTensor_lstmlstmcell2bias0.data(); +std::vector fTensor_lstmlstmcell2kernel0 = std::vector(24); +float * tensor_lstmlstmcell2kernel0 = fTensor_lstmlstmcell2kernel0.data(); +std::vector fTensor_lstmlstmcell2recurrentkernel0 = std::vector(36); +float * tensor_lstmlstmcell2recurrentkernel0 = fTensor_lstmlstmcell2recurrentkernel0.data(); +std::vector fTensor_lstmPartitionedCall1 = std::vector(6); +float * tensor_lstmPartitionedCall1 = fTensor_lstmPartitionedCall1.data(); +std::vector fTensor_reshapeReshape0 = std::vector(4); +float * tensor_reshapeReshape0 = fTensor_reshapeReshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_ff_input_gate = std::vector(6); +std::vector fVec_op_1_ff_output_gate = std::vector(6); +std::vector fVec_op_1_ff_cell_gate = std::vector(6); +std::vector fVec_op_1_ff_forget_gate = std::vector(6); +std::vector fVec_op_1_input_gate = std::vector(6); +std::vector fVec_op_1_output_gate = std::vector(6); +std::vector fVec_op_1_cell_gate = std::vector(6); +std::vector fVec_op_1_forget_gate = std::vector(6); +std::vector fVec_op_1_cell_state = std::vector(6); +std::vector fVec_op_1_new_cell_state = std::vector(6); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LSTMtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstmlstmcell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstmlstmcell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstmlstmcell2recurrentkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshapeinput){ + ///--------Reshape operator + + std::copy( tensor_reshapeinput, tensor_reshapeinput + 4, tensor_reshapeReshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshapeReshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_ff_input_gate = fVec_op_1_ff_input_gate.data(); + float * op_1_ff_output_gate = fVec_op_1_ff_output_gate.data(); + float * op_1_ff_cell_gate = fVec_op_1_ff_cell_gate.data(); + float * op_1_ff_forget_gate = fVec_op_1_ff_forget_gate.data(); + float * op_1_input_gate = fVec_op_1_input_gate.data(); + float * op_1_output_gate = fVec_op_1_output_gate.data(); + float * op_1_cell_gate = fVec_op_1_cell_gate.data(); + float * op_1_forget_gate = fVec_op_1_forget_gate.data(); + float * op_1_cell_state = fVec_op_1_cell_state.data(); + float * op_1_new_cell_state = fVec_op_1_new_cell_state.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_input_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_output_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 18, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_cell_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstmlstmcell2kernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_forget_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0, &op_1_incx, op_1_ff_input_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 6, &op_1_incx, op_1_ff_output_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 18, &op_1_incx, op_1_ff_cell_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstmlstmcell2bias0 + 12, &op_1_incx, op_1_ff_forget_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t ff_offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_ff_input_gate + ff_offset, op_1_ff_input_gate + ff_offset + 3, op_1_input_gate + gate_offset); + std::copy(op_1_ff_output_gate + ff_offset, op_1_ff_output_gate + ff_offset + 3, op_1_output_gate + gate_offset); + std::copy(op_1_ff_cell_gate + ff_offset, op_1_ff_cell_gate + ff_offset + 3, op_1_cell_gate + gate_offset); + std::copy(op_1_ff_forget_gate + ff_offset, op_1_ff_forget_gate + ff_offset + 3, op_1_forget_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_input_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_output_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 27, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_cell_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstmlstmcell2recurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_forget_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_cell_gate[i]); + op_1_cell_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_input_gate[i] = 1. / (1. + exp(-op_1_input_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_forget_gate[i] = 1. / (1. + exp(-op_1_forget_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_cell_state[i] = op_1_input_gate[i] * op_1_cell_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_cell_state[i + offset] += op_1_forget_gate[i + offset] * op_1_cell_state[i + previous_offset]; + } + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_output_gate[i] = 1. / (1. + exp(-op_1_output_gate[i])); + } + std::copy(op_1_cell_state + offset, op_1_cell_state + offset + 3, op_1_new_cell_state + offset); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_new_cell_state[i]); + op_1_new_cell_state[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = op_1_output_gate[i] * op_1_new_cell_state[i]; + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_lstmPartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_lstmPartitionedCall1, tensor_lstmPartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_LSTMtest + +#endif // ROOT_TMVA_SOFIE_LSTMTEST diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat new file mode 100644 index 0000000000000..a1155c98af7cd --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_lstm2lstmcellbias0 24 +1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +tensor_lstm2lstmcellrecurrentkernel0 36 +0.134114385 -0.243408352 -0.415026516 -0.410577744 -0.2369854 -0.284779549 0.199269027 -0.0937441587 -0.231692672 -0.304940313 -0.443754971 0.211114287 0.171424448 -0.100915238 -0.0500769317 0.216174766 0.268839657 0.142136872 0.283734679 0.0382566787 -0.155324295 0.493741512 -0.269695401 -0.331621766 0.227207437 0.081721805 -0.260853797 0.293202788 -0.650801301 0.376938581 0.376072288 0.213427305 0.463559747 0.0362912342 -0.215531707 0.258028567 +tensor_lstm2lstmcellkernel0 24 +0.267839134 -0.474893868 -0.386883676 0.498873591 0.564328194 -0.185036927 0.142744601 -0.0718331337 0.653316379 0.308048248 0.582022667 0.0316858292 0.131661832 0.194284618 -0.0724460483 -0.109706819 -0.646795452 0.522916794 -0.193377465 0.181043744 -0.391892016 -0.240450889 0.445019364 -0.189287961 diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 new file mode 100644 index 0000000000000..734e0ad222722 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx new file mode 100644 index 0000000000000..fd1ab221b8a70 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LSTMtestWithBias.hxx @@ -0,0 +1,197 @@ +//Code generated automatically by TMVA for Inference of Model file [LSTMtestWithBias.h5] at [Thu Aug 24 08:55:51 202] + +#ifndef ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS +#define ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS + +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LSTMtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_lstm2lstmcellbias0 = std::vector(24); +float * tensor_lstm2lstmcellbias0 = fTensor_lstm2lstmcellbias0.data(); +std::vector fTensor_lstm2lstmcellrecurrentkernel0 = std::vector(36); +float * tensor_lstm2lstmcellrecurrentkernel0 = fTensor_lstm2lstmcellrecurrentkernel0.data(); +std::vector fTensor_lstm2lstmcellkernel0 = std::vector(24); +float * tensor_lstm2lstmcellkernel0 = fTensor_lstm2lstmcellkernel0.data(); +std::vector fTensor_lstm2PartitionedCall1 = std::vector(6); +float * tensor_lstm2PartitionedCall1 = fTensor_lstm2PartitionedCall1.data(); +std::vector fTensor_reshape7Reshape0 = std::vector(4); +float * tensor_reshape7Reshape0 = fTensor_reshape7Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(3); +std::vector fVec_op_1_initial_cell_state = std::vector(3); +std::vector fVec_op_1_ff_input_gate = std::vector(6); +std::vector fVec_op_1_ff_output_gate = std::vector(6); +std::vector fVec_op_1_ff_cell_gate = std::vector(6); +std::vector fVec_op_1_ff_forget_gate = std::vector(6); +std::vector fVec_op_1_input_gate = std::vector(6); +std::vector fVec_op_1_output_gate = std::vector(6); +std::vector fVec_op_1_cell_gate = std::vector(6); +std::vector fVec_op_1_forget_gate = std::vector(6); +std::vector fVec_op_1_cell_state = std::vector(6); +std::vector fVec_op_1_new_cell_state = std::vector(6); +std::vector fVec_op_1_hidden_state = std::vector(6); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LSTMtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellbias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 36) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 36 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_lstm2lstmcellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_lstm2lstmcellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 24) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 24 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_lstm2lstmcellkernel0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape7input){ + ///--------Reshape operator + + std::copy( tensor_reshape7input, tensor_reshape7input + 4, tensor_reshape7Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape7Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_ff_input_gate = fVec_op_1_ff_input_gate.data(); + float * op_1_ff_output_gate = fVec_op_1_ff_output_gate.data(); + float * op_1_ff_cell_gate = fVec_op_1_ff_cell_gate.data(); + float * op_1_ff_forget_gate = fVec_op_1_ff_forget_gate.data(); + float * op_1_input_gate = fVec_op_1_input_gate.data(); + float * op_1_output_gate = fVec_op_1_output_gate.data(); + float * op_1_cell_gate = fVec_op_1_cell_gate.data(); + float * op_1_forget_gate = fVec_op_1_forget_gate.data(); + float * op_1_cell_state = fVec_op_1_cell_state.data(); + float * op_1_new_cell_state = fVec_op_1_new_cell_state.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 3; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = 0.; + int op_1_bias_size = 6; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_input_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 6, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_output_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 18, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_cell_gate, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_lstm2lstmcellkernel0 + 12, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_ff_forget_gate, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0, &op_1_incx, op_1_ff_input_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 6, &op_1_incx, op_1_ff_output_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 18, &op_1_incx, op_1_ff_cell_gate, &op_1_incy); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_lstm2lstmcellbias0 + 12, &op_1_incx, op_1_ff_forget_gate, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t ff_offset = seq * 3; + size_t gate_offset = seq * 3; + std::copy(op_1_ff_input_gate + ff_offset, op_1_ff_input_gate + ff_offset + 3, op_1_input_gate + gate_offset); + std::copy(op_1_ff_output_gate + ff_offset, op_1_ff_output_gate + ff_offset + 3, op_1_output_gate + gate_offset); + std::copy(op_1_ff_cell_gate + ff_offset, op_1_ff_cell_gate + ff_offset + 3, op_1_cell_gate + gate_offset); + std::copy(op_1_ff_forget_gate + ff_offset, op_1_ff_forget_gate + ff_offset + 3, op_1_forget_gate + gate_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 3; + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_input_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 9, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_output_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 27, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_cell_gate + offset, &op_1_n); + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_lstm2lstmcellrecurrentkernel0 + 18, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_forget_gate + offset, &op_1_n); + } + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_cell_gate[i]); + op_1_cell_gate[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_input_gate[i] = 1. / (1. + exp(-op_1_input_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_forget_gate[i] = 1. / (1. + exp(-op_1_forget_gate[i])); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_cell_state[i] = op_1_input_gate[i] * op_1_cell_gate[i]; + } + if (seq == 0) { + } else { + size_t previous_offset = (seq - 1) * 3; + for (size_t i = 0; i < 3; i++) { + op_1_cell_state[i + offset] += op_1_forget_gate[i + offset] * op_1_cell_state[i + previous_offset]; + } + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_output_gate[i] = 1. / (1. + exp(-op_1_output_gate[i])); + } + std::copy(op_1_cell_state + offset, op_1_cell_state + offset + 3, op_1_new_cell_state + offset); + for (size_t i = offset; i < offset + 3; i++) { + float ex = exp(-2 * op_1_new_cell_state[i]); + op_1_new_cell_state[i] = (1. - ex) / (1. + ex); + } + for (size_t i = offset; i < offset + 3; i++) { + op_1_hidden_state[i] = op_1_output_gate[i] * op_1_new_cell_state[i]; + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 3 + 0 + batch * 3; + size_t y_offset = batch * 6 + seq * 3 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 3, tensor_lstm2PartitionedCall1 + y_offset); + } + } + std::vector ret (tensor_lstm2PartitionedCall1, tensor_lstm2PartitionedCall1 + 6); + return ret; +} +}; +} //TMVA_SOFIE_LSTMtestWithBias + +#endif // ROOT_TMVA_SOFIE_LSTMTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat b/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat new file mode 100644 index 0000000000000..8276967900c7e --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LeakyRelutest.dat @@ -0,0 +1,4 @@ +tensor_dense15bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense15kernel0 448 +-0.194057927 0.266561955 -0.0788303167 0.176691771 -0.156864628 -0.288052589 0.285021454 0.186899662 -0.0761791319 -0.163851053 0.222708732 -0.219928026 0.0151193142 -0.283780903 -0.217534587 -0.0964736938 0.0775035322 -0.132055923 0.133033991 0.007938236 0.0822689831 0.0490554571 0.0590008199 0.252343744 0.252704352 0.227679223 -0.0284726322 -0.0581537187 -0.181250125 -0.0989709496 0.106530219 -0.165837646 -0.278227419 -0.0125347078 -0.0554400831 0.210606188 0.275991529 0.21319446 -0.166118562 0.19268015 -0.285612106 0.00926932693 -0.242022738 -0.0638727844 -0.0317430794 0.248601645 0.157372594 -0.234845355 -0.0412217826 0.188557118 -0.0884441733 0.126971394 0.144073337 -0.136173546 0.106759161 -0.262979895 0.276812822 -0.247560352 -0.0106068254 0.0850910246 0.158749193 -0.264805287 -0.00220942497 -0.108856499 -0.281703025 -0.0267523229 -0.221773416 0.0831103325 -0.136749074 -0.208149999 -0.0163876414 0.000343203545 -0.116423592 0.0191324055 -0.13983047 0.00234386325 0.120598525 0.142675847 -0.212022483 -0.210903347 0.0226421058 0.0697486699 -0.110400483 0.0151578486 -0.110566959 -0.00108939409 0.0464670658 -0.00599089265 0.0965960324 -0.228138924 -0.0766896605 -0.148901209 -0.139600009 0.28496322 -0.0535810143 -0.121510431 0.0406341255 0.232090682 -0.213700444 0.198865592 0.155374765 0.186095834 -0.127928048 -0.24644205 -0.0970672518 -0.0737360716 -0.267595351 0.0726677477 0.240318209 0.244475693 0.00177207589 -0.121977285 0.0163960457 -0.176797122 0.124035895 0.176837325 0.128851026 0.274583846 -0.0192754567 -0.236257941 -0.0672542751 -0.0956066549 0.0809546113 0.050799191 0.243655592 -0.261742264 0.169186294 -0.0808137804 0.17606765 0.211884826 0.162822723 -0.0587886572 0.143209457 0.089345932 -0.16634804 0.199322671 -0.0912965536 -0.113964945 -0.112553135 -0.198360801 -0.188099533 -0.112956583 -0.236210868 -0.0892071128 -0.0816318989 -0.0217606425 -0.227300912 -0.1018731 -0.15067558 -0.0999968499 -0.0181821287 -0.0426660329 -0.163214043 -0.000328093767 0.0685759187 -0.186032683 0.259925395 -0.251711249 0.0903107822 -0.130710304 -0.184049636 0.262125999 -0.281752169 0.14648056 0.280792087 0.0560608208 0.168497086 -0.138620332 -0.105352953 0.242126018 0.286571413 0.0872356296 0.208716124 -0.0466028303 0.0708791614 0.184774965 0.0940398574 -0.0157865286 -0.109078273 -0.110395625 -0.219911307 -0.0621433854 0.0773447454 0.119551986 -0.20257996 -0.046614334 -0.272466302 0.128182143 0.119731963 0.0794707835 0.213700145 0.241295129 0.209077835 0.245434076 -0.0505202115 -0.251345783 -0.245148063 0.0344991386 0.0926997066 -0.024071753 0.126446009 0.0893338919 -0.208601624 0.23155722 -0.0687500238 -0.182895377 -0.0723729134 0.118190467 -0.0976304561 -0.287340999 0.246528715 -0.0592194051 -0.126815915 0.0346927047 -0.0567209721 0.194322765 0.229114503 -0.0686837584 -0.175575763 -0.258036613 0.000207453966 -0.277919412 0.236501008 0.0188214183 0.000833719969 -0.0887717158 0.242900997 0.132848114 -0.0928997993 0.193257481 -0.209632993 -0.00817278028 -0.0471932739 -0.201213896 -0.119965121 -0.0934589803 0.0300266743 -0.0462892056 0.060167402 0.0518101156 0.0584365726 0.00425589085 0.172187984 0.00631824136 0.272503763 -0.157282069 -0.152925193 -0.0219891071 0.13676244 -0.138835132 -0.258901864 -0.247045308 -0.172998816 0.0794769526 0.0924948454 -0.19957307 0.198106855 0.173570335 -0.286759585 -0.0395619869 0.198090702 -0.227053493 -0.0130538344 -0.13254787 -0.25072524 -0.136666045 0.245650738 -0.267881185 0.0950976312 0.0672541261 0.212708682 -0.0436931252 0.161719948 0.172676444 -0.0752610713 0.120963246 0.148052871 -0.252601445 0.0380853117 0.0474682152 0.127889931 -0.0470868796 -0.148858249 -0.175144821 -0.00201195478 0.103534222 0.0452407002 0.0184170008 0.0855573416 -0.0253730714 0.274885505 -0.0215546787 0.215271384 -0.147573754 -0.000832885504 -0.109363765 0.0995247364 -0.0612674057 0.00438931584 0.197975039 0.22235778 -0.0627118647 0.152540684 -0.180187136 -0.07972835 0.285979718 -0.193559736 -0.0613078773 -0.227108032 -0.124022782 0.0351347029 0.175188005 -0.225882515 0.107671887 -0.118523166 0.25619182 0.206840217 -0.152544215 -0.114983156 -0.231637418 -0.157901749 -0.181874663 0.0620140731 0.0613299906 0.2111049 0.104807913 -0.244948328 0.162073374 0.100979865 0.141334534 -0.158944637 -0.20744729 0.0383128524 -0.253540218 0.275383025 -0.179003283 0.0452746153 -0.272328287 0.0821680725 0.146991342 0.0624286532 -0.135134265 -0.153124258 -0.0804967731 0.0589342713 0.247665197 0.207104832 -0.11924009 0.234127849 0.114797831 -0.267599851 -0.226243764 -0.0931157768 0.0704770386 0.109808654 0.0658330917 0.00376906991 -0.233815983 -0.24958998 -0.11935243 0.196961045 -0.137426019 -0.220674545 -0.265026569 -0.10269025 -0.0132784843 -0.0486678779 0.0587407053 -0.2599383 0.114162266 0.0250317454 0.00343540311 -0.134294033 0.214233726 -0.114990845 -0.122824654 0.147093445 -0.141544744 0.203694999 -0.0809503198 0.250818878 -0.149430797 -0.201993957 -0.130216613 -0.101704001 -0.0102880895 -0.215397656 -0.0485288501 0.190303981 0.27360931 0.0482801795 0.246423393 0.164949119 -0.241043478 -0.120764598 -0.183832631 -0.227920815 0.0985611379 -0.279759198 -0.114031211 0.0438315272 -0.084304437 -0.0983051807 -0.181380361 0.209635228 0.232449263 -0.253552139 0.283985227 -0.0385597944 -0.280721694 0.00364139676 -0.234616369 0.0240770876 -0.226239175 0.220461994 0.249400407 0.181165367 0.188824177 -0.134295419 0.0237262547 0.264991075 0.0461855233 0.254443377 -0.232668936 -0.0636679083 -0.133008838 0.155760825 0.105394185 -0.269737482 -0.247865438 0.0360795856 0.0737304688 0.191978455 0.233929127 -0.228276223 -0.0410486609 -0.0487378836 -0.151891664 -0.218247294 -0.263206869 0.235883027 -0.278145641 -0.164391249 0.0852204859 -0.0722954869 0.218666464 -0.157263905 -0.252690226 diff --git a/tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 b/tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 new file mode 100644 index 0000000000000..eb53f996636aa Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/LeakyRelutest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/LeakyRelutest.hxx b/tmva/sofie/test/KerasParserTest/LeakyRelutest.hxx new file mode 100644 index 0000000000000..b75a5e61fa935 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/LeakyRelutest.hxx @@ -0,0 +1,97 @@ +//Code generated automatically by TMVA for Inference of Model file [LeakyRelutest.h5] at [Thu Aug 24 08:55:42 202] + +#ifndef ROOT_TMVA_SOFIE_LEAKYRELUTEST +#define ROOT_TMVA_SOFIE_LEAKYRELUTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_LeakyRelutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense15bias0 = std::vector(64); +float * tensor_dense15bias0 = fTensor_dense15bias0.data(); +std::vector fTensor_dense15kernel0 = std::vector(448); +float * tensor_dense15kernel0 = fTensor_dense15kernel0.data(); +std::vector fTensor_dense15BiasAdd0 = std::vector(64); +float * tensor_dense15BiasAdd0 = fTensor_dense15BiasAdd0.data(); +std::vector fTensor_leakyreluLeakyRelu0 = std::vector(64); +float * tensor_leakyreluLeakyRelu0 = fTensor_leakyreluLeakyRelu0.data(); +std::vector fTensor_dense15bias0bcast = std::vector(64); +float * tensor_dense15bias0bcast = fTensor_dense15bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "LeakyRelutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense15bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense15bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense15bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense15kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense15kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense15kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense15bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense15bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense15input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense15bias0bcast, tensor_dense15bias0bcast + 64, tensor_dense15BiasAdd0); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense15kernel0, &op_0_ldb, tensor_dense15input, &op_0_lda, &op_0_beta, tensor_dense15BiasAdd0, &op_0_n); + float op_1_alpha = 0.300000012; + +//------ LEAKY RELU + for (int id = 0; id < 64 ; id++){ + tensor_leakyreluLeakyRelu0[id] = ((tensor_dense15BiasAdd0[id] >= 0 )? tensor_dense15BiasAdd0[id] : op_1_alpha * tensor_dense15BiasAdd0[id]); + } + std::vector ret (tensor_leakyreluLeakyRelu0, tensor_leakyreluLeakyRelu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_LeakyRelutest + +#endif // ROOT_TMVA_SOFIE_LEAKYRELUTEST diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.dat b/tmva/sofie/test/KerasParserTest/MLPtest.dat new file mode 100644 index 0000000000000..f0a63727ed707 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MLPtest.dat @@ -0,0 +1,20 @@ +tensor_dense4bias0 2 +0 0 +tensor_dense3bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense4kernel0 128 +-0.298785716 0.279279709 0.147424132 0.0158127546 -0.159431726 0.132032424 0.0835771561 -0.274953455 0.10661155 -0.240200862 0.228172481 -0.133330747 0.161848813 -0.174318358 -0.292626619 0.213901758 -0.0641928166 -0.0391198099 0.113355458 -0.157342225 0.213329613 -0.0298115313 0.280286431 -0.075745672 0.131559342 -0.281984776 0.253048241 -0.00195968151 -0.271499783 -0.27811408 0.247404575 -0.20433268 0.152180016 -0.0607252568 -0.0845460892 -0.146013364 0.0519336164 0.17072314 0.226993978 0.0493836105 -0.244987667 0.16205591 0.262384295 -0.1350739 -0.271391213 0.281769812 0.301208854 -0.270022601 0.121015042 0.20777005 -0.150065854 -0.215666771 0.231673121 -0.280108094 -0.0452793539 0.0439782739 -0.122508749 0.0861448944 0.146820277 0.168471813 -0.195941567 -0.157890067 0.23709172 0.0605123937 0.298072159 -0.269019783 -0.289464504 0.26655519 0.163855016 0.175336331 -0.21195063 -0.29207921 0.134754956 -0.0468965769 -0.0226168036 0.284415245 -0.179092526 0.0140020847 -0.000422388315 -0.229994074 -0.274368584 0.225560784 -0.293603748 -0.247253299 0.134454966 -0.117297381 -0.260135263 0.177824169 0.257857621 0.133277416 0.14951995 -0.28864333 -0.170398504 0.00341141224 -0.266741782 0.170972645 -0.0730661303 -0.177571207 -0.166101009 -0.11243847 0.0349839926 -0.0980427414 0.152756989 0.260075748 0.299617589 0.184868425 0.0928369164 0.271474481 -0.0231021941 0.0394059122 -0.0805578679 -0.232231304 -0.106821671 -0.142379597 -0.268180311 0.114023834 -0.291825503 -0.241023019 0.189732343 0.265102208 0.297131002 0.236552238 -0.0820010453 -0.17835483 -0.107067943 0.0255407691 -0.109203026 -0.15846543 +tensor_dense2bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense1bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense1kernel0 4096 +0.12031652 0.0841617435 0.122698888 -0.140096605 -0.0753749311 0.149574175 -0.196788609 0.165930524 -0.151730478 -0.212120578 0.0957749635 -0.14330411 0.0128545016 0.060958907 -0.0253325999 -0.118190371 0.182951704 0.180552647 -0.179614559 0.192497358 -0.179511741 -0.0484519452 -0.193001881 -0.142714158 0.178959772 -0.0376794934 0.11473985 -0.0737001002 -0.0801563561 0.202931508 0.00135180354 0.0880377144 -0.188027814 -0.164485812 -0.121622585 -0.206353486 -0.20686312 -0.167127848 -0.1307282 0.116498187 -0.158380821 -0.203953192 -0.0339668393 -0.164687648 -0.183957741 -0.0343322456 -0.142942011 -0.138712749 -0.207050338 -0.088208437 -0.197617665 -0.210848585 -0.147810161 0.0574030131 0.0592564493 0.108619556 -0.168442219 -0.0456483513 -0.114416189 -0.146097183 0.0910119563 -0.0846408755 0.0734681338 -0.00443820655 -0.163817912 0.0242975354 0.118717775 0.177837357 -0.0399428308 0.133731917 -0.194569409 -0.189309314 0.0777339786 0.0472985059 0.203200892 -0.0383270979 0.0365430862 0.150049046 0.0834368616 -0.0110588372 0.105951115 -0.110560857 0.0947608203 -0.136167765 -0.0692269355 -0.00303959846 -0.155471474 0.187027231 -0.200201973 0.177203223 0.0481259674 0.00745773315 -0.00899349153 -0.0349894166 -0.143298119 0.072715506 0.192507938 -0.200365201 0.201909021 0.18812497 0.0453347713 -0.0832957327 -0.169012398 0.120361373 0.098116681 0.0060288012 0.0858277529 0.150094345 -0.0732971579 0.0512118489 -0.143712163 -0.0751691312 -0.00894168019 -0.0603669733 0.0776650161 -0.179517105 0.0324126929 0.212745473 0.0310112238 0.0420362502 0.211289302 -0.0600333065 0.0551522523 0.0351923853 0.070424512 0.0964374989 -0.018245399 0.0357963294 0.0101690739 -0.13305375 -0.075139448 0.192970857 -0.133819729 0.0233647823 -0.117744073 -0.0622757971 0.0166937262 -0.0498817414 -0.204265431 -0.00338110328 0.203383014 -0.0366930515 -0.0987897888 -0.207669765 0.012528941 -0.190460831 -0.18572095 -0.188450366 0.109078571 -0.0149445683 -0.1825248 0.159239188 -0.136786073 -0.157180429 0.050926879 0.13467072 0.174741253 -0.121271729 -0.0231251121 0.162155315 -0.0196235776 0.19982703 -0.130184337 0.150632218 0.0817597061 0.0395684987 -0.013185069 0.0644078702 0.0503698438 -0.0436193496 0.183153406 -0.102541618 -0.0584473163 0.0293205529 0.193422928 -0.135538116 -0.00315578282 0.174579218 0.208500728 0.0624868125 -0.107804395 0.084103778 0.192512736 -0.107129477 -0.0319156945 0.156489149 0.118965372 0.0471614748 0.199056461 0.186059311 -0.135837674 -0.0985632837 0.0363276452 0.0380320996 0.040739581 -0.137999579 0.204545423 0.100524023 -0.0464756489 -0.201489419 0.162790075 0.00364693999 0.168214008 -0.0913997293 0.185061559 -0.143868148 0.121065184 -0.0728050768 0.193083599 -0.0291444212 -0.150980562 0.0898615867 0.0893204063 -0.115907311 0.076591894 0.0967208892 -0.012462616 0.0645439476 0.00703909993 -0.153141886 0.0120924562 -0.156850159 0.0343989879 0.145344421 -0.0591264665 -0.121820748 0.0809822232 -0.0530748516 -0.0062340498 0.187124416 -0.129192531 -0.205695435 0.131458446 -0.135583907 0.102250114 0.114074275 0.0922477692 0.0261552036 -0.112317771 -0.186294496 -0.00917282701 0.127845004 0.178428188 -0.109813362 0.0764011592 -0.147000358 0.116229251 0.103629544 0.131762281 -0.147995263 0.00864104927 0.0502332598 -0.0333315581 0.0382956713 -0.142473459 0.0362404436 -0.168930441 0.0256086588 -0.0887891948 0.059783116 0.189935699 -0.1969558 0.155987248 0.00165304542 0.132272795 0.0463798493 -0.146483287 0.195392475 0.0517206043 -0.0230081528 0.044333443 0.129642174 0.12804462 0.0604723841 0.00712023675 -0.106710948 0.113312766 0.199096903 -0.0378094614 0.206461325 0.213167891 0.159812585 0.19920294 -0.164009795 0.0823628157 -0.178051487 0.148805901 0.0170256495 0.196002409 -0.173104927 -0.121574268 -0.0350227505 -0.137582242 0.0923103541 0.206842467 -0.0355235636 -0.0745408684 -0.198826998 -0.16299656 0.0348424464 -0.212254122 0.0099247545 -0.11177437 -0.0958463103 -0.1859328 -0.137858599 0.0298500508 -0.062914595 -0.0258870423 0.0895736665 -0.0655600727 -0.194655508 0.184795067 0.182132855 0.214193299 0.181125417 -0.107146509 0.192007378 -0.17876403 0.159528986 0.0296756327 0.0650920421 0.0657476932 0.0169204473 -0.208595037 -0.197933629 0.0399293751 0.0915600508 0.167416081 0.138466731 0.121579751 -0.193784177 -0.13178134 0.110880122 -0.0270081609 0.0595458597 0.0958121866 0.145450845 0.204260692 -0.179703444 0.0766303688 -0.101342507 -0.120128982 0.151057616 0.209717825 -0.086872533 0.166939065 -0.212358236 -0.184477866 -0.0499351621 -0.14303875 0.0635824949 -0.0579698384 0.0689555854 -0.121117227 0.111854538 0.0968991369 0.00672489405 0.06816037 -0.191774175 0.0631602854 0.177760854 -0.0582095087 -0.0386331081 -0.0198222697 -0.163465053 -0.0869761258 -0.0334959179 0.0457457155 -0.0774376392 0.197403505 0.201287314 0.0182985663 0.179501995 -0.127219796 0.0430810601 0.155053958 0.0219656527 -0.110936902 -0.119695589 -0.149825931 -0.0583156794 -0.122345664 0.00783284009 -0.0937071592 0.0440214723 -0.0232922584 0.166607574 -0.0995697007 -0.129709959 0.086977616 -0.173608363 0.0632753521 0.0682726651 0.0571452826 -0.151713133 -0.123849124 0.209557131 -0.182027608 0.103784189 0.099479869 0.108480081 -0.148193792 -0.128895104 0.069086954 -0.115029782 -0.197913751 0.0247798115 -0.0458010435 0.215737686 0.0683769733 0.0295536518 -0.0101142079 0.0229239613 0.156227961 -0.0515455306 -0.215846345 -0.175135732 -0.0123812556 -0.0555711985 0.180414394 -0.199173823 -0.087579459 -0.211519107 -0.123184524 -0.0544126034 0.132915601 0.0583506972 -0.0950843096 -0.184680313 0.182474121 -0.186838761 0.0863878876 -0.104843318 -0.0265173167 0.205093518 -0.0728926212 0.180407897 0.0911148936 0.0180770755 -0.0362069458 0.154070929 0.209767982 -0.115970857 0.0574255139 0.149651095 0.206300482 -0.0493127406 -0.101700947 -0.158116072 0.02047804 -0.0832315236 -0.212914333 0.16086252 0.119662806 -0.0284115374 -0.0679599941 -0.0327911079 -0.057585746 -0.0370601118 -0.153167039 -0.0893347114 -0.133973286 -0.0956255868 -0.142108306 0.111237988 0.148536429 -0.158282593 -0.0271238387 0.0361856967 -0.137576759 0.202499971 -0.00321571529 -0.00117759407 -0.166019946 0.112907633 -0.0633151084 -0.0349703133 -0.109455019 -0.00135484338 0.0987171978 -0.179973066 -0.200716883 -0.117974758 0.0123543739 -0.0061095953 -0.163893551 -0.018564105 0.213161126 0.144157484 0.0590753704 0.126955703 0.0174931586 0.0608230978 0.172592774 0.0800449103 0.205585435 0.0462348014 -0.211776018 -0.0520270318 -0.157539994 -0.00850461423 -0.0480909199 0.0531922728 -0.0476451814 -0.0131076425 -0.0205195844 -0.056430921 -0.0630805492 -0.0110486597 0.0431331545 0.0109471828 -0.070979923 0.181466863 0.112878338 -0.0407383442 0.0991631597 0.212496623 -0.0411179513 0.174524203 0.136693463 0.0396960527 0.151049718 0.200792 0.0238062292 0.119036838 0.182947651 -0.158980846 -0.157822981 -0.1785236 -0.174909472 -0.018049553 -0.199550912 0.045112446 0.00864899158 -0.183150366 -0.112231873 0.0892030746 -0.0920792446 -0.131011173 0.156927809 0.13707225 -0.0879445523 -0.0798484534 -0.207574427 0.161819026 -0.0909411013 -0.154103518 -0.120475292 0.00730121136 -0.0303003341 -0.104097836 -0.149014682 -0.0458678305 -0.0384103209 -0.0384169221 -0.188336134 0.117665812 0.0422888845 0.116580799 0.207621261 -0.20548892 0.167879567 0.0256439745 -0.0488382131 -0.204529941 0.116649345 -0.0878801793 -0.16713585 -0.0190377533 0.210818186 0.12179561 -0.0828291476 -0.130138963 0.128239498 0.0396835655 0.0799471885 0.185438707 0.129455641 0.115153775 0.0321662128 0.0728669614 0.181425944 -0.0321771502 -0.186687261 -0.119610675 -0.212139413 0.0266985595 0.0959872156 0.088620469 0.0681722611 0.0840905756 -0.0599383861 -0.0144448876 0.20447661 0.102311864 -0.127332896 0.167139158 0.0274807364 0.116236702 -0.180379406 0.216334656 -0.156794056 -0.0282452703 0.0471136123 -0.0546389073 0.163304761 0.103504434 -0.117289618 -0.18664597 0.0348724574 0.127459362 0.104565307 0.140174404 0.00960327685 0.189112946 0.182493612 0.0476878732 -0.194409639 -0.178070948 0.0884678215 0.166338548 0.0729856342 0.170750156 -0.02236709 -0.10892278 -0.0076238811 -0.0449007004 -0.132402301 0.108765796 -0.143417925 0.0700047463 -0.100760035 -0.191600174 -0.169585019 -0.125393987 0.142526016 0.0835020691 0.0037791878 -0.0573696643 0.155866519 -0.0161506534 0.0626388341 -0.0626721382 0.0484398156 -0.152092218 0.159069881 0.062606737 0.0545813888 -0.184169799 0.00436677039 -0.178141207 0.125123397 0.0643382519 -0.132825017 0.0635071248 0.0680358261 0.074682042 -0.187229887 -0.039757058 0.173186705 -0.0963061303 0.169519678 0.116023615 -0.0970634893 0.141973749 -0.194449961 0.133581802 -0.185589477 -0.184001267 0.158878341 -0.148351386 -0.157188728 -0.156476542 0.0749963969 0.0941173285 0.122323111 0.166684791 0.0643507987 0.17020379 0.194529042 -0.0343240947 -0.0071799159 -0.00407981873 0.0121376216 -0.0678489655 -0.0323755741 -0.00903385878 -0.131158546 -0.177756578 0.13005881 0.0584778339 -0.0579183251 -0.0363151431 -0.209321797 0.0634287149 -0.104849972 0.0686417967 -0.138047785 -0.171399429 -0.105729051 -0.0909411013 -0.155730277 0.0353330821 -0.174447536 -0.160600498 -0.0747668594 -0.211821809 0.0170009732 -0.0078228265 -0.118453629 0.0294317305 -0.0667147934 0.10442315 -0.0246297121 -0.102965668 -0.183874786 -0.00387664139 -0.135667324 0.155438319 -0.0204060227 0.20007728 0.0779366344 0.19856824 -0.142405942 -0.184667721 -0.0265512317 -0.203606829 0.197388485 0.118558303 -0.0539126843 0.0688033551 0.0398415476 -0.125205934 -0.143838584 -0.0857622027 0.179183915 0.107792005 0.207687542 0.104717895 -0.0613311678 -0.0263402164 0.0775615126 0.0715971738 0.078308925 -0.0556137413 -0.105983585 -0.0322184414 -0.106882274 -0.111768074 0.119004831 -0.0375810564 0.132102773 0.085897401 0.13197495 -0.126425475 0.0344695002 -0.115934826 -0.187673181 0.196176603 -0.186258882 -0.16306366 0.10532935 0.189784035 0.0454464704 0.0636853725 0.097693041 -0.20715487 -0.181481272 -0.181268692 -0.0498585105 -0.0186187178 -0.119796708 -0.0829584599 0.0290929526 0.150905743 -0.183601424 0.0357230753 -0.0176681429 -0.12669608 -0.136854559 0.0885048658 -0.0688259602 -0.126520619 -0.0074685216 0.0837468952 0.00169016421 0.204901233 0.121344611 0.0607691854 -0.0622199476 -0.114385888 0.0338719636 -0.125344068 -0.171791166 -0.117500842 0.136388496 0.0482688397 -0.0635844022 -0.189452291 0.0262422413 0.113908365 0.0243253559 -0.0161608607 0.136946604 -0.207239628 -0.113902114 -0.133196414 -0.208598301 -0.0336010158 0.196529135 0.000476911664 -0.185732201 0.00331059098 -0.0902014971 -0.00700028241 0.0646762997 -0.060125038 0.0395675153 0.165341422 -0.0924883261 -0.174673527 -0.0958997831 0.11208801 0.0708440095 -0.0581569076 -0.0369117558 0.1728075 0.00457650423 -0.125385359 0.133783117 -0.149207532 -0.164296955 0.110894874 -0.171745792 -0.201245308 -0.0719503164 0.0132772624 0.0167765319 0.00911785662 0.191283211 0.041196093 -0.186730102 0.0769727081 0.00116938353 -0.038955614 -0.122501761 -0.111735195 -0.0531345159 0.0633109361 -0.2019324 -0.132041439 -0.108914413 0.16981791 0.0446785241 -0.203444853 0.0781471282 0.0600039512 -0.0904837996 0.0860900432 -0.194607645 -0.0617565215 0.0957981497 -0.169758201 0.193146095 -0.15785256 -0.00808407366 -0.15453282 -0.0463712811 -0.0748093426 -0.155791193 0.0191329867 0.1984189 0.140827313 0.178281501 -0.160185426 -0.168936625 0.101923689 0.103584215 -0.160409927 -0.0330783129 -0.089725107 0.0498475581 0.178978667 0.000224754214 0.192275599 -0.0580036938 -0.00490449369 -0.163870931 -0.179228812 -0.0781523585 0.213049576 0.0824058801 0.171703532 0.101687059 0.172532514 -0.159029156 -0.0344004929 -0.0833505094 -0.140034974 -0.161740243 0.0204137713 0.204659149 -0.125276297 0.0394738168 -0.209517837 -0.176069513 0.0245905817 0.213585183 -0.181221724 0.153404698 -0.122594826 0.136925682 0.161130056 0.165156856 -0.084647119 0.115664348 0.0448857695 -0.0367877781 -0.0126664639 0.157844856 0.130286172 0.196994051 0.216279313 0.156358168 0.0529444963 0.0820329636 -0.208651513 0.071787551 0.016426757 -0.0894697458 -0.0799961388 -0.050807789 0.143425897 0.216268793 0.0612275749 0.180730686 0.0590040833 0.0225973576 0.204655305 0.126662835 -0.0483733267 0.0666583627 -0.0385652781 -0.14912346 0.0752090663 -0.155792892 -0.0910623968 0.0728100389 -0.0265179873 0.0228566378 -0.0561662167 -0.159321278 0.00627781451 0.150959805 0.119238511 0.170236543 -0.114117414 -0.0894860029 -0.14511089 0.200899974 -0.183337122 -0.0989990532 0.21489729 -0.210661829 -0.0569289923 -0.0411164463 0.058638975 0.0650715977 0.0514443666 0.0877976865 -0.141263187 0.00843818486 0.144112065 -0.121969618 0.162691996 0.130299821 -0.160947174 0.125824854 -0.190114304 0.0769518465 0.173931047 -0.0699850172 -0.151884258 0.168133542 0.0411511511 0.0988556892 -0.115193263 0.0690621585 -0.0971042141 0.0972232372 -0.126911312 0.160173103 0.127053186 0.116700485 0.191735968 0.0626152605 -0.0181857347 0.187425986 -0.130454212 0.0535124093 0.165520057 -0.169165105 0.186350599 -0.20584555 -0.159280866 0.146034822 0.0213645995 0.150628403 0.0552408844 -0.143312126 0.099751547 0.213840589 -0.00701721013 0.073606506 -0.069299832 0.10112007 0.200353786 0.166800156 -0.174718231 0.0437105745 -0.110193379 -0.203979462 -0.0270194709 -0.16293177 -0.00541391969 -0.138523161 -0.0662395358 0.0251428485 -0.0726311654 0.0789882094 -0.151701629 -0.0294829905 0.0417488366 0.0419801325 -0.00462713838 -0.109910093 0.202692196 0.0266126543 -0.184980527 0.184295401 0.00813212991 -0.081846267 -0.193707362 -0.160074562 0.190914497 -0.0722289979 -0.132746711 0.0582289249 -0.151696563 0.0269844681 0.00915382802 0.0446288139 0.0445256382 0.205229983 -0.0870723426 -0.157205671 0.0337624699 0.0686033815 -0.196375921 -0.141853213 0.148800477 -0.152415931 -0.0533095598 -0.209857956 0.0351357907 0.0214967877 -0.124083005 0.0758182853 0.210300907 -0.0217194706 -0.182448566 -0.0813256353 -0.0156180412 -0.104705855 0.0683744401 -0.0999515802 -0.163795263 -0.0118160844 -0.165207461 -0.0996754691 -0.0976582915 -0.0149646401 -0.115791112 0.136857912 -0.131697446 -0.10033346 -0.0344904065 -0.00381182134 -0.211528152 -0.19629766 0.065141961 -0.0631808341 0.073308453 -0.103368245 -0.120961651 0.193093196 0.120035812 -0.209491208 -0.0675849319 -0.0987875685 -0.05050762 0.16619803 -0.0126240849 0.0751491636 -0.143814474 -0.169938758 -0.0606690049 0.158494487 0.129571095 0.200513288 0.044278726 -0.182699993 -0.150979102 0.103623703 0.168834433 0.0254660994 0.169109747 -0.108796775 -0.113996059 -0.0684480518 0.158322647 -0.0618492812 0.21202518 -0.173646003 0.0704133958 0.0443970412 -0.0836163461 -0.0363180339 -0.18829298 0.0439085811 -0.164016083 0.133548036 -0.109730408 -0.191601515 0.183309302 -0.032695815 -0.000942096114 -0.0627649426 -0.113689907 0.0161303133 -0.123212501 -0.0145379603 0.0692438036 -0.15265739 -0.0815188438 -0.0875594169 0.039199248 0.0113131553 0.081409052 -0.0727807134 0.0876620859 0.00774426758 0.0518829077 -0.0821485966 0.0799022466 0.0741907507 -0.149128467 0.186223879 -0.0114644021 0.136041805 0.0864130706 0.00288066268 0.134642795 -0.165342808 0.181224659 -0.00912791491 -0.117273204 -0.00584112108 -0.0353256613 0.180699751 0.0892539769 -0.00903004408 -0.124910362 0.108488396 -0.0861942023 -0.0637277514 -0.00941367447 0.211082265 0.116949394 -0.203239352 0.174814597 0.0543323904 -0.161170423 -0.156309962 0.125776485 0.111992732 0.195972458 -0.0453259349 0.181332752 -0.172306895 -0.161030799 -0.181952551 0.204987809 0.0491034836 0.175031677 -0.0919188112 0.00392450392 0.196387157 0.0839758068 0.18225421 -0.12080963 0.161410496 0.0378801376 0.139974073 -0.0151411295 0.119678155 0.209960744 0.0888996571 0.19486405 -0.118166476 -0.0796308815 -0.208047569 -0.0523856729 -0.0644435436 0.0689165145 -0.214216217 0.136871144 -0.176340356 -0.178800896 0.173092023 0.183515266 0.201711431 -0.0200013369 0.094236061 -0.199394971 0.19526653 -0.121226095 0.115537092 0.014915809 0.0939825922 -0.0802676529 0.138700679 -0.0731207728 -0.041176632 -0.121252418 0.135871366 0.0753448457 -0.0830914825 -0.0866094232 -0.066075176 0.125187978 0.21125941 0.116936997 0.0486765355 -0.101060927 0.166959509 -0.115630478 -0.161545798 0.133385137 0.078944847 0.0856721252 0.0821823627 -0.180016786 -0.0637345016 0.10164474 -0.153563574 0.175092116 -0.168493062 0.116886631 -0.204302087 -0.104912229 0.178574905 0.0605199188 0.0969433039 -0.0915684775 -0.103471071 0.0415272266 -0.175420508 0.0368696898 -0.0854102075 0.170753047 0.128086522 0.0871749073 0.0689552575 -0.147968471 0.0483410507 -0.196790621 -0.0302833021 -0.174845889 -0.115173183 -0.180943608 0.0704492182 -0.167976677 0.027528584 0.121858731 0.143509701 -0.107085548 -0.116890498 -0.0124786198 0.0174708068 -0.190410599 0.045559451 0.207256511 0.216121837 -0.102311499 -0.176411808 0.1236092 0.0790273398 -0.0056822896 0.097467348 -0.0247983485 0.134654865 0.19345583 0.0555846244 0.0877229422 -0.157762691 0.00447274745 -0.0317813903 0.175156727 -0.0202159584 0.0140741169 0.115857556 -0.193359971 -0.140188336 -0.0679085404 0.170911416 0.0106744766 -0.0357366502 0.214258447 -0.0184565783 -0.213041306 -0.00264321268 -0.161128253 -0.00520965457 -0.080949232 -0.0374947488 -0.122701831 0.11668919 0.0872748941 -0.0526811928 0.0571868271 -0.0315119922 0.162864819 -0.202320069 0.0685060769 -0.038647458 -0.197127551 -0.0971656963 -0.0641355366 -0.00347262621 -0.0596810579 -0.213225335 0.0115192682 -0.216120541 0.0679750293 -0.100616641 -0.185315996 0.100775406 -0.20683834 -0.0131196231 0.0796609074 -0.214945123 -0.106901884 0.0913768262 0.170979455 0.0941831321 -0.12014132 -0.0108900368 -0.17055288 0.163600489 -0.113409616 -0.152576357 0.171944782 0.205536142 0.187679961 0.0346093029 -0.167859137 -0.212399423 0.0982515961 0.0880768448 -0.117055371 0.140471622 0.132475868 -0.107322998 -0.138704807 0.0993265659 -0.0217560232 0.0032465905 0.110781267 -0.040420264 0.104616955 -0.104210056 -0.0642937571 0.0895931274 0.177088931 -0.0492049605 0.0684697479 0.00370486081 0.0666344613 0.0995850414 0.029164806 -0.17124173 0.09151344 0.116662249 -0.0397463143 -0.194812223 -0.137370288 -0.185443863 -0.180013016 -0.189766854 -0.152131453 -0.152750209 0.118660972 -0.144900739 -0.161557317 0.20960699 0.0329516977 -0.179101884 -0.143193692 -0.0632252842 -0.11235287 -0.185645327 -0.141339958 0.0494965166 -0.0240585506 -0.177981704 0.0622568578 -0.215916753 -0.187872186 0.01762034 -0.194949836 -0.00245763361 0.214417771 -0.065350607 -0.0414343774 0.0137482435 -0.0107984096 -0.153948545 0.174448922 -0.123084486 0.0826777071 -0.153175503 -0.211670876 0.00475603342 0.161136612 -0.0474763364 0.0462579578 0.0650216192 -0.129255772 -0.0942040458 -0.173933268 -0.0522591621 0.0710592121 -0.159967288 -0.198568031 0.159467205 -0.156110927 -0.12795119 -0.184567735 0.206773505 -0.103131108 -0.196625397 -0.133488789 0.135917351 -0.0781923532 0.186113939 -0.0656082332 0.194922432 -0.142737746 0.213203236 -0.0229713917 0.0447368175 -0.136899829 -0.165937245 0.15216659 0.089555338 -0.0955122262 -0.116638236 0.0760757178 -0.0537374318 0.216473684 -0.0675441623 0.0832113475 0.188172504 -0.15921618 0.183534786 -0.0239722431 0.106969908 0.204759702 0.0293312818 0.109507665 0.16629301 -0.0360503346 -0.0877831876 -0.149572223 0.0593892485 0.196349338 0.00469140708 0.152444109 0.094371751 0.212643787 0.198955223 0.0440487713 -0.0721292198 -0.0130590796 0.0983942896 0.176076189 -0.189735427 -0.0162506402 0.146708861 0.127317831 -0.0240667462 -0.0079228133 0.16428332 -0.0445265621 0.0633301288 0.0026793927 0.0581438392 0.21233578 -0.0620286465 0.151123419 -0.0704901665 -0.103835605 0.153473511 -0.166035071 0.20513697 -0.215603635 0.211204603 -0.00327461958 -0.213364348 -0.143227667 -0.0124470741 0.159748331 0.126057997 -0.102846019 0.114726409 -0.0950933397 -0.123208113 0.0145902038 -0.128204897 0.0172567368 0.079768911 -0.0176495165 0.185006604 0.0501536578 -0.127981752 0.131903574 0.073804155 0.14779298 0.198887661 0.146312073 -0.0916646421 0.192384884 -0.158793926 -0.0131742358 0.0199696422 0.190155819 -0.163106039 -0.0789243728 0.198089615 -0.186471283 -0.0861888379 0.0301533639 -0.0287599564 -0.156782076 -0.0523855835 0.213264242 -0.0103711039 0.0432208031 0.125642821 -0.193018243 -0.209516957 0.00344191492 -0.0132315904 0.00639623404 -0.00391113758 0.0721565932 0.132563099 0.166448161 -0.125352427 -0.0753659457 0.119259045 -0.00334362686 -0.0582474917 -0.0965533331 -0.0156054944 0.0986029357 -0.103588872 0.161954924 -0.197837055 -0.155638516 0.202590182 -0.0884255469 -0.106663719 0.170054182 -0.121439539 -0.0724804401 0.0138958693 -0.0797548145 0.168702438 0.0772906691 0.103747174 -0.101636223 -0.0386114717 0.104467466 -0.0550206751 0.111729786 -0.206441954 -0.0978569761 0.0675054342 0.0333653241 0.209905967 0.111026987 -0.19940576 0.200488672 -0.0747299492 0.167427644 0.190894648 0.0610999316 0.0221829563 0.0448646098 -0.0692579597 0.0305432528 -0.189550787 0.207148686 0.133938745 -0.0246576816 0.181569889 -0.0565097928 0.213461861 -0.203732416 -0.136161 0.146731213 0.102090791 0.0023419559 0.018914178 0.148379877 -0.109781407 0.0616946369 0.0609764606 0.050764069 -0.0858276486 0.197327837 -0.0240139514 0.00479954481 -0.082142517 0.105301127 0.147398129 0.126296028 0.139992431 -0.192477077 0.0606181175 -0.191457644 -0.012966156 0.0128843486 0.0560000986 -0.0592456013 0.205551937 -0.0019300431 -0.0804404765 0.1514218 -0.174973547 -0.113385096 -0.147748262 -0.0926208347 -0.0517881364 -0.155463055 -0.0857066065 -0.0260004103 -0.191205129 -0.212038919 -0.169519365 -0.186298877 -0.0867990702 -0.0188699365 0.000286221504 -0.0169312805 0.0597930402 -0.171286583 0.0381561965 -0.136903599 -0.0786010772 -0.130526677 -0.118289277 -0.154712871 -0.185403705 0.0411979109 -0.147093013 -0.160133183 -0.0354467034 -0.159299806 0.188530073 0.165718332 0.177182063 0.0408628434 0.0081140101 -0.156647712 0.036997512 0.143359497 -0.190665394 0.145653769 0.0590366572 -0.0499967486 0.101860657 0.181939945 0.0730921179 -0.189430296 0.0744618922 0.173400089 0.148983613 0.106627598 -0.0425362289 -0.065763399 0.0129130483 -0.171485528 0.158590034 -0.212476075 -0.0593852848 0.153704479 -0.210238799 -0.0125901699 0.0866140276 -0.15543136 0.0902767032 0.154682562 0.166129991 -0.0860454887 0.127959147 0.054321453 0.0982671827 -0.133814871 -0.0514394045 0.174641535 -0.103889599 -0.0722318441 -0.000686585903 -0.00241236389 0.145590678 -0.0792087913 0.0598546714 -0.0103981048 -0.0527924448 0.134915188 -0.178403273 -0.0597277284 0.190419421 0.0845720619 -0.0390002131 -0.17068848 -0.198992699 -0.152012825 -0.00931762159 0.0674706548 -0.174414396 0.166343585 0.132229581 0.162725762 0.0673492402 -0.045855701 -0.208720267 -0.076733917 -0.213736564 0.115494207 -0.142396241 0.191102967 0.00288240612 -0.0889811665 -0.0753060281 0.159933731 -0.179099247 -0.077963993 -0.157260016 -0.135536671 -0.131755367 -0.0263200253 0.191687658 -0.0312078446 0.182023779 0.1234615 -0.0118492693 0.074201569 0.16149579 -0.0726585239 0.00406804681 -0.0915534049 -0.159595832 -0.132167548 -0.0687990189 -0.129802883 -0.100624017 0.162251011 -0.0647866577 0.0742793828 -0.0775921345 -0.151038259 -0.198285729 -0.198621243 0.125540987 0.208524123 -0.131045654 -0.193670303 -0.0840041488 0.15424557 -0.205455571 -0.111213945 0.0255674273 0.135829762 0.0203060359 -0.156849176 0.197581008 -0.167604804 0.170615092 -0.0676677823 0.190490469 -0.079960674 -0.135019869 -0.153286487 -0.0464369357 -0.199640304 -0.0522986054 -0.0777950436 -0.159118354 -0.179384038 0.209465697 -0.177401394 -0.0933089703 0.0179588199 0.160601333 -0.0652026087 0.0587999374 -0.145297959 -0.0500928164 -0.171088636 -0.169810236 -0.0600495189 0.140236959 0.0767053515 -0.214849934 -0.085044533 0.0646552294 0.163205549 -0.155396104 0.0202807933 0.0498869568 0.101111159 -0.0812673122 -0.171339601 -0.0161241144 -0.00815010071 -0.17216453 -0.0539122075 0.0188783556 -0.0571314394 0.00321225822 0.0673358589 0.0202885866 0.100583866 -0.0968299136 0.105608717 0.183875784 -0.0303859711 0.0506251603 0.0290204287 -0.030689016 0.0320489258 0.0533214957 0.186373308 0.0902072638 -0.141670376 0.0229739696 0.0068436712 -0.0676448643 -0.162564561 0.109673694 0.139915571 0.068416819 0.214511737 -0.15781033 -0.215438858 -0.174752861 -0.0562889576 0.0897686332 0.103269145 -0.0460320413 0.211482063 0.13328217 0.124639526 0.0106871724 -0.126301855 -0.0865297318 0.116503313 -0.167106062 0.0931367129 0.114187881 0.126987413 -0.160649598 0.140207425 -0.0638258755 0.0961244851 0.00638622046 -0.135467857 -0.094610855 -0.0820826888 -0.046032548 -0.179701135 0.0447078496 0.137072459 0.0287348777 0.145328924 0.0346519798 0.0972790569 -0.0599679053 0.0839584321 -0.00144192576 -0.104119509 -0.0141431242 0.0824687332 -0.137707263 -0.0495885462 -0.0513692498 -0.0121968836 0.0582880229 0.0615180284 -0.120069928 -0.167382583 0.136924699 -0.0475722998 -0.202293172 0.0110137165 0.178140119 -0.142430931 0.128122047 0.0886654705 -0.0272277594 -0.0731204599 -0.0298395306 -0.0973657146 -0.103851661 0.0781926662 -0.177221864 0.052533403 -0.0346768051 0.0670841187 -0.124836132 0.146731898 -0.0200649202 0.00649900734 0.216119424 0.0463841707 -0.0320614725 0.081133917 0.084778294 0.184831187 -0.00364817679 -0.180190176 0.101190999 0.214070037 -0.00126250088 0.17430301 0.0843841881 -0.207828239 0.166853741 -0.145607114 -0.0526137352 0.0145677924 -0.159892857 -0.0407043695 0.121352986 -0.110636637 0.186345741 -0.200129658 0.0238385946 -0.0565079302 -0.0700160414 0.101827785 -0.016555801 0.13947995 -0.201685145 0.110576198 0.0276675522 0.0295195431 0.0850353986 -0.0456180423 0.122527555 -0.180388227 0.0259643197 -0.0302985758 0.0531634241 -0.210675448 -0.203751266 -0.216496691 0.215540722 -0.0126211345 0.195932344 -0.0309322476 -0.174175814 -0.216359183 -0.00450257957 -0.0687045604 0.140705362 -0.0326668024 0.0772778243 0.150823638 0.0771210641 0.0826558024 0.0834026486 -0.0417301953 0.073146686 0.152272776 0.00254750252 -0.0384834111 -0.146099389 0.156876132 0.00569358468 0.0117155761 0.10781984 -0.0603031814 -0.148901954 0.100422397 -0.0112612247 -0.21183461 0.0521114916 0.146081135 -0.212215349 0.167511061 0.0846068114 0.041114077 0.115536079 -0.0237469226 -0.205519989 0.120501772 -0.040034309 0.021228835 -0.17292808 -0.00548824668 0.0450167805 -0.0609141439 -0.11527916 -0.0375153869 0.0142415166 -0.0535354912 0.123438492 0.0386375934 -0.131949306 -0.0669883192 -0.207911447 -0.00821167231 0.140406325 -0.1966988 -0.203277349 -0.0611697584 0.169801399 -0.0280008465 -0.142330825 0.074987337 0.0825964361 -0.172993332 -0.0489689559 0.016886577 -0.0667787492 0.0681358129 -0.0461090058 0.205089703 -0.184096187 -0.14695932 0.0360943228 0.0441453606 0.0947209448 -0.149481744 -0.0997626483 0.180785969 0.0162867606 0.130693927 -0.0589865297 -0.140443891 -0.0299380124 -0.192037538 0.00600594282 0.186624333 -0.0389799774 -0.109358445 -0.185562894 -0.193559006 -0.193680003 -0.0479593873 0.00866153836 0.096892789 0.183878496 -0.0577574223 -0.0442391932 -0.0204317868 0.0139524937 0.051414296 0.0956466943 -0.141198456 0.0515246242 0.0429583341 -0.203101009 -0.210600346 0.149194226 0.0559636503 -0.0477567911 -0.139202148 0.0177829415 0.147477821 -0.143078536 0.148276851 0.0783024579 0.0924251527 -0.018397212 0.0277659893 0.127643064 -0.0715708584 0.0142055899 -0.027617991 -0.0369420648 -0.0326774865 -0.104952335 0.0545974523 -0.000808104873 -0.0321171731 0.171578392 -0.0806577951 -0.0127275288 0.153873757 -0.0577870011 0.192859426 -0.188326627 0.1350355 -0.0785275698 0.0786272436 -0.131749019 -0.0904608369 0.0737862438 0.0596044511 -0.198000997 -0.151301622 -0.191071942 -0.214083657 -0.152159899 -0.145972565 -0.0466104299 -0.0034840405 0.10269095 0.0383338779 0.0593133718 0.132423416 0.158561841 0.133239523 0.107381746 0.146966651 0.121106222 -0.172349691 0.00142784417 0.169964001 0.118336871 0.0629610866 -0.028625235 0.215595827 -0.170897335 0.0331371576 -0.0705744624 -0.106391117 -0.0291628987 0.178843334 -0.0649072379 0.0234077871 -0.175630748 0.0696298927 0.103108719 -0.0124953985 0.137446329 0.203340098 -0.143161386 -0.00422739983 -0.0690570623 -0.0862223357 -0.00373031199 0.152680412 -0.187144041 -0.150555462 -0.00736176968 0.0214922428 -0.194789246 0.164209351 0.192243442 0.0993965119 -0.101303689 -0.0668666065 -0.133668631 0.0192529112 -0.104733162 -0.0263447613 0.0662874728 -0.0708586127 0.18913655 0.0197795779 -0.0626228899 -0.0486549139 -0.130153105 -0.0714892447 0.190415099 0.0138893723 0.120061055 0.0417894572 0.146817371 0.153696015 -0.187751904 0.0819001645 -0.0486842245 -0.128123075 -0.0767132044 0.00572647154 -0.155002609 -0.154959247 0.145997748 -0.0947026834 -0.164780676 -0.048354432 -0.143211767 0.208791658 -0.0568977594 0.164443508 -0.094508186 -0.0411193967 -0.0077252686 -0.0466969907 0.192170754 0.0448009223 -0.180281535 0.0106853694 0.0102296174 0.208183989 0.195382103 -0.176260248 -0.0776241869 0.202723071 0.190967277 0.0750496238 0.13832204 -0.170639753 -0.203582883 0.209013984 -0.0189047903 0.189927235 0.203989223 -0.0673976541 -0.0671165884 -0.056080997 -0.10969273 0.118760511 -0.0700895935 0.0611418933 0.19506602 0.190814689 -0.0816073269 -0.069729194 0.0665346533 -0.144401535 -0.0420406312 0.205646262 -0.0035623461 0.0658593625 0.137323514 -0.148592651 0.0994510204 -0.0742328614 -0.119936392 0.144386664 -0.0725115687 -0.0383362919 0.0210164189 0.206038699 -0.0348130763 0.0454294831 0.00123158097 -0.190542489 -0.117847003 -0.148828179 0.137181416 -0.130941033 -0.11261081 -0.0836683661 0.0260617733 -0.0863529742 0.03696163 -0.059837833 -0.191984475 -0.11482615 -0.199378967 -0.057920441 -0.0917367041 0.214567676 0.0566586107 -0.1295214 0.0309029371 -0.0575228184 -0.170975536 -0.143164337 -0.0972486436 -0.182878032 -0.166031763 0.123772219 0.18878077 0.10624586 -0.139099061 -0.118804589 -0.189823389 0.0636889786 0.0284215957 0.116121933 0.14496465 0.120553508 -0.190684184 -0.214785978 0.154975966 -0.1819987 0.0851287693 0.118326649 0.210865155 0.0652956218 0.022072956 0.100319609 -0.0137865394 0.0480548292 -0.164894283 -0.124102108 0.17538999 -0.0962759331 0.12518017 0.102196857 -0.000101014972 -0.0564532131 0.204702452 0.127723977 0.0825591236 0.175896809 -0.14668785 0.12617068 0.125715986 0.110114977 0.16377984 0.0897218436 0.0222187787 -0.132133484 0.137781605 0.144382492 -0.172876045 0.123122826 0.155621991 -0.13776879 0.133352146 -0.0267543495 -0.0774474889 -0.0353892595 -0.0892003477 0.147660986 -0.0329856575 0.0126497298 -0.0895730406 -0.189575553 -0.0950342342 0.0489795953 -0.102236398 0.142989025 -0.124813005 0.16722329 0.0623026937 0.0836647004 0.209594235 0.18983753 -0.112591349 -0.204102159 0.177093789 0.0553188473 0.0159559399 -0.00632128119 0.204769507 0.117495731 -0.139558673 0.0703597814 -0.0591942966 0.194571778 -0.103359729 0.168746993 -0.0282427967 -0.0703443438 0.166565135 0.198672459 0.023479268 -0.140086904 -0.00925438106 0.0309761763 -0.145862371 -0.0800234377 -0.208504289 0.125711635 0.0786820203 0.180224493 -0.142703012 -0.209427655 -0.126884282 -0.0825118423 0.0390750021 0.167732462 0.0103222728 -0.0284628421 0.0199560076 -0.126556277 0.153863385 0.0335963219 0.153281644 0.076840803 0.0741052181 0.133410379 0.0765366703 0.193857834 0.13901554 0.0624662191 0.179237649 -0.0292105973 -0.157329708 -0.118335113 0.0318421423 -0.154734612 -0.0162997246 0.0887960047 0.123274341 -0.196033016 -0.0293950289 0.20888482 0.0114002973 -0.0316554904 0.11034061 -0.0922291502 0.0522341281 0.148996249 -0.0621330738 0.212870255 -0.106105611 0.152307317 -0.0777120888 -0.0245142877 -0.166529208 -0.0295187086 -0.0578900278 0.0847600251 -0.135747284 0.175222859 -0.130666822 -0.132699534 -0.206814334 -0.0140505284 -0.0947527066 -0.178712726 0.137178943 -0.0886231363 -0.0846580714 -0.209774852 0.0712764114 -0.210888788 0.159977511 -0.104078628 -0.128722221 0.0991139561 0.0857882053 0.0132237375 0.0796495527 -0.163628072 0.0441264063 -0.21095182 0.206528112 -0.113637671 -0.0605652928 0.214673623 -0.0120598823 -0.212002009 -0.00372287631 0.108117834 0.0146675259 -0.0450135916 -0.0470410287 -0.160427421 -0.102049895 0.130553171 0.189492807 0.0255111009 -0.0161579251 0.0533056408 -0.15086323 0.197554901 -0.107151829 -0.0130375028 0.0201329589 -0.00677733123 0.175717518 -0.0322895795 -0.172619298 0.156291381 -0.0826745033 -0.211674228 0.128153548 0.155901209 0.0530302376 -0.148542643 -0.0168542713 -0.10706263 -0.199126035 0.0226063877 -0.0866802931 -0.188439831 0.0612265319 0.0988980383 -0.0567595214 0.16094403 -0.0510896295 0.0394551307 -0.0564985424 0.0704385489 -0.15769124 0.000198572874 0.039046064 -0.0379181206 -0.118911803 -0.132483244 0.0600273162 -0.178900048 0.01036264 -0.200227886 -0.0340097249 -0.195000678 0.111653998 0.113465413 -0.00874717534 0.138338521 -0.1983888 -0.0686229914 -0.111237943 0.0783984214 0.171736851 0.14756228 -0.12453194 0.0403944999 0.0217258781 -0.0401167423 0.0879769772 0.169041976 0.200492904 -0.0662553757 -0.209812537 -0.18039231 -0.139677465 0.057728067 0.104696468 0.145626351 0.205284551 0.176457837 -0.211327553 -0.0369543433 -0.190623328 -0.0388042778 -0.203891978 0.16981338 0.0745604783 -0.107752368 -0.094001852 -0.0772270858 -0.091026783 -0.0678419471 0.151664004 0.0940061957 -0.188000977 -0.0452845842 0.0114183575 -0.126633301 -0.162703052 0.0658135861 0.0289473981 -0.158960611 -0.188261136 -0.00747688115 0.163810387 -0.0753180534 0.00223882496 0.136111543 -0.131437138 0.18240194 -0.192822248 -0.049658224 -0.140610009 -0.145168334 -0.140232354 -0.0171059072 0.170644954 -0.0685674548 -0.0552155375 0.08043845 -0.124905251 0.0428408831 -0.0812838227 -0.12370237 -0.182598099 0.0213555098 -0.0361159444 0.0614744574 -0.12482281 -0.1049942 0.0971621722 0.176744029 0.0225325823 0.213137791 0.0554650277 0.159704193 -0.146259055 0.00983329117 -0.0531387031 -0.0153169483 0.0351498574 -0.194431886 0.0871008486 -0.0258889645 -0.1794516 0.163514748 0.15380995 -0.0277510732 -0.179516539 0.0886832625 -0.00215138495 -0.0607132465 0.172799483 0.168418482 -0.081258744 0.167466924 0.191594943 -0.0875329375 0.196650997 0.0898170322 0.0974394232 -0.191848293 0.170320705 -0.0774582326 -0.10549888 -0.139196217 -0.0146327913 -0.026633203 0.132847175 -0.188114524 -0.071519658 0.0242519677 -0.0271319449 0.0122186691 -0.0543771982 -0.0617631674 0.0315280408 -0.216159254 -0.104406878 -0.193831503 -0.209498644 -0.0761986673 -0.0196423233 0.00993141532 -0.14958027 -0.182277754 -0.111464448 -0.192824259 0.00750847161 0.150534764 0.193630025 -0.0460668802 -0.110117607 -0.124770366 0.120057479 -0.173678726 -0.142408162 0.0954728872 0.0259686112 -0.0505384952 -0.212220415 0.167066768 0.124231324 -0.173243523 -0.199705094 0.155996338 -0.200430855 0.181286499 -0.170365497 0.164033636 -0.136624649 -0.0501381308 0.173443452 0.0237767994 0.0782894641 -0.124499984 -0.12123657 -0.0878584087 0.16656436 -0.143001422 0.0573170036 0.125798091 -0.111507401 0.0971701294 -0.197383985 -0.0835127383 -0.176407218 -0.163371623 -0.205790058 -0.0732140541 0.0839589387 -0.17012836 0.120222464 0.107119039 0.01588884 -0.0719872713 -0.0902260095 0.0331825316 -0.116835989 0.0768413395 0.0894325227 0.00996874273 0.0925236493 -0.126660258 0.108591214 0.21390228 0.123638883 0.00965422392 -0.0182338953 0.0676757246 0.141449586 -0.133953929 -0.168602139 0.0459650904 0.0890752822 -0.0926928967 -0.166710973 0.162462726 0.186649635 -0.0953876749 0.0818892568 -0.192841858 0.0148016363 0.0456236154 -0.10302493 0.0760888904 0.102294728 0.0210544169 0.0534829348 0.195181444 -0.0954215825 -0.0530149639 -0.106112838 0.131188944 -0.056415379 -0.0882475078 0.160874799 -0.170507863 0.173274353 0.0951010436 -0.154478103 -0.0548147708 0.120807216 -0.211992562 -0.133567199 0.0990383178 -0.0842951387 -0.028699562 0.101668939 -0.214228392 -0.209541991 -0.171251446 0.013082251 0.0826236159 0.183336809 0.0821289271 0.138115719 0.0194735825 0.216294721 0.195768192 -0.128757387 -0.0418222398 -0.14046067 0.121225998 0.005982548 -0.0797491968 -0.119416744 0.124659166 0.187730119 -0.201665327 0.11481671 0.105706856 -0.0756445378 0.0912590176 -0.0834560096 -0.106099673 -0.0594012439 0.127701923 -0.135332465 0.0493696779 -0.185816079 -0.0111982524 -0.0189599693 -0.0448094308 -0.016880393 0.169325575 -0.0801288933 0.0749966055 -0.155659109 -0.0156790614 -0.175826907 -0.141187832 -0.144478768 -0.13352941 0.0760302991 -0.110635705 -0.092448011 -0.0588075072 0.173608378 -0.142341673 0.178110644 0.104062125 0.0720068365 -0.154148623 -0.0572045296 -0.0292451382 0.172381237 0.210608348 0.191868678 -0.0197329074 0.150700465 0.108895794 -0.192148879 0.140001103 0.1630456 -0.17195645 -0.196481481 -0.12159992 0.134717837 0.0107948482 0.0477312952 0.157484934 0.0370388478 -0.100330926 -0.131162003 0.211105183 -0.1423724 0.00499497354 -0.117719814 0.160277322 0.125830933 0.0534268469 0.181643441 -0.195433453 0.0584834367 0.14968203 0.0025794059 -0.0255060941 0.151692793 -0.131960705 0.0424686223 0.21392189 -0.00578051805 0.0725015551 0.116645768 -0.065128848 -0.0992387161 -0.166360825 0.189094409 0.0682502538 0.117197379 0.0222197622 0.0768003017 0.0591024607 -0.138343424 -0.0113099068 -0.169014007 0.0546107739 -0.00234811008 -0.0670624524 -0.127577215 -0.173200935 -0.04585886 -0.0402118713 0.105396613 0.0428419262 -0.190230966 -0.131698281 0.201709107 -0.0737110376 -0.0859876722 0.15149571 0.0910891443 -0.162875623 0.167837605 -0.206478968 -0.168369234 0.0995685607 -0.133059204 0.115290627 0.0783999711 0.101689532 0.0518790931 0.0757406503 -0.161087945 -0.0761120021 0.125714675 -0.0120552927 -0.00932644308 0.140423194 0.12445806 0.065647468 -0.0172622204 -0.215658665 0.0200218707 -0.0418904275 0.0858635753 0.103341416 -0.183552429 0.211871162 -0.121593833 -0.0866136551 -0.197011918 -0.0651703924 -0.036355406 0.192196116 0.113513276 0.0877193362 0.202224836 -0.0725498199 0.166359439 -0.0959352478 -0.0512749404 0.0765138119 -0.154294968 -0.208470017 -0.201069385 0.0581307858 0.0786459297 -0.180866838 -0.213939741 -0.103269294 0.00789953768 0.176427498 0.102004424 -0.0548213869 0.185219988 -0.161328897 0.119971231 0.214503333 0.14214541 -0.0694469959 -0.118148819 -0.126568466 -0.12900421 -0.160701007 -0.0514311939 0.169151768 0.149399057 0.201706156 -0.172729447 0.0822001845 0.0545862466 -0.134392321 0.0434386283 -0.0479016751 0.0541823357 0.158885255 -0.09142977 0.197498277 -0.167603403 0.132319197 -0.102739789 0.119485959 -0.140581161 -0.189739808 -0.0908891708 -0.0630740374 0.0723706335 0.0941010565 -0.0227806568 0.0900176913 0.148701057 -0.0652091056 -0.0770889521 -0.0362821072 -0.179783881 -0.21116361 0.122154102 0.177898183 0.0526371747 0.0269353241 0.0857601315 0.216020301 -0.107579701 0.128904447 0.054578051 0.103795692 -0.0113690645 -0.119569071 0.108074889 0.00509743392 0.0331829488 -0.0238016397 -0.0806140751 -0.163161382 -0.168502867 -0.0399769545 -0.0122187585 0.200566009 -0.0271293074 0.0619007498 -0.0564962178 -0.130486205 -0.066040799 0.112007633 0.00720499456 -0.0206535459 0.096410349 0.125088289 0.147634402 0.0159186125 -0.119035274 0.178178146 0.0365983397 -0.0527665764 -0.0766764581 -0.107746065 -0.0877965093 -0.207479611 -0.10734468 0.0227864981 -0.0744823366 -0.161112726 -0.197631866 0.189613149 -0.185942352 -0.020772472 0.0157320648 0.0533249527 0.0798774213 -0.122072697 -0.0572315753 0.154736266 -0.0325057507 -0.0629333258 0.101814345 -0.0899652839 -0.0534769595 -0.122509293 -0.165780842 0.074484095 0.0874628574 0.0341077 0.00585184991 0.1862946 0.171884611 0.0217692852 0.0554678589 -0.195318297 0.00873592496 -0.038867563 -0.145357221 -0.0936275125 0.135312811 -0.123575695 -0.121628001 0.138502613 -0.0343277603 -0.0308768153 -0.199197263 0.0124370605 0.00450140238 0.0168203562 0.0565335304 0.194811717 -0.125375807 0.152512774 0.178165004 -0.067452997 0.172620848 0.0442763716 0.126086667 0.126195416 -0.00261233747 -0.12715295 -0.0116322637 0.0244878531 -0.0420569479 -0.0489893407 -0.103948087 -0.194147572 -0.136298835 -0.197744489 -0.155147403 -0.144872159 -0.0447314978 -0.163351804 0.0671931356 -0.210256308 0.181948051 0.0106613636 -0.193160713 -0.181537583 -0.107425615 -0.127407789 0.20466502 0.00888974965 0.144979939 0.158022746 -0.194642037 0.210226044 -0.212851912 0.166750088 0.0771187395 0.0843290836 -0.174083322 0.0852144808 -0.207569584 0.15496017 -0.17085737 -0.0667669326 0.0964765698 -0.0886724293 0.120675996 -0.139222488 0.014391005 -0.137626171 -0.0137097836 -0.0147678703 0.198397741 -0.0923225284 0.103191569 0.142688408 -0.0913800597 -0.185352087 -0.14781563 0.174505517 0.02180852 -0.0825323462 0.11374937 0.110285684 0.104386434 0.161401376 0.135937288 0.17080535 -0.0523508936 0.0874292403 0.114492789 -0.0201862305 0.166313693 0.134245828 0.044553414 0.20096691 -0.0094486773 -0.109829001 -0.102083087 -0.048563078 -0.0473754704 0.135723069 0.0740040392 -0.0681224465 0.0199378431 0.0159724504 0.155929372 0.154611811 -0.198456585 0.183464333 -0.0562392026 0.120498225 0.130089268 0.166842505 0.010668844 -0.131082982 -0.115600899 -0.103601106 -0.00212794542 0.143679813 0.178288147 -0.174668834 0.108716354 0.00984026492 0.0171459615 0.0398878604 -0.0154120773 -0.0376143008 0.183139786 0.0423324257 -0.00311000645 0.15201132 -0.0449348241 0.0411461741 0.0920134932 0.0221730471 0.0914157778 0.119179353 -0.128621578 -0.149694562 -0.067012012 -0.185341299 -0.117086858 0.0772460252 -0.0213351697 -0.171175972 0.153081045 0.110812977 -0.0527641475 0.131288633 0.0473815054 0.0458607525 -0.176025331 0.118809685 0.147665456 0.104117289 0.11545755 0.174477026 -0.105114318 0.21178697 0.137510374 0.21256651 -0.0163915604 0.0784160346 0.0342559665 0.146447256 0.159192368 -0.0697384328 0.142851159 0.125387326 -0.144943848 0.0215848982 -0.205837697 0.12509428 0.0184182227 -0.0967394188 -0.165151507 -0.0142404735 0.104217067 0.0804832727 -0.0904078186 -0.211816132 -0.186694339 0.160249218 0.169335291 0.194926903 -0.156068698 0.0739769787 0.112955108 0.0859761089 -0.0413690209 -0.0103305876 -0.214461967 -0.00220409036 0.0497616082 -0.142469123 -0.108723938 0.164618984 0.193078652 0.121188059 0.169796184 0.0628244728 -0.110871814 0.00555121899 0.196436986 0.146068022 -0.204416886 0.108440921 0.0717491657 -0.0419820994 -0.202093452 0.046655789 -0.213118687 -0.0738265067 0.201398209 0.190010354 0.134671435 0.0577925891 0.105321243 0.0916577727 0.2120478 -0.0295900553 0.190685168 0.0929719955 -0.0358914584 0.030744046 0.161590502 -0.0621115565 -0.0530126393 -0.114318214 0.00895825028 -0.0612418652 -0.0205574781 -0.0890066624 -0.130526781 -0.0148858279 0.125859484 0.088974759 -0.0389558822 -0.117285594 -0.11924547 -0.21629554 -0.0608899891 -0.193787634 -0.206372887 -0.121276736 0.0399113446 -0.10892231 -0.0043925792 0.0563111156 -0.0429309607 -0.0561089665 0.143857375 0.198619738 -0.170868114 0.110393509 -0.0713414699 0.168767825 -0.123406231 -0.171155483 -0.151524007 -0.0630831271 -0.116945058 -0.121831022 0.157968029 0.00178436935 -0.121621549 0.121354058 -0.119465627 0.0285650492 0.0701958686 0.205143854 0.024393037 -0.132433847 -0.103161149 -0.0826455355 -0.109971575 0.102918997 -0.0699379891 -0.0727377683 -0.0829387307 0.126537696 0.190180942 -0.184601486 -0.124867566 0.129507914 0.17058669 -0.0512817055 -0.167644083 -0.0459512025 0.115003869 -0.100187942 0.0975338966 -0.0351921171 0.182260707 0.0181757212 -0.170957923 0.14180927 0.000189900398 -0.0782412887 -0.131089419 0.0339972526 0.175408676 -0.0681886673 0.21040915 0.0373844355 0.071604833 0.119960502 -0.0766117722 -0.145311221 -0.21384941 0.168538079 -0.121509276 0.0366761833 -0.0695175529 -0.0186810195 -0.168163538 -0.093255803 -0.066438213 -0.06691131 0.145588771 -0.0291061699 0.164179936 0.0236431658 0.0862588733 -0.024677664 -0.0876730829 0.0569633693 -0.165546805 -0.159477264 0.0129503608 -0.130166024 -0.155320436 0.152000919 -0.215876535 0.0798825175 0.0710681528 -0.0963910446 -0.162591815 0.110043481 -0.0218766481 -0.0476924181 0.178839758 -0.124152072 0.049907282 0.00301502645 -0.0466163158 0.19037123 -0.0795731246 -0.061778143 -0.101826951 -0.0281918496 0.118765607 -0.0150453746 0.146913067 0.0751392394 -0.164122105 -0.15520981 0.163700745 0.0548744351 -0.0938015729 -0.0164318681 0.155254617 -0.0936539397 -0.181933865 -0.112966724 0.00165176392 0.00523485243 -0.0341027975 0.0846347958 0.146627143 -0.13444379 0.0549523979 -0.104309112 0.0918891877 0.133545563 -0.214002609 0.0659228116 0.145625278 -0.147034526 -0.215351731 -0.0165674239 -0.169171289 -0.149266541 0.0289853364 0.0674836487 -0.0101496577 -0.19863373 0.191456392 0.13925688 -0.127273679 -0.0830198824 0.0128667355 -0.00090457499 -0.0971823111 0.110065117 -0.0028360635 0.101495519 -0.214313045 0.153006449 0.0201432854 -0.0251346529 -0.181473985 -0.114532851 -0.178860873 0.208337113 0.211663172 0.091600582 0.197902307 -0.148595601 -0.100968473 0.0851389021 -0.148769185 0.172153726 -0.107144497 -0.171870291 -0.0863629431 -0.182934195 -0.180052817 0.080251798 0.176699266 -0.167886123 0.026637435 -0.173269644 -0.208459496 0.0654234737 0.099204585 -0.149507642 -0.175706327 0.128977373 0.0937536806 -0.170647964 -0.206095487 0.167361483 -0.155004263 0.149089083 0.00565069914 -0.0731569082 0.184508279 -0.0208512396 -0.128958374 0.033260271 -0.158439204 -0.0909350514 -0.0607281625 0.0364444107 -0.042305544 -0.15773192 -0.215652406 -0.173622519 -0.139746636 -0.193419278 -0.10281644 -0.11067798 -0.122570254 0.188530162 -0.0451469272 0.0693991929 0.00381150842 0.0770897716 -0.0268409252 0.134338334 0.157168493 0.07287018 -0.142154962 0.188371971 0.205318674 -0.11241357 0.102926865 -0.114252038 -0.157263845 -0.194029048 -0.148483783 -0.00741705298 -0.155988425 0.179024622 0.0354434401 0.0520162433 0.0387610644 0.0499956161 0.167682186 0.0962207466 0.190279439 -0.215855837 0.0685293525 -0.145040542 -0.142585114 0.0519675761 -0.0611594915 0.114597276 -0.0100210309 0.21528922 -0.057690993 -0.205565825 -0.00463534892 0.0865986794 -0.0325067341 0.092532143 0.0555264503 -0.179173589 0.112895504 0.0829366297 0.038398847 0.0384380966 0.0321491212 -0.208782479 -0.118482225 -0.0243181288 -0.0181523263 0.067361787 -0.108105697 -0.0424148738 0.149324343 -0.162934825 -0.109023385 -0.187226266 0.0267538428 -0.0207576603 0.171189651 0.0916840881 0.18043752 0.160048321 0.0202057362 -0.035435915 0.188651487 0.157229885 0.0754751116 -0.120571256 -0.0149262398 -0.0128988922 0.13711606 0.137742922 -0.0248965323 0.176231846 0.0165475011 -0.0700546056 -0.0750510693 0.112596139 0.169082984 0.0739284605 0.167029604 -0.152689919 0.133085862 -0.120052122 0.117366835 0.168057874 0.120951995 -0.00274479389 0.170090929 -0.137612537 0.160551772 0.107313588 -0.187586263 0.0210244209 -0.197788477 0.120084122 -0.17474404 -0.199295804 -0.185602799 -0.0883810967 0.143523946 0.0422050506 0.096741125 0.139212891 0.143377319 -0.209460288 0.0242591798 -0.128646553 -0.0646732599 0.19039993 0.049809888 0.195996508 -0.173688993 -0.203872055 -0.0360327959 0.140985116 0.165086731 0.118019864 -0.0698265433 0.185214415 -0.069292441 0.144163057 -0.0690802932 -0.160331935 -0.0889242291 -0.00966438651 -0.137280941 0.117105022 0.00400812924 -0.165843144 -0.021515578 0.0821611434 0.131999329 -0.0664433241 -0.139958367 -0.142741725 -0.0266040862 -0.213204071 -0.0263046026 0.0130944848 -0.0404535085 -0.00415740907 0.125727281 0.0925602466 -0.179619938 0.0838381499 -0.158369884 -0.153768957 -0.151555181 -0.187208101 0.128862068 0.176370516 -0.0835698843 0.205712125 0.138110653 -0.00123369694 -0.0797283351 -0.135244101 -0.140633434 0.193839416 0.148164049 -0.0998520032 -0.104247481 -0.122175425 0.0464821011 -0.100138336 -0.198886871 0.138666347 -0.00737214088 -0.200136989 0.111531869 0.00754413009 0.134365484 -0.0296986103 -0.0602438152 -0.084937796 0.0474634916 -0.107165352 0.176186338 -0.202273816 0.107645705 0.0710564703 0.0169677287 0.107554391 -0.200600058 -0.207858801 -0.0488333553 -0.113134228 0.143263802 -0.180748641 0.121511653 -0.0200081468 -0.0371249467 -0.0852490515 0.0852340311 0.116539136 -0.121431179 0.179835275 -0.180221707 0.0971756428 -0.0671808124 -0.096670717 0.122443482 0.213069484 -0.0251551419 -0.211645678 -0.129469305 0.129253551 0.176968321 0.169198945 -0.0636038035 -0.154629558 0.0159834474 0.0290882587 0.00970223546 0.186621442 0.0556791872 -0.100677237 0.114027902 0.0493647605 -0.0984661877 0.0843400508 -0.0654053688 0.156705692 0.102047458 0.187493667 0.185438499 -0.0815944672 -0.107716076 0.0613776296 0.150048301 0.0228931904 0.170780048 -0.137341127 -0.0778926015 0.170413241 0.0416327566 -0.153572038 0.213817045 -0.0768222362 -0.188539103 -0.182397917 -0.168795973 0.0762984902 0.210339829 0.133393303 -0.0139060915 -0.18056497 -0.177289739 0.0589458495 0.163053647 0.0959977657 0.179883704 0.0405377001 -0.188018471 0.12062864 0.195076212 -0.112741664 0.0070233047 -0.00372958183 0.0735349804 -0.0911760628 0.130434319 -0.0278169364 0.0758306235 -0.148699552 -0.124928117 0.0078060478 -0.144792289 -0.0992983878 -0.0221376866 0.160661682 0.0157590657 0.170573518 0.0307497829 0.182121798 0.0635909587 -0.164019033 -0.0333197862 -0.162705213 -0.118409701 0.155257002 0.215621695 -0.0587076843 0.204138085 0.0382706374 0.129995152 -0.169717059 0.00614340603 -0.0285736173 -0.0124229193 -0.0980990678 -0.036005795 -0.133969933 -0.0159716904 -0.0219367445 0.00796018541 -0.0607555658 0.209069833 -0.185915351 0.147220716 0.189130202 0.030764237 -0.146559015 -0.208305672 0.0384532064 0.128376588 -0.113073111 0.0739213377 0.0925926119 -0.0880533606 0.118848041 -0.193757892 -0.0761750787 -0.21023725 0.079688862 0.155880287 -0.130557537 0.159254387 0.0349608809 0.0448351055 0.137973502 -0.1518078 -0.145222396 0.0247928798 -0.0132388622 0.118830964 0.154117808 -0.172864541 -0.105114318 0.133014515 0.188770816 -0.161338136 -0.145239621 -0.151124269 -0.162278846 -0.182259634 0.0780197829 -0.00181245804 -0.0462520868 -0.174931988 0.048585847 0.166088894 -0.207235143 -0.0485032052 -0.148649424 0.0603711158 0.170118198 -0.199377924 0.0831111521 0.169277415 -0.214812368 0.0188579112 0.0108002722 -0.134744629 -0.00610370934 0.0125931054 -0.196026146 -0.11241249 0.0151201785 0.11115624 0.0349888355 0.131289646 -0.099500373 -0.077281788 -0.0723926872 0.0142201483 0.182761118 -0.0194433779 -0.183772326 -0.0739583522 0.117502645 -0.135464728 0.131183848 -0.0278644711 -0.0249309093 -0.0981528088 0.00976391137 -0.153387129 0.031068936 -0.0370985717 -0.124247365 0.129386976 0.161854222 0.176230416 0.181838885 -0.0915992409 0.181049213 -0.050342381 -0.169888079 -0.0898328274 -0.0271604359 0.12833719 0.138152823 -0.0109691769 0.147532538 -0.108054027 -0.109916806 0.139280394 -0.0366517007 -0.0943653062 -0.0163408071 0.0449097306 0.101363614 0.186126426 -0.118842945 0.0292662382 0.122838095 -0.0339722037 0.00619986653 -0.173954517 0.19678314 0.19354488 -0.139507577 -0.0768028796 0.0501139611 0.116907135 -0.164727136 0.116348907 -0.17110768 0.186591759 -0.0119434297 -0.211161956 0.0230114013 -0.0660398155 -0.189590886 -0.142587066 0.162947014 -0.0784890652 0.194944426 0.00365324318 -0.198851004 0.0290491283 -0.0833261907 -0.0745511949 -0.0624704063 0.0963942558 -0.211906508 -0.0907975435 -0.177961722 -0.0427532941 -0.102236241 -0.00546956062 0.0529977828 -0.185933009 -0.196291313 0.120790377 -0.165692165 0.193726048 -0.024558261 -0.0765605271 0.0761537999 -0.189036757 0.139987066 0.115916803 -0.20065473 -0.16738975 -0.177691638 0.10213466 0.0104234964 -0.0485365987 0.131837502 0.184338138 -0.0988779515 0.204247072 -0.0221602023 -0.15159823 0.165610358 0.156307235 -0.115729228 -0.160101399 0.132918909 -0.177590266 -0.171231866 0.209421918 -0.0125618726 -0.042188108 0.158009216 0.16228272 -0.195480064 -0.142693818 -0.122729138 0.103459522 0.0109206438 0.0217973739 0.165180162 -0.12373814 -0.0076033473 -0.143857926 -0.00519195199 0.171078011 0.111871764 -0.0883309692 0.124723449 -0.0734157264 0.112301454 0.130824462 -0.0011742264 -0.101004504 -0.0886798203 0.114813134 0.133593991 0.109536901 -0.0095808655 0.208430752 0.200661764 -0.174664035 0.142063722 -0.13328588 0.155720696 -0.04611215 0.11153017 -0.193194419 0.185900226 0.145938799 0.0697552711 -0.113824479 0.162363693 0.110507116 -0.0449661016 -0.0211565644 0.052987352 0.200662479 -0.023140192 -0.0629735887 -0.17330578 0.133468762 0.196979359 -0.085863471 0.158998385 0.0567813963 0.132058069 0.181351647 0.123333141 0.0891850144 0.181670085 0.065961197 -0.1719978 0.17882891 -0.111636549 0.0335636288 0.100588545 0.187518016 -0.112998933 0.00070284307 -0.094347544 -0.0739775449 -0.121693611 -0.15181461 0.0818048567 0.0429217666 0.185056314 -0.215750799 -0.109943129 -0.0452194512 -0.0369811803 -0.156027153 -0.0152942836 0.170745209 -0.150924027 0.137300596 0.207546547 0.214027956 0.1379347 -0.00864961743 0.0639966875 0.0667787939 -0.0205455571 -0.114086241 0.0458551794 0.17406036 -0.0776239336 0.0212613046 -0.0596514791 -0.0619233996 0.0762941092 -0.175873667 0.0782098025 0.177441254 0.161220655 -0.129897699 -0.187710047 -0.0378752798 0.152543887 0.046237126 -0.204474598 0.155026719 0.0340682119 -0.131933391 0.123050019 +tensor_densebias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense3kernel0 4096 +-0.157126695 -0.0574855506 0.106805876 0.0320915133 -0.00206141174 0.118177101 -0.100708053 -0.199134961 -0.20918794 0.0794857293 0.0141035914 0.133928105 0.15113236 0.0197324008 -0.00279904902 -0.00935746729 0.0766361803 0.000867977738 0.205688074 -0.198612362 0.206960931 -0.14323701 0.0272512436 0.182983592 0.171082482 -0.0637201518 0.0987242907 0.0002386868 0.162869588 -0.140456796 0.10707207 -0.117068589 -0.0303281993 -0.110480852 -0.0395493954 0.168984696 -0.0860318094 -0.161483958 -0.0866992474 -0.0290005654 -0.150826931 0.173386768 -0.0199358314 0.113020256 -0.096807301 0.112699553 -0.068431288 -0.17791903 -0.0107590854 0.0999799818 0.115470961 -0.134925246 0.0773708373 0.159039274 0.104232565 -0.207467481 -0.149478585 0.101562515 -0.134071261 0.0891446918 -0.0215646625 0.135445401 0.0521299094 -0.0931728482 -0.127479345 -0.214786753 -0.0638968945 -0.137846828 -0.0414835066 -0.0179642886 0.0631623715 -0.066822052 0.130865142 -0.204095557 0.101689443 0.119617596 0.0565026551 0.049334988 0.00837221742 0.0244794488 0.0102428347 0.0977496654 -0.0935144648 -0.150627881 0.148609802 0.153200075 -0.0563329905 0.056215927 0.0464795679 0.104156896 -0.0262367725 -0.0373657048 -0.135798275 0.0019262135 -0.0506628454 0.0692674667 0.157293484 0.143221363 -0.0257247537 0.087214455 0.0745731443 0.189587757 -0.0979272276 -0.114433736 -0.070238784 -0.00721460581 0.111420676 0.196136817 0.0945720524 -0.0303674787 0.164077565 -0.0442436337 0.193336055 -0.155984506 0.000209629536 -0.00489896536 -0.152130574 -0.059616223 -0.110140212 -0.00595778227 0.0708914548 -0.0620287061 0.0209028572 -0.0922083482 0.216351762 -0.0388540775 -0.026888147 -0.0587928593 0.147434458 -0.0204119086 -0.118906587 -0.20586434 -0.0120519847 -0.0976502448 0.132977411 0.154209957 0.212346062 0.15579389 -0.0330437273 0.135177597 -0.0062251687 -0.161344945 -0.119463198 -0.0503639132 -0.0308163166 0.0391858965 0.105288014 -0.197656378 0.18541269 0.0359483808 -0.105437554 0.124296054 0.186030731 0.125911936 -0.119132988 -0.112327263 0.16490595 0.023719877 -0.160002545 -0.128723681 -0.0472871512 -0.172228426 -0.0225256681 0.0534228235 0.139174059 -0.213615775 0.0701766759 0.14800857 0.020088464 0.0131229758 0.149838492 -0.0952809751 -0.194486648 0.0805033594 0.0569983572 -0.0351622254 -0.192274466 0.114089683 0.157841101 0.0461343378 -0.106488213 -0.0940173417 0.195608661 0.127913967 -0.0884573311 0.0333370864 0.047921285 -0.0244527608 -0.153076544 -0.139484301 0.091572389 0.135228053 -0.215352252 -0.174691796 -0.120686516 -0.0543301255 -0.174632341 -0.10400869 0.151081875 0.0138199329 -0.172752529 -0.0921034589 -0.0716628432 0.0963533074 0.0415910333 0.172218069 0.11391966 0.15581809 -0.14607276 0.0291023999 0.0870216638 0.143794075 0.0246546417 0.125141934 0.0722792894 0.142199829 0.121365204 0.0614572912 -0.0707428902 -0.112326488 0.0656793565 -0.0271580219 -0.133025199 0.0663781315 -0.0925766006 -0.0254372954 -0.0146106929 -0.0757192373 -0.0408454537 0.187658831 -0.0679282993 -0.0632430911 0.0600588769 0.206816509 0.0895232707 0.10522221 -0.111993805 -0.184027076 -0.0356732607 0.13371332 -0.187464491 -0.211081699 0.15551199 0.175406978 -0.20207116 -0.0688237995 0.0914577395 0.148889259 0.0739640743 -0.102595352 0.0539894253 -0.128157347 -0.20039916 -0.19330959 0.20615609 0.059134528 0.187454417 -0.0544648916 0.00775700808 -0.0706937015 0.117668495 0.106261507 0.152772561 0.214982763 0.113340124 -0.016072914 -0.165180817 -0.0687032044 0.0383688062 -0.196328536 -0.0791411698 -0.0550893396 -0.101884253 -0.123039782 0.0508857816 -0.0438773483 -0.102030642 0.170622572 -0.0622009486 0.0301008224 -0.12734741 0.0114751458 -0.194511533 0.0797934681 -0.0749339461 -0.0118947029 0.137062535 0.00732712448 -0.100179888 -0.00115224719 0.0596233457 -0.0208866 -0.133533031 -0.0603932589 0.0174503177 -0.186507016 -0.181493446 0.152736828 -0.0604177266 -0.122234784 -0.137451172 0.0765140504 0.117531702 0.111436173 0.100522861 0.137475595 -0.0935537964 -0.211573988 -0.135187358 -0.029451713 -0.184125662 -0.151623666 -0.174269497 -0.103650033 -0.00102944672 -0.143751353 0.0417087227 0.0796099752 0.181011215 0.153911576 -0.0459779352 0.141943648 -0.16389814 0.197212204 0.0321303308 0.207686916 -0.064687714 0.147710487 0.103057697 -0.00395381451 -0.0739111751 0.0849238485 -0.201943189 -0.207156777 -0.0458236039 -0.168880522 0.0898965746 -0.0152874738 0.134376183 -0.0323506892 0.173693791 -0.0356045067 -0.194553763 0.160164014 -0.102031365 -0.0266398042 0.0602421612 0.206572697 0.0325950086 0.124050334 -0.0232710391 0.0120393336 0.205563441 0.179635152 -0.0905359387 -0.170831829 0.168649629 0.0268902183 -0.0204891264 -0.118215151 0.165402427 -0.0657758862 -0.115301147 -0.148587286 -0.0857489407 0.0506729633 0.0136355013 -0.030719012 -0.092033565 -0.138116285 -0.130454823 -0.0190627426 -0.0986293033 -0.0813186169 0.207555696 0.174842849 0.1030875 0.156256601 -0.143089324 0.21240975 0.0250414759 -0.137365997 -0.0977394879 0.189960852 -0.127831906 0.0374131352 -0.207841977 -0.151396602 -0.0249908417 -0.0260430872 -0.0633914918 0.0906250328 0.0549818128 0.0146203488 0.0642315596 -0.0944565684 -0.212563679 -0.00588586926 0.209794268 0.192811295 -0.0156236142 0.0953232497 0.0881753415 -0.0219481438 0.193943635 0.180111095 0.0580111891 0.137432918 0.0997781903 0.147628203 -0.154897153 -0.0963822678 -0.190226316 -0.0100667179 -0.087716192 -0.0626818836 0.0502240211 0.180359378 0.148154184 0.0950211138 0.117706969 0.0488625318 0.201384768 -0.049127534 0.210025623 -0.197280496 0.177274778 0.181187347 0.146395132 -0.212779343 -0.0416779071 -0.198303789 0.212326065 -0.138355225 0.141288295 0.0724814087 0.0919541866 -0.0620462596 -0.0109461546 0.0826215297 0.130510971 0.192226604 0.153095648 0.0873828977 -0.0646656156 -0.00413531065 0.0127723366 0.13193728 0.00758217275 0.0704658478 -0.00516480207 -0.184985638 -0.154789984 -0.0439648479 -0.149459332 0.086667493 0.114109471 0.202520564 0.138923392 -0.166992754 -0.166506201 0.019930765 -0.129035801 -0.185046345 -0.0642022789 -0.187827736 0.0897240192 0.125213161 -0.11600668 -0.196505487 0.0188563615 0.21264337 0.0174953789 -0.0213861167 -0.0174924284 -0.0454946309 0.0183577836 0.146833614 -0.0034789741 0.0236190557 -0.0516708642 -0.189648345 -0.17743361 -0.121950261 0.156872973 -0.181991681 -0.0385737419 -0.0710537434 -0.205065012 -0.0422107726 -0.0599258393 0.0554899424 -0.0715423226 0.0601119846 0.182808742 -0.1615614 -0.174240962 -0.205899075 -0.15233013 0.204328164 -0.157540679 0.0845666379 0.150134578 0.0589586049 0.169338182 -0.0579253882 0.197173581 -0.0934999585 0.112076715 0.110988095 -0.0126780719 -0.132616073 0.151363716 0.0772154182 -0.0876179636 -0.180518627 -0.161706641 0.096692279 -0.190084785 0.0226921886 -0.00668142736 0.185254619 0.0861392766 -0.201936901 -0.213290572 -0.122589096 0.02878654 0.0617884547 -0.192588463 -0.161601961 0.0590852648 0.0623936504 0.0313294083 -0.0761685818 0.0296829641 -0.199898362 0.0824902803 0.198977724 -0.0403034538 -0.0285854936 0.151545212 -0.211166456 -0.131143481 0.0314317644 0.0448487252 0.149905786 0.120433643 -0.098152183 -0.134705961 0.0547145158 0.0899544507 0.210084096 -0.018342182 0.0777514726 0.118379965 0.195818022 -0.000165343285 -0.0955355093 -0.144671857 0.141337171 0.206684425 -0.0780220181 0.0312103778 0.182845548 0.120228544 -0.166991562 0.00781027973 0.0845774859 -0.00591942668 0.116821691 -0.216088548 -0.0468594879 -0.15112932 0.100533023 0.0132636875 0.157097682 -0.0538555384 0.132914588 -0.0394010991 -0.203705221 -0.0421920866 0.18172507 -0.00128661096 -0.193118334 0.200568065 -0.00642983615 0.108580962 0.125121847 -0.076031059 -0.124459259 0.123482689 0.110820547 -0.200875193 -0.0221217424 0.118226245 -0.212543339 -0.114321053 -0.043043077 0.114170179 0.162571058 -0.180847496 0.0363559872 -0.000335425138 -0.209742799 0.0172088444 0.130954966 0.197252706 -0.0554653257 0.07071428 -0.00249940157 -0.109752506 -0.151345655 -0.0792563856 -0.139984637 -0.0244339705 0.0251511186 -0.115166061 -0.142631322 0.195103034 0.0195305645 0.105282083 -0.152079523 -0.0346535295 0.115950659 0.141712144 0.0343440324 0.19083105 -0.135767773 0.0996890515 0.195928797 0.0816812962 -0.159756064 -0.0820661634 0.178561375 0.131212071 0.116254911 0.118948236 0.117319241 -0.0789506435 -0.100146957 0.00210238993 -0.0910266787 0.136879072 0.0149486363 -0.163668022 -0.138554275 -0.00843317807 0.177061275 -0.145813227 -0.0914565176 -0.0616182834 0.137941673 0.0922639519 -0.192443371 -0.18171747 0.0761257261 -0.0527823716 -0.198441505 0.185146078 -0.0364455879 -0.14051953 -0.161612809 -0.0128652453 -0.196685791 -0.056507051 0.181762114 0.215789154 -0.146087259 -0.158510849 -0.0545935333 0.0554478914 0.027127862 -0.0421607047 -0.0109715909 -0.0418432504 0.199510381 0.162983403 -0.208149627 0.166910216 0.0214477032 -0.130396232 -0.137612641 0.213810131 -0.0750268698 -0.14587599 0.0243050307 -0.211617649 -0.109607972 0.135121748 -0.21219635 0.0578199774 -0.0200708658 0.137565926 -0.197198987 0.0427995473 -0.209261343 -0.216130346 0.118182376 0.0886124521 -0.18749918 0.0458304733 0.0577826649 0.0155501664 0.0538347214 0.116897926 0.0675992817 0.150234386 -0.173538685 0.0333945304 -0.11678876 0.204104319 -0.0040128231 -0.00687685609 0.0178756565 0.168637499 -0.16385147 -0.107725419 -0.0329520106 0.0934421569 0.129993603 0.114306226 -0.145894364 -0.0651828349 -0.0370082855 -0.0902525932 -0.140202835 -0.0201750249 0.173114523 -0.186792672 -0.0771485716 0.0278511494 0.125717536 -0.107222185 0.139518932 0.153700426 -0.0509509742 0.201740995 0.104132578 -0.0633194894 0.121116802 0.00780233741 0.0607816428 0.131704316 -0.121703312 0.159913436 0.153702334 0.0931637138 -0.136478931 0.11676921 -0.161350429 -0.0753828883 0.203865036 -0.0368384123 -0.183683649 -0.0624289066 0.197641507 -0.151547074 -0.182652146 0.145924047 0.0088853538 0.126733795 0.196693674 0.0226554275 0.14500694 -0.0413766056 0.00203843415 0.0630263537 -0.192400515 0.087594524 0.0970220417 -0.17984426 -0.033694759 -0.0313679129 -0.105836317 0.0454868227 -0.133115023 -0.200766176 -0.171213761 0.182643428 -0.10640464 -0.00477218628 -0.03847076 0.160682365 0.105835751 0.130279317 -0.170154065 -0.106688961 -0.139034748 0.0122244507 -0.128256887 -0.0844175667 0.0594881624 0.182688579 -0.13474375 0.150128052 0.0952850133 0.0703326613 -0.173677534 -0.0488257706 -0.0444202721 0.159974262 0.190990999 -0.0353472382 -0.0180546194 0.157452658 -0.0569780767 -0.0213358402 0.151893035 -0.190880343 0.149927273 -0.103258714 -0.0399723649 0.118404344 0.0889159888 -0.12871325 0.00909203291 0.0901588053 0.114391968 -0.043138057 0.206893072 -0.18423447 0.188503847 0.0138071924 0.0199418664 -0.159600228 -0.0473044515 -0.0548021197 -0.075371474 0.156782851 -0.00151388347 0.214342579 -0.20569998 0.0682104975 0.12152724 0.0301889926 0.167969391 -0.0764096975 0.161032751 -0.0886487365 -0.206539467 -0.076243788 0.130682603 -0.0288303643 -0.00925318897 0.0471494347 -0.142408878 -0.0308110565 0.186039075 -0.0054397732 0.170009181 0.117387757 0.116703317 0.0178319812 -0.186689436 0.141289368 -0.140456647 -0.201120228 0.00991082191 0.192341462 -0.0431391448 0.147545084 0.114769682 0.141500488 0.191045627 -0.167440712 -0.148996681 0.116447613 -0.0135383606 0.0392496437 0.0677683502 -0.0690728575 0.0194753855 0.0969655663 -0.088915512 0.0860759467 0.0830761045 0.0763156861 0.0442091078 0.187748715 -0.134425014 0.0759585351 0.0443917364 0.00605347753 -0.0584502071 0.0855038911 -0.0384435505 0.13034679 0.0136126876 -0.174765155 -0.0735364705 -0.137182921 -0.125313506 -0.0909460038 -0.107215524 0.170525625 -0.165952161 0.147574976 -0.11683955 -0.0789479613 0.0302509367 -0.191689625 0.163636431 0.0917121917 -0.166540936 0.0620786101 0.177172676 -0.02762945 -0.0596448332 0.0891331285 0.188983843 0.0721515864 0.1080098 0.0279607922 -0.0711805671 0.0315285027 -0.16318801 0.0928200334 0.0599386543 0.127471641 0.18867977 -0.170736492 -0.0320067555 -0.0878222734 -0.160152286 0.015084818 -0.0836775154 0.136463657 -0.0577772409 -0.192274928 -0.155489281 0.114086285 0.0845174938 -0.0205082297 0.0766162723 0.158009484 -0.0982128382 0.0835527927 0.0185174942 -0.0640966743 -0.18490465 0.146524385 -0.191483513 0.0678452998 -0.210035577 0.111271456 -0.00573250651 -0.195890069 0.0491714627 -0.190634429 -0.050716415 0.0534233898 -0.116398156 -0.0916863233 -0.0874829739 0.135388419 0.0839824826 0.0592003912 0.15731369 -0.214462742 0.161635563 -0.117136933 0.173469767 -0.105817266 0.013801828 0.088195011 0.021548152 0.0400209278 0.0452926308 0.142297283 0.052139923 0.0141384751 -0.00670439005 0.183231875 -0.191626176 0.134753868 -0.165713474 -0.0872177035 -0.0377053022 -0.209700152 -0.105731167 -0.0682869554 -0.166620687 -0.202528656 0.0238114446 0.164357349 -0.0960412696 0.0232332051 -0.0455344766 -0.125097126 0.187005803 -0.0288244933 -0.192714155 -0.153565168 -0.0222795457 -0.145467222 -0.0506283045 0.191743508 0.175134227 0.0875942558 -0.09715119 -0.0635505319 0.0387471765 0.0454951376 -0.074606061 -0.153338566 0.0808089226 -0.0365998745 0.185341462 0.183271006 -0.00141632557 -0.121094726 -0.110389791 0.0384959131 -0.167536974 0.0705960244 0.178584918 -0.198987842 -0.169557661 0.186842069 -0.00814895332 0.102330431 -0.0696390122 -0.195230648 0.201476976 -0.191139206 -0.00137074292 0.0628484637 0.178756401 0.0765968114 0.0704100579 -0.0427162349 -0.19207935 0.0192184299 -0.139624655 0.123037145 0.00292855501 0.188148037 0.0630035847 0.0529508144 0.029399991 0.203054562 -0.104894884 0.105328694 0.21006532 0.140993074 0.00315232575 -0.179000035 -0.10547787 -0.0841155946 -0.0633865446 -0.0664363056 0.00558611751 -0.14473474 0.1227227 -0.199927106 -0.128521323 -0.197337016 -0.0622540265 -0.160452604 0.152065471 -0.136062264 0.00736641884 0.148117289 -0.109418064 0.0204568207 0.193620488 -0.120582201 0.161344603 -0.0740270019 0.101754531 -0.014318794 -0.140127003 0.0542468578 0.0140614659 -0.0200820565 0.024495855 0.19365795 -0.0116783679 0.0364855975 0.168477938 0.183173642 -0.107395418 0.188568935 0.116810247 0.00311583281 0.153793737 0.151408568 -0.199394807 0.191665605 -0.190544456 0.100212678 -0.00367863476 0.0754798204 0.182757512 -0.00570210814 -0.206991851 0.115804836 0.202300563 -0.137510598 0.205932721 0.165189996 0.147075191 -0.106642447 -0.149072915 -0.0226584822 0.0320993662 -0.0985671505 0.0953820497 -0.147220194 0.183329239 0.045824632 0.20217894 0.18036966 -0.125329971 0.174044028 0.032045722 0.121945783 -0.054343909 0.0695361942 -0.138417184 0.162935749 -0.108932376 0.0330141038 0.00397658348 0.173682645 -0.0209572613 0.025834918 0.200613216 -0.115208901 0.0746159703 0.141632363 -0.128563195 -0.0658599734 -0.0055179894 0.118688807 0.000443205237 0.00501397252 0.0839357227 0.207673594 0.189328447 -0.073323071 -0.190654859 0.211514577 -0.0202999413 -0.192389786 0.174157962 -0.0984217897 0.119033113 0.151484445 0.143756285 -0.013722077 0.0641204268 -0.105519995 0.0137799829 -0.184419781 0.213242933 -0.145870626 0.0681796521 0.191318318 -0.0559816808 -0.118231826 -0.0593755245 -0.12798816 0.0480964333 0.202543333 -0.0850205421 -0.01765576 -0.0468729585 -0.0137963444 -0.15771395 0.146007344 -0.0861515701 -0.0817456096 0.0228354335 0.0390879065 -0.196598396 0.171059117 -0.0186216086 -0.0440758765 -0.191579834 0.159823433 0.0841931254 0.0317444801 -0.131891221 0.0262020826 -0.10778974 0.102580175 0.0815318078 -0.13881129 -0.138324618 -0.00474365056 -0.0562901497 -0.135605842 0.140282646 -0.207215264 0.0563271195 -0.00566716492 -0.050463751 0.0897494704 0.00589996576 0.048700586 -0.141553089 0.0941929966 0.0103686899 -0.209014714 -0.167247295 -0.0600645989 -0.0445585698 0.147961035 -0.0191902965 0.121301457 0.155120805 -0.0214914232 0.21010305 -0.0163163394 -0.167790636 -0.031941399 -0.0248077363 -0.100043148 0.0449023098 0.199064299 -0.0417495519 -0.0922033414 -0.132950917 0.128158197 0.0235210359 0.123539105 -0.210350305 -0.20109272 -0.163113475 0.130565658 -0.187036008 0.207352713 0.0871378034 0.0966825932 0.00610804558 0.126909867 -0.0537379533 -0.173609868 -0.11715252 -0.011094287 0.162966624 -0.0222798586 -0.193959519 -0.125455827 -0.193969384 -0.0395112485 0.208045766 -0.200257421 -0.0425201803 -0.0232228339 -0.0480037332 0.100798085 0.125842556 -0.00353735685 -0.042463392 0.12656258 -0.151784211 -0.0607400239 -0.1362966 -0.0699509978 0.107808307 0.184559122 -0.0125996619 -0.162382856 0.111195669 0.21133025 -0.154573649 0.156366125 0.133030519 0.116170153 -0.115720451 0.0299370289 -0.120089546 0.0311184376 -0.184682786 -0.164773643 -0.125320107 0.168118104 0.0382097811 0.0524417907 -0.125833422 -0.19689396 -0.125287741 0.107386276 0.159628317 0.0366037041 0.0310084373 -0.0683069378 -0.0452191383 -0.052862078 -0.0682935119 -0.0284372419 -0.165120274 0.067906633 0.00676417351 -0.106117174 -0.114322141 -0.0813844353 -0.167716041 0.182620332 -0.0979187116 0.0460508317 0.161265925 0.0488335043 -0.176903158 0.0285978317 -0.170605063 -0.149824083 -0.154779568 0.0128906369 0.0142854452 0.00464169681 -0.181393147 0.214561686 -0.135077938 -0.0834482163 0.0135920346 0.0759151727 0.0210772753 -0.102250591 0.0542795211 -0.193897933 -0.0357793421 0.104950592 0.164675787 0.0187360942 0.157736465 -0.0441996604 0.0558624417 0.0950472504 -0.126065791 0.162697896 0.142026708 0.0847432464 0.182654873 -0.111596748 0.0293165743 -0.137531281 0.0230772048 0.163282618 -0.174575552 -0.0950114205 0.127286032 -0.206165537 -0.0378678441 0.135573879 -0.0910866112 -0.144386321 -0.0795809627 -0.134260535 -0.0384334922 0.027693823 0.173604593 -0.0877761245 0.157923326 -0.193165615 0.0151807815 -0.0849952996 0.0602598637 0.106768414 0.105715886 -0.181482047 -0.039868921 -0.0534184277 0.11644192 0.0530910641 -0.0829390436 0.152465686 -0.0535338372 -0.167962879 -0.0605282933 -0.0950360969 0.0329618603 -0.0160149932 0.163208857 -0.0406022221 0.146055833 0.170449123 0.0277527124 -0.0684752166 0.0025883317 -0.132292509 0.0100304782 0.0675668567 -0.160348505 0.0990598649 -0.139657274 0.215753838 -0.147198573 -0.179775417 0.143523023 -0.0831719041 0.0359287709 0.180110559 -0.156574667 -0.0121713281 0.123282239 -0.0724500865 -0.0733206421 -0.0887407213 -0.0609878004 0.104875997 -0.0997372568 0.101314798 -0.0473549366 -0.0207772255 -0.057472378 -0.152257711 -0.109092399 -0.00999134779 0.14159067 0.0104090571 -0.214492574 -0.160248354 -0.168147266 -0.00365655124 -0.119595394 -0.15138261 0.167704776 -0.163888276 -0.0655872226 -0.0226968378 0.0484855026 -0.184770539 0.116837427 -0.123372622 -0.207454264 -0.0234685391 0.0694852322 0.0877662152 0.105797127 -0.0229719132 0.0435089022 -0.19701089 -0.179032505 -0.18662481 0.165837631 0.116926268 0.107620314 -0.134457782 0.0169792324 -0.104311533 -0.0461479276 0.152431622 0.0959946662 -0.211268038 0.201598957 -0.0656211376 -0.0195753127 -0.0353664905 0.0853936821 0.108217105 -0.210513622 -0.0655173808 -0.142269716 0.136998102 -0.0622018278 -0.129322857 -0.130892605 0.033722356 -0.00413195789 -0.140744895 -0.114857376 0.189625368 -0.0583695769 0.083893016 -0.200472981 0.0929204375 -0.20446077 -0.0715032369 0.142684981 0.134641096 -0.153653339 0.106300578 -0.0490298122 -0.134009525 0.0482119173 -0.144404888 0.18524684 0.0128951371 -0.0209878832 0.191670313 0.0602643639 -0.0846077353 0.0486925393 0.00293599069 -0.144976318 0.182714447 0.170392498 -0.0622222722 -0.0540916473 -0.182267994 -0.0451133251 -0.014802143 0.0871081203 0.0377996713 8.27908516e-05 0.0221576691 -0.135081857 -0.0974165127 0.158520773 -0.116954304 0.0932136923 0.214755937 0.088322714 0.117372468 0.084057644 -0.0774226189 0.144512519 0.115256146 0.197777465 -0.148415744 0.210349515 0.140518084 0.0892428905 0.211030498 -0.199319392 0.215170249 -0.213004097 0.0939691812 0.204320475 -0.0132453144 0.132598773 -0.115263931 -0.058777526 0.155822024 -0.00732532144 0.0113963187 -0.0728674829 -0.00211824477 0.161060676 -0.156901523 0.201529101 0.181527719 0.0275328159 0.149359718 0.0692356676 0.0634347945 -0.20980081 -0.133991599 -0.0389452428 -0.000636458397 0.0371545106 0.117431566 -0.15935266 0.0508061796 -0.00979669392 -0.118933432 -0.0742444694 0.009792611 -0.171720445 -0.086990729 0.119668588 0.16216065 0.15385668 0.0724666566 0.0656969696 -0.0950041935 -0.098818019 -0.0333430171 0.0648747236 -0.146280468 -0.0833846778 -0.153424144 0.00755187869 -0.0642938465 -0.109894507 -0.107881203 0.160527781 -0.0394333601 -0.153864264 0.177677706 -0.0339811891 -0.0912318677 0.00117170811 -0.146969587 0.12327309 0.114076033 -0.188737005 -0.0971721485 -0.145001054 0.0931980461 -0.183134988 -0.0854527503 0.0350367874 0.123969898 -0.188984007 0.0478101522 0.204695478 0.104494676 -0.107502937 0.133590594 -0.00401756167 0.00471292436 0.0834094137 -0.0116496086 0.175209537 -0.192024112 -0.0604959726 -0.196251094 -0.0341761559 -0.170742631 -0.145795718 -0.215364784 -0.0621379763 -0.164018199 0.07622917 0.0183852464 0.111966923 -0.148998588 -0.160786688 0.17111434 0.188727036 -0.0202617049 0.0499432832 0.051380977 0.0404555649 0.0781172365 -0.0753493756 -0.142273232 0.13437669 -0.143610477 0.100351378 0.125279292 0.0626137108 -0.0907604843 -0.205865115 -0.152261734 0.20972921 0.0984849185 -0.0389443636 0.182610497 0.00146201253 -0.18086721 -0.154032886 0.168808267 -0.157764852 -0.100824714 -0.109103136 -0.0826105922 -0.0293349475 0.0090482682 -0.199481472 -0.0532585084 -0.100816973 0.162858233 0.12136443 0.207597092 0.0526144952 0.0252680331 0.21289368 0.216065302 -0.0189656466 -0.178690583 -0.0363747627 0.0135144591 0.117146417 -0.0780750215 0.0572841316 -0.0231686831 -0.0507531762 0.210326448 -0.210217595 -0.027522549 0.0975510925 0.194175437 -0.150981694 0.0688470155 0.0627321154 0.195539698 -0.210576653 0.10893847 0.107132778 0.00832286477 -0.175630137 -0.201970652 -0.116031252 -0.107731044 -0.0416830778 -0.0361775309 -0.186692938 0.142495617 -0.153509021 -0.147607595 -0.171947777 -0.181326464 -0.179671764 0.0382442623 0.13710703 -0.117084175 0.0325603187 -0.119496442 0.050168857 0.0142233968 -0.169033676 -0.117391668 0.118003562 0.187087461 -0.138692722 -0.0028039068 0.0169469267 -0.116770335 -0.213657126 -0.0128091872 -0.104779154 0.181099638 0.170100436 0.0412236601 0.0622157604 -0.179722399 0.178401038 -0.0372063965 -0.0423504561 0.168688998 0.0169196129 -0.216494888 0.181103155 -0.163891375 0.15247725 -0.0862808228 -0.157547489 0.108578846 0.0991903991 -0.175236225 0.184249237 -0.0987389907 0.0890398473 0.127224132 0.188714698 -0.0511976182 0.128275111 -0.14506495 0.050818637 -0.0483737886 0.0756818205 -0.0435076505 0.0189094841 -0.181050554 0.178847149 -0.101324186 0.107731 0.10505794 0.196658626 -0.124232493 -0.0594131052 0.191167697 -0.037816748 0.142768458 -0.00623290241 0.172908142 -0.0103261024 0.163891122 -0.173987046 -0.20514369 0.0355616659 0.214279547 -0.121405885 -0.0289146155 -0.0313306451 -0.00595229864 0.0510881394 -0.101826027 -0.0200932622 0.0230336934 -0.192714006 -0.0609839857 0.108600155 0.137405589 -0.134454221 0.0849657208 0.0664001852 0.152012691 0.146809921 -0.0370990783 -0.143955559 -0.0442373902 -0.0449391603 -0.127484769 0.0397086889 0.0757441074 -0.00686694682 -0.0705605745 0.0969439 -0.0518283993 0.183960691 -0.153093487 -0.0375690311 0.0513159782 0.0758621246 -0.192567766 0.118375883 0.0373012871 0.0581304878 -0.155232579 -0.000803247094 -0.0170486122 -0.145517796 -0.0181593597 -0.0451003611 0.205068216 -0.0198788345 0.148023203 -0.0898589045 -0.0733125955 -0.0827380419 0.0411549658 0.0875618011 0.0670911521 -0.0524138659 0.146805748 -0.207106754 0.0878874213 -0.129396051 -0.0225688666 0.214251623 0.134944603 -0.152428478 0.0187014043 0.0944086164 -0.141199768 -0.144568622 -0.105942547 0.0197801888 0.13677521 0.0558069497 0.0611091107 0.197027966 -0.109127082 -0.0493277609 0.0669540912 -0.168346986 0.100759044 -0.148637295 -0.12741667 0.0233948231 -0.0181860924 0.173936352 0.111329004 0.134927198 -0.0965572074 -0.106675692 0.0991622061 0.214165375 -0.0394777507 0.176774368 -0.0195768178 -0.167057797 0.0424914807 -0.214761108 -0.0518205017 0.123408869 0.0470285565 0.204715028 -0.190392435 -0.0356393456 -0.16835849 -0.121938594 -0.0738039613 -0.104560286 -0.023579821 0.173588797 -0.0516725034 0.20287399 0.0801558942 0.0783201605 -0.0859695524 -0.0562576801 0.177386329 0.15463765 0.173106775 0.0949735194 0.152708903 0.215557232 0.0846872181 0.0608792454 0.142983362 -0.15222235 0.20657368 0.205960408 0.0659510344 -0.211234689 0.0351118892 0.0037907064 0.0813616663 0.173443392 0.0717025548 0.158909515 0.152973458 0.144273266 0.120980605 -0.215547159 -0.200850621 -0.142748386 -0.198132202 0.174755201 -0.0960568115 0.196132317 0.00993926823 0.048041299 0.0877902657 0.182920977 0.164627567 -0.106177926 -0.0988926664 0.123863772 0.131215885 -0.164171204 0.161861345 -0.163644075 -0.211215854 0.0608759969 0.163545743 -0.165823162 -0.0380925983 -0.117642902 -0.0253117979 0.137580886 -0.210156679 -0.00492075086 -0.044863075 0.164828792 -0.0861059874 -0.0935308784 0.0478412956 -0.0779755563 0.180994138 -0.128006727 -0.103610396 -0.196030691 -0.189965278 0.0815298408 0.2067274 0.0220608264 0.00290842354 0.0514466316 -0.0323811024 0.181645885 -0.102425061 -0.130394161 -0.0382018238 0.195813373 0.158885464 -0.159367219 -0.129793316 -0.205292135 0.0048173517 -0.137355268 0.174037889 0.0132748932 -0.141496629 0.052751556 -0.207597762 -0.155121744 -0.036003679 -0.0826149881 0.192338571 0.125312254 -0.0858926922 0.097962901 0.147308573 -0.129296646 0.0238983631 -0.194825277 -0.0384578109 0.0381589383 -0.184259772 0.0901003331 -0.127532557 -0.0990245491 -0.204895243 0.117949054 0.1827638 -0.0284498334 0.174789503 0.10268192 0.0889665037 0.0175136477 -0.185598925 -0.0736357868 0.12161459 -0.106919751 -0.104570769 -0.160945982 -0.150642246 -0.145123333 -0.0704744756 0.190813169 0.0188344866 -0.142471135 -0.0918444321 0.176530376 0.0584255904 0.189831808 -0.058211267 -0.156850517 -0.0901154429 0.142735168 -0.103839584 -0.0623749048 0.204731777 0.0693992823 -0.00772108138 -0.124677919 -0.0546690971 -0.132363498 0.0784289688 -0.081446588 0.189480737 0.043714866 -0.187635511 0.0595112294 -0.173434198 0.197268412 -0.05626522 0.090302363 -0.194684818 0.151601061 -0.159458071 -0.065394789 0.0176953524 0.162905857 0.13324742 0.17081593 0.0997593552 0.0042424798 -0.0725592077 -0.193046227 -0.0655333251 -0.0386802256 -0.00921908021 -0.0953445211 -0.098142691 0.186285987 -0.101041876 -0.00766544044 -0.125749439 0.0352654308 0.123949423 0.206391171 0.137661979 0.153641418 -0.018465668 0.00881282985 -0.146445304 0.0188315362 -0.0437472761 0.134483173 -0.166459069 0.213437632 -0.0896721482 -0.119368374 -0.208905846 -0.0924921483 -0.0352707803 0.159539118 0.170672789 0.144855335 0.0886603147 0.155025437 0.0603350848 0.149687126 0.0543674976 0.0475278646 0.131969735 -0.179241568 0.132778719 -0.116891846 -0.0865010768 -0.188261956 0.198780283 -0.11244341 0.0526076406 0.150701091 -0.0320695788 -0.148526728 -0.109876595 -0.162060603 0.0608467311 -0.124136589 -0.210165814 -8.74996185e-05 0.0928477496 0.142552599 0.200408921 -0.0954560637 0.106668785 -0.206276268 -0.0833361596 0.206934974 -0.0127096623 -0.0223363191 -0.136078522 -0.00460556149 -0.166691914 0.111575291 0.172416493 -0.0743386298 -0.210494369 0.201815501 0.165881142 -0.155305207 -0.112688802 -0.0265324414 -0.0740439296 -0.0619929284 0.176202938 -0.162694901 0.158802494 -0.088563934 -0.182235211 -0.0320754051 0.212443873 0.127940491 0.150646672 -0.0994577855 -0.199109867 -0.153251171 0.119969383 0.105305925 -0.152579874 -0.205649555 -0.131686807 0.132371351 0.0686485022 0.150262013 0.0153412074 0.000373721123 -0.0449287742 0.0906237811 0.18623291 -0.207242578 0.204987213 0.111928508 -0.0321263522 0.000841706991 -0.143958449 -0.0559967458 0.123939082 0.130286708 -0.167011708 0.127166584 0.0817693621 0.171944931 0.0815454274 -0.117465228 -0.126820624 0.0728207082 0.0668064803 -0.0108277351 -0.110265493 -0.177186191 0.0147687495 -0.0927349105 -0.11771816 0.118951336 -0.0860475004 -0.0508719534 -0.13448897 -0.00963631272 -0.0882949382 0.183317527 -0.0427754372 -0.095970042 -0.173225358 0.183680907 0.14589332 0.181552038 0.0047338903 -0.0159994066 0.184031919 -0.165617615 -0.0361702442 0.118310288 -0.128577739 0.0900970846 0.120817468 0.0121731907 -0.0024586767 0.143900588 -0.11650759 -0.0729578733 0.10640873 0.0674733371 0.163032547 -0.125885248 0.0934263617 -0.126190409 0.208533064 0.0406569988 -0.213730782 0.182176933 0.0539519638 -0.00659021735 0.0315499306 0.115776464 0.0199102163 0.0172525644 -0.0841700137 -0.0790538341 0.00301532447 0.0544462651 0.0324300826 0.0127526671 0.0971854776 -0.131471306 0.0943352133 0.0250363648 -0.164065331 0.028339833 0.15615125 0.177204147 -0.205635414 0.059578076 0.133949891 -0.12110319 0.0378938168 0.0373247713 0.138248339 -0.0541843027 0.0871775597 0.161594734 -0.11924877 -0.128725022 -0.0606766492 -0.0906118751 -0.123900689 -0.0385284722 0.101532266 0.0481024235 0.021578759 0.022255227 0.170482919 -0.0163970292 0.206188872 0.182580754 0.0162916631 0.0188887268 -0.143213362 -0.123706236 0.1595117 -0.0273416787 0.0493009835 -0.00917375088 0.183200911 -0.0804378986 -0.0454341322 -0.00495843589 -0.166964933 0.062209323 0.164231077 0.193351492 -0.0436775833 -0.198963329 0.000164464116 0.125392959 -0.158697978 -0.0199134201 -0.0714332461 0.079145506 -0.0536622256 -0.191677853 -0.131036624 0.17728664 0.0319067687 0.0664680451 0.0362394601 -0.114057072 -0.0311946273 -0.110450856 0.158251122 0.111737058 -0.216163024 0.200907364 0.0592425019 -0.150604755 0.214528516 -0.188216686 0.135711983 0.0334444493 0.20044826 0.0695503801 0.180283591 0.100740001 0.0775406212 0.0981078595 0.0455616266 -0.15997833 -0.204173297 0.175740197 0.0229602456 -0.10584984 -0.0417217314 0.213037804 -0.178448901 0.06970869 0.0279659033 -0.0735634565 0.000795289874 -0.215185568 -0.0122015774 -0.178321511 0.102738246 0.0173326731 -0.0131737143 0.185367778 0.0896226019 0.0959400982 0.111431047 -0.202554941 0.0532637089 0.0821350366 0.0949457139 -0.184476212 0.110715762 -0.0918316841 -0.181370392 -0.169735536 0.191303208 -0.041579783 0.00640685856 0.0927261859 0.0372441262 0.142143503 -0.18886894 -0.180721954 -0.066609025 0.120959625 0.0324277133 0.0508685559 -0.187279701 0.125218049 0.13254188 0.177694634 -0.155109406 0.134757593 0.132761434 -0.157867581 -0.0314960331 -0.100717969 -0.158935472 0.0599167496 0.210488215 -0.174666405 -0.0218979269 -0.123410568 -0.028636381 0.19290407 0.138356581 -0.0883597732 -0.147590101 0.212678984 0.130041257 -0.161442876 -0.129597992 -0.147194862 -0.184907079 0.0978445858 -0.166454986 0.0182628483 0.204842791 0.173725292 0.0996963233 0.0977934748 -0.185964331 0.112934008 0.148057863 -0.171723336 0.0423970073 0.0585231036 0.0158793926 0.0871017128 0.0516944081 0.16951786 0.147059962 0.0868217796 0.0337797254 -0.117276408 -0.147217259 -0.0746165514 -0.213648558 -0.0975929424 0.0653419346 0.160603955 0.205436513 -0.161371484 -0.0856019706 0.172185019 -0.062838912 0.153337434 -0.104609273 -0.13978219 -0.211874306 -0.0422247648 0.0102333426 -0.0307850391 -0.0632564574 0.193988517 -0.202429757 -0.0991768241 -0.208691835 0.019052878 -0.153947517 0.0703328699 0.149074927 -0.0477954 0.146283939 0.026265204 -0.019453451 -0.113644019 0.120094284 0.0128409266 -0.137007654 0.135528103 0.106667861 -0.128258109 -0.106512062 -0.178306222 -0.208657607 0.127056107 0.13091661 -0.0716415346 -0.103620768 0.142357782 -0.0678308457 0.215525016 -0.0251711458 0.0360772461 0.0338055342 0.129278883 0.0200708658 0.0881020874 -0.142315865 0.170738652 -0.152272478 -0.128654093 0.178508475 0.0185938776 0.183733359 0.00200799108 -0.201574892 0.187153086 0.0778697282 0.0281781107 -0.0589272678 0.0740235895 0.180511758 0.202488914 -0.013978973 -0.148137569 0.0418080539 0.0369798392 -0.00156468153 -0.101649076 0.144340202 0.0503423363 -0.0438184589 0.086549297 0.153926 -0.021646589 -0.083845377 0.168716565 -0.143692762 0.145200506 0.156982198 0.212185159 -0.0130129308 -0.149407819 0.171806559 -0.0250255316 0.103841588 -0.0694518983 0.186669752 -0.0554724038 0.19854711 -0.167248324 -0.0936573967 0.106194541 -0.0268413872 0.108111158 -0.0177600235 0.178043678 0.0481608063 -0.205687746 -0.0935022309 -0.00280550122 0.183141842 0.00476150215 -0.187436104 -0.0448602289 0.00897616148 0.0642356128 -0.0563916415 0.0507387072 0.0249604285 0.100971624 -0.198308274 0.0238734335 -0.0567769706 -0.00554487109 -0.184582338 0.13439621 0.0777372867 0.14330788 0.173800811 -0.214285746 0.00329041481 -0.141291171 -0.0184162557 -0.0911535621 -0.0594278723 0.0861826986 -0.176766425 -0.149084419 0.209609553 0.159221902 -0.00248597562 0.0143221468 -0.105688684 0.0558973402 -0.132522017 -0.0343398899 -0.115718901 -0.145506918 0.0641837567 0.0495337695 0.207110569 0.216304764 0.0803818852 0.0716506094 0.133285865 -0.192668945 0.140733942 -0.207590893 -0.0602845401 0.083862707 -0.0224624276 0.0317278504 0.0792157501 0.19462727 -0.20217894 0.0897615403 0.210511699 -0.186451107 -0.0383943617 0.0794534534 -0.0722539425 -0.17937319 -0.00545403361 -0.0974171832 0.106717095 0.0839679092 0.127519026 0.0252375752 0.155369714 0.0253385454 0.0945533961 0.0104638189 -0.15603748 0.0592237264 -0.184069753 -0.020330295 0.057822153 0.0114616156 0.0656142086 -0.172344685 0.0191470385 -0.0422422141 -0.144010469 -0.181904599 0.0722179562 0.109326705 0.00833003223 -0.0789770186 0.0605533868 0.132996485 0.206981882 0.105978683 -0.0851583034 0.201674625 0.132053718 0.127251342 0.1376739 0.182700559 0.0396005958 -0.0492386669 -0.146979555 -0.137940526 -0.19931826 -0.113551103 -0.170267165 0.191081539 -0.16073373 -0.214381129 -0.168326184 -0.146023095 -0.133106291 0.114729658 0.0364969522 0.196654186 -0.130197346 0.145301476 -0.0351343006 0.0644648224 0.117901519 -0.164838076 0.0565942377 0.133009657 0.0261878371 0.104536071 -0.104712464 -0.151496857 -0.208070338 -0.0988049135 -0.00539651513 0.208010361 -0.0799753815 0.172623381 -0.0960786939 -0.183289438 0.0865103155 0.0169424266 -0.0409427434 -0.130585164 -0.190176666 0.182087883 -0.100817487 0.0501948148 0.189098403 0.0258161724 0.166725323 -0.196071938 0.00189246237 -0.0450933427 0.143548235 -0.0776820481 -0.143945277 -0.0387052596 -0.177273542 -0.120435186 0.140249088 0.0436225981 -0.197611213 0.189115271 0.151157722 0.204530761 0.176550046 0.200156465 -0.155423775 0.214211419 -0.178521365 -0.0269158185 0.0408677608 0.200190052 -0.210706428 0.124419197 -0.126244515 -0.207336679 -0.0972465277 -0.149348557 0.00324709713 -0.185287252 0.0360580236 0.0340766758 0.167253897 -0.0327230245 -0.109133437 0.182607755 0.0848859102 0.0363954753 0.199896142 -0.0202145129 0.149748102 -0.0631186366 0.178242162 -0.162273988 -0.0243333578 -0.193724141 -0.0508265793 0.157653704 -0.0370112807 0.149044886 -0.0692154765 0.166630611 -0.214429915 -0.0304187983 0.15852268 -0.209511489 0.199191317 0.163992897 -0.0846695751 -0.193697453 0.206404135 0.00754846632 -0.0751041919 0.0443832129 0.0183962286 -0.208828673 0.203282878 -0.00754594803 0.16763176 -0.181747988 -0.066808641 0.0284670293 -0.0688470155 0.21039407 0.203033134 0.0639079362 0.0728154033 0.164765224 0.143860981 0.102417842 0.0412615985 0.216119662 -0.116201691 -0.16753976 0.0572966188 -0.0863375515 0.101057664 -0.065105468 -0.216232821 0.0734959394 -0.0322559774 0.160510585 0.0879258066 0.155449107 -0.176834926 0.042690739 -0.149593711 -0.0475698709 -0.0495912731 -0.211332619 -0.160969466 0.0529582947 0.196321294 -0.151838213 0.0249507874 -0.0555627346 0.102162078 0.162293866 -0.13745144 0.169567928 0.149403587 0.0122514367 0.0748100132 0.206790432 0.200426832 0.0477357656 -0.134002715 -0.204425201 0.176790372 0.0935756415 0.173249617 0.181198493 -0.201122612 -0.128784373 0.184268549 0.178530201 -0.00782261789 0.116377816 -0.204155594 0.0665185302 0.034107402 0.0209877193 -0.187357798 -0.0647852719 -0.037632525 0.114992723 0.118700668 0.104126438 0.00962284207 -0.057149455 -0.124529563 -0.19750008 -0.159052387 0.206457391 0.0175346136 0.0170694739 -0.0657131225 0.0931755751 -0.160908148 0.195794389 0.133698925 0.124205336 -0.0796727389 0.0794835538 0.177745327 -0.0412195772 0.146568134 0.13229607 0.1971163 0.170536861 -0.133567974 0.103086874 0.080261603 -0.145433962 -0.139412344 -0.168002367 0.118315354 -0.141707063 -0.181751192 -0.160568699 -0.0559716672 -0.213606119 0.00351794064 -0.000731810927 0.0736447126 0.169483021 0.205163315 0.0205210894 0.123176321 0.143851176 -0.144668967 0.203434125 0.0415234119 0.108230874 0.117183194 0.215651318 -0.180863082 -0.0214076489 -0.0418627113 -0.138651684 -0.115010478 -0.0697393119 -0.0150319636 0.129774317 0.0589280874 0.105931029 -0.0177201778 -0.0321562886 0.0358223766 0.0536762029 -0.202748969 -0.0250836015 0.189834937 0.126549885 0.0869611949 -0.153901309 -0.093002297 0.0780221075 -0.0437386483 0.00828972459 -0.150068805 0.00523129106 -0.181128815 0.0135798603 0.104887918 -0.198946342 0.128087476 0.00686120987 0.179656222 0.0329501927 -0.0153129697 0.164710835 -0.0612002164 -0.21388647 0.190231904 0.137889072 -0.195558161 0.0878643245 0.137385681 -0.141431779 -0.0536208153 0.1196834 -0.0532976389 0.152026728 0.00241003931 -0.120075554 -0.177655354 0.114496931 0.0584001392 0.0314638764 0.0839282125 0.0118057579 0.18126218 0.0136548579 -0.099561289 0.0213164389 0.0553982109 -0.158691674 0.117851093 0.012513563 -0.0131977797 0.200301811 -0.0134524107 -0.0806817859 0.136712566 0.0672382563 0.132536158 0.18027626 0.00624080002 -0.161246359 -0.0786917657 0.179374442 0.160658255 -0.0778744817 -0.144186914 -0.0636048913 -0.138930842 -0.0137291998 -0.0199502856 0.114141122 0.184315428 0.179583743 0.0613734573 0.0213398188 -0.0581308901 -0.072065264 0.0295560807 0.047800824 0.209220722 0.0364079028 0.150189236 0.160694405 -0.0333221704 -0.0678060651 0.0191192627 0.144015417 -0.108954728 0.0966618508 0.0332125723 -0.163085967 0.200484708 -0.212294176 0.206590459 -0.0400911868 -0.0670110285 0.0159748793 0.147770509 -0.113355361 -0.0732066184 -0.0741320997 0.0209045559 -0.00160127878 0.0545886904 -0.137076989 -0.0209791064 -0.123650335 0.153381154 -0.159977198 0.182971612 -0.215836748 -0.0896137059 0.0500989407 0.00171932578 0.151365414 0.032089442 0.0316585302 -0.00585897267 -0.0895213634 -0.164185658 -0.160314783 0.0141849965 0.192553714 -0.10130436 -0.0838450193 -0.205793828 -0.209522128 -0.00774106383 0.137676641 0.164038435 -0.149509043 -0.0768460333 0.133647457 0.170287773 -0.0975329652 0.0194706917 0.185710177 -0.126894444 -0.133444488 0.114331678 -0.102235056 0.10469006 -0.0599614531 0.151354477 0.0569715649 0.0984553546 -0.149858564 -0.205812305 0.0881819874 -0.0239605159 0.0938916057 -0.144444495 -0.0892632753 0.14585121 0.193881378 -0.162402004 0.185074314 -0.0243577212 0.149410769 0.0778413564 0.0667103082 0.0680415183 0.181937382 0.214987621 -0.0846997201 0.101181045 0.176203415 -0.194302022 -0.181633592 0.072477594 0.204373375 -0.0169824362 0.0437817127 -0.162962958 0.183910623 -0.169930667 -0.0216128826 0.0492420346 0.208079174 0.129349336 0.114597067 0.152462497 0.121766701 0.00290852785 -0.132059962 -0.161680639 0.170101866 0.209867463 0.116910204 -0.189788491 -0.120995671 -0.0675417781 -0.177222222 0.167508885 -0.144136637 0.00924916565 0.0592403263 0.0527731925 -0.156133994 -0.0322316587 -0.081836313 -0.17681995 0.107138291 0.0599684864 -0.0630887598 -0.164004117 -0.191831991 0.0551445633 0.125055209 0.1566699 0.132359728 -0.118240133 -0.141599029 -0.106506638 0.0536464304 0.0631304234 0.111643001 -0.147967443 -0.208386347 -0.0578135848 0.175286904 0.170049444 0.0838841945 -0.114208631 0.165539309 0.161063477 -0.0904228985 0.167596504 -0.122039355 -0.169588223 0.174480125 -0.216178715 -0.0989541411 -0.117958292 0.108204499 -0.112839118 0.0930509716 -0.207842648 0.110288575 0.0663803965 -0.14640972 -0.0028681159 0.0502370447 -0.0680193156 -0.186366707 0.203132257 0.13109155 0.020705983 -0.0712084472 -0.0460359007 -0.0970454738 -0.0501375049 -0.106795914 0.0530007333 -0.209537864 0.0991243869 -0.132345676 -0.0645349175 -0.00909684598 0.203194126 -0.0893118382 -0.0425328314 -0.129088312 0.124726072 -0.106887691 -0.0661574006 -0.172996268 -0.0806813836 0.160866186 0.182240948 -0.121072166 0.181529179 -0.0572959483 0.119428352 -0.0141468495 -0.13036795 0.112726435 0.185401276 0.0409571081 -0.0415803939 -0.0141348094 -0.0924804285 -0.0729169846 0.1393172 -0.116755933 0.147633985 -0.12819308 -0.0397322774 -0.189597502 -0.213788658 0.0791137964 0.208519056 -0.0259398073 0.137752011 -0.157497883 0.201139942 0.202817574 0.0806439668 -0.0947394371 -0.150050789 -0.126597315 -0.0117877424 0.0707615167 0.150758222 0.134248927 -0.114126757 0.130543336 0.0951610059 -0.142055184 -0.132735714 -0.206921548 -0.0587401986 -0.142324805 0.115322426 -0.00468964875 -0.0231197476 -0.058496356 -0.150069118 -0.117841788 0.167759135 -0.0927418321 0.0631027371 0.211069778 -0.0375958681 0.0384059697 -0.0797631741 -0.210780397 -0.19860813 0.086496219 -0.056041345 -0.0573638231 0.114841774 0.214165792 0.0820921212 -0.0749944448 0.186162397 0.135889485 0.0627921075 0.0458071381 0.00141389668 0.0725373775 -0.199350417 -0.0253808647 -0.131577581 0.00755983591 -0.0775761753 -0.212193102 0.0292145163 -0.132095844 -0.156628877 -0.0588057637 0.146109983 0.130766854 -0.148943722 0.141438916 0.0329546928 -0.0143157989 -0.0616960675 0.0782762319 0.118722424 -0.0831049979 -0.15870592 -0.109291285 -0.0633651763 -0.00449773669 -0.0873820633 0.0386355668 -0.0744778961 -0.189774603 -0.0924724787 -0.00338663161 -0.131169081 -0.175162777 -0.0778490454 0.156995818 -0.21556972 0.0521636754 0.149684921 0.198084608 -0.0587452054 0.025866136 0.0606519729 0.0248562098 -0.0257766396 -0.0207657069 -0.0484499782 0.0261851996 0.196185187 -0.0670896471 -0.140118599 -0.107147492 0.0736833662 -0.0517356396 0.0504663736 -0.013216868 0.14736937 0.000289991498 -0.214815766 0.075513944 0.0611351877 -0.0438190252 0.203551635 -0.0825146288 0.00816904008 0.0489982814 -0.155005917 0.0344016701 -0.0429715365 -0.0309418589 0.0205440521 0.0123537481 -0.0676545203 -0.00167359412 -0.181667656 0.0752090365 -0.0246920586 0.132587507 -0.0857286453 -0.0244075358 -0.0667218566 -0.181978464 -0.117303662 -0.104598232 -0.0618536174 -0.105038337 0.179506257 0.211239293 0.203027353 -0.133096173 -0.0161065608 0.166303322 -0.11121276 0.0850153118 0.152649 -0.170789033 -0.200284362 0.0659011751 -0.17212896 -0.0204338431 0.000251024961 -0.16540423 -0.0570694506 -0.0827422738 -0.0293686539 0.0398602337 0.193663791 -0.0925094411 0.0288442522 0.12330316 0.035886392 -0.203408048 0.154223278 -0.17170538 -0.00377206504 0.0264741182 0.0639524907 0.19079639 -0.0474978685 -0.190243363 0.133702025 0.102364346 -0.0797590464 -0.210559413 -0.00951144099 0.188424364 0.139130756 0.0829658955 0.100555971 -0.0380801558 -0.101993628 -0.113111049 0.00094871223 0.034343496 0.135694161 -0.208330497 0.103802308 -0.196048856 -0.00678116083 0.215370163 0.0948642939 0.0959183723 -0.139618188 0.136233672 0.0635977238 0.207357123 0.0764920264 0.0804325789 -0.116363265 -0.183529302 -0.0152658373 0.187227204 0.0615539104 0.135375783 -0.00036329031 0.183333978 0.0855554789 0.181873634 0.162831113 -0.0533504933 0.0574195236 0.146973297 0.124553934 -0.0674829334 0.216437384 0.0662562996 -0.209840506 0.144101307 -0.124124765 -0.100547001 0.103068188 0.083275035 0.0521712452 0.0259274095 -0.209613547 -0.122619763 -0.126278833 0.0072581172 -0.0710828006 -0.0609777421 -0.157053858 0.0312405229 -0.0611746609 -0.0419013649 0.0967079848 0.0718670934 0.0761022419 0.0721357316 -0.0693630129 -0.125304312 0.207055464 -0.129475966 0.161348775 -0.154851109 -0.156295106 -0.131532729 0.185435548 -0.188881174 0.198333725 -0.101520903 -0.215511382 -0.17904231 0.0139137805 0.123306498 0.0399661809 -0.0128628165 -0.00570066273 -0.174747393 0.0863004178 0.0905352086 -0.103300266 -0.0795171559 0.0678971261 -0.162131473 -0.139432266 0.104582086 0.00137126446 0.0801115185 0.10591422 -0.00138814747 -0.00918485224 -0.0309907347 -0.0648845285 0.167080209 -0.122857466 -0.0881578922 0.036638692 0.148640797 0.200689837 -0.0263927132 -0.119156681 0.00603768229 -0.0185314715 -0.200005308 0.0240689665 -0.0433713198 -0.0548884273 -0.00569106638 -0.0233552903 -0.0291206241 -0.116311796 0.0636395365 0.163183168 0.204635903 0.178286001 0.0755580813 -0.095498085 -0.0163207352 -0.107725106 -0.107320264 0.209452584 0.0776030868 -0.162442327 0.0158343315 0.197290406 0.0196811855 -0.140596539 -0.100748993 0.21112664 0.190584406 0.0363497883 0.128557816 0.0206986517 0.0139884204 0.0135868341 -0.127236068 0.00982373953 0.0454858989 0.00864857435 -0.0361451656 -0.085757032 -0.17057094 -0.149183422 0.208194181 -0.00900226831 0.0973605961 -0.140604079 0.110167786 0.0883901268 0.126064613 -0.147400096 0.088841483 -0.184497014 0.0882438868 0.10168691 -0.0235965997 -0.127515212 -0.185897693 -0.158877254 0.184357181 -0.0851129293 0.0569394082 -0.0402308702 -0.117709182 0.135842368 0.184821323 0.0537479073 -0.123963408 -0.0955956429 -0.0735426545 -0.194944367 -0.0815374851 0.196773067 0.00254255533 0.129138544 -0.0349710882 -0.0785796046 -0.0407200605 0.0446368307 0.199753001 -0.133771569 0.198273137 0.153610751 0.0960754901 -0.192536846 0.0661969334 0.144601092 0.086821273 -0.193944037 -0.00604563951 0.149101421 -0.152375504 0.190716758 -0.0113748908 -0.0659008622 -0.0710514188 -0.0101303011 0.0941568762 0.111243948 -0.0357899666 -0.0464055985 0.143035397 -0.113449104 -0.0637322813 0.0785396546 -0.160259455 -0.0691880137 -0.148476243 0.112231001 -0.0866870582 -0.154689431 0.0477229804 -0.0891166627 0.128006682 -0.159961298 0.148611143 0.208686516 0.179355398 -0.00238887966 -0.149380669 0.0497907847 0.150890365 -0.123304747 -0.14698714 -0.114797294 -0.0649234056 0.187631682 0.115531847 0.137493566 -0.0553760231 0.073049292 0.0982836634 0.125619307 -0.0826118886 0.133292481 -0.0994735882 0.00230324268 -0.0773246437 0.109711245 -0.165088728 -0.0837909132 -0.0447171479 0.112568364 -0.0508174896 0.0712846369 0.135524556 0.121146247 0.0928333551 -0.149028003 0.00203436613 0.0942979008 -0.129782692 0.0265180916 0.0305626094 0.133507833 -0.00100626051 0.136327997 -0.173087016 -0.0963325053 -0.114213221 -0.167002767 -0.118075259 0.190600708 -0.134174347 0.170715377 -0.152098417 -0.044834733 -0.0590826422 0.161003277 0.177351579 0.059498474 0.108921185 0.0728326291 -0.151553929 0.0774371773 0.0953739434 -0.192277402 -0.179263443 0.0852985531 -0.0584954768 -0.079195112 -0.0595420003 -0.00194460154 0.0097142607 0.200929597 -0.154794425 -0.174092084 0.0638595372 0.149018094 -0.114165887 0.203675702 0.206568316 -0.194109172 -0.104609482 0.0198217481 0.0643407255 -0.0604828149 -0.00806429982 0.210324451 0.0480057448 0.104611918 -0.164316565 0.00214958191 -0.198680714 -0.102288634 0.0306609422 -0.18793495 -0.0327335596 0.121581331 0.115010425 0.170132443 -0.0875335038 -0.0478410274 -0.0348675847 0.114240214 0.127113208 -0.105314493 0.160528645 0.0712610334 0.077661559 0.139166579 -0.0560211092 0.104516104 -0.0952867568 0.112935141 0.117514476 -0.160322323 0.098430261 0.055253163 0.0179764181 -0.173453927 -0.0486995131 0.0518538505 0.0481189042 0.159328774 -0.0425708145 0.0197885633 -0.068020761 0.140398219 0.14373751 0.20475246 0.0937273949 -0.0679361522 0.184969112 -0.0309610069 -0.213280976 0.214552864 -0.189925283 0.122398213 0.0983360559 -0.0888187736 0.0896621197 -0.108607233 0.0615389496 -0.2134666 0.0667430311 -0.0532538593 -0.0530455858 0.15727587 0.185569867 0.0767538399 -0.121009089 0.0354882032 0.038584277 -0.0874421895 -0.209677026 -0.149922207 0.0353863686 0.165553823 -0.117205948 -0.0943726301 0.160674766 0.163194761 0.205559 0.161745355 0.216400012 0.108894035 -0.144449294 0.0769549459 -0.138593704 -0.0246659517 0.0159128308 -0.213089362 0.0919672698 -0.14726831 0.0273788422 -0.145089418 0.173586443 -0.174836069 0.131200358 -0.0422570705 -0.191893622 0.17520614 0.161106631 -0.133242413 -0.0330068171 0.00661730766 0.177831694 -0.120861821 -0.0370865464 -0.170097694 0.215378121 -0.0190297067 0.174603805 0.0745803565 -0.0991268083 0.0267588496 0.204072908 -0.198128134 -0.180951297 0.131859317 0.152714595 0.0471324474 0.0900431722 -0.111169651 -0.147575751 0.177582666 -0.000165179372 0.123530373 -0.0348376483 0.0388003439 -0.139092863 0.214268342 -0.00258550048 0.0915620178 0.148502842 -0.164714083 -0.125135213 0.0492772311 0.0169745386 -0.122079358 -0.0641498864 0.209790602 -0.0768681765 0.0185176432 -0.11446172 -0.0817563534 -0.194609925 -0.155667216 -0.115726337 0.206607863 0.0874593407 0.184878632 0.0418656915 -0.0557260513 0.0338218361 -0.0617157817 0.0636986941 0.100578383 0.146521524 -0.012948975 0.181519255 0.0604329556 0.212236926 0.0979450494 -0.168196678 -0.035070613 -0.21567744 0.101099536 -0.0728102922 0.186690673 -0.165461376 -0.186162397 -0.174110934 0.036215052 0.0233925581 -0.102633551 0.21088697 0.173645988 0.159506395 -0.127544686 0.121894345 0.0983629972 0.00147099793 0.150600836 -0.209045365 0.152332649 0.192087516 0.16760309 -0.18547143 0.179256544 0.0326432139 -0.179964393 -0.115477636 0.0079780519 -0.136473298 0.181942597 -0.208565935 0.0134567469 -0.126784652 -0.169424281 -0.0628683865 -0.114796102 0.0893148929 0.0177237391 -0.0124684423 -0.0918829367 0.211935773 0.094444707 0.016701892 -0.0590179116 0.0849123448 0.108921126 -0.20818451 -0.0456367433 -0.192618713 0.152746841 -0.215566471 0.00875625014 -0.189330056 0.0378446132 0.0927370936 -0.151373893 0.0614693612 0.158985659 0.104175046 0.105728164 0.0458672792 0.207965508 -0.178669825 0.00418125093 0.0559802204 -0.0249681771 -0.0376786143 0.106480464 0.0562428087 -0.170471475 -0.0725654066 0.0408393592 -0.0887342691 -0.18532142 -0.0839830488 -0.07338579 0.00157360733 0.12650533 -0.142261565 -0.000929355621 0.204841927 0.172537729 0.0033159107 0.0687571019 -0.0839198679 -0.152874768 -0.18799895 -0.0798550099 0.21561344 0.180276021 -0.163363978 0.0622868985 -0.0431992263 -0.0551945865 -0.0266679972 -0.188748717 0.0349755138 0.0465333015 0.0533083826 -0.178667665 -0.0362516493 0.151705757 0.194856569 0.0607622713 0.0183658749 0.175402328 -0.101102784 0.0227563977 0.0491989106 0.146571085 0.0980971605 -0.0472928286 -0.184292138 -0.111208268 0.0657477528 -0.0478032976 -0.0550544858 -0.0246023536 0.0837624222 0.0581302792 0.207286611 -0.0746527761 -0.151319429 -0.042408675 0.212022647 0.181054071 -0.197607398 0.0946860164 -0.195584744 -0.145901322 -0.0375304222 0.033589229 -0.0719570816 -0.163729697 -0.0788363516 -0.00830960274 0.130213246 0.0206764042 0.0817540139 -0.0503546745 -0.0202822387 0.047159031 -0.0727578998 -0.115029015 0.0792359263 0.0107904077 -0.0341112614 -0.192723095 0.134535626 -6.81430101e-05 -0.059693709 -0.17601274 0.183006659 -0.202908888 0.0816902667 -0.094257988 0.0125491768 0.16863285 0.101468727 0.14817898 -0.212127388 0.122662589 -0.116163909 -0.0831100047 0.0797502249 -0.178151309 -0.131055266 -0.0195331424 -0.13432461 0.158854887 -0.189599097 0.198506609 -0.0405822396 0.0368385166 0.0968445688 -0.175171196 0.106279299 -0.152216777 -0.15213719 0.138414755 0.205762491 -0.0651920736 0.146296307 -0.117051035 -0.136864215 0.0811170489 -0.00661365688 -0.0708380789 0.165561602 0.0473368019 0.0235514343 0.100686476 0.215413198 -0.131596476 0.10411568 0.0620991141 0.124507055 0.0278695375 0.0819171816 -0.0375207663 -0.0883098692 -0.126225829 0.0735081881 0.0391746908 0.0340031236 0.193162784 0.0544418842 -0.0302834511 0.110239729 -0.104769245 0.171288803 -0.0160502493 -0.141798377 -0.0218096972 -0.0494750887 -0.126606718 -0.175714895 -0.0657417625 -0.124705948 -0.169766977 -0.0798291415 -0.207838416 -0.0835472196 0.181245521 0.194337621 -0.0133327544 -0.0225114077 -0.059228152 -0.112821728 -0.182255551 0.199863151 -0.0284454525 0.0473324209 -0.00579693913 -0.161332101 -0.0645648986 0.0952647775 0.00672772527 0.196919993 0.0321274847 0.131383255 0.0805868655 0.0936032981 -0.0599137098 0.0680793971 0.107974693 -0.15697518 -0.0510457009 -0.0746485442 -0.0553661138 0.186789319 0.0522751659 -0.15157029 -0.0520856678 0.18157135 -0.170726836 -0.208391249 -0.200379699 0.205637619 0.0842874497 -0.0989112481 -0.175790459 -0.0860273093 0.0626900345 -0.192758396 -0.146140635 0.0100079179 -0.176879883 0.168764278 0.00368328393 0.0324149132 -0.17917487 0.177173302 0.200694308 -0.210634872 -0.0324780345 0.119420663 -0.0816995203 0.00673216581 -0.111612543 -0.0376621932 0.19222717 -0.0223220289 0.194980606 -0.145521462 0.207889572 -0.141779751 -0.153480828 -0.195811972 -0.133850738 0.194634274 0.184633091 -0.0140720457 0.061757192 -0.114701897 -0.134145856 -0.136690974 0.166621342 0.117703721 0.0755834728 -0.0677462965 0.0211389661 0.00449576974 -0.139145881 0.119776383 0.0561598092 -0.18665351 -0.0138680935 0.0949431807 -0.0917117149 -0.0158595592 0.114862189 -0.0221781582 -0.10214591 0.0696896464 -0.0837246925 0.00264398754 -0.187503725 0.140037909 0.129311964 -0.202455819 0.055163607 0.150236055 0.0551903993 0.00989967585 0.130196467 0.00960342586 -0.0921220928 -0.0849290192 -0.134404302 -0.11196918 -0.0373286903 -0.0546809733 0.184257761 0.200430349 0.146209285 0.0355636626 0.120885 -0.213786125 +tensor_dense2kernel0 4096 +0.0720734745 0.105637982 0.0826498121 0.174459711 -0.17083244 -0.164170951 -0.0992320105 -0.199974179 0.212193832 -0.198795408 -0.0704252273 -0.0650933236 -0.0619525164 -0.0320592523 -0.183288917 0.0749848038 -0.171131581 -0.0473029464 -0.0257246494 -0.0284899473 -0.100247875 0.109176174 0.0562035888 -0.0802446306 0.161254063 0.049738124 0.15917255 0.149879828 0.121465042 -0.057305187 0.185628131 0.112033591 0.0510044545 -0.213382721 -0.0427236557 -0.167345375 -0.0293042362 -0.178356037 -0.190877557 -0.141087845 0.173438951 -0.159119084 0.0494776219 0.079099521 0.17175065 0.107822731 -0.0595033914 0.0650085062 0.100640163 0.0919277817 -0.135156244 0.0512526482 -0.0657977313 0.126258031 0.075960204 -0.166769713 -0.152529597 0.18229343 -0.0445462316 0.0751874 -0.100305684 -0.156579211 0.181582704 0.0235551596 0.19425033 -0.209029838 -0.0217839479 -0.0254406482 -0.0942557678 -0.213592961 0.203400418 -0.208509609 0.216371164 -0.195422143 -0.149665713 -0.0889532417 0.120656893 -0.108100176 0.00744694471 -0.166092783 -0.0159193873 -0.0784205645 0.113573 0.0390408486 -0.00102567673 -0.102747634 -0.0357110947 0.147719309 0.192879096 -0.209094822 -0.0491589606 -0.0892587751 0.108518079 -0.211746395 -0.143895626 0.116476521 -0.0674594939 0.0497550219 -0.0938904062 0.177796021 -0.214697868 -0.0776524246 -0.00565296412 0.0191742331 -0.16604808 -0.20863381 0.145207301 -0.0375644267 -0.15207234 -0.192606121 0.0441105515 -0.0884584188 0.0231148899 -0.11371959 0.207362577 -0.0950652584 0.0148147941 -0.191183746 -0.0615043044 0.0490771979 0.178337052 -0.193223432 0.024641946 0.0074351728 -0.172553688 -0.149241805 0.20268698 0.123700187 -0.169300392 -0.0261925757 0.104502216 0.118681476 -0.0692069083 -0.129921585 -0.113933034 -0.11706657 0.0183103979 0.0464295 0.211395994 -0.0504977554 0.178118631 -0.14344871 0.0141696632 -0.154745445 0.111318991 0.211866602 0.03315714 -0.165968478 -0.139052242 0.164127693 0.0643841475 -0.0787521601 0.0204184204 -0.0770325214 -0.204772279 -0.184275821 0.0654207617 0.0275883079 -0.0921096504 0.0233342201 0.0394270569 0.209976688 0.0149585009 0.0551626235 0.174928054 -0.0178036988 -0.213502631 0.164499179 -0.016137749 -0.119730376 0.0462367684 -0.0734151155 0.193203107 0.210113987 0.0534619838 0.102362767 -0.10706877 -0.0340105593 -0.103884488 -0.188265726 0.041910097 -0.0674270838 -0.0284549445 0.0487232953 -0.215747237 0.13754116 0.106867805 -0.204176232 -0.190663904 -0.0368545651 0.125092879 0.0909042507 -0.0809390694 -0.0685413927 -0.128465831 -0.216301113 -0.163918018 -0.201746523 -0.0725228786 -0.00302271545 0.164322391 0.178860977 0.148449615 -0.0404467881 -0.179867387 0.169904634 0.207575604 0.138645962 0.170595154 0.0945320874 -0.130620271 0.113526747 -0.00541184843 0.152506873 -0.0522951335 -0.129133582 0.0760927051 0.0783075243 0.188740298 0.0508348197 -0.19386372 -0.116527982 0.0283779353 0.0206809491 0.20868279 0.0649324208 -0.185373768 -0.0604107529 -0.169076473 0.143537179 -0.172874555 0.0939408392 0.123755321 -0.189508453 -0.100344196 0.0436903983 0.213112816 0.115385398 -0.169349328 -0.215518981 -0.198888525 0.202982381 -0.125230253 -0.185521439 0.00198934972 -0.14029415 0.00307768583 0.0750704259 -0.169366568 -0.0786624998 0.0676298887 0.066672042 -0.024256289 0.0443574041 -0.0342482179 -0.031995818 0.209891185 0.181221738 -0.193047717 0.135495171 -0.108327247 -0.204249844 -0.189474493 -0.121228576 -0.123185612 -0.0534810424 -0.156994596 -0.0752690583 0.0084772557 0.108222678 0.0465608686 0.0895437151 0.143872544 -0.104804501 0.0283998102 0.0479630083 -0.0106025189 -0.0323521942 0.131077453 0.0196629614 0.0864436179 0.157585368 0.00220997632 -0.121629551 -0.100336708 -0.0411036462 -0.166649342 0.171600893 0.0959453136 0.133716688 0.0480598956 0.158875659 -0.0467371047 -0.0305455774 0.168077901 -0.15827857 0.0939979702 0.011012733 -0.0114109814 -0.123054445 -0.111475863 0.095322594 -0.216478214 -0.184146523 0.0482996553 -0.110009462 -0.00916042924 -0.203010574 -0.193343967 0.0094948262 -0.158019334 0.0856252164 -0.0762539059 -0.173388675 -0.116788447 0.198375896 -0.0908947438 -0.171783537 -0.050374344 -0.0306826234 0.0520980507 -0.183639258 0.0776970237 0.155443296 0.167070076 -0.002620399 -0.0791401863 -0.120239705 0.207253709 -0.103244774 -0.00915181637 -0.0175642371 0.0140483081 -0.147256434 0.143646672 -0.148113787 0.167795584 0.0473842472 0.176655337 0.207175419 -0.0114213526 0.0604935437 0.0820235759 -0.147017658 -0.00106577575 -0.162913442 -0.0049264282 0.189580783 -0.211456299 -0.0513359457 -0.0622351766 0.0690534562 -0.0814784765 -0.0880493373 0.0992848128 -0.0771092772 -0.0927407965 -0.0245794356 -0.126305059 -0.0604246408 0.0372974128 -0.211315066 0.0360903591 -0.0675100386 0.0739898831 0.0732542723 -0.110112444 -0.138786674 0.0314367712 -0.0581140667 0.200713113 -0.153496727 0.0547394007 -0.210231006 0.212144747 -0.184224308 0.0484436899 -0.197295204 -0.054711327 -0.0314878225 -0.161253631 0.0952591449 0.119271263 0.0519188792 -0.191073805 0.158467278 0.00224249065 0.170322046 -0.0609520376 -0.171915159 0.0196994096 0.0417354256 0.0659447759 -0.172321454 0.179679766 -0.0142251551 -0.169347882 -0.214844733 -0.101831958 0.0442094058 -0.101700746 -0.134787217 0.163799331 0.184489831 0.0340359062 -0.0348798186 0.196430877 -0.176207244 -0.0952511355 0.0603881925 -0.201083273 0.0413215905 0.106455222 0.0991366059 -0.0774784088 -0.187793359 0.183862135 0.00496023893 0.186999306 -0.109451048 -0.120062239 -0.131701216 0.0669701546 -0.180453733 0.215405986 -0.153336346 -0.122806877 0.0785367638 0.110117957 0.0217699111 0.201986924 -0.157226518 -0.20275785 -0.0811823457 0.140200213 -0.135767937 0.0254964978 0.101331577 -0.0358804166 -0.190218121 0.20299004 -0.0010227263 0.0031568706 -0.153422713 0.171068802 0.151070669 -0.00406464934 0.206621692 0.131635562 -0.066198498 0.110561058 -0.202556014 0.165333673 -0.187573507 0.166896269 0.109915867 0.0228767693 -0.195554242 -0.0597096086 0.120711878 0.143912867 -0.15907675 0.167503878 -0.00709298253 0.170712337 -0.00904238224 0.190537795 -0.209040567 0.0574344546 0.128737286 0.186002746 -0.0965514779 -0.0268673003 -0.00687153637 -0.0780095756 -0.201512128 0.17791371 -0.214620963 -0.120057642 0.171930537 0.190445766 -0.0291093141 -0.182580233 -0.213182434 -0.0890120864 -0.134921581 -0.130356744 0.208580896 0.100659236 0.0120640695 -0.0341361463 0.0258590132 0.189093903 -0.0443576723 0.181730732 -0.0773568451 -0.209986389 -0.147318125 0.0313114971 0.152323529 -0.151750147 0.0868849307 0.0476363152 0.0640650243 -0.194328085 0.081259504 -0.00890481472 -0.0990210921 -0.179610699 -0.016128704 0.0233678222 0.0781777054 -0.105569236 0.145421073 -0.168070465 -0.0484581888 -0.103307649 -0.166128129 -0.00750495493 -0.204514861 -0.153445154 0.00465589762 0.182648584 -0.213240042 -0.178045243 -0.122091696 0.0794366747 0.137778714 -0.00294807553 0.127173856 0.0520086437 0.147642538 0.0807637125 0.100630209 0.201114401 0.179699436 0.0391325802 -0.0308145583 -0.165162191 -0.175404459 -0.0775921345 0.168246791 -0.17048876 0.0207286477 -0.100647092 -0.0523818582 0.0444255024 0.210763827 0.12586765 -0.0207422227 -0.0754766166 -0.0217720717 0.130427822 -0.0299929827 -0.0379982889 0.100398347 -0.0356070399 0.0655094236 0.0654675215 0.190414175 0.203935578 0.0413287431 0.174676105 -0.00819396973 -0.153312147 -0.210880324 0.16387485 0.12146993 -0.00574953854 0.0214880109 0.196522102 0.114720747 0.0982830971 -0.0385596454 -0.0523891896 -0.0513710082 -0.0510435253 -0.0203166157 0.136102781 0.118706867 0.0997346193 -0.0918878913 0.0846025199 0.134655342 0.0125445276 -0.173530579 0.126699641 0.164726064 0.0798952729 -0.179558873 0.13959156 -0.20540446 -0.169257551 0.0974092931 0.135231152 -0.19618322 0.178617999 -0.195195436 0.00116297603 0.130042121 -0.0897486359 -0.0595608503 0.0725844949 -0.168786779 -0.171606004 0.00947995484 0.111770645 0.036076501 0.197393164 0.132488862 0.018777594 0.10415636 -0.0448684841 -0.0973193124 0.167561665 0.0745752603 -0.139588684 0.0584018975 -0.122388296 -0.148038715 -0.0156679004 0.212980345 -0.0231504142 0.0355601162 0.145956501 -0.093877241 0.0261098891 0.164310262 0.162534401 0.192318395 0.0879526585 0.176137701 -0.199908987 0.200413242 0.079145506 0.0573146492 0.177131429 0.0829168111 -0.00562721491 -0.098592706 0.178978935 0.180094197 -0.158867642 0.0240514725 0.052881524 0.0263754725 -0.0838197768 -0.0192150176 0.00737214088 -0.134910896 0.167383626 -0.126882523 -0.0208424628 -0.199372515 -0.159072369 0.100549594 0.190770403 0.19575952 -0.0640622377 0.143354759 -0.014034003 -0.0278270543 -0.177158371 -0.0709988624 -0.192770377 -0.0448067486 0.210046515 0.0685590953 -0.0372601897 -0.127416462 -0.183565542 0.000387087464 0.207295492 -0.0878015161 -0.209990412 -0.10330677 0.0689540654 0.199892536 -0.119964682 0.106454805 0.138556406 -0.174358502 -0.148531795 -0.0336631685 0.0319802761 0.0318092108 -0.124563687 0.119659767 0.00515793264 0.194450006 0.16523771 -0.0697573721 -0.0799603164 0.0037920922 0.0910985321 -0.0653754324 0.113143101 0.201823279 0.176848963 0.00523996353 -0.0516005456 0.0767733008 -0.162839428 -0.0564309657 0.131383911 -0.192525238 -0.0973805338 -0.106499307 -0.117373399 -0.0124305636 -0.13786681 0.148049518 -0.167817831 0.0941778868 0.207109794 0.131681249 -0.132850617 0.143915191 0.0960831791 -0.0574291795 -0.161205173 0.0871562213 -0.14055416 -0.167827487 -0.0697198957 0.00843276083 0.109790489 -0.0805447996 -0.193852052 0.140593752 -0.151278913 -0.0300129205 -0.0265060067 -0.135406494 0.201517329 0.0668479055 -0.212827042 0.00526246428 0.186980471 0.010383144 -0.129857272 0.0905567259 0.0551497787 -0.11034473 0.150861666 0.215299174 -0.0324517637 0.106759205 0.00336463749 -0.171365052 -0.0379823893 0.160591885 0.0184767097 -0.144764155 -0.151252627 0.144663468 -0.101882547 0.0074750185 -0.0621429831 0.165995732 0.205584362 -0.183349058 -0.0306344032 -0.0507949293 -0.0254389495 0.126846328 0.00985568762 -0.0196396858 -0.164447308 -0.00271238387 0.135672525 -0.12729831 0.211624518 -0.0110241473 -0.099156335 -0.0117900223 -0.103290096 0.135916129 0.0280969143 0.120209351 0.127246425 -0.138105601 -0.104700744 -0.0361966789 0.193283871 0.0679382235 0.156643853 0.186259344 -0.0409392416 -0.0209484398 -0.102118604 0.00880105793 -0.0792061538 0.170710459 -0.0301101059 0.203694567 -0.186771348 0.0120510012 0.0718521327 -0.135989159 -0.0410162508 -0.04962942 -0.104965083 -0.129911333 -0.171592638 -0.0971045271 0.0166722089 -0.0918848515 -0.195725203 0.179283783 0.144926235 0.208145276 0.19516544 0.0983070582 0.105984464 0.125652388 0.0642178804 -0.11638613 0.0211183131 -0.055001989 -0.0627131164 0.0789188892 -0.0581304282 -0.0831706077 0.113928452 0.0856363624 -0.0108097196 -0.0648208857 -0.0648176372 0.0987511128 0.0781336576 0.040875122 0.0172726959 -0.0962049589 0.159133539 0.163493857 0.122194514 -0.0330827534 0.0777071863 0.111556843 0.107794479 -0.111251369 0.0240100175 -0.214352071 -0.095950678 0.0809921175 0.148668334 0.0566781312 0.0608520955 0.148942158 -0.175617948 -0.0716462284 -0.208235264 -0.124162704 -0.0254302174 -0.136611387 0.174601689 -0.190580279 0.00653363764 -0.200868696 -0.0995163769 -0.0169239044 0.0403810889 -0.0176589042 0.091600731 0.0806646496 -0.105867647 0.178097114 -0.214359045 0.155411229 0.067616269 0.134629324 -0.0722248703 -0.214700297 -0.0560381413 0.184036657 0.144978687 -0.14177835 0.0738504678 -0.0174431354 0.11870043 0.213032469 -0.0424806327 0.216463551 0.0565026253 0.197938636 -0.187350512 -0.198725 -0.181318566 0.150493011 0.116323724 -0.0682040602 0.0511792749 -0.0775291026 0.190866753 0.0780985504 -0.138623342 0.130573794 -0.178432748 0.0516715795 -0.100482225 0.208352581 -0.0629476309 -0.209516495 -0.0271271467 -0.0601871908 0.0947510451 -0.0694460124 -0.0893996954 -0.131914705 0.16323714 -0.151896432 -0.193065941 -0.180358961 -0.215606675 -0.14868784 -0.148848414 -0.0500823259 0.155044898 -0.14095065 -0.0535883009 0.156337753 -0.163553938 0.00839745998 0.197626635 -0.127383381 -0.0588326007 -0.145403564 -0.015875414 0.133066997 0.154354319 0.108503535 -0.137311071 0.196157619 -0.149503976 0.101044968 0.133259609 -0.10068085 0.172129318 -0.0861077905 0.141590044 0.00365039706 -0.00824166834 -0.151886165 -0.172422931 0.116714641 -0.134012371 0.0971042067 0.110619977 0.115724102 -0.037075296 -0.114425324 -0.130701452 -0.171910152 0.186465546 -0.162162125 0.124132052 0.0482054502 -0.144533634 -0.0858643502 -0.0387717038 -0.214778394 0.090840593 -0.0867821872 -0.139754206 0.0579594523 -0.12750411 0.0387925655 -0.144655555 0.11548017 0.179298386 0.213035569 -0.188743711 -0.18723917 0.0452460796 -0.0189377218 0.0716785342 -0.0328151584 0.162825868 0.132731423 -0.0927574188 -0.193915233 -0.169276074 0.198093548 -0.0539898425 -0.0405678898 0.198442385 -0.102472812 0.205861494 -0.0513688922 0.176545337 -0.0956009105 -0.104700744 0.15393813 0.0591907948 -0.0990266651 -0.163121626 0.0950824469 0.0695202798 -0.203186899 -0.155021042 -0.0458154976 -0.00566618145 -0.0820624977 0.0546834916 0.209033147 -0.148864836 -0.201246589 -0.1430659 0.140711144 -0.106978849 0.0939450115 -0.0306081325 0.0740274042 0.100977555 -0.201344728 -0.0224576294 -0.147174105 -0.0205305368 -0.149508372 0.128903553 -0.0554889143 0.129909977 0.168454185 0.0019094497 -0.0826667547 -0.0946797132 0.0786027163 0.0940741748 0.13208954 0.131096795 0.0283738971 0.130252436 -0.163034037 0.0419691056 -0.179112047 -0.0970050022 0.0688446909 0.0244445056 -0.198129311 0.0805634409 -0.154600859 0.177032366 0.0781883746 -0.0129864961 -0.192099839 0.0904759616 0.0613937229 -0.0225679427 0.0973238498 0.0101725757 0.16009815 -0.164371997 -0.147875145 -0.19436039 0.066744104 0.115277097 -0.185915098 -0.183587119 -0.134376898 0.189190075 -0.115277715 0.0110761225 -0.0172309875 0.178416625 -0.20255819 -0.0196330249 -0.122849874 -0.149319813 -0.143117249 0.20158501 -0.0112723261 -0.209113553 -0.168115214 -0.155761719 0.197498426 0.127916411 0.166968092 0.0230869651 -0.124523424 -0.133491263 -0.212484598 -0.143955022 0.155609146 -0.147563159 0.0277281553 0.102845296 0.211294428 -0.166388765 -0.200500026 -0.0162702501 0.0568276495 -0.0196683854 -0.194312334 -0.000573277473 0.202328935 0.0609487742 -0.148621619 0.0169913173 0.12142317 0.140497372 0.105967894 0.180296466 0.0710208565 -0.0921825916 0.1226971 0.174249008 0.195190951 -0.0474217832 0.141437218 0.154314622 0.0918434411 0.0894567221 -0.14900808 -0.0981531143 -0.0538481027 0.0228222162 -0.102120869 0.0481202453 0.129656211 0.0664143115 0.215075478 0.20224683 -0.107856892 0.204145059 0.0568155199 -0.124321125 0.0964832455 -0.0990250111 0.0887329429 -0.100137249 0.103695258 -0.00890167058 -0.0632556379 -0.0187365562 -0.134786278 0.10050483 0.213761911 -0.185594901 -0.0312972516 0.115713075 0.16266115 -0.102895521 -0.0428603441 0.0440358073 -0.105589785 0.0319588482 -0.0046595633 -0.148783237 0.157901958 0.0102932751 -0.102296531 -0.0458446592 -0.109261863 0.209166512 0.15071173 0.0947685391 -0.158454955 -0.129106313 0.134193793 -0.0938750282 0.0257861912 -0.0563756824 0.158723876 -0.101011731 -0.0893978328 0.0857353956 0.0853622109 -0.143675059 -0.183304876 0.062996909 -0.209832251 -0.150142401 -0.129089549 0.135778472 -0.140538454 -0.175052822 -0.131536499 0.0129223317 0.0520402044 0.132413194 -0.213899165 0.134170666 -0.183252633 -0.0954198316 -0.20221445 0.0884195119 -0.178147241 -0.0404109657 0.181726411 -0.031693846 0.0598342568 -0.191721007 0.172289744 -0.114417531 0.204707101 0.0914278179 0.146863982 -0.159480006 -0.174256235 -0.0401036739 0.188927367 -0.0101573616 -0.101242162 0.059452042 -0.169416487 -0.00764252245 -0.039293319 -0.0368192047 0.0420004278 -0.0941514969 0.00939850509 -0.00788301229 0.104357019 0.102580652 -0.180491939 -0.0928620473 0.114409283 0.118348584 0.121027723 -0.0417347997 -0.0768906325 -0.198848322 -0.190798312 0.142806515 -0.0221841037 0.160379067 -0.0788907111 0.13271831 0.126287296 0.105682328 0.211806938 -0.00843709707 -0.207118064 -0.107439607 -0.162816092 0.177772269 0.159826323 0.108414277 0.0367451459 -0.00121945143 0.087822333 -0.0284347087 -0.17992954 -0.174509898 -0.053367883 -0.12446323 -0.20755063 0.151510015 -0.0646236539 0.151481196 -0.209098533 -0.0389437973 -0.0229786187 -0.0261207223 -0.03480497 0.205316916 0.00596138835 -0.119096085 0.0853761882 0.180360153 0.0447607189 -0.145881563 0.194770411 0.170355216 0.178921476 0.155323282 -0.189302191 -0.054095313 0.0619111508 0.017899245 -0.166010648 -0.142021537 0.193252489 -0.0663464367 -0.0802531987 0.06119515 0.114438787 -0.0687271059 0.137305871 0.0797028393 0.133770123 0.061579451 0.184940889 0.201014146 0.132208988 0.12404497 0.134062842 -0.0243919045 0.166059628 -0.0917808861 -0.187821895 0.0632692724 -0.0206924081 0.197168425 0.00295706093 0.145411626 0.0559516698 0.16857107 0.153085127 -0.141674697 0.122551873 -0.115950674 0.0172456503 -0.0639735013 0.206134513 0.0124485791 -0.189839229 -0.00461888313 0.0910429507 -0.00792591274 -0.0102594048 -0.0128744245 -0.171226606 -0.0433703512 0.0599675924 0.197074488 -0.14493151 0.0110059232 0.0358776599 0.197033748 0.0406182259 -0.178569689 -0.134352267 0.132221267 0.209747538 -0.0586690158 0.1761453 0.0137996078 0.206594035 0.0302986205 -0.166473001 0.213658735 0.132027462 0.11450462 0.207616344 -0.0597943664 0.211468592 -0.0317789018 0.0734311491 0.0689207464 -0.101011626 0.0201189667 -0.143788815 0.0852319747 -0.167809322 0.13436456 0.144978538 -0.1011637 0.0428097099 -0.164772466 -0.0594880134 -0.19962585 0.0675597042 0.102378651 -0.0438907743 0.102112874 0.0697277337 -0.133336246 0.184722647 -0.0849810988 -0.191972345 0.0629842728 0.17100884 -0.174979478 -0.0408878773 -0.107119203 -0.0435964316 -0.170784548 -0.166445956 0.0628583878 0.183612153 -0.179938883 -0.144418776 -0.100394472 -0.0965658799 -0.195560753 0.0452355891 0.20623894 0.216195956 0.0115065724 -0.00814415514 0.021350041 0.122006521 0.175878569 -0.18554534 -0.140201747 0.090661779 0.165380433 0.0618762821 -0.105736531 0.202944294 -0.0132080913 -0.0583744347 0.212536022 0.152820364 0.0407220274 -0.162207916 -0.155252904 0.133946702 -0.187709838 0.209894672 -0.0348537564 -0.130289897 -0.125008583 0.160767689 -0.036355257 -0.119778588 0.0464771539 -0.175907075 0.0763271898 -0.0438556671 0.060750708 -0.0996500179 -0.0102138817 -0.113970563 -0.187131137 0.0618093759 0.214592919 0.0171674937 -0.177295312 -0.1396548 -0.185591593 -0.17580238 0.187465176 -0.127522752 0.0496384948 -0.0799450278 -0.122413695 0.0185847431 0.126320139 0.146961227 0.00221090019 0.183308795 -0.0809073746 0.140474364 0.117178425 -0.0462515652 0.0964798778 -0.0140311718 0.106425866 0.0139771253 0.0191887915 0.199402556 -0.119800217 0.0751326829 -0.0286593586 0.0377730876 0.0954606682 -0.166556418 0.0284457505 0.0131197721 -0.214971811 -0.199859172 -0.179466471 0.00686265528 -0.0405591726 0.128789946 -0.0885156691 -0.0231515914 0.0274133235 -0.0946494117 0.0722979754 0.108185545 0.0662120134 -0.1165829 -0.202484369 -0.021460712 -0.0706832111 0.176532552 0.0546213537 -0.0781247318 0.149402723 -0.0511166751 -0.100806803 -0.00386828184 0.096163854 0.00671844184 -0.0618932992 0.0864645392 0.119743541 0.185850725 0.0487542301 0.184858188 -0.198184907 0.023482427 0.107057884 0.157953665 -0.0690505505 0.157932982 0.024170354 0.032594651 0.0530073196 0.117697462 -0.0990206301 0.17230539 -0.123280227 0.174554452 0.102127984 0.201770678 3.86685133e-05 0.0509264618 -0.101598643 -0.12626195 0.102379426 0.173604086 -0.061299637 0.213943556 -0.163225085 0.157068297 -0.164504975 0.129977152 -0.183117896 -0.130392671 0.203380212 -0.178518474 -0.186574727 -0.0258852392 -0.0569970757 0.139815077 0.0971906632 -0.194822952 0.0908226222 -0.0503910184 -0.0393434316 -0.120163202 -0.20915021 -0.0133848935 -0.041914165 0.109106913 -0.197150975 -0.0169817209 -0.201622069 -0.187427282 0.0135419667 0.0722399503 0.187668428 0.18768765 0.210492358 -0.131400377 0.188223496 0.000671982765 0.0991768688 0.00198945403 0.117716566 -0.0670307577 -0.210066706 0.0886924118 -0.208905682 -0.0827189982 0.174572363 -0.132972181 0.0470838398 -0.204226047 0.205731049 -0.123573631 0.108036324 -0.0922716334 0.0526510626 -0.156222016 -0.09427616 -0.0377399325 0.0794580728 -0.216363668 0.0628108829 -0.0945192277 0.119313821 0.171731696 0.196378395 -0.192868397 -0.0710653514 0.118417665 0.0165450126 0.160011306 -0.0168655217 0.167734459 -0.172148466 -0.163649023 0.0594363362 -0.086703524 -0.197209105 -0.027108103 0.0136667341 0.0110953301 0.110684648 -0.109400302 0.0289113075 0.0885115415 0.0786376148 0.0588019937 0.0366525203 -0.181009471 0.089611426 -0.215462506 -0.213920593 0.1752453 0.178309783 0.101294652 0.16588892 -0.155514106 0.155737266 0.0518909544 0.162500128 -0.0697245002 0.0179567486 -0.16738686 -0.00853094459 0.085784331 -0.0606932193 0.0925718099 0.118794218 -0.155448392 -0.116698891 0.116779611 0.040639326 0.0901257843 0.16784586 0.207345918 -0.0386459082 0.160333171 -0.139087141 -0.123728126 0.212985918 0.02666758 -0.214688063 0.0306510329 -0.0714527071 -0.0967833474 -0.105089076 0.0068192482 -0.118852749 -0.044965744 0.098104015 0.213819668 -0.113731302 -0.0702251494 -0.0371602476 -0.161623687 -0.0228868872 -0.148921251 0.0899792165 -0.100435868 -0.16775997 0.176307127 -0.0532870591 0.0344672352 -0.149988323 0.0968182534 0.0183050185 0.154577985 -0.0577560365 -0.194581896 -0.0398740768 -0.151397109 0.201207474 0.143756196 -0.040294975 0.0636927933 -0.0751343817 0.0870894343 -0.144020289 -0.0837496668 0.159470305 0.0311712921 -0.213004664 -0.105522521 -0.187098712 -0.19014053 0.0504928082 0.000923201442 0.0712945014 -0.0861267895 0.116496906 -0.0449720323 0.107933179 0.119039193 0.0218377858 -0.106151395 0.156768396 -0.0662968308 -0.17140913 -0.0980690792 -0.0719684362 -0.156402156 -0.208027899 -0.0750164837 -0.0491153002 0.0975629538 0.185186759 -0.109962799 -0.186560899 0.0235255212 0.0576196164 0.178126857 0.176262841 0.16182743 0.090709582 0.141875759 0.0945739001 -0.147957116 0.0335979611 0.200071529 0.118255153 -0.210025206 -0.0123241693 0.0942634493 -0.208584055 -0.0367055386 -0.124956973 -0.0596849918 0.121731535 -0.185637683 0.0770544559 0.185683891 0.0612456948 -0.14131172 0.0517595261 -0.161659464 -0.143235356 -0.211438432 0.207449511 0.0415445715 -0.126605988 -0.0669960678 0.0178579539 0.0385124236 0.175819591 0.117622033 -0.0354214162 -0.0648480356 -0.0320641547 -0.127369598 0.0855587274 0.165378049 -0.134120658 -0.196044832 -0.0206250995 0.0246335268 0.00385692716 0.00189369917 -0.139631107 0.12242122 -0.0317141712 0.188904628 -0.103237912 0.190669581 0.200148448 0.0944717973 0.129856512 0.203153238 -0.102652341 -0.18278785 0.146217331 0.0383898765 -0.180869475 -0.0743075013 -0.154591203 0.0703408867 -0.0836267173 0.0934918672 -0.159648746 0.0701663047 0.185223445 -0.152634948 -0.119971856 0.0818058401 -0.207903713 0.162683025 -0.188890219 -0.155463517 -0.0617440194 0.192527249 -0.122400068 0.155340359 -0.00483258069 -0.0808948725 -0.14969328 0.122708693 0.0916985124 0.167307064 0.0339859873 0.112711355 0.199425742 0.0508052558 0.0908002704 -0.025711447 -0.214930207 -0.0526648313 0.0683953613 -0.142057359 0.0310910344 -0.0560562164 -0.091847837 0.0465738326 -0.043711707 -0.0933766961 0.058074668 0.0722161382 -0.0143544525 -0.0999473482 0.00138024986 0.108425066 -0.123320952 -0.166009098 0.131790981 -0.102257095 0.0969090015 0.144905195 0.130774304 0.202088967 -0.0339302421 0.179033175 0.0350781828 -0.129305273 0.18041037 -0.204969168 0.177910969 -0.00365144014 0.0841431171 0.138322249 0.0614735335 -0.124355353 0.01965487 0.0502534956 0.0613973588 -0.0400774628 0.0733298808 0.16702418 0.0582070798 -0.00160004199 0.149118707 -0.121256135 0.0690530986 0.00727018714 0.163388774 -0.0592735857 0.0183229297 0.0768768042 0.0695059448 0.126304343 -0.0964555144 0.183473513 0.00136879086 0.143290177 -0.0391205996 0.10244374 -0.119527563 0.166473523 -0.0702283531 0.135470435 0.13457559 -0.186750904 -0.00784337521 0.00738979876 -0.186928585 0.0855617672 0.121110454 -0.0470073223 0.049827382 -0.0492005795 -0.0178475231 -0.128522933 0.124885365 -0.130912632 -0.126063481 -0.0217633992 -0.0668548346 0.0893058628 -0.100408666 0.108652398 -0.0978598148 -0.00825151801 0.0984886438 0.103483453 0.142142281 -0.0229647309 0.145044133 -0.104891732 0.0835651904 -0.057537064 0.104135677 0.0156677514 -0.072404772 0.0887826532 -0.174126104 -0.0256865025 0.183751836 0.0369578153 0.174735114 0.0671643466 -0.17062065 -0.186697945 -0.165698096 0.110135093 0.154873773 0.0780837387 -0.0377287418 -0.147328347 0.145004824 0.148347721 0.0303937644 0.134838268 -0.140598029 -0.0148316175 0.052032128 0.041514799 0.0728795677 0.166562721 -0.109285347 0.156863078 0.0898021311 -0.0949274898 -0.0756540447 -0.160755306 0.114194646 0.0132424831 -0.044583708 0.108396426 0.0364062637 -0.0593030006 0.174359515 0.0100171566 0.0567199737 -0.153329492 -0.115810625 0.0622310489 0.00246351957 -0.133361965 0.00533515215 0.137891069 0.20560579 -0.121505201 -0.0771713853 0.176670298 -0.0837914795 -0.0443386734 0.106372789 -0.0354959965 -0.0202583373 -0.12521404 -0.181744516 0.184158817 0.105352595 0.168397322 0.0394653529 0.0324783921 0.214117303 0.0521710366 0.119949386 0.0980906636 0.0662454218 0.173833176 -0.179695964 0.0228056461 0.164502397 -0.207787722 0.0438348204 -0.132135183 0.108438954 -0.115317769 0.195225731 0.149423614 -0.104451008 -0.0211364925 0.215908095 0.0762761086 -0.109785952 0.171437278 -0.139656097 0.0179292858 -0.179668039 -0.00516919792 -0.00918020308 -0.070155561 0.201516554 -0.0119924694 -0.0321354419 0.0121485144 -0.157521516 -0.165334225 0.155131415 -0.0397451371 0.177271828 -0.0614049435 -0.164228141 -0.215158358 -0.0953343511 0.161122367 0.0624253303 0.208376959 0.0184365958 0.206305996 0.151457354 -0.180460811 -0.0988956019 0.0211302936 0.0529447645 0.0261635184 0.00991614163 0.0474854857 0.0450568348 0.133023813 -0.0140484124 0.196641907 -0.0761894286 -0.0654397458 0.189434215 -0.0655373037 -0.0797602832 0.0817090124 -0.150069326 -0.153798595 0.0730309039 -0.0817212462 0.198714212 -0.0170713812 -0.163078114 -0.044618398 0.020879522 0.123918489 -0.164840236 0.211817458 0.0268930048 0.127202198 -0.0689073205 0.0787535459 0.169558212 0.0475464314 -0.147786617 0.205190554 0.180759951 -0.0743628293 -0.143190354 -0.214385733 0.0793745965 0.179193571 0.0253067911 0.0968537182 0.0123471916 0.165723071 -0.0604057461 -0.109488055 -0.00546264648 -0.0519610643 0.16259326 -0.131915808 -0.068144381 0.0862705559 0.0476442426 -0.0194613487 -0.0327209532 -0.0321031213 0.0928900689 0.121182367 0.0395704657 0.206889853 -0.153628349 0.108040407 0.0501328558 -0.207882032 0.0197364688 0.176427647 0.165034935 0.119529828 -0.101859525 0.0983333737 0.110026821 -0.0431410521 -0.150057033 0.203556135 0.172603801 0.151064292 -0.0404715687 -0.0594018102 -0.0587048978 -0.210961729 0.00607526302 -0.046252653 0.171803519 0.0116190016 0.115883157 -0.206495181 0.0879609138 0.0493768007 0.108358935 0.196560964 0.00493912399 -0.0784423947 0.0681210011 0.120667771 -0.146046698 0.0493365377 0.13671045 -0.126525983 -0.111981265 -0.194672167 -0.0533072352 0.061666742 0.206885204 -0.0210708827 -0.101717316 0.0331944525 0.201179788 -0.185947359 0.0138086379 -0.0722218305 -0.187322944 -0.0200253874 -0.0254301727 0.193144545 0.0394837409 0.105498686 0.0584578067 -0.0724069327 0.143338397 -0.00150376558 0.0142928213 -0.0193324983 0.0455453843 0.125151768 0.20455347 0.159254894 -0.160103872 -0.080135718 -0.207921267 -0.0486125201 0.0185214579 -0.00348243117 0.0956240743 0.202249035 0.000911071897 0.178825364 -0.145407021 0.0450499207 -0.0232169479 -0.0471666306 0.0831499249 0.0355164856 0.191922322 0.0605890006 0.0496924073 0.0736993104 -0.0712352842 0.193484202 -0.0648564994 0.0908390433 -0.167422801 0.00586992502 0.00143258274 -0.116827212 -0.161780462 0.119680062 -0.0967072621 0.0424497277 0.093848899 -0.143930152 -0.176677689 0.129201546 -0.0241238922 -0.0394712985 0.171395496 -0.184580743 -0.00476831198 -0.135681674 0.208737209 -0.0748498589 0.192972466 0.126274869 -0.0687488914 -0.198124304 0.131398633 -0.164974302 0.202609763 0.107634887 -0.195589542 -0.158017486 -0.110643499 -0.191519737 -0.00531253219 -0.178426236 0.037269935 0.00399748981 0.106271669 -0.129799873 0.0287259966 -0.193390682 -0.0012075305 0.205237523 -0.00098721683 -0.203937754 -0.0752554834 -0.0283831954 0.0577716082 -0.0905099213 -0.210451111 0.163710132 0.104198173 0.0880529135 -0.090093866 0.188893929 -0.0478242487 0.0905865878 -0.195681125 -0.0138732046 0.0842897147 0.0521370322 -0.0494951606 0.124611542 0.202247694 0.0449613482 -0.216195449 0.0194487423 0.0206749141 -0.133456886 0.0322945267 -0.0700771511 0.164841279 0.115094677 -0.125130147 0.0902375728 -0.216408014 0.165322915 0.0753913373 0.0057335943 -0.0234231055 -0.210213453 0.12744309 -0.208506614 -0.101417616 -0.101825558 -0.154521465 0.137804136 0.189316109 0.0844352692 -0.111977801 -0.0769492686 -0.107639164 -0.0500084609 0.104216561 0.0536748618 0.136540458 -0.204771981 -0.193528041 0.0751554519 0.120019868 -0.0767422169 -0.140790462 0.126554057 0.0518514663 0.0508473665 -0.055590719 0.0525252968 -0.101209946 -0.058428213 0.0825842768 0.130736038 -0.0466356128 0.20227541 -0.132680997 0.114882931 0.206202909 0.070753172 0.0750757903 0.0927189142 -0.18364504 -0.169346228 0.0360750705 0.121472999 0.15693967 -0.0840200037 0.206487432 -0.0544678867 0.0617191941 0.0444918126 0.185416445 -0.0715998709 -0.0149362534 -0.179126501 0.0717373937 0.100011155 0.192402855 0.0109363347 -0.145829737 -0.0144607872 0.142150745 -0.00497825444 0.0760070235 0.0569733232 -0.159680337 -0.165824562 0.138788685 0.0505397171 0.198276237 -0.0394445509 0.0211829394 -0.160856947 0.12942569 0.0585816652 0.0602253228 -0.212986022 -0.123331018 0.17300196 -0.174353182 -0.215054616 0.0415391475 0.085977748 0.0535571724 -0.0756186247 0.1006632 0.0169396996 0.0425120145 -0.0888770074 0.191948608 -0.0837210268 -0.0413812548 0.136424616 -0.0584797263 0.190023616 -0.100586645 0.182730809 0.123084381 -0.000653401017 0.0415102094 0.0396791548 -0.14722082 0.126187161 0.0778864473 -0.0346511453 0.0493589789 0.115246341 -0.0839745849 0.0306238234 0.147452846 -0.204215005 0.16961135 -0.195198894 0.0571123511 0.00817714632 0.216334984 -0.210588425 -0.168448776 -0.066527158 0.0358638912 0.0697858781 -0.148319691 0.0767853707 0.0827894658 -0.0660763085 -0.177229807 0.207099184 -0.161111221 -0.127371103 0.0483067483 -0.00413577259 0.214660302 -0.194299951 -0.0179934949 0.186847076 0.138651177 0.158565834 0.0674505085 0.0154346824 0.109918609 -0.210888952 0.152831599 -0.0987665579 -0.148955286 0.105599478 -0.099908784 0.0916914791 -0.175057262 -0.0985852703 0.069649443 -0.107373789 -0.0848126113 0.0478115529 0.0158510506 0.212122187 -0.13414982 0.201576486 0.121070728 0.134894118 0.204062328 0.109867886 0.0779989511 0.124963358 -0.188230008 -0.0927676409 0.15817441 0.109811202 0.0883628279 0.142731801 -0.126459911 0.0925498158 0.0761002451 -0.168910041 -0.0958660766 -0.140628904 0.140957609 0.047696963 0.186759993 0.193272099 0.031809628 -0.0560047477 0.134704158 0.0367725343 0.0497736484 0.0556292087 0.177065805 -0.207024947 0.13423948 0.167014286 0.122852311 0.0246040523 0.0377319306 -0.110266581 -0.152983159 0.0639204532 -0.0871817321 -0.0440642685 -0.150764987 -0.153118521 0.207896337 0.154454425 -0.0842736661 -0.18260172 0.0882617086 0.207736358 -0.0913874954 0.163468704 -0.145499229 -0.0722074807 -0.13282451 0.0331797451 -0.0199894607 0.124866173 -0.194403604 -0.0614343137 0.0593206137 0.12945424 -0.0680632442 -0.162646636 -0.0375522524 -0.0514845699 -0.0967736989 -0.196712837 -0.0849520862 0.145428821 -0.0301000923 0.21004419 0.149207845 0.0277626365 -0.0458330363 0.123746619 -0.0601141453 -0.207916304 0.166537687 0.164299175 -0.0664033741 -0.0366543829 -0.0259464681 0.00538448989 -0.176779896 0.120040879 -0.0980883837 -0.0351942331 0.045834288 0.0277767181 0.0379769653 -0.0304652452 0.171588674 -0.18710956 -0.0316898078 -0.0826318562 0.144939199 -0.113141298 0.0946537405 0.0431265384 -0.0740748495 -0.0247935504 -0.152835786 0.111411169 0.0628831536 -0.19745563 -0.00319734216 -0.106647559 -0.174314156 -0.149721861 0.171094164 0.122099444 0.188818321 0.216095403 -0.118555322 -0.128079668 0.012192592 0.144844279 -0.111847721 0.153499916 -0.0864006728 -0.159857646 -0.114556901 -0.146564126 0.0373161882 0.209868029 -0.0692257583 -0.0101606548 0.0148580968 -0.0792294443 -0.0382121503 0.116926 -0.0510000139 0.0474732369 0.0854227394 -0.155232161 -0.201540932 -0.130928636 0.135378107 -0.112953305 0.111749128 -0.0995247886 0.135859862 0.0287824124 0.0450941175 -0.122959621 -0.150950968 -0.060626775 0.067682907 0.042662546 -0.115446664 0.133323923 0.015136376 0.124512181 -0.0892919153 -0.0403002501 0.158315018 0.0158569366 0.0489937812 -0.0469649434 -0.00469599664 -0.0121142864 -0.0520777702 0.00402639806 -0.139563739 0.110662445 -0.188459292 0.198211536 0.0210055858 -0.0891271532 0.131104335 0.0770383626 -0.0961259305 -0.0397526175 -0.132310212 -0.0272894949 0.087330088 0.202434853 -0.0704747736 0.187489226 0.0332245529 0.188517109 -0.170691788 0.0035059154 -0.206262887 0.149705455 0.126249656 -0.165763855 -0.111692399 0.176134154 0.075372085 0.0363540798 -0.182059705 0.20954366 0.0716526359 -0.0489518642 0.206474736 0.172476038 -0.0745774657 0.134587243 -0.0123390406 -0.0755716562 0.120695665 -0.133081675 0.0194198936 -0.0559597909 -0.194912001 -0.165030658 0.131424174 0.0357581228 0.137006059 -0.197406381 -0.159987733 0.196797445 -0.0252364427 -0.0913793445 0.0948503166 0.09428747 -0.0653177202 -0.159910977 -0.0471469015 -0.116169535 0.100651696 0.0612198263 -0.00474968553 -0.134656459 0.00969190896 -0.0772574842 0.0407112986 -0.065290004 -0.118160121 0.189642146 0.00605456531 0.0117338598 0.0389382094 -0.111266598 0.119314745 -0.190670758 0.15349786 -0.0355514884 -0.0302093774 0.140792683 -0.0123331547 -0.0926660001 -0.109557383 0.179005936 -0.156239405 -0.151500195 -0.0712945461 -0.0907298177 -0.208882824 0.026444748 0.0442295521 -0.192895442 0.172419533 0.131081596 -0.194239303 0.126283571 -0.147244245 0.0430594832 -0.195343018 0.16828762 0.080004707 0.142724171 0.0881541222 0.21575956 0.139578596 -0.100556657 -0.0502597392 -0.189486831 -0.12700811 -0.14964655 0.103310034 0.111688569 0.100934312 0.153106645 -0.0772921741 0.0563845485 -0.0247820318 0.0447983891 -0.105358116 0.182950154 -0.00371095538 0.162389681 -0.139169157 0.0746891648 -0.179400235 0.0632802099 0.204771206 -0.180464938 0.105706707 0.173049852 -0.198710233 0.183410838 0.033869341 0.193851426 0.0605505854 -0.0360240638 -0.0983660445 0.122696146 -0.0239738822 -0.0571439862 0.0865179449 0.207218662 -0.0169765502 0.10661675 -0.0141330659 -0.189507529 -0.214526698 0.206583545 0.195867166 -0.198749617 -0.160737857 -0.0684915781 0.0626776069 -0.175313607 -0.183250204 -0.203358695 0.104103968 -0.147260815 0.0735307485 0.166091695 0.0311048627 0.0771887153 0.144971833 -0.107908309 0.043909058 -0.209914848 0.144098058 -0.16386877 -0.189734131 -0.131728053 0.1479664 0.15326862 -0.0374435335 -0.0066356957 -0.176680475 -0.105022177 -0.0069681704 0.0682294518 -0.0502667129 0.161125883 -0.0270171016 -0.171312302 0.0428408831 -0.0523188859 0.19900544 -0.0303994417 -0.0761271715 -0.0290250331 0.040251866 -0.00461108983 0.202128246 0.0850322992 -0.0534527451 0.111439779 -0.126403689 0.168033764 -0.125349998 -0.141422659 0.172666356 -0.00833773613 -0.010573253 0.0498629063 -0.164404422 0.170034006 -0.00723788142 0.107835069 0.178350523 0.0526260585 -0.189043269 0.0385902673 0.0374396592 -0.149395436 -0.0105125457 0.0394402295 0.12286891 -0.152178109 -0.0209447742 -0.139631927 -0.00756199658 0.0647462457 0.131116733 0.174894914 0.130160436 -0.14286153 0.0410422832 0.147195116 -0.201956302 -0.0155842304 -0.00588850677 -0.110771 0.121813104 0.124577001 -0.0940077901 -0.124457143 0.00468619168 -0.041779235 0.204366133 0.00931699574 -0.204241484 -0.0228471905 0.116682306 0.158892319 -0.130202919 -0.0847957283 -0.0130662024 -0.0458494127 0.0882361084 -0.0148071051 0.11065118 0.116732791 0.130320057 -0.154246911 0.0121977627 -0.195920169 -0.0527544916 0.0105970949 0.0952418 0.216108158 0.0953765363 -0.0637498945 0.00656156242 0.178493544 -0.176476374 0.0183253139 -0.139325112 -0.00710760057 -0.0801171809 -0.0997937247 0.198230073 -0.015795514 -0.201220006 -0.00237180293 -0.186916858 0.178713873 -0.119182132 -0.0451352596 -0.182514578 -0.0178681761 -0.133398458 0.186711356 -0.16865097 0.0659743696 0.0840948969 -0.135799885 0.124175623 0.0444165617 0.113648608 -0.0654432029 -0.0286201239 -0.140393361 0.158045933 -0.138332054 -0.0114320964 0.120080397 0.104994819 0.0063432157 -0.189120635 -0.185894445 -0.120765962 0.169272408 0.0044067204 -0.0958712921 0.192828402 -0.0785516798 0.0481933206 0.0533886403 -0.138931155 -0.034797281 -0.126559123 0.162495956 0.171410933 0.147129461 0.132919416 0.126586601 0.170310929 -0.115445994 -0.190529332 -0.164774939 -0.0889557749 0.103479341 0.115051374 0.135788515 -0.190249711 -0.204633221 0.0397153944 -0.016548425 -0.0792319626 -0.127894521 0.00596448779 0.173240051 -0.188235432 -0.0386267006 -0.135767251 -0.0892127305 0.062357828 -0.0312252939 -0.149558395 -0.158692509 -0.203272849 0.0214458853 0.00549913943 0.0486514419 -0.128043652 -0.170180142 0.169511661 0.106520221 0.00105421245 -0.0348359495 0.176877812 -0.163117811 0.130606785 0.125363156 0.120320186 -0.136020392 0.0565872341 0.0583206564 -0.096826762 0.0078304708 0.115881547 0.034202382 -0.186532825 -0.0446834266 -0.171511963 -0.0799278468 0.123803958 0.173076108 -0.0334732533 -0.0786289573 -0.0713885874 0.0806080252 -0.103114903 -0.0540943295 -0.176245585 0.0184956491 -0.097174108 -0.132529348 0.047166571 -0.148682564 0.172185495 0.00182978809 -0.107077241 -0.0585014671 0.0946045667 -0.0334791392 0.10486953 -0.15413633 -0.106411353 -0.0329285115 -0.0233177543 0.00152637064 0.211635008 -0.0797623992 -0.0481692702 0.144845977 -0.127677456 -0.12354932 0.17870374 0.189246967 -0.0304448158 0.192246065 0.0706192702 -0.0329638273 0.163443282 0.0714011341 0.101470217 -0.00685305893 0.0267804265 -0.117052019 0.134573266 -0.0280826092 -0.123630926 0.0749774724 -0.0442686677 -0.145529836 -0.0552517325 -0.00182689726 -0.184602112 -0.053455025 0.0839937776 -0.0474415421 -0.0306393653 -0.205825418 -0.00444436073 -0.159658507 0.1159596 -0.00929041207 -0.20922026 -0.103325248 -0.171028957 -0.0705494285 -0.151429638 -0.0799973756 0.0554885715 0.0227866024 -0.142635182 0.139701709 -0.0302731842 0.0314382166 0.0327469707 0.0297541022 -0.204959616 -0.122173615 -0.0899580121 0.131155357 0.0460075289 -0.0134723336 -0.0115163773 -0.0299575329 0.0966607481 -0.0141979009 -0.213409558 -0.115587324 -0.164408863 0.0837808996 -0.0203301907 0.0323417634 0.152540639 -0.172152087 0.105256543 0.105928704 -0.171343535 0.156993523 0.0861956328 0.197089449 -0.0553040206 -0.0203001499 -0.160632551 0.157671943 -0.0641655773 0.0350541919 0.197677329 -0.0627279878 -0.125607729 -0.0373753011 0.146814272 -0.186460912 -0.0528395623 -0.117968723 0.131595865 -0.0131013989 0.0389936119 -0.100167915 -0.198829263 -0.00868977606 0.0828431994 0.070321098 0.202158973 -0.0402475446 0.174268946 -0.163933247 0.205253109 -0.0917198211 0.181840077 -0.00759069622 0.191454187 -0.15400207 -0.174060598 -0.156140402 0.106376722 -0.0635691732 0.0919625908 -0.111021765 -0.152584046 0.204639778 0.0231857151 -0.126816347 0.153339401 -0.191335261 -0.0910699368 -0.0204621851 0.0480604023 0.184537932 0.0313221812 -0.059037894 -0.0122708976 -0.0730216652 -0.0587513447 0.0556001514 0.0035392195 -0.0567349046 -0.0565156788 0.149616167 -0.0179460049 0.129232422 -0.13396275 0.0381018966 -0.157817811 -0.208604962 0.0522707254 -0.0755494535 0.163892463 0.0958438963 -0.212419659 0.066810742 -0.0242482424 -0.160733014 -0.21058315 0.110218212 0.00979973376 0.171105519 0.00410975516 0.0630853027 0.212045118 -0.0177023709 -0.0653731525 -0.187278926 0.113335684 0.175285742 -0.187599733 0.0585225672 -0.0709806979 -0.215227023 -0.0634926707 -0.0872309655 0.057609424 -0.187086955 0.125822112 -0.164084375 -0.134594157 -0.112606473 0.0734807104 -0.100102924 0.19106333 -0.012161836 0.160747394 0.0760826319 -0.171770722 0.0485027283 -0.213351846 0.0381886512 0.126869723 0.0400273949 -0.149780571 -0.0583855212 -0.103202343 -0.036418125 -0.184253156 0.136622682 0.187038943 0.058889851 -0.0393140167 -0.134414732 0.105187371 -0.21546948 0.00121088326 0.0692031533 0.182186082 0.154733822 -0.0522509068 -0.00682239234 -0.151455045 -0.0568751991 -0.0705878735 0.171102718 0.0419806987 0.216313437 -0.124022871 -0.0853095502 -0.147352293 -0.196065322 -0.0571627766 -0.105218999 0.180535659 -0.0927108601 -0.145060763 0.031310305 0.0529462546 -0.177584335 0.0956812948 -0.208875284 -0.0378819406 -0.206627265 0.0665290505 -0.193663895 0.0322135985 -0.0736983418 0.016801402 0.188540176 0.190042958 0.172346368 -0.192504331 -0.033242926 -0.0964164957 -0.0673986375 0.165504113 -0.0223236233 0.047304973 -0.0988564789 -0.110598899 -0.104616553 0.145558879 0.156849638 -0.140711755 -0.200392962 -0.195452869 -0.179697052 -0.172821388 0.163972512 -0.0199371725 0.145056382 0.0687942654 -0.100579008 0.0553201288 0.138140127 -0.11186868 -0.196104139 -0.109140143 0.0563749522 0.203614041 -0.0911546499 0.0115636736 0.120172694 -0.00249820948 0.0574527234 -0.089055866 -0.0770767629 0.171668425 0.184878692 0.143077299 0.164887413 0.00204758346 -0.0962116644 0.129886284 -0.169254914 -0.209745526 -0.0201158673 0.0074300617 -0.158251464 0.168304399 -0.0601809472 0.137984559 -0.0663322955 -0.0514439344 0.0158465654 0.0266192108 -0.131576762 0.195599094 0.200540915 -0.204045236 0.208049729 -0.118698664 -0.186795041 -0.186687008 -0.205458403 0.00974476337 0.198315814 -0.0569323897 0.143252745 0.14814274 -0.211932629 -0.16023086 0.048928991 -0.0793801099 -0.012891829 -0.0300751179 0.0721323341 0.146370903 0.0377487689 -0.0316951275 -0.0345511585 -0.154979691 -0.0855640918 0.168815002 0.0354034454 -0.188382953 0.00539238751 0.20382075 0.124941751 0.144826218 -0.178621411 -0.0519447476 0.126527175 -0.0368376374 0.0834899396 0.16410698 -0.114651568 0.0726418942 0.0867818743 -0.101901025 0.147437826 -0.00477363169 -0.0210992694 -0.0627692342 0.122195259 -0.0897850841 0.134500459 0.155474558 0.117299125 0.00993736088 0.107980624 -0.116257444 0.170012787 -0.203162596 -0.00916182995 0.164526388 0.189743176 -0.179932594 -0.13336283 -0.160641849 0.0724896938 -0.215459198 0.15053837 -0.20589985 0.0341999978 -0.0347144902 -0.1836503 -0.0720625371 -0.207689539 -0.0964950547 -0.147027716 -0.0305284858 -0.135501161 -0.141416669 0.145449832 0.0938523263 -0.110118382 0.127452716 -0.0360786766 -0.0860704631 -0.0354368985 -0.0109335035 0.0561653823 0.0688275248 0.107790783 0.112380907 0.00746670365 -0.145217329 0.137192056 0.0377491266 0.152028486 -0.0434089601 -0.0951931179 0.00500255823 0.0689155608 -0.0388880521 0.148893759 -0.0191176087 0.00665226579 -0.0950899348 -0.194127381 0.115938887 -0.0491235554 0.133721784 -0.180269197 -0.0532805473 0.213810787 -0.0612056851 -0.0351020396 -0.092381373 0.114500478 -0.101824731 0.0823301524 0.183692023 -0.0169766098 -0.141344965 0.125751749 0.186133131 0.0449364632 0.141381517 -0.100444183 0.0378632694 0.134127125 -0.136307597 -0.200091973 -0.00752487779 0.11779879 0.00970290601 -0.0936737582 -0.0049354583 0.202193812 0.00836524367 -0.0619883388 -0.0522346944 0.0959372073 -0.177338213 0.177276745 0.0130257756 -0.0423042029 -0.121907935 0.0323782563 -0.0490401387 0.131034598 0.0670118481 -0.00946199894 -0.0022482127 -0.0103600174 0.0355177969 0.13538529 0.208748206 0.10833402 0.129079416 -0.160734192 0.16470547 0.0524742454 0.191505745 -0.101960644 -0.208734676 0.066466704 -0.176380575 0.0303986073 0.163442954 -0.158907503 0.155903205 0.0365915745 -0.0434604287 -0.202177957 0.0487227291 -0.164538115 -0.213477075 0.0837342888 -0.0943289101 0.104887709 0.203119293 -0.165092498 0.118403807 0.166414872 -0.111916587 0.108422115 -0.0568086207 0.21051316 -0.112119086 0.0479275435 0.204472795 -0.13745442 0.156786039 -0.121667489 0.189461365 -0.006658867 0.0498111099 0.0967845768 -0.0193000883 -0.0451227576 0.205537334 0.127283707 -0.0225467682 -0.104442857 0.116480276 0.0437512547 -0.168737024 -0.0610642433 -0.132568836 -0.20076406 0.0198989213 -0.158786967 -0.0776100904 -0.152520865 -0.151913196 0.0937054008 0.155170277 -0.130604923 0.0302712619 -0.0717439353 -0.0709408522 -0.115176179 0.194742694 0.0401863605 0.210620478 -0.190825626 -0.174729228 -0.000261187553 0.141424879 0.127421007 -0.103703566 -0.170759767 0.144490108 0.0494291037 0.143680051 -0.117207184 0.0986642092 0.202879474 -0.00613848865 -0.163750619 0.163952276 -0.169305965 0.0938779265 0.118690625 -0.0314784795 -0.034880653 0.0267112553 -0.0653816164 0.214437827 -0.131105214 0.137544081 0.203057095 0.119116172 0.069421038 -0.0586719662 0.0592659563 -0.207209796 0.079782024 0.09094657 0.00661277771 -0.0572764874 0.180332229 0.0538476259 0.149865791 0.0536470562 0.153586969 -0.214938059 -0.0715590864 -0.0964897946 -0.00639003515 0.0526382476 0.00216577947 -0.165840462 -0.21619539 0.0326414108 0.197977826 -0.132460266 0.180480167 -0.172017783 -0.170403183 -0.175127476 0.0850990862 -0.178470686 -0.167116225 0.152202889 -0.1725301 -0.198807284 -0.09640266 0.0798646063 0.206464514 0.0445276052 -0.156091422 0.111639902 0.0489482731 0.158809021 -0.00188393891 0.00485038757 -0.184914976 -0.183372289 -0.112851404 -0.128746539 0.00142525136 0.0663246065 -0.164267927 -0.160112381 -0.131718725 -0.00466673076 -0.167625606 0.17636539 0.195481822 -0.0966163129 0.0845754892 0.164404824 -0.134278774 -0.131284803 0.123686984 0.0216592848 -0.209833026 0.16975449 -0.209732831 0.155424193 0.0619571954 0.10894461 0.194175795 0.17978631 0.0546952635 0.1010869 0.121099517 0.215041772 -0.143693537 0.00973340869 0.00966072083 0.0285273194 0.0306418389 -0.112845831 0.170028463 0.116588727 -0.0418852568 -0.0138856024 -0.186233431 -0.141427666 -0.0667628944 -0.024799481 -0.0702499747 -0.0816666335 0.205414638 -0.211273253 -0.20968689 0.143573627 -0.12959671 0.19114612 0.121287361 -0.100967593 0.179319397 -0.141043916 -0.0582669079 -0.211978778 -0.0722976029 -0.00679647923 -0.0610643029 -0.0367063135 -0.0849286616 0.209578797 0.0134505481 -0.0485929698 0.141146705 -0.0394689739 -0.163230658 0.0617766529 0.000183403492 0.0710112005 0.159510151 -0.143794179 -0.189211234 -0.0542119145 0.0199382454 0.0439905077 0.100338861 0.0702851862 0.12443696 -0.158234075 0.17282562 -0.131180689 0.205779627 0.131486937 -0.160514966 -0.076684922 0.092578873 0.187864587 -0.15429166 0.207556978 -0.103013471 0.0340901464 -0.133713901 0.0235123038 -0.192762211 0.019478485 -0.18171525 0.0651128441 0.0244152844 -0.213064849 0.163766727 -0.168179899 0.187306121 -0.212710738 0.117810413 0.12609227 0.0291325003 -0.163738012 0.102538154 -0.125805646 0.0121202767 -0.0591153204 -0.130135298 -0.0628290027 0.203098491 -0.166227087 -0.00478670001 0.184182391 -0.152454853 0.18188791 -0.0667103976 0.172819331 -0.0146156996 -0.0339982659 0.0279436111 0.105446443 -0.144770458 -0.109358028 0.0192471296 0.188200489 0.0858842283 -0.0983887017 0.108614817 -0.0438651145 0.0593486875 0.168110713 -0.047465235 0.0798175782 -0.128899843 -0.133854002 -0.20729816 -0.149906605 0.0791921765 -0.211254358 0.192543194 0.200629219 0.195284471 -0.0494748801 0.0647576004 0.181527659 -0.113706164 0.0218512118 -0.191162854 0.0291792601 0.0376158506 -0.123656482 0.0180022269 0.140894696 0.0714050978 -0.16159381 0.0926799327 0.0226034969 -0.189750969 -0.0350172371 0.0470418185 -0.186078057 -0.0891744792 0.0520108789 0.136516348 -0.0838424861 -0.101458289 0.0753782243 0.11013256 -0.192158535 0.142239049 -0.058479324 -0.0814494193 -0.215055183 0.139743432 0.197326317 -0.0754297972 0.00930336118 -0.14622131 -0.198514134 -0.188449234 0.155454114 -0.120711192 0.132300839 0.122579858 -0.0591584146 0.161035404 -0.0420289189 0.0696589798 -0.183014199 0.0484898239 -0.0606966764 -0.20079869 -0.108404107 0.121048316 0.151067361 0.0634221584 0.000631973147 -0.0294355601 0.152546301 -0.000625312328 0.0681157261 -0.0641188174 0.205827698 -0.139500052 -0.193568975 -0.13270995 0.156589553 0.112015113 0.204306379 0.00710573792 0.130257532 0.142985359 -0.124871641 -0.0290887207 0.100151554 0.119556591 0.133430555 -0.090041995 -0.176130578 0.00573287904 -0.124943189 0.146017358 0.214246407 0.061580345 -0.131479979 -0.107906707 0.18850778 -0.210034028 0.0637067407 0.062337473 -0.16453357 0.0634577721 -0.0472978354 -0.0491347015 0.181117192 0.00577504933 0.167075559 0.119914904 0.125953689 -0.0143460929 -0.122767031 -0.140735745 0.0363093764 0.117042318 -0.147343099 0.193982705 -0.00277556479 -0.136952788 -0.0274345875 0.104121432 -0.10692589 0.116242692 -0.0103998631 0.133164838 0.174949422 0.153558776 -0.0446540117 -0.00206001103 -0.00733713806 -0.157759428 -0.131357908 -0.160130411 0.0451857299 -0.0532456487 -0.077699393 -0.17657502 -0.153983802 -0.137828052 0.12825425 -0.202821746 -0.0214028358 0.0930215567 -0.181945577 -0.102719858 -0.0298596025 -0.21377477 0.14888756 0.157358035 0.0944925398 -0.158147559 -0.185959846 0.0830570012 0.178929731 0.0133032352 0.0811558515 -0.00690591335 0.186414286 -0.207062781 -0.0206979364 0.000348687172 0.114053622 -0.0856104344 -0.0982460827 -0.0557920337 -0.102903262 0.0301186889 0.105542287 0.178725168 0.0349886268 0.13524203 -0.0172635019 -0.134871304 0.0107415766 -0.140276551 -0.209127396 0.204387888 -0.00119709969 -0.00364404917 0.015991196 -0.210531488 -0.0824379772 0.0859971195 0.142288253 -0.0410691649 0.0393377692 0.153276011 0.0827521235 -0.158360019 0.151604429 -0.0371215343 0.120174661 -0.0771589428 0.189603224 0.147350892 -0.210938141 -0.172547907 -0.0967928469 0.0939237028 -0.20950684 0.0294431895 0.154890016 0.0831695646 -0.0429969877 -0.102179721 0.21393691 -0.199205115 0.20384784 0.197848752 -0.177656084 0.0318856537 -0.132745892 0.144612774 -0.197010934 -0.16365841 0.073093459 -0.0846370608 -0.0567930192 0.130864725 -0.0617748946 -0.130248189 -0.0277102888 0.192752704 0.0604940504 0.136617377 -0.0373437107 0.00826536119 0.066867277 0.132610843 0.175488815 0.113968149 0.00343307853 0.152458265 -0.0940444916 -0.169755563 0.0179836899 0.0329832882 0.111090973 -0.137726977 0.0457587689 -0.101469539 -0.121715032 -0.069271639 -0.0543672889 -0.0324008167 -0.0646848679 -0.0787515938 -0.0102762878 -0.203159034 -0.182295144 0.0607208163 0.186966315 0.165972099 -0.0986062288 -0.192079291 0.0221322179 -0.132797554 0.0276545435 -0.0201136023 0.0229292661 0.132657662 -0.0473732054 -0.207832217 -0.0634901375 -0.215239465 0.14629136 -0.0391601324 0.100600854 0.168093279 0.187480763 0.198257282 -0.166674063 0.0259045959 0.0119856596 0.150289878 0.148098871 0.0152017325 -0.0148386359 -0.129166722 0.0386703163 0.00742375851 0.0557450503 -0.0610544384 -0.0498782843 -0.0932719558 0.0723501593 -0.100213185 -0.171624959 -0.0359659493 -0.00608068705 -0.201601997 0.0190250576 0.10006611 0.197292313 -0.0166507363 0.0125418454 -0.136885852 -0.0716551542 -0.157116726 0.00433987379 -0.0519080013 -0.121814705 0.0247971565 -0.101331308 0.0797851831 0.0709032565 0.0855198354 0.147495702 0.0524958819 -0.053468138 -0.086473152 -0.201313809 -0.176063985 -0.0891312212 0.0350982696 -0.131586984 0.103059366 0.139210656 -0.038221851 -0.0120923966 -0.101579957 0.112884536 0.00304837525 -0.0873012245 0.198003009 0.0210807323 -0.145883262 0.0103247613 0.00769135356 -0.0374292433 0.0860755295 -0.0912689269 0.151887044 -0.0687329471 0.100748047 -0.113508001 0.113136038 0.166133091 -0.00585459173 -0.15740104 -0.0746929348 0.184666947 -0.190463364 -0.204706624 -0.138748944 0.0779010206 0.213252023 -0.116575569 -0.196102545 0.033288151 0.0150933266 0.14540495 -0.0979735851 0.132766381 -0.0549449027 0.215730771 -0.0390325785 -0.124070719 0.18753247 0.00514343381 0.111918196 -0.0570635647 0.0775887221 -0.173897684 -0.110214546 -0.170119271 -0.181897625 0.142741099 0.0290858895 0.144163564 -0.0421321541 -0.164305717 -0.140128344 -0.118603736 -0.158226743 -0.151215315 0.00832808018 0.176361844 0.0306121558 0.207522139 0.176042631 0.150562957 0.110025153 -0.134920537 0.198722467 0.197492436 -0.00805097818 -0.0140521675 -0.00727014244 -0.145875841 0.10902153 0.105046287 -0.173887521 -0.00629025698 0.13811855 -0.00610406697 0.0565547496 0.0576848537 -0.207679689 0.0305929631 -0.00389450788 0.107116356 -0.167382583 0.197635278 0.101369664 -0.176363125 0.183016106 0.100329474 -0.00642110407 0.132393733 -0.160638958 0.183521762 0.0181603283 0.144922957 0.0617187768 -0.0471049845 -0.215218857 -0.0910002589 0.0307758003 -0.175020978 -0.140542492 -0.0219117552 0.102336124 -0.03606309 0.0732916445 -0.0467089713 0.0603087395 0.0840418786 -0.149531037 0.0595794171 0.101656243 0.167331472 -0.060702458 -0.115472369 -0.183996871 -0.037938416 0.157396182 -0.0630700737 -0.0658022165 -0.141971409 -0.173844472 0.157066509 0.0709586591 -0.109359838 -0.0769151449 -0.0433738083 0.0928399712 0.173244968 0.124053881 +tensor_densekernel0 448 +0.0874720514 -0.00377988815 0.0168170929 0.257600576 0.253425747 -0.0959590077 0.285705894 0.182055712 -0.0606924146 0.220531434 0.208172053 -0.0916452557 -0.00613588095 0.0777521431 0.094016701 0.184219658 0.139054 -0.0502391011 0.000360608101 -0.0183832347 -0.123216793 -0.0689985603 0.0271157026 0.247312993 0.215137511 0.213970095 0.195198476 -0.0687768459 0.276125997 -0.187888086 0.248041123 0.118264288 -0.160492018 -0.23765187 -0.28596136 -0.0184209645 0.143229157 0.159540892 -0.21604979 -0.24891609 0.0128549337 -0.251000404 0.149966359 -0.101634547 0.154979914 -0.183319747 -0.205634803 -0.207281917 -0.0838090926 -0.154234782 0.191091508 0.197003663 0.156107694 -0.194775686 0.14292869 -0.0455465764 -0.0312855244 0.0131508112 -0.171050906 0.0262877345 -0.194255173 0.206619889 0.199224323 -0.183122292 -0.177126348 0.28368637 -0.1771034 0.0122741163 -0.0709242225 0.172996044 -0.108827248 -0.27864936 0.279211611 0.0103343129 -0.0962914824 -0.0316556096 0.249062389 -0.145783022 -0.134221748 0.0806793869 -0.107674167 -0.0542573333 0.269689709 -0.0702928305 -0.164135158 0.107835442 -0.038901329 0.286382526 0.161285609 0.180902272 -0.236288294 -0.272231549 -0.237152159 -0.118395776 -0.0999294817 0.0404779017 -0.258297771 0.0728503764 0.0833859742 -0.0367698967 0.0393050611 -0.272811443 -0.0907125026 0.0630856454 -0.226888046 0.170747042 -0.181122541 -0.256199598 0.00417050719 -0.0888147652 -0.0334946513 -0.0384739041 -0.00973859429 0.265262455 -0.199353307 0.0457420051 -0.0395675898 0.0658659637 -0.142639473 -0.0863568783 0.0747567117 -0.114838436 -0.20536685 -0.208240598 0.0758621693 0.25118354 0.256882697 -0.141363576 0.236388713 -0.215308741 0.264807433 -0.0879521519 0.159738004 -0.270678282 0.0644026995 0.281252176 -0.112565264 -0.00349870324 -0.229609102 0.0965996981 -0.126161933 -0.0798197687 -0.245382816 0.272380084 -0.25988096 0.0292170048 -0.0180721879 0.205881268 -0.245454192 -0.109949768 0.286659688 0.237496465 -0.0601914525 0.126728952 -0.113599822 0.000470399857 -0.0837507397 0.0938257575 -0.0520189404 0.267017573 0.00973162055 -0.194592714 -0.280335158 0.149860591 0.179414839 -0.0292953849 0.111655295 0.113612503 -0.280272722 -0.169758707 0.262436241 0.017737776 -0.0358220935 0.0802962482 0.0899099112 0.00828582048 0.171009451 0.223639101 -0.070141241 0.0995429456 0.0586625934 0.210584551 0.0528482199 0.0796290934 0.240173668 -0.157846928 -0.149453402 0.206690937 0.166183561 0.235323697 0.166746825 -0.0151439011 -0.0615599602 0.143206894 -0.148319095 -0.154691458 -0.0570063144 -0.237417817 -0.171191514 -0.168208346 0.0199306309 0.104301602 0.231171161 -0.168991119 0.131233633 0.027466476 -0.284903437 -0.120982647 0.1341708 -0.247675121 -0.0769275129 0.164358467 -0.247161403 0.0188933611 0.114704132 -0.142321348 -0.0343742371 0.049872458 0.102173358 0.247223049 -0.110339209 -0.0889665484 -0.168113813 -0.215237081 0.1723288 -0.260313451 -0.170820028 0.203725696 0.0055089891 0.0255071819 -0.108599976 -0.221046105 0.154385597 0.21465835 0.193859637 -0.105026439 0.0410459638 0.196333587 -0.216898546 0.197410017 -0.0732497275 -0.105873942 0.20709756 0.252494544 0.0839326084 -0.21933654 0.191783488 -0.00989454985 -0.168362617 -0.128148034 0.100178927 0.146856695 0.159169257 0.278522342 0.103488475 -0.0506009609 -0.0769300163 0.213107973 -0.13263084 0.154754728 0.00203573704 0.223703712 -0.0798344612 0.193072915 0.288555831 0.287791997 0.0699839294 -0.238947168 0.0456590652 0.0518397689 -0.0917513669 -0.115689278 0.13739863 0.281425744 -0.224785432 -0.21092242 -0.0666812956 -0.28913033 -0.206089884 -0.0305227637 -0.242355898 0.0242836177 -0.000655174255 0.0433119833 -0.223685786 -0.212385595 -0.0460462868 0.182570815 -0.278938383 0.164017618 0.100606769 -0.276534826 0.0751288831 -0.0173214376 0.0333667696 -0.0019030869 -0.0199476182 0.258787364 -0.125873253 0.209463865 -0.196310788 0.232970506 0.224995703 0.0725018382 0.141419917 -0.0733582675 -0.202004015 -0.097471118 -0.00547552109 -0.0276772976 -0.114396259 -0.270322442 -0.128212839 0.0278715193 0.225051314 0.0891493261 0.0930118859 -0.151206478 0.079180032 0.0343460441 -0.0660957098 -0.241741687 -0.0166206062 -0.227473632 -0.196556211 0.208908528 -0.0758941323 -0.134847254 -0.155157343 -0.242590368 -0.0161181092 0.272646695 -0.228122145 -0.0370092094 -0.0174639523 0.202582389 0.16068089 0.0983715057 -0.184449404 -0.0251510143 -0.155816674 -0.232594565 0.27182129 0.202554882 -0.106493071 0.0277726948 -0.0840144604 -0.1357335 0.237240404 0.0846209824 -0.121029079 -0.00919911265 0.229925543 0.211392969 -0.0886114091 0.284160644 -0.196552128 -0.0856093764 -0.101809412 -0.134563297 0.122567177 0.215066463 0.0989311039 0.257133812 -0.119583234 0.109826267 0.261059791 -0.210815609 0.111921191 0.171606123 -0.0944337398 0.00710004568 0.152125239 -0.15542841 0.0132748783 -0.256189048 0.0519060493 0.0659337938 0.157751501 -0.064666152 0.0856899321 0.120876461 -0.0675664991 0.241741925 -0.0867508948 -0.183510005 -0.191558316 -0.184871912 -0.0896052867 -0.169102013 -0.100743026 0.264313489 -0.177678794 -0.267040193 0.0916837156 0.12209636 0.0690266192 0.0930233896 0.0285815001 -0.210697785 0.127231568 0.282865494 0.14501822 0.228754789 -0.00816121697 0.276574045 -0.0507636219 0.216670722 -0.0475428551 -0.0163431466 -0.0241680145 0.255153209 0.13787964 0.124895096 0.0774794221 0.00100636482 -0.288600892 0.121159166 0.0165127516 0.241267949 0.0584823191 -0.138285711 0.0472910702 0.125427812 -0.202609897 0.24497363 0.196361125 0.264235169 -0.0141975582 -0.117901742 0.24826929 -0.219102412 -0.00545069575 -0.0957443565 0.0762873292 -0.0936635882 0.18360877 0.0588223934 0.135743409 0.15366286 0.282723576 0.0682917535 -0.0133496523 0.166835427 0.240943879 0.204290092 0.0351489186 -0.0398246646 diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.h5 b/tmva/sofie/test/KerasParserTest/MLPtest.h5 new file mode 100644 index 0000000000000..6d55a9746cdca Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/MLPtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/MLPtest.hxx b/tmva/sofie/test/KerasParserTest/MLPtest.hxx new file mode 100644 index 0000000000000..70e5b9b8178cf --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MLPtest.hxx @@ -0,0 +1,311 @@ +//Code generated automatically by TMVA for Inference of Model file [MLPtest.h5] at [Thu Aug 24 08:55:44 202] + +#ifndef ROOT_TMVA_SOFIE_MLPTEST +#define ROOT_TMVA_SOFIE_MLPTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_MLPtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense4bias0 = std::vector(2); +float * tensor_dense4bias0 = fTensor_dense4bias0.data(); +std::vector fTensor_dense3bias0 = std::vector(64); +float * tensor_dense3bias0 = fTensor_dense3bias0.data(); +std::vector fTensor_dense4kernel0 = std::vector(128); +float * tensor_dense4kernel0 = fTensor_dense4kernel0.data(); +std::vector fTensor_dense2bias0 = std::vector(64); +float * tensor_dense2bias0 = fTensor_dense2bias0.data(); +std::vector fTensor_dense1bias0 = std::vector(64); +float * tensor_dense1bias0 = fTensor_dense1bias0.data(); +std::vector fTensor_dense1kernel0 = std::vector(4096); +float * tensor_dense1kernel0 = fTensor_dense1kernel0.data(); +std::vector fTensor_densebias0 = std::vector(64); +float * tensor_densebias0 = fTensor_densebias0.data(); +std::vector fTensor_dense3kernel0 = std::vector(4096); +float * tensor_dense3kernel0 = fTensor_dense3kernel0.data(); +std::vector fTensor_dense2kernel0 = std::vector(4096); +float * tensor_dense2kernel0 = fTensor_dense2kernel0.data(); +std::vector fTensor_densekernel0 = std::vector(448); +float * tensor_densekernel0 = fTensor_densekernel0.data(); +std::vector fTensor_dense4Sigmoid0 = std::vector(2); +float * tensor_dense4Sigmoid0 = fTensor_dense4Sigmoid0.data(); +std::vector fTensor_dense4bias0bcast = std::vector(2); +float * tensor_dense4bias0bcast = fTensor_dense4bias0bcast.data(); +std::vector fTensor_dense3Relu0 = std::vector(64); +float * tensor_dense3Relu0 = fTensor_dense3Relu0.data(); +std::vector fTensor_dense2Dense = std::vector(64); +float * tensor_dense2Dense = fTensor_dense2Dense.data(); +std::vector fTensor_dense4Dense = std::vector(2); +float * tensor_dense4Dense = fTensor_dense4Dense.data(); +std::vector fTensor_denseSelu0 = std::vector(64); +float * tensor_denseSelu0 = fTensor_denseSelu0.data(); +std::vector fTensor_dense1Dense = std::vector(64); +float * tensor_dense1Dense = fTensor_dense1Dense.data(); +std::vector fTensor_dense3Dense = std::vector(64); +float * tensor_dense3Dense = fTensor_dense3Dense.data(); +std::vector fTensor_denseDense = std::vector(64); +float * tensor_denseDense = fTensor_denseDense.data(); +std::vector fTensor_dense3bias0bcast = std::vector(64); +float * tensor_dense3bias0bcast = fTensor_dense3bias0bcast.data(); +std::vector fTensor_dense2Sigmoid0 = std::vector(64); +float * tensor_dense2Sigmoid0 = fTensor_dense2Sigmoid0.data(); +std::vector fTensor_dense1bias0bcast = std::vector(64); +float * tensor_dense1bias0bcast = fTensor_dense1bias0bcast.data(); +std::vector fTensor_densebias0bcast = std::vector(64); +float * tensor_densebias0bcast = fTensor_densebias0bcast.data(); +std::vector fTensor_dense2bias0bcast = std::vector(64); +float * tensor_dense2bias0bcast = fTensor_dense2bias0bcast.data(); +std::vector fTensor_dense1Tanh0 = std::vector(64); +float * tensor_dense1Tanh0 = fTensor_dense1Tanh0.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "MLPtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense4bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense4bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 2) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 2 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense4bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense3bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense3bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense3bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense4kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense4kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 128) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 128 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense4kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense1kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense1kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense1kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densebias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densebias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densebias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense3kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense3kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense3kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4096) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4096 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_densekernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_densekernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_densekernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_densebias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_densebias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense1bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense1bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense2bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense2bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense3bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense3bias0bcast); + delete [] data; + } + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense4bias0,{ 2 }, { 1 , 2 }); + std::copy(data, data + 2, tensor_dense4bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_denseinput){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_densebias0bcast, tensor_densebias0bcast + 64, tensor_denseDense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_densekernel0, &op_0_ldb, tensor_denseinput, &op_0_lda, &op_0_beta, tensor_denseDense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_denseSelu0[id] = 1.0507009873554804934193349852946 * (std::max(float(0.0), tensor_denseDense[id]) + std::min(0.0, 1.6732632423543772848170429916717 * (std::exp(tensor_denseDense[id])-1))); + } + +//--------- Gemm + char op_2_transA = 'n'; + char op_2_transB = 'n'; + int op_2_m = 1; + int op_2_n = 64; + int op_2_k = 64; + float op_2_alpha = 1; + float op_2_beta = 1; + int op_2_lda = 64; + int op_2_ldb = 64; + std::copy(tensor_dense1bias0bcast, tensor_dense1bias0bcast + 64, tensor_dense1Dense); + BLAS::sgemm_(&op_2_transB, &op_2_transA, &op_2_n, &op_2_m, &op_2_k, &op_2_alpha, tensor_dense1kernel0, &op_2_ldb, tensor_denseSelu0, &op_2_lda, &op_2_beta, tensor_dense1Dense, &op_2_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense1Tanh0[id] = std::tanh(tensor_dense1Dense[id]); + } + +//--------- Gemm + char op_4_transA = 'n'; + char op_4_transB = 'n'; + int op_4_m = 1; + int op_4_n = 64; + int op_4_k = 64; + float op_4_alpha = 1; + float op_4_beta = 1; + int op_4_lda = 64; + int op_4_ldb = 64; + std::copy(tensor_dense2bias0bcast, tensor_dense2bias0bcast + 64, tensor_dense2Dense); + BLAS::sgemm_(&op_4_transB, &op_4_transA, &op_4_n, &op_4_m, &op_4_k, &op_4_alpha, tensor_dense2kernel0, &op_4_ldb, tensor_dense1Tanh0, &op_4_lda, &op_4_beta, tensor_dense2Dense, &op_4_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense2Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense2Dense[id])); + } + +//--------- Gemm + char op_6_transA = 'n'; + char op_6_transB = 'n'; + int op_6_m = 1; + int op_6_n = 64; + int op_6_k = 64; + float op_6_alpha = 1; + float op_6_beta = 1; + int op_6_lda = 64; + int op_6_ldb = 64; + std::copy(tensor_dense3bias0bcast, tensor_dense3bias0bcast + 64, tensor_dense3Dense); + BLAS::sgemm_(&op_6_transB, &op_6_transA, &op_6_n, &op_6_m, &op_6_k, &op_6_alpha, tensor_dense3kernel0, &op_6_ldb, tensor_dense2Sigmoid0, &op_6_lda, &op_6_beta, tensor_dense3Dense, &op_6_n); + +//------ RELU + for (int id = 0; id < 64 ; id++){ + tensor_dense3Relu0[id] = ((tensor_dense3Dense[id] > 0 )? tensor_dense3Dense[id] : 0); + } + +//--------- Gemm + char op_8_transA = 'n'; + char op_8_transB = 'n'; + int op_8_m = 1; + int op_8_n = 2; + int op_8_k = 64; + float op_8_alpha = 1; + float op_8_beta = 1; + int op_8_lda = 64; + int op_8_ldb = 2; + std::copy(tensor_dense4bias0bcast, tensor_dense4bias0bcast + 2, tensor_dense4Dense); + BLAS::sgemm_(&op_8_transB, &op_8_transA, &op_8_n, &op_8_m, &op_8_k, &op_8_alpha, tensor_dense4kernel0, &op_8_ldb, tensor_dense3Relu0, &op_8_lda, &op_8_beta, tensor_dense4Dense, &op_8_n); + for (int id = 0; id < 2 ; id++){ + tensor_dense4Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense4Dense[id])); + } + std::vector ret (tensor_dense4Sigmoid0, tensor_dense4Sigmoid0 + 2); + return ret; +} +}; +} //TMVA_SOFIE_MLPtest + +#endif // ROOT_TMVA_SOFIE_MLPTEST diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.dat b/tmva/sofie/test/KerasParserTest/MaxPooltest.dat new file mode 100644 index 0000000000000..22ad234529658 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MaxPooltest.dat @@ -0,0 +1,4 @@ +tensor_dense2bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense2kernel0 64 +0.243668139 0.241856575 0.303170681 -0.0320544839 0.0420162976 -0.138369426 -0.0425698459 -0.216986358 0.087762773 -0.0896665007 -0.192684025 0.291695535 0.249347031 -0.000859677792 0.0745927691 0.217640698 -0.097207889 -0.243863359 -0.021827817 -0.270806581 0.251050651 0.244868994 -0.226396829 -0.251941651 0.126850814 0.302963853 -0.144368574 -0.0218638778 -0.283244699 0.0819474161 0.144138515 -0.217054516 0.0564838648 -0.270984709 0.0964825749 -0.185705185 0.117584646 -0.0539790094 -0.166489735 0.0124458075 0.118276417 0.057897687 -0.130802035 0.180548042 -0.26641959 0.218894958 -0.274052769 -0.0743645281 -0.0443408489 -0.261945814 -0.131241798 -0.0844110698 -0.0490570068 0.0749932826 -0.0803186744 0.0643828809 0.0759205222 0.300491333 -0.212539822 -0.0080113709 -0.0548423827 0.100449502 0.139791429 -0.0365694165 diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.h5 b/tmva/sofie/test/KerasParserTest/MaxPooltest.h5 new file mode 100644 index 0000000000000..914d3ac7b3dae Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/MaxPooltest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx b/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx new file mode 100644 index 0000000000000..77ec9e53a91f9 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/MaxPooltest.hxx @@ -0,0 +1,155 @@ +//Code generated automatically by TMVA for Inference of Model file [MaxPooltest.h5] at [Thu Aug 24 08:55:47 202] + +#ifndef ROOT_TMVA_SOFIE_MAXPOOLTEST +#define ROOT_TMVA_SOFIE_MAXPOOLTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_MaxPooltest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense2bias0 = std::vector(64); +float * tensor_dense2bias0 = fTensor_dense2bias0.data(); +std::vector fTensor_dense2kernel0 = std::vector(64); +float * tensor_dense2kernel0 = fTensor_dense2kernel0.data(); +std::vector fTensor_dense2Tanh0 = std::vector(64); +float * tensor_dense2Tanh0 = fTensor_dense2Tanh0.data(); +std::vector fTensor_dense2bias0bcast = std::vector(64); +float * tensor_dense2bias0bcast = fTensor_dense2bias0bcast.data(); +std::vector fTensor_flatten2Reshape0 = std::vector(1); +float * tensor_flatten2Reshape0 = fTensor_flatten2Reshape0.data(); +std::vector fTensor_reshape5Reshape0 = std::vector(4); +float * tensor_reshape5Reshape0 = fTensor_reshape5Reshape0.data(); +std::vector fTensor_maxpooling2d2PostTrans = std::vector(1); +float * tensor_maxpooling2d2PostTrans = fTensor_maxpooling2d2PostTrans.data(); +std::vector fTensor_dense2Dense = std::vector(64); +float * tensor_dense2Dense = fTensor_dense2Dense.data(); +std::vector fTensor_maxpooling2d2MaxPooling2D = std::vector(1); +float * tensor_maxpooling2d2MaxPooling2D = fTensor_maxpooling2d2MaxPooling2D.data(); +std::vector fTensor_maxpooling2d2PreTrans = std::vector(4); +float * tensor_maxpooling2d2PreTrans = fTensor_maxpooling2d2PreTrans.data(); + +std::vector fVec_op_2_xpad = std::vector(4); + +Session(std::string filename ="") { + if (filename.empty()) filename = "MaxPooltest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense2kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense2bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense2bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_reshape5input){ + ///--------Reshape operator + + std::copy( tensor_reshape5input, tensor_reshape5input + 4, tensor_reshape5Reshape0); + ///------- Transpose operator + + for (size_t id = 0; id < 4 ; id++){ + tensor_maxpooling2d2PreTrans[id] = tensor_reshape5Reshape0[ ( id / 4 ) * 4 + ( (id % 4) / 2 ) * 2 + ( (id % 2) ) * 1 + ( (id % 4) / 4 )]; + } + +//---- operator MaxPool op_2 +{ + constexpr int hsize = 2; + constexpr int hmin = 0; + constexpr int hmax = 1; + constexpr int kh = 2; + constexpr int wsize = 2; + constexpr int wmin = 0; + constexpr int wmax = 1; + constexpr int kw = 2; + size_t outIndex = 0; + for (size_t n = 0; n < 1; n++) { + size_t inputOffset = n*4; + for (int i = hmin; i < hmax; i+=2) { + for (int j = wmin; j < wmax; j+=2) { + float value = -INFINITY; + for (int l = i; l < i + kh; l++) { + if (l < 0 || l >= hsize) continue; + for (int m = j; m < j + kw; m++) { + if (m < 0 || m >= wsize) continue; + int index = inputOffset + l*wsize + m; + auto xval = tensor_maxpooling2d2PreTrans[index]; + if (xval > value) value = xval; + } + } + tensor_maxpooling2d2MaxPooling2D[outIndex++] = value; + } + } + } + } + ///------- Transpose operator + + for (size_t id = 0; id < 1 ; id++){ + tensor_maxpooling2d2PostTrans[id] = tensor_maxpooling2d2MaxPooling2D[ ( id / 1 ) * 1 + ( (id % 1) ) * 1 + ( (id % 1) / 1 ) * 1 + ( (id % 1) / 1 )]; + } + ///--------Flatten operator + + std::copy( tensor_maxpooling2d2PostTrans, tensor_maxpooling2d2PostTrans + 1, tensor_flatten2Reshape0); + +//--------- Gemm + char op_5_transA = 'n'; + char op_5_transB = 'n'; + int op_5_m = 1; + int op_5_n = 64; + int op_5_k = 1; + float op_5_alpha = 1; + float op_5_beta = 1; + int op_5_lda = 1; + int op_5_ldb = 64; + std::copy(tensor_dense2bias0bcast, tensor_dense2bias0bcast + 64, tensor_dense2Dense); + BLAS::sgemm_(&op_5_transB, &op_5_transA, &op_5_n, &op_5_m, &op_5_k, &op_5_alpha, tensor_dense2kernel0, &op_5_ldb, tensor_flatten2Reshape0, &op_5_lda, &op_5_beta, tensor_dense2Dense, &op_5_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense2Tanh0[id] = std::tanh(tensor_dense2Dense[id]); + } + std::vector ret (tensor_dense2Tanh0, tensor_dense2Tanh0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_MaxPooltest + +#endif // ROOT_TMVA_SOFIE_MAXPOOLTEST diff --git a/tmva/sofie/test/KerasParserTest/Readme.txt b/tmva/sofie/test/KerasParserTest/Readme.txt new file mode 100644 index 0000000000000..f623bf7c8a2ad --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Readme.txt @@ -0,0 +1,6 @@ +This folder is used to test the python parser from keras neural networks to RModel class. +This is done by comparing the results of the inference using keras and the generated c++ code. +For each model in the folder, the Tester file will create a c++ inference code and compare the results. + +This was part of summer student internship done by Uri Stern, under the supervision of Lorenzo Moneta. +For questions/more information, please contact ustern@gmail.com. diff --git a/tmva/sofie/test/KerasParserTest/Relutest.dat b/tmva/sofie/test/KerasParserTest/Relutest.dat new file mode 100644 index 0000000000000..5c8d48a48b70b --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Relutest.dat @@ -0,0 +1,4 @@ +tensor_dense10bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense10kernel0 448 +0.237393409 -0.0647626966 0.271441191 -0.0937001854 -0.112237781 -0.265143216 0.205460489 0.192891806 0.23001042 0.116417915 0.267815918 0.015876025 -0.0449945331 -0.0166074932 0.277857035 0.00765070319 0.271724671 0.0241829157 -0.0484651476 0.0492525101 -0.173202932 0.0853805244 -0.142929181 0.0428443551 0.225915343 -0.162101299 -0.145829469 -0.121007591 -0.215149611 0.228848428 0.17650798 0.277458519 0.18166855 0.180399776 0.052485317 -0.0876067877 0.200450867 0.224210948 0.201512545 -0.209828243 0.0845780671 0.204240739 0.251272112 0.248779386 0.0199754834 -0.218695581 -0.0162134171 -0.221451834 -0.00933772326 0.156769872 -0.000999510288 0.063374579 -0.0180398822 -0.0934264064 0.152844578 -0.188588306 -0.213420153 -0.276937187 -0.0592215508 -0.202682614 0.0592517853 -0.0434415936 -0.0501333326 0.110965192 -0.0546363145 0.231656581 0.0318681896 0.0123163164 -0.129552782 -0.147550464 0.235798091 -0.148085311 0.169349104 0.0990814865 -0.0519351512 -0.189533398 -0.0846618712 0.0376005471 0.224984556 0.220283896 0.14757055 0.0836896598 0.150909364 0.177220732 -0.0774537176 0.0422783196 0.106586367 -0.19887507 -0.214842021 -0.0571182519 0.287666529 0.240021735 -0.183803946 -0.0994790494 -0.103651419 -0.282814324 -0.0934265554 -0.219798476 -0.0263000131 0.182274312 0.13524884 -0.187834159 -0.072417751 0.163693309 0.0307226479 -0.0412802845 0.126887232 0.0996990502 0.267423123 0.102643043 0.0650408268 -0.158836171 0.204574049 0.188311845 -0.109868124 -0.156069383 -0.279201955 0.0264449418 0.279288143 -0.271325409 0.193085194 -0.065572843 0.286848098 -0.05957295 0.273144037 -0.196830407 -0.0968636274 -0.25060603 0.202939451 0.135272801 -0.215760425 0.233355373 -0.135440111 -0.249528855 -0.0400876105 -0.244359061 -0.163741618 0.140366554 -0.113333538 0.172179043 0.249310344 0.0344364047 0.0638255179 0.123699248 0.00147107244 -0.164121017 -0.0933240354 0.19419542 0.0329129398 0.287363797 -0.107226565 -0.0741198361 0.00369665027 0.0870399177 0.0987626016 -0.0796457976 0.0233461559 0.288736612 -0.253729999 -0.047387749 0.0510712266 -0.219079673 -0.235536158 -0.0581094921 0.192746133 -0.113942981 -0.136113659 -0.0773848146 0.12972495 -0.255994767 0.234438747 0.276949555 -0.0146305263 -0.241370961 -0.161705822 0.107518286 -0.0672745854 -0.00505799055 -0.265455604 -0.267205983 -0.190801397 -0.202149898 0.216595322 0.0868183374 -0.128296286 -0.192743629 -0.150270268 0.206145406 0.207070887 -0.121102408 -0.182304025 0.0459283292 0.0398180187 0.233907074 0.258960098 0.175261945 0.0187922418 -0.190099165 0.272329062 0.151785642 0.0827640593 -0.179157764 0.0574276447 0.1285128 0.0924257934 0.170262665 -0.00205346942 -0.228783429 0.00127035379 0.0634126961 0.178361207 0.140317649 0.0147353411 -0.117153481 0.283246368 0.0753291845 0.229364365 -0.277297795 0.0760970712 -0.212861955 -0.172337815 0.094838351 -0.0519530326 0.0302608013 -0.0423400849 0.20663172 -0.162452698 -0.215181559 -0.284236401 -0.11395891 0.239011556 -0.0551680475 -0.290301651 -0.157853454 -0.0960080177 0.266317517 -0.113118336 -0.0892907679 0.241701096 -0.270921737 -0.0185405016 0.025324285 0.150679737 0.117975831 0.257220715 0.144747406 -0.110124767 0.14098534 -0.261329859 -0.0319860876 0.198600054 0.13257283 -0.0905003399 -0.0939038694 -0.10607487 0.0708037019 -0.0323005319 0.18863979 -0.277040362 -0.221515253 0.0887020528 0.231132835 -0.176952586 -0.10917753 0.213664323 -0.257152796 0.283401936 0.25279364 0.0335897505 0.015758127 -0.15855749 -0.0882607102 -0.253009021 -0.231529921 -0.0446867943 0.223928779 -0.192600012 -0.0409547389 -0.251848668 -0.0617222786 0.0702289343 -0.15491955 0.183695257 -0.0308220387 0.032023102 -0.168017894 -0.220164016 0.0711688101 -0.151527867 0.0986126959 0.130655944 -0.132567421 0.231681913 -0.142623529 0.245862633 0.281353146 0.189216942 -0.0172332823 -0.18382293 0.256990045 0.147381425 0.0545753241 0.0794323981 -0.161557704 -0.125647381 0.281586617 0.2561315 -0.192397431 -0.0435175002 0.0468738973 -0.0396630466 -0.25416711 0.222091347 -0.200178146 -0.107674927 -0.0534857213 0.113787711 -0.103555217 -0.0070412457 -0.245870054 0.154819757 0.192461461 -0.198640108 -0.0508741736 -0.0381958485 -0.0485332757 0.250256926 -0.134697407 -0.217661619 0.155225694 -0.0443110764 0.0694325566 -0.0458793193 -0.0296549499 -0.282182306 0.285459965 -0.190097079 0.182501018 -0.0717624426 -0.115076095 -0.20533219 -0.0544163287 -0.131467015 0.275928229 0.217577368 0.0366865993 -0.0461847633 0.0806441903 0.117128938 0.18796432 -0.110545889 0.286998183 0.276044041 0.0214735866 0.0587515831 0.117109895 0.203548133 0.268725723 -0.0613385886 0.258070499 0.240115494 -0.0400156081 -0.0572873652 0.0409386754 -0.0944131613 0.0114132464 0.146308452 -0.189643383 0.163372487 0.0406469405 -0.234260887 0.243647009 -0.0490855277 0.0338222682 0.120992899 -0.258368373 -0.00453221798 -0.274130523 -0.224385247 0.0563141406 0.247972876 0.0743063986 -0.28269276 -0.00493726134 0.0181300044 -0.264525056 -0.121417969 0.0695436597 0.0704825819 0.179636151 -0.140486673 0.259376496 0.263336271 -0.00651147962 0.260890335 0.109876007 -0.0545007437 -0.259124696 -0.242180824 -0.111243203 0.242735773 -0.224849343 -0.0490051955 0.133250445 -0.0433962047 -0.217596203 0.219841927 0.0953520834 0.158119649 0.277985007 0.147566408 0.136612058 0.131977737 0.16973266 -0.0388646722 0.0524792969 0.155778408 0.0725181103 -0.28807193 0.0970387757 -0.208695531 -0.193177357 -0.126096502 0.0540907085 0.188005209 -0.213386536 0.0912091732 -0.192691982 0.117264658 -0.0900088698 0.248692065 0.213521391 -0.110927224 -0.00564786792 0.259641498 -0.0984085798 0.154065609 0.129265428 -0.209450781 -0.150306582 -0.178209841 -0.0135895312 0.186741292 -0.232229307 -0.0228957832 -0.201381266 -0.0687607676 0.148538798 diff --git a/tmva/sofie/test/KerasParserTest/Relutest.h5 b/tmva/sofie/test/KerasParserTest/Relutest.h5 new file mode 100644 index 0000000000000..9f157542d361b Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Relutest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Relutest.hxx b/tmva/sofie/test/KerasParserTest/Relutest.hxx new file mode 100644 index 0000000000000..99bdbb9b3430c --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Relutest.hxx @@ -0,0 +1,96 @@ +//Code generated automatically by TMVA for Inference of Model file [Relutest.h5] at [Thu Aug 24 08:55:39 202] + +#ifndef ROOT_TMVA_SOFIE_RELUTEST +#define ROOT_TMVA_SOFIE_RELUTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Relutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense10bias0 = std::vector(64); +float * tensor_dense10bias0 = fTensor_dense10bias0.data(); +std::vector fTensor_dense10kernel0 = std::vector(448); +float * tensor_dense10kernel0 = fTensor_dense10kernel0.data(); +std::vector fTensor_dense10Relu0 = std::vector(64); +float * tensor_dense10Relu0 = fTensor_dense10Relu0.data(); +std::vector fTensor_dense10Dense = std::vector(64); +float * tensor_dense10Dense = fTensor_dense10Dense.data(); +std::vector fTensor_dense10bias0bcast = std::vector(64); +float * tensor_dense10bias0bcast = fTensor_dense10bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Relutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense10bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense10bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense10bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense10kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense10kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense10kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense10bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense10bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense10input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense10bias0bcast, tensor_dense10bias0bcast + 64, tensor_dense10Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense10kernel0, &op_0_ldb, tensor_dense10input, &op_0_lda, &op_0_beta, tensor_dense10Dense, &op_0_n); + +//------ RELU + for (int id = 0; id < 64 ; id++){ + tensor_dense10Relu0[id] = ((tensor_dense10Dense[id] > 0 )? tensor_dense10Dense[id] : 0); + } + std::vector ret (tensor_dense10Relu0, tensor_dense10Relu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Relutest + +#endif // ROOT_TMVA_SOFIE_RELUTEST diff --git a/tmva/sofie/test/KerasParserTest/Selutest.dat b/tmva/sofie/test/KerasParserTest/Selutest.dat new file mode 100644 index 0000000000000..a94cffd73508e --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Selutest.dat @@ -0,0 +1,4 @@ +tensor_dense6bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense6kernel0 448 +0.285544068 0.0723131597 -0.1294294 -0.0487477183 -0.0815237164 0.0970505476 0.222475618 0.0189746618 -0.0774707645 0.145775318 -0.204697683 0.0877042413 -0.0776000172 0.193704933 -0.0614743531 0.202005535 0.22259292 -0.253780246 0.0979713202 -0.260381371 -0.0128702521 -0.281518608 0.109675109 -0.134336799 -0.165460199 0.0390514731 -0.169847071 0.251948625 0.253857642 0.147632182 0.170042396 0.218630284 0.26998201 0.243666321 0.0899743736 0.147080004 -0.0657072365 -0.0899807364 0.220891625 -0.0138806999 0.0249953568 -0.0768929422 0.241523951 -0.277824402 0.235483855 0.276376396 -0.259014755 0.263456672 0.136511356 -0.0610771477 -0.0844812393 -0.120030552 0.0200564265 -0.233758181 0.143097043 0.240424544 -0.0771654546 0.246132582 -0.130265474 0.224576265 -0.204466745 -0.141058475 0.208025396 -0.159582421 0.254769415 0.0708152056 0.127100915 0.0122355819 -0.137932792 -0.0817839652 0.132472813 -0.0565686971 0.268211216 0.190662771 -0.164868787 0.115273148 -0.245407 -0.10785991 0.280710608 0.113616884 -0.189989507 -0.0455882996 -0.275345296 -0.23380205 0.114339411 0.128143668 0.000450998545 0.0986157358 -0.136624113 0.0637359023 -0.0295992494 0.115120798 -0.0271372497 0.039072603 0.0656044483 -0.117784545 0.109950721 0.219205052 0.124114543 0.0932358801 -0.264802098 0.175907403 -0.0495613962 -0.179610148 0.269282669 0.253623277 -0.0114362538 0.212941915 0.246996194 0.262133032 -0.239025146 0.153374583 0.0717946589 0.0865459442 0.274896711 0.266347319 0.013697654 0.113921076 -0.0500849634 0.0896768272 -0.251671582 0.139614284 0.108446121 -0.142131016 0.280924767 -0.142967373 -0.241475895 0.255485624 0.140370935 0.260198683 -0.0989881456 -0.0130339563 0.125093043 0.00530299544 -0.169614971 -0.0736542195 0.185727179 -0.0199252367 -0.12539731 0.138336182 0.00242510438 0.000744789839 0.0645159483 0.0952633023 -0.107213184 0.040304631 0.164179802 0.243978113 0.206735015 -0.114581451 -0.275590867 -0.0472846925 0.110744029 0.166288495 -0.251717627 -0.156099528 0.20148468 -0.10057579 -0.259907603 0.227214605 0.0679913759 -0.0906560868 0.099158287 -0.166535437 -0.222258657 0.19526127 0.237003356 0.0474940836 -0.0292125642 0.162087768 -0.075210616 -0.147232965 0.181925058 -0.265741825 0.0067807138 -0.168172449 -0.250409216 -0.0428617597 0.267346531 0.0856229067 0.00161606073 -0.114897355 0.17045027 -0.0672320873 -0.117006898 -0.182783365 0.0201894343 0.284716338 0.143457025 0.168618798 -0.168316886 -0.190438077 -0.256557345 0.0323726833 0.100794524 -0.0127883255 0.110863656 -0.119336218 -0.114076182 0.151695609 0.22389248 0.282613248 0.15971002 0.0205926001 0.247080714 0.229880124 0.257842451 0.256057292 -0.0341206491 -0.113030732 0.00178325176 -0.0147191286 -0.136803553 0.284315079 -0.185672283 -0.130401805 0.0407161117 -0.278243572 -0.290241003 -0.11591661 0.247250527 -0.11302492 0.202863365 -0.0864186287 -0.225577146 0.0353014469 -0.275794476 0.0697319806 -0.161687106 0.0676235557 -0.191373944 -0.245251685 -0.208733439 0.200457036 -0.231720239 0.23827675 0.245976657 0.158834785 -0.105619445 0.00381481647 -0.0668889433 0.278257459 -0.0465793312 -0.283717752 -0.141388804 -0.0557415038 0.275514275 -0.229755342 -0.056414485 -0.128557578 -0.155879959 0.229667872 -0.282269984 -0.00361472368 -0.146955654 0.262520581 -0.142036974 -0.22650221 -0.171037033 -0.264231324 -0.114526898 0.108726889 -0.11450389 -0.161976472 0.213888198 -0.155251473 -0.129237279 0.0148108006 0.237964839 0.00114288926 -0.17956537 -0.0581917614 0.101992041 -0.172246337 0.0476861894 -0.233477414 0.186049938 0.204363465 0.226482481 0.157008231 0.0480998158 -0.24438408 -0.0116232336 0.215339392 0.168680698 -0.246528342 0.235571712 0.083932668 0.179807335 -0.281261265 0.254608482 -0.129573151 -0.15635632 0.0104034841 -0.0855440944 -0.0364180207 -0.0936330259 0.203656048 0.218417555 0.267232388 0.243307501 -0.012619704 0.102213621 0.0957243443 0.0675143301 0.0355600417 0.123950303 -0.0663571358 -0.0674767494 -0.065041393 0.0668723881 -0.0216611922 -0.270628303 -0.258248627 -0.219586402 0.208470911 0.163104594 -0.134603903 0.265281588 -0.144677415 0.134712666 -0.286816537 0.17197153 -0.244363844 0.242081493 0.167868793 -0.0610751361 -0.11806275 -0.18700856 -0.280021816 -0.203570098 -0.165235698 0.278979748 -0.0207433999 -0.181548566 -0.257220149 -0.269452065 0.13958469 -0.164143264 -0.17494534 0.279658407 -0.132414386 0.228838712 0.283912688 0.0875216722 -0.0122709274 0.180857211 0.195473194 0.227056772 0.0336381197 0.151704818 0.270261675 0.125766933 0.290127069 0.174449921 0.219191939 0.177296698 0.11808151 0.155217022 -0.0650576055 0.110817641 -0.0292049348 -0.0834513158 -0.160530761 0.135231078 -0.244868964 0.160483986 -0.0843964815 0.228993982 -0.106188461 0.106229424 0.0398679078 -0.0626912117 -0.0582338423 0.0629111826 0.117925853 -0.182923928 0.151600093 0.21982041 0.186079204 0.00462427735 -0.00267481804 0.234460324 -0.00893893838 -0.1841387 0.160029471 -0.121330425 -0.0952409804 0.0115265548 -0.00784495473 0.0805440247 -0.118583456 -0.137117103 -0.0274330676 -0.145691544 -0.200888693 -0.273440361 -0.187188417 -0.0236158371 0.163534611 -0.0472339541 0.0664324164 0.0426873267 -0.147771701 0.163455725 -0.259797931 -0.269036919 -0.245053053 -0.0690709203 -0.283409327 0.160179317 0.20762229 0.163862139 0.199112862 -0.196085751 -0.233553514 0.228360564 0.0976755023 -0.0486842394 -0.0783673972 0.17462188 -0.0636232048 -0.117933556 -0.021065414 -0.226446763 -0.127502069 -0.118433401 -0.0767851621 -0.0792897642 0.201401502 0.170769155 -0.135508597 -0.212848082 -0.264725298 -0.0151008666 0.0549294055 -0.0873851329 0.16497907 -0.126145497 0.201262951 0.264436156 0.125223488 0.195444524 0.184791803 0.0430525839 0.131814659 0.0294036567 -0.00576618314 diff --git a/tmva/sofie/test/KerasParserTest/Selutest.h5 b/tmva/sofie/test/KerasParserTest/Selutest.h5 new file mode 100644 index 0000000000000..7c6a179537df1 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Selutest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Selutest.hxx b/tmva/sofie/test/KerasParserTest/Selutest.hxx new file mode 100644 index 0000000000000..4120e9d3874cd --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Selutest.hxx @@ -0,0 +1,95 @@ +//Code generated automatically by TMVA for Inference of Model file [Selutest.h5] at [Thu Aug 24 08:55:41 202] + +#ifndef ROOT_TMVA_SOFIE_SELUTEST +#define ROOT_TMVA_SOFIE_SELUTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Selutest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense6bias0 = std::vector(64); +float * tensor_dense6bias0 = fTensor_dense6bias0.data(); +std::vector fTensor_dense6kernel0 = std::vector(448); +float * tensor_dense6kernel0 = fTensor_dense6kernel0.data(); +std::vector fTensor_dense6Dense = std::vector(64); +float * tensor_dense6Dense = fTensor_dense6Dense.data(); +std::vector fTensor_dense6Selu0 = std::vector(64); +float * tensor_dense6Selu0 = fTensor_dense6Selu0.data(); +std::vector fTensor_dense6bias0bcast = std::vector(64); +float * tensor_dense6bias0bcast = fTensor_dense6bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Selutest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense6bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense6bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense6bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense6kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense6kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense6kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense6bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense6bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense6input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense6bias0bcast, tensor_dense6bias0bcast + 64, tensor_dense6Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense6kernel0, &op_0_ldb, tensor_dense6input, &op_0_lda, &op_0_beta, tensor_dense6Dense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense6Selu0[id] = 1.0507009873554804934193349852946 * (std::max(float(0.0), tensor_dense6Dense[id]) + std::min(0.0, 1.6732632423543772848170429916717 * (std::exp(tensor_dense6Dense[id])-1))); + } + std::vector ret (tensor_dense6Selu0, tensor_dense6Selu0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Selutest + +#endif // ROOT_TMVA_SOFIE_SELUTEST diff --git a/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat b/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat new file mode 100644 index 0000000000000..872c2fb0bcd4c --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Sigmoidtest.dat @@ -0,0 +1,4 @@ +tensor_dense12bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense12kernel0 448 +0.178731322 -0.0748710036 0.0199038088 -0.0922615379 -0.0784054548 -0.0920652598 0.0300186276 -0.164458692 -0.0509871542 0.0045388639 -0.253729999 0.238073498 0.0494695604 -0.0925321877 0.0867454112 -0.251100153 -0.00537800789 0.163910955 -0.120337099 -0.172405601 0.28273949 0.0507779121 0.0606363416 0.0691609383 0.247520059 -0.0388016105 0.117613614 -0.0227900147 0.0896844566 -0.0518520474 -0.101448044 -0.107340097 -0.0545647889 0.0043682456 -0.0723298639 0.0143803954 -0.0779841989 -0.190149963 0.166570455 -0.235820666 0.263858706 -0.239281937 -0.0109648705 0.267720133 0.249872357 0.15422529 -0.109547153 0.217076153 0.020269841 0.223536283 -0.228806302 -0.169420138 -0.273134619 0.0173560381 -0.0714259446 0.00790381432 -0.157630965 0.238894492 0.0521942973 -0.27307412 -0.101733387 -0.285867989 -0.221867964 -0.0587429851 0.109022707 0.191504955 0.00573131442 -0.212225288 -0.174133331 0.0486274064 -0.0843330622 0.265352398 0.199818373 0.28160134 -0.159279406 0.20793888 -0.158128679 -0.218396783 0.154194713 -0.236906588 -0.0587117225 0.283606857 0.0444932878 -0.0819372833 0.183147371 -0.0736854821 -0.00139981508 -0.0879442394 0.175195754 0.280868918 -0.0165909231 -0.210183442 0.158895433 -0.0753739029 -0.254152834 -0.000397145748 -0.161732852 0.214862972 -0.201651707 0.0126787424 -0.234143257 -0.149140954 -0.273441255 0.121176004 -0.208792835 -0.209015951 0.204560876 -0.12601389 -0.153800637 0.21287927 -0.0460821092 -0.199227303 0.0660018027 0.030479461 -0.0746621788 -0.265710175 -0.0121493638 0.00253918767 -0.077083528 -0.215668872 -0.177632362 0.0901291966 0.193330675 -0.0495802611 -0.117367849 -0.0314593315 0.00987666845 -0.0696936548 0.100557625 -0.21724467 -0.289746225 0.0160526037 -0.226382509 -0.2737903 0.0185872912 -0.179757714 0.0153332651 0.147810996 -0.111343011 0.0504117608 0.0311662257 0.061627537 0.0780757666 0.283140332 0.258938462 -0.146560669 -0.102347106 -0.278803706 0.0805097222 -0.0614945889 -0.0625751913 -0.0665037334 -0.159766018 -0.133700132 0.124478966 -0.170416921 -0.200238436 -0.195154384 -0.192832768 -0.100421712 -0.0453391224 0.0636869073 -0.014700681 0.156711519 -0.0428251028 -0.0261333287 -0.104864538 -0.258905381 -0.163863465 -0.0224059224 -0.247353047 0.142179132 -0.216644049 0.254521817 -0.0495085865 -0.124474615 -0.0151988566 0.121805668 0.16669625 -0.261950791 -0.0431753248 0.175793529 -0.00277870893 -0.120046631 -0.212717235 -0.0860978663 -0.186237007 -0.0207866728 0.139968187 -0.210043579 -0.223196805 0.138437718 -0.225856245 0.152903587 0.215838522 -0.00793346763 -0.0453033 -0.254016101 -0.21183452 -0.278686732 0.245383114 0.0632706881 -0.125641003 0.281953424 -0.096849218 -0.19927831 -0.224741012 0.255984336 -0.0832171291 0.2771568 -0.228804007 -0.217505962 -0.00298628211 -0.00884839892 -0.0421515554 0.0863055289 0.197865307 -0.254379749 -0.162806794 -0.0453349054 -0.265325934 0.226991028 0.0151577592 0.0483570993 -0.0931790471 -0.27344507 0.15392983 -0.203596443 -0.186600059 -0.144818187 -0.0940348059 0.0667310059 -0.11234355 -0.155574799 0.00973916054 0.160131812 -0.183207333 -0.107233495 0.27281943 -0.217401922 0.0211846232 0.0790270269 -0.290435225 0.0212878287 0.250030369 -0.0485142916 0.196106136 0.210454255 -0.000334054232 0.243489832 -0.17075038 0.1467022 -0.223774284 -0.00161993504 -0.241799504 -0.0779396296 -0.229127333 0.178136706 0.197408915 0.0393397808 -0.278330564 -0.215263546 0.1401425 0.118258595 -0.0120585859 0.262613446 -0.107925892 0.0368531942 -0.110176548 0.0457424223 -0.119748816 0.0104172826 0.154896617 0.0114795566 0.194757462 -0.234332681 0.108158916 -0.246321872 -0.236505434 -0.0154370964 0.130236506 -0.237584293 0.0743522942 -0.164291799 0.260202914 0.077241987 0.170921981 -0.104477927 0.0656351447 0.0303657055 -0.220984966 0.16703254 -0.155826449 0.186184406 -0.0845310092 -0.260095358 -0.261012912 0.15221861 -0.284821093 -0.0547743738 -0.193552256 -0.0404782593 0.0366705656 -0.226021901 0.182888031 -0.0710778087 -0.0284041464 -0.26408717 0.114581525 0.0111069083 -0.0169166923 -0.0203464925 0.196723312 -0.0831490606 0.207523793 0.253387958 0.112269878 0.115514755 0.0325040221 -0.133556172 -0.250627398 0.286323279 0.143998891 -0.0364751816 0.122467786 0.079458952 0.0235410631 -0.177999556 0.0285397768 0.272226542 0.00631448627 -0.117565587 0.254799694 -0.0510088354 -0.202148095 0.0823285282 0.070990622 -0.0413323343 -0.24803026 -0.170286283 -0.156456187 -0.286920935 -0.123735026 -0.0172019005 0.0146455765 -0.2578713 0.16445002 -0.134995773 0.270711631 0.195244074 -0.0193433762 -0.117100388 -0.0760902762 -0.256533444 -0.029538393 0.102605134 0.00347006321 -0.106357992 0.267503649 0.0232186317 -0.205114573 -0.114722908 0.0507459641 0.222240835 0.242572337 0.196910322 -0.252353519 0.148143321 0.156710356 -0.0178252459 0.215213209 0.220047742 -0.0316025913 -0.127850413 -0.258470416 0.163615882 -0.0958957374 -0.000174164772 0.140743405 -0.243859068 0.193521261 0.119340777 0.154522687 -0.174519867 0.0448114276 -0.0926060081 -0.149543434 0.282956034 -0.239947289 -0.108692929 0.16986385 0.111506075 0.288965195 0.251226515 -0.275577962 -0.132832319 0.0960133374 -0.282126099 -0.186728135 -0.245358557 -0.234381959 -0.228270411 0.199320942 0.102704674 -0.24912408 -0.112285182 0.0454210639 0.236968488 0.185900301 0.198879361 -0.179923207 -0.119222686 0.27132991 0.286168247 -0.097902149 -0.216463774 0.158447504 0.178763479 0.166678846 -0.026515156 -0.255782962 -0.0118281245 -0.207408607 0.0517017841 -0.206127241 -0.0268127024 -0.111466438 -0.0060967207 -0.0412307978 0.181260526 0.266702741 -0.286563367 -0.162996978 -0.242990345 -0.268685371 -0.200403467 -0.173221573 0.144228846 -0.0219342709 0.0418696105 0.196555525 0.0346136987 -0.0984006822 -0.175883651 -0.128043726 0.127084494 0.102014303 0.013679564 diff --git a/tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 b/tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 new file mode 100644 index 0000000000000..c0725087e35e3 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Sigmoidtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Sigmoidtest.hxx b/tmva/sofie/test/KerasParserTest/Sigmoidtest.hxx new file mode 100644 index 0000000000000..c395a10cf0499 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Sigmoidtest.hxx @@ -0,0 +1,95 @@ +//Code generated automatically by TMVA for Inference of Model file [Sigmoidtest.h5] at [Thu Aug 24 08:55:43 202] + +#ifndef ROOT_TMVA_SOFIE_SIGMOIDTEST +#define ROOT_TMVA_SOFIE_SIGMOIDTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Sigmoidtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense12bias0 = std::vector(64); +float * tensor_dense12bias0 = fTensor_dense12bias0.data(); +std::vector fTensor_dense12kernel0 = std::vector(448); +float * tensor_dense12kernel0 = fTensor_dense12kernel0.data(); +std::vector fTensor_dense12Dense = std::vector(64); +float * tensor_dense12Dense = fTensor_dense12Dense.data(); +std::vector fTensor_dense12Sigmoid0 = std::vector(64); +float * tensor_dense12Sigmoid0 = fTensor_dense12Sigmoid0.data(); +std::vector fTensor_dense12bias0bcast = std::vector(64); +float * tensor_dense12bias0bcast = fTensor_dense12bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Sigmoidtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense12bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense12bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense12bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense12kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense12kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense12kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense12bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense12bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense12input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense12bias0bcast, tensor_dense12bias0bcast + 64, tensor_dense12Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense12kernel0, &op_0_ldb, tensor_dense12input, &op_0_lda, &op_0_beta, tensor_dense12Dense, &op_0_n); + for (int id = 0; id < 64 ; id++){ + tensor_dense12Sigmoid0[id] = 1 / (1 + std::exp( - tensor_dense12Dense[id])); + } + std::vector ret (tensor_dense12Sigmoid0, tensor_dense12Sigmoid0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Sigmoidtest + +#endif // ROOT_TMVA_SOFIE_SIGMOIDTEST diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat new file mode 100644 index 0000000000000..4ad0dfa488919 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.dat @@ -0,0 +1,6 @@ +tensor_simplernnsimplernncell2recurrentkernel0 4 +-0.0698643923 -0.997556508 0.997556508 -0.0698643327 +tensor_simplernnsimplernncell2kernel0 4 +-0.32840234 -0.343577981 -0.676944911 0.0669032335 +tensor_simplernnsimplernncell2bias0 4 +0 0 0 0 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 new file mode 100644 index 0000000000000..6a1eedca00dc3 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx new file mode 100644 index 0000000000000..41bbd70b76a4d --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtest.hxx @@ -0,0 +1,143 @@ +//Code generated automatically by TMVA for Inference of Model file [SimpleRNNtest.h5] at [Thu Aug 24 08:55:56 202] + +#ifndef ROOT_TMVA_SOFIE_SIMPLERNNTEST +#define ROOT_TMVA_SOFIE_SIMPLERNNTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_SimpleRNNtest{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_simplernnsimplernncell2recurrentkernel0 = std::vector(4); +float * tensor_simplernnsimplernncell2recurrentkernel0 = fTensor_simplernnsimplernncell2recurrentkernel0.data(); +std::vector fTensor_simplernnsimplernncell2kernel0 = std::vector(4); +float * tensor_simplernnsimplernncell2kernel0 = fTensor_simplernnsimplernncell2kernel0.data(); +std::vector fTensor_simplernnsimplernncell2bias0 = std::vector(4); +float * tensor_simplernnsimplernncell2bias0 = fTensor_simplernnsimplernncell2bias0.data(); +std::vector fTensor_simplernntranspose10 = std::vector(4); +float * tensor_simplernntranspose10 = fTensor_simplernntranspose10.data(); +std::vector fTensor_reshape2Reshape0 = std::vector(4); +float * tensor_reshape2Reshape0 = fTensor_reshape2Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(2); +std::vector fVec_op_1_feedforward = std::vector(4); +std::vector fVec_op_1_hidden_state = std::vector(4); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "SimpleRNNtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2recurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2recurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2recurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2kernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernnsimplernncell2bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernnsimplernncell2bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernnsimplernncell2bias0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape2input){ + ///--------Reshape operator + + std::copy( tensor_reshape2input, tensor_reshape2input + 4, tensor_reshape2Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape2Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_feedforward = fVec_op_1_feedforward.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 2; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = .0; + int op_1_bias_size = 4; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_simplernnsimplernncell2kernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_feedforward, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_simplernnsimplernncell2bias0, &op_1_incx, op_1_feedforward, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 2; + size_t size = 2; + size_t h_offset = seq * 2 + 0; + std::copy(op_1_feedforward + offset, op_1_feedforward + offset + size, op_1_hidden_state + h_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 2 + 0; + size_t size = 2; + if (seq == 0) { + } else { + size_t r_offset = 0; + size_t previous_offset = (seq - 1) * 2 + 0; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_simplernnsimplernncell2recurrentkernel0 + r_offset, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_hidden_state + offset, &op_1_n); + } + for (size_t i = offset; i < offset + size; i++) { + float ex = std::exp(-2 * op_1_hidden_state[i]); + op_1_hidden_state[i] = (1. - ex) / (1. + ex); + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 2 + 0 + batch * 2; + size_t y_offset = batch * 4 + seq * 2 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 2, tensor_simplernntranspose10 + y_offset); + } + } + std::vector ret (tensor_simplernntranspose10, tensor_simplernntranspose10 + 4); + return ret; +} +}; +} //TMVA_SOFIE_SimpleRNNtest + +#endif // ROOT_TMVA_SOFIE_SIMPLERNNTEST diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat new file mode 100644 index 0000000000000..429fdf6c01c04 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.dat @@ -0,0 +1,6 @@ +tensor_simplernn2simplernncellrecurrentkernel0 4 +-0.99989295 -0.0146312313 -0.0146312313 0.99989295 +tensor_simplernn2simplernncellkernel0 4 +-0.855728626 -0.582831502 -0.582416296 0.151278377 +tensor_simplernn2simplernncellbias0 4 +1 1 1 1 diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 new file mode 100644 index 0000000000000..81cb3f0d2ead9 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx new file mode 100644 index 0000000000000..7986d6359fae4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/SimpleRNNtestWithBias.hxx @@ -0,0 +1,143 @@ +//Code generated automatically by TMVA for Inference of Model file [SimpleRNNtestWithBias.h5] at [Thu Aug 24 08:55:55 202] + +#ifndef ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS +#define ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_SimpleRNNtestWithBias{ +namespace BLAS{ + extern "C" void saxpy_(const int * n, const float * alpha, const float * x, + const int * incx, float * y, const int * incy); + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); +}//BLAS +struct Session { +std::vector fTensor_simplernn2simplernncellrecurrentkernel0 = std::vector(4); +float * tensor_simplernn2simplernncellrecurrentkernel0 = fTensor_simplernn2simplernncellrecurrentkernel0.data(); +std::vector fTensor_simplernn2simplernncellkernel0 = std::vector(4); +float * tensor_simplernn2simplernncellkernel0 = fTensor_simplernn2simplernncellkernel0.data(); +std::vector fTensor_simplernn2simplernncellbias0 = std::vector(4); +float * tensor_simplernn2simplernncellbias0 = fTensor_simplernn2simplernncellbias0.data(); +std::vector fTensor_simplernn2transpose10 = std::vector(4); +float * tensor_simplernn2transpose10 = fTensor_simplernn2transpose10.data(); +std::vector fTensor_reshape4Reshape0 = std::vector(4); +float * tensor_reshape4Reshape0 = fTensor_reshape4Reshape0.data(); + +std::vector fVec_op_1_input = std::vector(4); +std::vector fVec_op_1_initial_hidden_state = std::vector(2); +std::vector fVec_op_1_feedforward = std::vector(4); +std::vector fVec_op_1_hidden_state = std::vector(4); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "SimpleRNNtestWithBias.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellrecurrentkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellrecurrentkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellrecurrentkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellkernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellkernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellkernel0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_simplernn2simplernncellbias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_simplernn2simplernncellbias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 4) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 4 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_simplernn2simplernncellbias0[i]; + f.close(); +} + +std::vector infer(float* tensor_reshape4input){ + ///--------Reshape operator + + std::copy( tensor_reshape4input, tensor_reshape4input + 4, tensor_reshape4Reshape0); + float * op_1_input = fVec_op_1_input.data(); + for(size_t seq = 0; seq < 2; seq++) { + for(size_t batch = 0; batch < 1; batch++) { + for(size_t i = 0; i < 2; i++) { + op_1_input[seq * 2 + batch * 2 + i] = tensor_reshape4Reshape0[batch * 4 + seq * 2 + i]; + } + } + } + float * op_1_feedforward = fVec_op_1_feedforward.data(); + float * op_1_hidden_state = fVec_op_1_hidden_state.data(); + char op_1_transA = 'N'; + char op_1_transB = 'T'; + int op_1_m = 2; + int op_1_n = 2; + int op_1_k = 2; + float op_1_alpha = 1.; + float op_1_beta = .0; + int op_1_bias_size = 4; + int op_1_incx = 1; + int op_1_incy = 1; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &op_1_m, &op_1_k, &op_1_alpha, tensor_simplernn2simplernncellkernel0, &op_1_k, op_1_input, &op_1_k, &op_1_beta, op_1_feedforward, &op_1_n); + BLAS::saxpy_(&op_1_bias_size, &op_1_alpha, tensor_simplernn2simplernncellbias0, &op_1_incx, op_1_feedforward, &op_1_incy); + for (size_t seq = 0; seq < 2; seq++) { + size_t offset = seq * 2; + size_t size = 2; + size_t h_offset = seq * 2 + 0; + std::copy(op_1_feedforward + offset, op_1_feedforward + offset + size, op_1_hidden_state + h_offset); + } + for (size_t seq = 0; seq < 2; seq++) { + size_t index = seq; + int m2 = 1; + size_t offset = index * 2 + 0; + size_t size = 2; + if (seq == 0) { + } else { + size_t r_offset = 0; + size_t previous_offset = (seq - 1) * 2 + 0; + BLAS::sgemm_(&op_1_transB, &op_1_transA, &op_1_n, &m2, &op_1_n, &op_1_alpha, tensor_simplernn2simplernncellrecurrentkernel0 + r_offset, &op_1_n, op_1_hidden_state + previous_offset, &op_1_n, &op_1_alpha, op_1_hidden_state + offset, &op_1_n); + } + for (size_t i = offset; i < offset + size; i++) { + float ex = std::exp(-2 * op_1_hidden_state[i]); + op_1_hidden_state[i] = (1. - ex) / (1. + ex); + } + } + for (size_t seq = 0; seq < 2; seq++) { + for (size_t batch = 0; batch < 1; batch++) { + size_t offset = seq * 2 + 0 + batch * 2; + size_t y_offset = batch * 4 + seq * 2 + 0; + std::copy(op_1_hidden_state + offset, op_1_hidden_state + offset + 2, tensor_simplernn2transpose10 + y_offset); + } + } + std::vector ret (tensor_simplernn2transpose10, tensor_simplernn2transpose10 + 4); + return ret; +} +}; +} //TMVA_SOFIE_SimpleRNNtestWithBias + +#endif // ROOT_TMVA_SOFIE_SIMPLERNNTESTWITHBIAS diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.dat b/tmva/sofie/test/KerasParserTest/Softmaxtest.dat new file mode 100644 index 0000000000000..e7dbe5bc6cde6 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Softmaxtest.dat @@ -0,0 +1,4 @@ +tensor_dense13bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense13kernel0 448 +-0.170009881 0.0561888218 -0.236673295 0.272135526 -0.0478109419 -0.184272185 -0.183815092 -0.239893511 0.228115708 -0.0041154027 0.0402268767 0.12992385 0.243941098 0.0329299867 0.275570542 -0.285088956 -0.24291265 0.0928192735 0.280548424 -0.238944128 -0.0198740065 0.274652988 0.110727906 0.190308332 0.232157558 -0.0502294749 -0.231199384 0.130748421 -0.287017554 -0.120579824 -0.0505396873 0.232887536 0.20933941 0.040979892 0.0970725119 -0.278625309 -0.0495612025 0.108651817 -0.226021901 0.0913663507 -0.282417804 0.13104257 0.0272052586 -0.138126448 -0.0561244339 0.212928504 -0.0256949365 0.244406313 0.279242426 0.0894033909 -0.120577872 -0.283284307 -0.109497041 -0.100075111 -0.110692888 -0.113820225 0.157594025 0.246257335 -0.241374984 0.274756819 0.210363001 -0.213746533 0.2353172 0.250230402 0.176933587 0.289217263 0.225100011 0.0255928636 0.279757172 -0.0418417454 0.0733633935 0.0493786335 0.24440226 0.261475712 -0.0147822499 -0.0979105979 -0.222567841 0.277581304 0.138001889 0.0768363774 0.16479829 -0.289331406 0.055437386 0.0400196314 0.273686856 -0.260245472 -0.106722906 0.127104521 -0.186784685 -0.141145036 0.0545125902 0.211275309 0.163533777 0.263996452 -0.188482612 0.0480011404 0.255871803 -0.0653936118 0.121782243 -0.0484704226 0.00105389953 0.0713348091 -0.223243117 0.218184501 -0.249462381 0.0717141926 -0.278149873 -0.253439724 0.0436552763 -0.0906537175 0.0184357166 0.199833274 0.217055708 -0.15560481 -0.195286766 -0.0177332759 0.203570247 0.0478205681 -0.134299785 0.26816085 -0.222081363 0.215855807 -0.000489592552 -0.0318312347 0.000346690416 -0.257775605 0.215603024 -0.0293530524 0.0749535561 -0.0366574824 0.115542144 -0.157584608 0.249703616 0.104960531 0.288901359 0.140687734 0.0649555922 0.167359859 -0.0770255923 0.174772978 0.270479411 -0.24312225 -0.285714269 -0.0235774219 -0.194528043 0.201785684 -0.175500929 0.203788638 -0.214254916 0.0224229097 -0.0898069143 0.0943276882 0.204791605 0.266337603 -0.263973087 0.285341233 -0.222669095 0.167334497 0.0814678371 -0.14903754 -0.135779798 0.0738759339 -0.0288429558 -0.0958093703 0.21729061 0.010121882 0.286409169 0.245518774 0.235844225 -0.0895865113 -0.286545753 0.186194956 -0.198468998 0.0563049912 0.0964384079 0.200662196 0.1016258 -0.196444362 -0.117548466 0.269566149 -0.0955359489 0.124692112 -0.0845783502 0.0123024583 0.0404443443 0.24932906 0.0925711989 0.113422871 -0.272162169 0.250293225 0.135228515 -0.104818925 -0.221078396 -0.0632749945 0.175420731 0.26916036 0.216206104 0.0451190174 -0.0583229065 -0.125285998 -0.173503309 0.249949366 -0.272628605 -0.0732510537 -0.0305369198 0.0780168474 0.219114929 -0.176152617 0.0342153311 0.261050791 -0.0711966008 0.0717624426 -0.0233339667 -0.255673885 -0.168153316 0.184063286 0.202282757 0.271769017 -0.191064835 0.0675694048 0.0455286801 0.136907876 -0.240917549 0.171386629 0.195131451 0.14308846 0.194202304 0.0726505518 0.0286937356 0.216913193 0.0738536119 -0.107161894 0.0222295821 0.197445184 -0.18331781 0.18351534 -0.163287714 -0.21843484 -0.216993287 -0.224581733 -0.209867954 -0.0827872753 -0.0068898201 0.290504545 -0.230118096 0.109469533 0.0882445574 0.123199761 -0.0347619653 0.198153496 -0.198897809 0.0628299713 -0.0680966526 -0.0738771111 0.275461107 0.129207909 0.0809350908 -0.133527473 -0.0637104511 -0.0130999386 0.248722523 -0.0838821381 0.0183518529 0.084746629 0.233050197 -0.245801151 -0.260323286 -0.061961323 -0.240776435 0.198022723 0.274575561 -0.0735141486 0.276815802 0.197030991 0.219473928 0.221968859 0.22873798 -0.103470743 0.222096592 0.279412657 -0.179083884 -0.108590275 -0.191531077 -0.228148758 0.0677420497 -0.275969088 -0.128581688 -0.201044708 0.0293244421 0.0771005154 0.173011363 0.21372661 -0.14671807 0.184481502 0.0356592238 -0.127148181 0.042208612 -0.07006751 -0.196240664 0.166207194 -0.105237901 0.0448622108 0.250631958 -0.0239646733 -0.16282925 0.188368052 -0.287492871 0.263448924 -0.203907639 0.275624543 -0.154672951 0.184306294 -0.0703319162 0.127169937 -0.209817976 -0.188479006 -0.118426129 0.267298013 0.0419666469 -0.221336633 0.182008713 -0.249181896 -0.13696532 0.284085304 0.24513045 0.238366991 -0.0836157203 -0.180440336 0.171683967 0.245850652 -0.177357286 0.0565522611 -0.24300608 -0.211654097 0.215986699 0.0471660197 -0.27598995 0.200337827 0.289392799 -0.0715693533 -0.0791698545 0.28204301 -0.0264139473 0.16297999 0.114759773 -0.152672842 0.185648918 -0.0882006884 -0.279387921 -0.0180157721 0.187757909 0.037824899 -0.0430660844 -0.160270721 0.14972356 0.0384012163 -0.195975691 0.015105933 0.101719111 0.126097679 -0.0955863446 -0.213823602 0.236726791 -0.121411666 0.111652732 -0.140976965 -0.0145386457 -0.166823909 -0.0508912206 -0.172693506 0.19878754 -0.071229592 0.00519773364 0.286439687 0.0295552909 0.24516663 -0.271863103 -0.130121112 -0.124213666 -0.0931542367 0.0665842593 0.019250989 -0.250095159 0.0784363747 0.169018358 -0.241762698 0.00384163857 0.266361624 0.200276971 -0.161527559 0.206766337 0.109764993 0.0739433169 0.0743075311 0.085503906 0.0616436899 0.101220995 0.161372453 0.110488355 -0.129508421 -0.139541864 -0.263870716 -0.054529503 -0.168936908 -0.21380648 0.0436480045 0.253757447 0.202602893 0.170021534 -0.0858962536 -0.176051572 0.266202718 0.269451469 -0.0250191987 0.0690608025 -0.0878224075 0.232994586 -0.123096973 -0.153204367 -0.0216121972 -0.271991938 0.235798925 0.138579577 0.249482244 0.286629707 0.0511660278 -0.196901232 0.196375459 -0.214565545 -0.288606375 -0.261040568 0.226849347 -0.161329195 0.15103212 0.0667104721 0.193531185 -0.272723645 0.103257954 -0.184835389 0.248845488 0.0919826329 0.164011568 0.013756901 0.0460421145 -0.173824832 -0.101232424 -0.169457227 0.126109034 diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.h5 b/tmva/sofie/test/KerasParserTest/Softmaxtest.h5 new file mode 100644 index 0000000000000..96d8e4bca3085 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Softmaxtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx b/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx new file mode 100644 index 0000000000000..d30c7f8e870ec --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Softmaxtest.hxx @@ -0,0 +1,104 @@ +//Code generated automatically by TMVA for Inference of Model file [Softmaxtest.h5] at [Thu Aug 24 08:55:43 202] + +#ifndef ROOT_TMVA_SOFIE_SOFTMAXTEST +#define ROOT_TMVA_SOFIE_SOFTMAXTEST + +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Softmaxtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense13bias0 = std::vector(64); +float * tensor_dense13bias0 = fTensor_dense13bias0.data(); +std::vector fTensor_dense13kernel0 = std::vector(448); +float * tensor_dense13kernel0 = fTensor_dense13kernel0.data(); +std::vector fTensor_dense13Softmax0 = std::vector(64); +float * tensor_dense13Softmax0 = fTensor_dense13Softmax0.data(); +std::vector fTensor_dense13Dense = std::vector(64); +float * tensor_dense13Dense = fTensor_dense13Dense.data(); +std::vector fTensor_dense13bias0bcast = std::vector(64); +float * tensor_dense13bias0bcast = fTensor_dense13bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Softmaxtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense13bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense13bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense13bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense13kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense13kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense13kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense13bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense13bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense13input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense13bias0bcast, tensor_dense13bias0bcast + 64, tensor_dense13Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense13kernel0, &op_0_ldb, tensor_dense13input, &op_0_lda, &op_0_beta, tensor_dense13Dense, &op_0_n); + + //------ SOFTMAX + for (size_t n = 0; n < 1 ; n++){ + float sum = 0.; + size_t index = 0+ n * 64; + for (size_t i = 0; i < 64; i++) { + tensor_dense13Softmax0[index + i*1] = std::exp(tensor_dense13Dense[index + i*1]); + sum += tensor_dense13Softmax0[index + i*1]; + } + for (size_t i = 0; i < 64; i++) { + tensor_dense13Softmax0[index + i*1] /= sum; + } + } + std::vector ret (tensor_dense13Softmax0, tensor_dense13Softmax0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Softmaxtest + +#endif // ROOT_TMVA_SOFIE_SOFTMAXTEST diff --git a/tmva/sofie/test/KerasParserTest/Swishtest.h5 b/tmva/sofie/test/KerasParserTest/Swishtest.h5 new file mode 100644 index 0000000000000..f248154a27325 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Swishtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Tanhtest.dat b/tmva/sofie/test/KerasParserTest/Tanhtest.dat new file mode 100644 index 0000000000000..f62340e0448dd --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Tanhtest.dat @@ -0,0 +1,4 @@ +tensor_dense11bias0 64 +0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +tensor_dense11kernel0 448 +-0.127032503 0.0577337742 0.259316653 0.263665348 0.203420252 0.0539216697 -0.206799671 0.243167371 0.128897816 0.0779944658 -0.266811699 0.106388688 0.0792533159 -0.117480695 -0.11623618 0.0764985681 0.106835932 -0.248359203 0.0493350327 -0.00612902641 0.209515959 -0.141050011 -0.244573087 -0.0251781046 0.00844654441 -0.0107588172 -0.156779855 0.277663738 0.160720825 0.230221421 0.233753055 -0.0915403813 0.290618271 -0.0367358625 -0.202321172 0.15543896 0.252296537 0.0664019883 -0.0766626298 -0.103524029 0.231011957 -0.253698856 0.164273083 -0.203933895 -0.059708029 -0.0490738153 0.278011113 -0.0115713179 -0.0160315335 0.11521706 0.0229334831 0.0623099506 0.182962954 -0.0117748976 -0.231979251 -0.117235959 0.1148175 -0.0142005384 0.250248402 0.249567121 -0.0876938403 -0.271438658 -0.257054299 -0.00387752056 0.218126625 -0.277464807 0.0595190227 -0.119275913 0.215070039 -0.21101959 0.0409872532 -0.111624405 0.0818261206 -0.106796235 0.257034332 0.28548345 -0.271648854 -0.0625442713 0.00176244974 -0.228367433 0.138543695 0.137183994 0.25741604 -0.144377097 -0.22334756 -0.0882354081 0.238512188 -0.0147227943 -0.0582098514 0.0414545834 0.234483033 -0.0556110591 0.0182790756 0.165710896 -0.10612449 -0.213307321 -0.255454242 -0.114641324 -0.0810502619 0.139590651 -0.0669890344 -0.127192199 -0.242569447 0.00167298317 0.23301205 -0.155878842 -0.222194612 0.0321976244 -0.0948138237 -0.102365196 0.163661152 -0.0544521511 -0.0704714358 -0.216586381 0.232909888 -0.0844076425 -0.247030407 -0.190992624 -0.110245019 -0.165333435 -0.0348783135 -0.199195415 -0.195434809 0.138790131 0.136115253 -0.244648978 -0.0714784861 -0.157823294 -0.179887742 0.249717146 0.112923652 0.0569279194 -0.0705601424 -0.0965830684 -0.0371226668 0.0667944849 0.0642037988 -0.115488768 -0.286334097 0.114161372 0.0370995998 0.137467742 0.0227099061 0.169025421 0.150405824 -0.274625808 -0.0369166136 -0.0754020363 -0.013661474 0.0759533346 -0.188990086 0.129076689 -0.2349094 0.0605762601 -0.282524139 -0.133894533 0.142522186 0.285858661 -0.221508667 -0.184188247 -0.0648076832 0.194032073 -0.199541062 0.0750644505 -0.0896326751 0.200231105 0.279630572 -0.275682896 -0.0221651495 0.0104285181 0.143537164 0.0307189822 -0.00771266222 0.0656883717 -0.268983871 0.0654415786 0.262174875 0.244833976 0.155117631 -0.284006655 -0.0251052082 -0.152400747 0.232687742 -0.0574509948 0.27885136 0.163520873 0.101399392 0.247677296 -0.0470249951 0.264338762 0.010533452 0.219097883 -0.144879028 -0.0827061236 0.146352589 0.169830084 0.086915791 -0.215069413 -0.0643273741 -0.0797558576 0.151273996 -0.111283883 -0.287864 -0.1955387 0.0261085033 -0.254594386 -0.139245987 -0.10469833 0.258717209 0.123688042 0.26517114 0.128855526 -0.2336362 0.00462245941 0.00127112865 -0.12372753 -0.0675397515 -0.22301203 -0.0126505494 -0.228332579 -0.0259355903 -0.156577125 0.0683007538 0.118816674 0.0277102292 -0.290457606 0.186032057 0.123960078 0.0969743133 0.0156585872 0.206688166 0.207527697 -0.146153763 -0.106843218 0.12291351 -0.0105479956 -0.103236884 0.0666315258 -0.218485773 0.22120145 -0.04546839 0.00570777059 -0.245932698 -0.16469954 -0.268979043 0.0330502391 0.0475040376 -0.171354055 0.0294145346 -0.172996178 0.246539503 -0.146384895 0.283381909 0.164719015 0.123937041 0.0799562335 -0.128771052 -0.271020442 -0.109943882 0.134307742 -0.0861147791 -0.152507618 -0.182660133 -0.110371649 0.251790673 -0.134053946 0.172917932 0.223138779 0.203121394 -0.261518538 0.0383942127 -0.10677065 -0.121549577 0.132146925 -0.217224434 0.242020577 0.0718187094 0.146467596 0.177412242 -0.262135297 -0.0229257345 0.0409319997 -0.0163834989 -0.257128745 -0.268434346 -0.168350369 -0.166486233 -0.0193721354 0.226271242 -0.024692744 -0.282870889 -0.173991024 0.197273135 -0.231835216 0.197888881 0.221397907 -0.0652170926 0.0808443427 0.284806103 -0.24941726 -0.154988021 -0.153755993 -0.263375431 -0.0167784095 -0.225623861 -0.173660785 -0.206330448 -0.234859005 0.198337644 0.1969347 0.0902716219 0.0425179303 -0.241299778 0.239631921 -0.0943223685 -0.0417828411 -0.287278682 -0.0570815206 0.101260215 -0.130401313 0.143807262 -0.185068756 0.0114324391 -0.152752131 0.226535946 0.146185845 0.119213045 0.164186716 0.0496255755 0.263407856 -0.0819519013 -0.022107482 -0.0398608446 0.0263246894 -0.0722823888 -0.0398799181 0.0456991792 0.0795817673 -0.0216209888 0.0781443119 0.28441146 -0.210533947 0.0140778124 -0.284354299 -0.231343538 0.18055886 0.121203035 0.147645563 -0.276559383 -0.109367996 -0.197064936 0.240550429 -0.279319435 0.00967416167 -0.216345817 -0.183033228 0.113832086 -0.0970456302 -0.148845077 -0.105939642 0.0905674398 0.196731091 0.193823874 -0.171176285 -0.0621650815 0.287720174 0.112234741 -0.11686869 0.264370292 0.0747020841 -0.203940004 -0.288871676 -0.140123367 0.261521667 0.128241867 -0.0191136897 -0.0903659612 -0.105496839 0.0235565603 -0.129876032 0.0308633447 -0.0862626135 0.24589929 -0.0143420696 -0.290093184 0.239494711 0.257725626 -0.0212318897 -0.178988591 -0.0409396291 -0.0175081491 0.00560095906 0.237889439 -0.271186441 -0.0780933648 -0.264450073 -0.235249981 0.184315234 0.0284858644 0.00696489215 0.0262693167 -0.225868866 0.0781205893 -0.0111240149 0.249880284 -0.0959019661 -0.0275303125 0.1065391 0.284146875 0.182647675 0.0917752683 0.286575228 -0.0710954219 -0.0853030384 0.041872263 -0.0931423903 0.0471648574 -0.0911496878 0.280179292 -0.181849509 -0.234071314 0.172312796 -0.00891155005 -0.0258185267 0.0975502729 -0.219179139 0.102710992 -0.131532639 -0.258549482 -0.254249811 -0.176064193 0.24267754 -0.281880617 0.0174166858 0.0704656839 0.256503314 0.0779189169 -0.0774428993 0.210780531 -0.128430188 0.0479851961 -0.0555820912 0.0622316301 -0.00828570127 0.280517787 -0.189689204 0.155625314 0.0271816254 diff --git a/tmva/sofie/test/KerasParserTest/Tanhtest.h5 b/tmva/sofie/test/KerasParserTest/Tanhtest.h5 new file mode 100644 index 0000000000000..12ee7b2f3b732 Binary files /dev/null and b/tmva/sofie/test/KerasParserTest/Tanhtest.h5 differ diff --git a/tmva/sofie/test/KerasParserTest/Tanhtest.hxx b/tmva/sofie/test/KerasParserTest/Tanhtest.hxx new file mode 100644 index 0000000000000..bbacf8e9dbcff --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Tanhtest.hxx @@ -0,0 +1,97 @@ +//Code generated automatically by TMVA for Inference of Model file [Tanhtest.h5] at [Thu Aug 24 08:55:42 202] + +#ifndef ROOT_TMVA_SOFIE_TANHTEST +#define ROOT_TMVA_SOFIE_TANHTEST + +#include +#include +#include +#include "TMVA/SOFIE_common.hxx" +#include + +namespace TMVA_SOFIE_Tanhtest{ +namespace BLAS{ + extern "C" void sgemm_(const char * transa, const char * transb, const int * m, const int * n, const int * k, + const float * alpha, const float * A, const int * lda, const float * B, const int * ldb, + const float * beta, float * C, const int * ldc); + extern "C" void sgemv_(const char * trans, const int * m, const int * n, const float * alpha, const float * A, + const int * lda, const float * X, const int * incx, const float * beta, const float * Y, const int * incy); +}//BLAS +struct Session { +std::vector fTensor_dense11bias0 = std::vector(64); +float * tensor_dense11bias0 = fTensor_dense11bias0.data(); +std::vector fTensor_dense11kernel0 = std::vector(448); +float * tensor_dense11kernel0 = fTensor_dense11kernel0.data(); +std::vector fTensor_dense11Tanh0 = std::vector(64); +float * tensor_dense11Tanh0 = fTensor_dense11Tanh0.data(); +std::vector fTensor_dense11Dense = std::vector(64); +float * tensor_dense11Dense = fTensor_dense11Dense.data(); +std::vector fTensor_dense11bias0bcast = std::vector(64); +float * tensor_dense11bias0bcast = fTensor_dense11bias0bcast.data(); + + +Session(std::string filename ="") { + if (filename.empty()) filename = "Tanhtest.dat"; + std::ifstream f; + f.open(filename); + if (!f.is_open()){ + throw std::runtime_error("tmva-sofie failed to open file for input weights"); + } + std::string tensor_name; + int length; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense11bias0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense11bias0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 64) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 64 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense11bias0[i]; + f >> tensor_name >> length; + if (tensor_name != "tensor_dense11kernel0" ) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor name; expected name is tensor_dense11kernel0 , read " + tensor_name; + throw std::runtime_error(err_msg); + } + if (length != 448) { + std::string err_msg = "TMVA-SOFIE failed to read the correct tensor size; expected size is 448 , read " + std::to_string(length) ; + throw std::runtime_error(err_msg); + } + for (int i =0; i < length; ++i) + f >> tensor_dense11kernel0[i]; + f.close(); + { + float * data = TMVA::Experimental::SOFIE::UTILITY::UnidirectionalBroadcast(tensor_dense11bias0,{ 64 }, { 1 , 64 }); + std::copy(data, data + 64, tensor_dense11bias0bcast); + delete [] data; + } +} + +std::vector infer(float* tensor_dense11input){ + +//--------- Gemm + char op_0_transA = 'n'; + char op_0_transB = 'n'; + int op_0_m = 1; + int op_0_n = 64; + int op_0_k = 7; + float op_0_alpha = 1; + float op_0_beta = 1; + int op_0_lda = 7; + int op_0_ldb = 64; + std::copy(tensor_dense11bias0bcast, tensor_dense11bias0bcast + 64, tensor_dense11Dense); + BLAS::sgemm_(&op_0_transB, &op_0_transA, &op_0_n, &op_0_m, &op_0_k, &op_0_alpha, tensor_dense11kernel0, &op_0_ldb, tensor_dense11input, &op_0_lda, &op_0_beta, tensor_dense11Dense, &op_0_n); + +//------ TANH + for (int id = 0; id < 64 ; id++){ + tensor_dense11Tanh0[id] = std::tanh(tensor_dense11Dense[id]); + } + std::vector ret (tensor_dense11Tanh0, tensor_dense11Tanh0 + 64); + return ret; +} +}; +} //TMVA_SOFIE_Tanhtest + +#endif // ROOT_TMVA_SOFIE_TANHTEST diff --git a/tmva/sofie/test/KerasParserTest/Tester.ipynb b/tmva/sofie/test/KerasParserTest/Tester.ipynb new file mode 100644 index 0000000000000..055fd24e526c4 --- /dev/null +++ b/tmva/sofie/test/KerasParserTest/Tester.ipynb @@ -0,0 +1,2192 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "107dfc96", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-08-24 10:55:29.736003: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE4.1 SSE4.2\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Welcome to JupyROOT 6.28/04\n" + ] + } + ], + "source": [ + "from tensorflow import keras\n", + "import os\n", + "import ROOT\n", + "from ROOT import TMVA\n", + "import numpy as np\n", + "import math\n", + "import time" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "866a8fd8", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasIdentity(layer): #Checked\n", + " input = layer['layerInput']\n", + " output = layer['layerOutput']\n", + " fLayerType = layer_data['layerDType']\n", + " fLayerInputName = input[0]\n", + " fLayerOutputName = output[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Identity('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "69af8f89", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasBinary(layer): ###CHECK ABOUT FLOAT32 - IN GENERAL; also explain zeros in op creations\n", + " input = layer['layerInput']\n", + " output = layer['layerOutput']\n", + " fLayerType = layer_data['layerType'] \n", + " fLayerDType = layer_data['layerDType'] \n", + " fX1 = input[0]\n", + " fX2 = input[1]\n", + " fY = output[0]\n", + " op = None\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fLayerType == \"Add\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Add')(fX1, fX2, fY)\n", + " elif fLayerType == \"Subtract\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Sub')(fX1, fX2, fY)\n", + " else:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BasicBinary('Mul')(fX1, fX2, fY)\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Identity does not yet support input type \" + fLayerDType\n", + " )\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "edc211b1", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasConcat(layer):\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " input = [str(i) for i in finput]\n", + " output = str(foutput[0])\n", + " axis = int(attributes[\"axis\"])\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Concat('float')(inputs, axis, 0, output)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1393e11e", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasReshape(layer): #checked\n", + " \"\"\"\n", + " Create a Keras-compatible reshaping operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible reshaping operation using the SOFIE framework. Assumes layerDtype is float32.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " name, data type, and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_Reshape: A SOFIE framework operator representing the reshaping operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " flayername = attributes['_name']\n", + " fOpMode = TMVA.Experimental.SOFIE.ReshapeOpMode.Reshape\n", + " fLayerDType = layer['layerDType']\n", + " fNameData = finput[0]\n", + " fNameOutput = foutput[0]\n", + " fNameShape = flayername + \"ReshapeAxes\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "bf80ccad", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasFlatten(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible flattening operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible flattening operation using the SOFIE framework.\n", + " Flattening is the process of converting a multi-dimensional tensor into a\n", + " one-dimensional tensor. Assumes layerDtype is float32.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " name, data type, and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_Reshape: A SOFIE framework operator representing the flattening operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " flayername = attributes['_name']\n", + " fOpMode = TMVA.Experimental.SOFIE.ReshapeOpMode.Flatten\n", + " fLayerDType = layer['layerDType']\n", + " fNameData = finput[0]\n", + " fNameOutput = foutput[0]\n", + " fNameShape = flayername + \"ReshapeAxes\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Reshape('float')(fOpMode, 0, fNameData, fNameShape, fNameOutput)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "365fdad2", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasBatchNorm(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible batch normalization operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a batch normalization layer and its\n", + " attributes and constructs a Keras-compatible batch normalization operation using\n", + " the SOFIE framework. Batch normalization is used to normalize the activations of\n", + " a neural network, typically applied after the convolutional or dense layers.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " gamma, beta, moving mean, moving variance, epsilon,\n", + " momentum, data type (assumed to be float32), and other relevant information.\n", + "\n", + " Returns:\n", + " ROperator_BatchNormalization: A SOFIE framework operator representing the batch normalization operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " gamma = attributes[\"gamma\"]\n", + " beta = attributes[\"beta\"]\n", + " moving_mean = attributes[\"moving_mean\"]\n", + " moving_variance = attributes[\"moving_variance\"]\n", + " fLayerDType = layer[\"layerDType\"]\n", + " fNX = str(finput[0])\n", + " fNY = str(foutput[0])\n", + " fNScale = str(gamma.name)\n", + " fNB = str(beta.name)\n", + " fNMean = str(moving_mean.name)\n", + " fNVar = str(moving_variance.name)\n", + " epsilon = attributes[\"epsilon\"]\n", + " momentum = attributes[\"momentum\"]\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_BatchNormalization('float')(epsilon, momentum, 0, fNX, fNScale, fNB, fNMean, fNVar, fNY)\n", + " return op" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "4144e951", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasActivation(layer): #irrelevant - never used\n", + " attributes = layer['layerAttributes']\n", + " activation = attributes['activation']\n", + " fLayerActivation = str(activation.__name__)\n", + " if fLayerActivation in mapKerasLayer.keys():\n", + " return mapKerasLayer[fLayerActivation](layer)\n", + " else:\n", + " raise Exception(\"TMVA.SOFIE - parsing keras activation layer \" + fLayerActivation + \" is not yet supported\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "4c573fff", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasReLU(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible rectified linear unit (ReLU) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible ReLU activation operation using the SOFIE framework.\n", + " ReLU is a popular activation function that replaces all negative values in a tensor\n", + " with zero, while leaving positive values unchanged.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type, which must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Relu: A SOFIE framework operator representing the ReLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Relu('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Relu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "a678192b", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSeLU(layer): #NEED TO CHECK - also check if description is correct\n", + " \"\"\"\n", + " Create a Keras-compatible scaled exponential linear unit (SeLU) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible SeLU activation operation using the SOFIE framework.\n", + " SeLU is a type of activation function that introduces self-normalizing properties\n", + " to the neural network, which can lead to improved training stability and convergence.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Selu: A SOFIE framework operator representing the SeLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Selu('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Selu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6314c7ca", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSigmoid(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible sigmoid activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible sigmoid activation operation using the SOFIE framework.\n", + " Sigmoid is a commonly used activation function that maps input values to the range\n", + " between 0 and 1, providing a way to introduce non-linearity in neural networks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_Sigmoid: A SOFIE framework operator representing the sigmoid activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Sigmoid('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Sigmoid does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "29d52de3", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSoftmax(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible softmax activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible softmax activation operation using the SOFIE framework.\n", + " Softmax is an activation function that converts input values into a probability\n", + " distribution, often used in the output layer of a neural network for multi-class\n", + " classification tasks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Softmax: A SOFIE framework operator representing the softmax activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Softmax('float')(-1, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Softmax does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "bf3c8943", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasLeakyRelu(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible Leaky ReLU activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible Leaky ReLU activation operation using the SOFIE framework.\n", + " Leaky ReLU is a variation of the ReLU activation function that allows small negative\n", + " values to pass through, introducing non-linearity while preventing \"dying\" neurons.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " attributes, and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_LeakyRelu: A SOFIE framework operator representing the Leaky ReLU activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fAlpha = float(attributes[\"alpha\"])\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_LeakyRelu('float')(fAlpha, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator LeakyRelu does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "31654c5b", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasTanh(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible hyperbolic tangent (tanh) activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible tanh activation operation using the SOFIE framework.\n", + " Tanh is an activation function that squashes input values to the range between -1 and 1,\n", + " introducing non-linearity in neural networks.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Tanh: A SOFIE framework operator representing the tanh activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Tanh('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Tanh does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4702e2e9", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasSwish(layer): #Need to switch to master, also check if description is correct\n", + " \"\"\"\n", + " Create a Keras-compatible swish activation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible swish activation operation using the SOFIE framework.\n", + " Swish is an activation function that aims to combine the benefits of ReLU and sigmoid,\n", + " allowing some non-linearity while still keeping positive values unbounded.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " and data type.\n", + "\n", + " Returns:\n", + " ROperator_Swish: A SOFIE framework operator representing the swish activation operation.\n", + " \"\"\"\n", + " \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Swish('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Swish does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ef049b6e", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasPermute(layer):\n", + " \"\"\"\n", + " Create a Keras-compatible permutation operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a layer and its attributes and\n", + " constructs a Keras-compatible permutation operation using the SOFIE framework.\n", + " Permutation is an operation that rearranges the dimensions of a tensor based on\n", + " specified dimensions.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " attributes, and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_Transpose: A SOFIE framework operator representing the permutation operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fAttributePermute = np.asarray(attributes[\"dims\"])\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if len(fAttributePermute) > 0:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fPermuteDims, fLayerInputName, fLayerOutputName)\n", + " else: \n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')(fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Transpose does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "106e7e10", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasDense(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible dense (fully connected) layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a dense layer and its attributes and\n", + " constructs a Keras-compatible dense (fully connected) layer operation using the SOFIE framework.\n", + " A dense layer applies a matrix multiplication between the input tensor and weight matrix,\n", + " and adds a bias term.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer weight names, and data type - must be float 32.\n", + "\n", + " Returns:\n", + " ROperator_Gemm: A SOFIE framework operator representing the dense layer operation.\n", + " \"\"\" \n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " fWeightNames = layer[\"layerWeight\"]\n", + " fKernelName = fWeightNames[0]\n", + " fBiasName = fWeightNames[1]\n", + " attr_alpha = 1.0\n", + " attr_beta = 1.0\n", + " attr_transA = 0\n", + " attr_transB = 0\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Gemm['float'](attr_alpha, attr_beta, attr_transA, attr_transB, fLayerInputName, fKernelName, fBiasName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "27fb9df2", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasConv(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible convolutional layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a convolutional layer and its attributes and\n", + " constructs a Keras-compatible convolutional layer operation using the SOFIE framework.\n", + " A convolutional layer applies a convolution operation between the input tensor and a set\n", + " of learnable filters (kernels).\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " data type (must be float 32), weight and bias name, kernel size, dilations, padding and strides. \n", + " When padding is same (keep in the same dimensions), the padding shape is calculated.\n", + "\n", + " Returns:\n", + " ROperator_Conv: A SOFIE framework operator representing the convolutional layer operation.\n", + " \"\"\"\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerDType = layer['layerDType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " attributes = layer['layerAttributes']\n", + " fWeightNames = layer[\"layerWeight\"]\n", + " fKernelName = fWeightNames[0]\n", + " fBiasName = fWeightNames[1]\n", + " fAttrDilations = attributes[\"dilation_rate\"]\n", + " fAttrGroup = int(attributes[\"groups\"])\n", + " fAttrKernelShape = attributes[\"kernel_size\"]\n", + " fKerasPadding = str(attributes[\"padding\"])\n", + " fAttrStrides = attributes[\"strides\"]\n", + " \n", + " if fKerasPadding == 'valid':\n", + " fAttrAutopad = 'VALID'\n", + " elif fKerasPadding == 'same':\n", + " fAttrAutopad = 'NOTSET'\n", + " fInputShape = attributes['_build_input_shape']\n", + " inputHeight = fInputShape[1]\n", + " inputWidth = fInputShape[2]\n", + " outputHeight = math.ceil(float(inputHeight) / float(fAttrStrides[0]))\n", + " outputWidth = math.ceil(float(inputWidth) / float(fAttrStrides[1]))\n", + " padding_height = max((outputHeight - 1) * fAttrStrides[0] + fAttrKernelShape[0] - inputHeight, 0)\n", + " padding_width = max((outputWidth - 1) * fAttrStrides[1] + fAttrKernelShape[1] - inputWidth, 0)\n", + " padding_top = math.floor(padding_height / 2)\n", + " padding_bottom = padding_height - padding_top\n", + " padding_left = math.floor(padding_width / 2)\n", + " padding_right = padding_width - padding_left\n", + " fAttrPads = [padding_top, padding_bottom, padding_left, padding_right]\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding \" + fKerasPadding\n", + " )\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Conv['float'](fAttrAutopad, fAttrDilations, fAttrGroup, \n", + " fAttrKernelShape, fAttrPads, fAttrStrides, \n", + " fLayerInputName, fKernelName, fBiasName, \n", + " fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Gemm does not yet support input type \" + fLayerDType\n", + " )\n", + " \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "157ebef9", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasPooling(layer): #Checked\n", + " \"\"\"\n", + " Create a Keras-compatible pooling layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing a pooling layer and its attributes and\n", + " constructs a Keras-compatible pooling layer operation using the SOFIE framework.\n", + " Pooling layers downsample the input tensor by selecting a representative value from\n", + " a group of neighboring values, either by taking the maximum or the average.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer type (the selection rule), the pool size, padding, strides, and data type.\n", + "\n", + " Returns:\n", + " ROperator_Pool: A SOFIE framework operator representing the pooling layer operation.\n", + " \"\"\"\n", + " #Set default values\n", + " fAttrDilations = (1,1)\n", + " fpads = [0,0,0,0,0,0]\n", + " \n", + " #extract attributes from layer data\n", + " fLayerDType = layer['layerDType']\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " fLayerType = layer['layerType']\n", + " fLayerInputName = finput[0]\n", + " fLayerOutputName = foutput[0]\n", + " pool_atrr = TMVA.Experimental.SOFIE.RAttributes_Pool()\n", + " attributes = layer['layerAttributes']\n", + " fAttrKernelShape = attributes[\"pool_size\"]\n", + " fKerasPadding = str(attributes[\"padding\"])\n", + " fAttrStrides = attributes[\"strides\"]\n", + " if fKerasPadding == 'valid':\n", + " fAttrAutopad = 'VALID'\n", + " elif fKerasPadding == 'same':\n", + " fAttrAutopad = 'NOTSET'\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - RModel Keras Parser doesn't yet supports Convolution layer with padding \" + fKerasPadding\n", + " )\n", + " pool_atrr.dilations = list(fAttrDilations)\n", + " pool_atrr.strides = list(fAttrStrides)\n", + " pool_atrr.pads = fpads\n", + " pool_atrr.kernel_shape = list(fAttrKernelShape)\n", + " pool_atrr.auto_pad = fAttrAutopad \n", + " pool_atrr.ceil_mode = 0\n", + " pool_atrr.count_include_pad = 0\n", + " pool_atrr.storage_order = 0\n", + " \n", + " #choose pooling type\n", + " if fLayerType.startswith(\"Max\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.MaxPool\n", + " elif fLayerType.startswith(\"AveragePool\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.AveragePool\n", + " elif fLayerType.startswith(\"GlobalAverage\"):\n", + " PoolMode = ROOT.TMVA.Experimental.SOFIE.PoolOpMode.GloabalAveragePool\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator poolong does not yet support pooling type \" + fLayerType\n", + " )\n", + " \n", + " #create operator\n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Pool['float'](PoolMode, pool_atrr, fLayerInputName, fLayerOutputName)\n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator Pooling does not yet support input type \" + fLayerDType\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "04283093", + "metadata": {}, + "outputs": [], + "source": [ + "def MakeKerasRNN(layer): \n", + " \"\"\"\n", + " Create a Keras-compatible RNN (Recurrent Neural Network) layer operation using SOFIE framework.\n", + "\n", + " This function takes a dictionary representing an RNN layer and its attributes and\n", + " constructs a Keras-compatible RNN layer operation using the SOFIE framework.\n", + " RNN layers are used to model sequences, and they maintain internal states that are\n", + " updated through recurrent connections.\n", + "\n", + " Parameters:\n", + " layer (dict): A dictionary containing layer information including input, output,\n", + " layer type, attributes, weights, and data type - must be float32.\n", + "\n", + " Returns:\n", + " ROperator_RNN: A SOFIE framework operator representing the RNN layer operation.\n", + " \"\"\"\n", + " \n", + " # Extract required information from the layer dictionary\n", + " fLayerDType = layer['layerDType']\n", + " finput = layer['layerInput']\n", + " foutput = layer['layerOutput']\n", + " attributes = layer['layerAttributes']\n", + " direction = attributes['direction']\n", + " hidden_size = attributes[\"hidden_size\"]\n", + " layout = int(attributes[\"layout\"])\n", + " nameX = finput[0]\n", + " nameY = foutput[0]\n", + " nameW = layer[\"layerWeight\"][0]\n", + " nameR = layer[\"layerWeight\"][1]\n", + " if len(layer[\"layerWeight\"]) > 2:\n", + " nameB = layer[\"layerWeight\"][2]\n", + " else:\n", + " nameB = \"\"\n", + " \n", + " # Check if the provided activation function is supported\n", + " fPActivation = attributes['activation']\n", + " if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support activation function \" + fPActivation.__name__\n", + " )\n", + " activations = [fPActivation.__name__[0].upper()+fPActivation.__name__[1:]]\n", + "\n", + " #set default values\n", + " activation_alpha = {}\n", + " activation_beta = {}\n", + " clip = 0.0\n", + " nameY_h = \"\"\n", + " nameInitial_h = \"\"\n", + " name_seq_len = \"\"\n", + " \n", + " if TMVA.Experimental.SOFIE.ConvertStringToType(fLayerDType) == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if layer['layerType'] == \"SimpleRNN\":\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_RNN['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h)\n", + " \n", + " elif layer['layerType'] == \"GRU\":\n", + " #an additional activation function is required, given by the user\n", + " activations.insert(0,attributes['recurrent_activation'])\n", + " \n", + " #new variable needed:\n", + " linear_before_reset = 1 #SOLVE - in case when there is only 1 bias it's zero\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_GRU['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, layout, linear_before_reset, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameY, nameY_h)\n", + " \n", + " elif layer['layerType'] == \"LSTM\":\n", + " #an additional activation function is required, the first given by the user, the second set to tanh as default\n", + " fPRecurrentActivation = attributes['recurrent_activation']\n", + " if not fPActivation.__name__ in ['relu', 'sigmoid', 'tanh', 'softsign', 'softplus']: #avoiding functions with parameters\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support recurrent activation function \" + fPActivation.__name__\n", + " )\n", + " fPRecurrentActivationName = fPRecurrentActivation.__name__[0].upper()+fPRecurrentActivation.__name__[1:]\n", + " activations.insert(0,fPRecurrentActivationName)\n", + " activations.insert(2,'Tanh')\n", + " \n", + " #new variables needed:\n", + " input_forget = 0\n", + " nameInitial_c = \"\"\n", + " nameP = \"\" #No peephole connections in keras LSTM model\n", + " nameY_c = \"\"\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_LSTM['float'](activation_alpha, activation_beta, activations, clip, direction, hidden_size, input_forget, layout, nameX, nameW, nameR, nameB, name_seq_len, nameInitial_h, nameInitial_c, nameP, nameY, nameY_h, nameY_c)\n", + " \n", + " else: \n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support operator type \" + layer['layerType']\n", + " ) \n", + " return op\n", + " else:\n", + " raise RuntimeError(\n", + " \"TMVA::SOFIE - Unsupported - Operator RNN does not yet support input type \" + fLayerDType\n", + " ) " + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "f719a8aa", + "metadata": {}, + "outputs": [], + "source": [ + "#Set global dictionaries, mapping layers to corresponding functions that create their ROperator instances\n", + "mapKerasLayer = {\"Activation\": MakeKerasActivation,\n", + " \"Permute\": MakeKerasPermute,\n", + " \"BatchNormalization\": MakeKerasBatchNorm,\n", + " \"Reshape\": MakeKerasReshape,\n", + " \"Flatten\": MakeKerasFlatten,\n", + " \"Concatenate\": MakeKerasConcat,\n", + " \"swish\": MakeKerasSwish,\n", + " \"Add\": MakeKerasBinary,\n", + " \"Subtract\": MakeKerasBinary,\n", + " \"Multiply\": MakeKerasBinary,\n", + " \"Softmax\": MakeKerasSoftmax,\n", + " \"tanh\": MakeKerasTanh,\n", + " \"Identity\": MakeKerasIdentity,\n", + " \"Dropout\": MakeKerasIdentity,\n", + " \"ReLU\": MakeKerasReLU,\n", + " \"relu\": MakeKerasReLU,\n", + " \"selu\": MakeKerasSeLU,\n", + " \"sigmoid\": MakeKerasSigmoid,\n", + " \"LeakyReLU\": MakeKerasLeakyRelu, \n", + " \"softmax\": MakeKerasSoftmax, \n", + " \"MaxPooling2D\": MakeKerasPooling,\n", + " \"SimpleRNN\": MakeKerasRNN,\n", + " \"GRU\": MakeKerasRNN,\n", + " \"LSTM\": MakeKerasRNN,\n", + " }\n", + "\n", + "mapKerasLayerWithActivation = {\"Dense\": MakeKerasDense,\"Conv2D\": MakeKerasConv}" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "69d892db", + "metadata": {}, + "outputs": [], + "source": [ + "def add_layer_into_RModel(rmodel, layer_data):\n", + " \"\"\"\n", + " Add a Keras layer operation to an existing RModel using the SOFIE framework.\n", + "\n", + " This function takes an existing RModel and a dictionary representing a Keras layer\n", + " and its attributes, and adds the corresponding layer operation to the RModel using\n", + " the SOFIE framework. The function supports various types of Keras layers, including\n", + " those with or without activation functions.\n", + "\n", + " Parameters:\n", + " rmodel (RModel): An existing RModel to which the layer operation will be added.\n", + " layer_data (dict): A dictionary containing layer information including type,\n", + " attributes, input, output, and layer data type.\n", + "\n", + " Returns:\n", + " RModel: The updated RModel after adding the layer operation.\n", + "\n", + " Raises exception: If the provided layer type or activation function is not supported.\n", + " \"\"\"\n", + " \n", + " fLayerType = layer_data['layerType']\n", + " \n", + " #reshape and flatten layers don't have weights, but they are needed inside the list of initialized tensor list in the Rmodel\n", + " if fLayerType == \"Reshape\" or fLayerType == \"Flatten\":\n", + " Attributes = layer_data['layerAttributes']\n", + " LayerName = Attributes['_name']\n", + " if fLayerType == \"Reshape\":\n", + " TargetShape = np.asarray(Attributes['target_shape']).astype(\"int\")\n", + " TargetShape = np.insert(TargetShape,0,0)\n", + " else:\n", + " input_shape = layer_data['layerAttributes']['_build_input_shape']\n", + " TargetShape = [ROOT.TMVA.Experimental.SOFIE.ConvertShapeToLength(input_shape[1:])]\n", + " TargetShape = np.asarray(TargetShape)\n", + " \n", + " #since the AddInitializedTensor method in RModel requires unique pointer, we call a helper function in c++ that does the conversion from a regular pointer to unique one in c++\n", + " rmodel.AddInitializedTensorFromPy['long'](LayerName+\"ReshapeAxes\",ROOT.TMVA.Experimental.SOFIE.ETensorType.INT64,[len(TargetShape)], TargetShape)\n", + " \n", + " #These layers only have one operator - excluding the recurrent layers, in which the activation function(s) are included in the recurrent operator\n", + " if fLayerType in mapKerasLayer.keys():\n", + " Attribues = layer_data['layerAttributes']\n", + " inputs = layer_data['layerInput']\n", + " outputs = layer_data['layerOutput']\n", + " LayerName = Attribues['_name']\n", + " \n", + " #Pooling layers in keras by default assume the channels dimension is the last one, \n", + " #while in onnx (and the RModel) it is the first one (other than batch size), \n", + " #so a transpose is needed before and after the pooling. ADD IF CHANNELS LAST\n", + " if fLayerType == 'MaxPooling2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+\"PreTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " inputs[0] = LayerName+\"PreTrans\"\n", + " layer_data[\"layerInput\"] = inputs\n", + " outputs[0] = LayerName+fLayerType\n", + " layer_data['layerOutput'] = outputs\n", + " rmodel.AddOperatorFromPy(mapKerasLayer[fLayerType](layer_data))\n", + " if fLayerType == 'MaxPooling2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+\"PostTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " return rmodel\n", + " \n", + " #These layers require two operators - dense/conv and their activation funciton\n", + " elif fLayerType in mapKerasLayerWithActivation.keys():\n", + " Attribues = layer_data['layerAttributes']\n", + " LayerName = Attribues['_name']\n", + " fPActivation = Attribues['activation']\n", + " LayerActivation = fPActivation.__name__\n", + " if LayerActivation in ['selu', 'sigmoid']:\n", + " rmodel.AddNeededStdLib(\"cmath\")\n", + " \n", + " #if there is an activation function after the layer\n", + " if LayerActivation != 'linear':\n", + " outputs = layer_data['layerOutput']\n", + " inputs = layer_data['layerInput']\n", + " fActivationLayerOutput = outputs[0]\n", + " \n", + " #like pooling, convolutional layer from keras requires transpose before and after to match the onnx format \n", + " # ADD IF CHANNELS LAST\n", + " if fLayerType == 'Conv2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,3,1,2], inputs[0], LayerName+\"PreTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " inputs[0] = LayerName+\"PreTrans\"\n", + " layer_data[\"layerInput\"] = inputs\n", + " outputs[0] = LayerName+fLayerType\n", + " layer_data['layerOutput'] = outputs\n", + " op = mapKerasLayerWithActivation[fLayerType](layer_data)\n", + " rmodel.AddOperatorFromPy(op)\n", + " Activation_layer_input = LayerName+fLayerType\n", + " if fLayerType == 'Conv2D':\n", + " op = ROOT.TMVA.Experimental.SOFIE.ROperator_Transpose('float')([0,2,3,1], LayerName+fLayerType, LayerName+\"PostTrans\")\n", + " rmodel.AddOperatorFromPy(op)\n", + " Activation_layer_input = LayerName + \"PostTrans\"\n", + " \n", + " #Adding the activation function\n", + " inputs[0] = Activation_layer_input\n", + " outputs[0] = fActivationLayerOutput\n", + " layer_data['layerInput'] = inputs\n", + " layer_data['layerOutput'] = outputs\n", + " if not LayerActivation in mapKerasLayer.keys():\n", + " raise Exception(\"TMVA.SOFIE - parsing keras activation function \" + LayerActivation + \" is not yet supported\")\n", + " rmodel.AddOperatorFromPy(mapKerasLayer[LayerActivation](layer_data))\n", + " \n", + " else: #there is a bug here if it is conv and the activation is linear, need to add transpose before and after\n", + " rmodel.AddOperatorFromPy(mapKerasLayerWithActivation[fLayerType](layer_data))\n", + " return rmodel\n", + " else:\n", + " raise Exception(\"TMVA.SOFIE - parsing keras layer \" + fLayerType + \" is not yet supported\")\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "034a9250", + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "def Keras_Parser_into_RModel(filename):\n", + " #Check if file exists\n", + " if not os.path.exists(filename):\n", + " raise RuntimeError(\"Model file {} not found!\".format(filename))\n", + " \n", + " #load model\n", + " keras_model = keras.models.load_model(modelFile)\n", + " keras_model.load_weights(modelFile)\n", + " \n", + " #create new RModel object\n", + " sep = '/'\n", + " if os.name == 'nt':\n", + " sep = '\\\\'\n", + " \n", + " isep = filename.rfind(sep)\n", + " filename_nodir = filename\n", + " if isep != -1:\n", + " filename_nodir = filename[isep+1:]\n", + " \n", + " ttime = time.time()\n", + " gmt_time = time.gmtime(ttime)\n", + " parsetime = time.asctime(gmt_time)\n", + " \n", + " rmodel = ROOT.TMVA.Experimental.SOFIE.RModel.RModel(filename_nodir, parsetime)\n", + " \n", + " #iterate over the layers and add them to the RModel\n", + " for layer in keras_model.layers:\n", + " layer_data={}\n", + " layer_data['layerType']=layer.__class__.__name__\n", + " layer_data['layerAttributes']=layer.__dict__\n", + " layer_data['layerInput']=[x.name for x in layer.input] if isinstance(layer.input,list) else [layer.input.name]\n", + " layer_data['layerOutput']=[x.name for x in layer.output] if isinstance(layer.output,list) else [layer.output.name]\n", + " layer_data['layerDType']=layer.dtype\n", + " layer_data['layerWeight']=[x.name for x in layer.weights]\n", + " \n", + " #for recurrent type layers we need to extract additional unique information\n", + " if layer_data['layerType'] in [\"SimpleRNN\", \"LSTM\", \"GRU\"]:\n", + " layer_data['layerAttributes']['activation'] = layer.activation\n", + " layer_data['layerAttributes']['direction'] = 'backward' if layer.go_backwards else 'forward'\n", + " layer_data['layerAttributes'][\"units\"] = layer.units\n", + " layer_data['layerAttributes'][\"layout\"] = layer.input.shape[0] is None\n", + " layer_data['layerAttributes'][\"hidden_size\"] = layer.output.shape[-1]\n", + " \n", + " #for GRU and LSTM we need to extract an additional activation function\n", + " if layer_data['layerType'] != \"SimpleRNN\": \n", + " layer_data['layerAttributes']['recurrent_activation'] = layer.recurrent_activation\n", + " \n", + " if layer_data['layerInput'][0].startswith('max_pooling2d'):\n", + " pooling_layer_name = layer_data['layerInput'][0].split('/')[0]\n", + " layer_data['layerInput'][0] = pooling_layer_name + 'PostTrans'\n", + " \n", + " fLayerType = layer_data['layerType']\n", + " #Ignoring the input layer for models built using Keras Functional API\n", + " #NEED TO TEST KERAS FUNCTIONAL API\n", + " if(fLayerType == \"InputLayer\"):\n", + " continue;\n", + "\n", + " #Adding any required routines depending on the Layer types for generating inference code.\n", + " elif (fLayerType == \"Dense\"):\n", + " rmodel.AddBlasRoutines({\"Gemm\", \"Gemv\"})\n", + " elif (fLayerType == \"BatchNormalization\"):\n", + " rmodel.AddBlasRoutines({\"Copy\", \"Axpy\"})\n", + " elif (fLayerType == \"Conv1D\" or fLayerType == \"Conv2D\" or fLayerType == \"Conv3D\"):\n", + " rmodel.AddBlasRoutines({\"Gemm\", \"Axpy\"})\n", + " rmodel = add_layer_into_RModel(rmodel, layer_data)\n", + "\n", + " # Extracting model's weights\n", + " weight = []\n", + " for idx in range(len(keras_model.get_weights())):\n", + " weightProp = {}\n", + " weightProp['name'] = keras_model.weights[idx].name\n", + " weightProp['dtype'] = keras_model.get_weights()[idx].dtype.name\n", + " if 'conv' in keras_model.weights[idx].name and keras_model.weights[idx].shape.ndims == 4:\n", + " weightProp['value'] = keras_model.get_weights()[idx].transpose((3, 2, 0, 1)).copy()\n", + " else:\n", + " weightProp['value'] = keras_model.get_weights()[idx]\n", + " weight.append(weightProp)\n", + "\n", + " # Traversing through all the Weight tensors\n", + " for weightIter in range(len(weight)):\n", + " fWeightTensor = weight[weightIter]\n", + " fWeightName = fWeightTensor['name']\n", + " fWeightDType = TMVA.Experimental.SOFIE.ConvertStringToType(fWeightTensor['dtype'])\n", + " fWeightTensorValue = fWeightTensor['value']\n", + " fWeightTensorSize = 1\n", + " fWeightTensorShape = []\n", + " \n", + " #IS IT BATCH SIZE? CHECK ONNX\n", + " if fWeightName.startswith(\"simple_rnn\") or fWeightName.startswith(\"lstm\") or (fWeightName.startswith(\"gru\") and not 'bias' in fWeightName):\n", + " fWeightTensorShape.append(1)\n", + " \n", + " # Building the shape vector and finding the tensor size\n", + " for j in range(len(fWeightTensorValue.shape)):\n", + " fWeightTensorShape.append(fWeightTensorValue.shape[j])\n", + " fWeightTensorSize *= fWeightTensorValue.shape[j]\n", + " \n", + " if fWeightDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " fWeightArray = fWeightTensorValue\n", + " \n", + " #weights conversion format between keras and onnx for lstm: the order of the different elements (input, output, forget, cell) inside the vector/matrix is different\n", + " if fWeightName.startswith(\"lstm\"):\n", + " if 'kernel' in fWeightName:\n", + " units = int(fWeightArray.shape[1]/4)\n", + " print(\"units = {}\".format(units))\n", + " print(fWeightArray)\n", + " W_i = fWeightArray[:, :units].copy()\n", + " W_f = fWeightArray[:, units: units * 2].copy()\n", + " W_c = fWeightArray[:, units * 2: units * 3].copy()\n", + " W_o = fWeightArray[:, units * 3:].copy()\n", + " fWeightArray[:, units: units * 2] = W_o\n", + " fWeightArray[:, units * 2: units * 3] = W_f\n", + " fWeightArray[:, units * 3:] = W_c\n", + " else: #bias\n", + " units = int(fWeightArray.shape[0]/4)\n", + " #print(\"units = {}\".format(units))\n", + " #print(fWeightArray)\n", + " W_i = fWeightArray[:units].copy()\n", + " W_f = fWeightArray[units: units * 2].copy()\n", + " W_c = fWeightArray[units * 2: units * 3].copy()\n", + " W_o = fWeightArray[units * 3:].copy()\n", + " fWeightArray[units: units * 2] = W_o\n", + " fWeightArray[units * 2: units * 3] = W_f\n", + " fWeightArray[units * 3:] = W_c\n", + " \n", + " #need to make specific adjustments for recurrent weights and biases\n", + " if (fWeightName.startswith(\"simple_rnn\") or fWeightName.startswith(\"lstm\") or fWeightName.startswith(\"gru\")):\n", + " #reshaping weight matrices for recurrent layers due to keras-onnx inconsistencies\n", + " if 'kernel' in fWeightName:\n", + " fWeightArray = np.transpose(fWeightArray)\n", + " fWeightTensorShape[1], fWeightTensorShape[2] = fWeightTensorShape[2], fWeightTensorShape[1]\n", + " \n", + " fData = fWeightArray.flatten()\n", + " \n", + " #the recurrent bias and the cell bias can be the same, in which case we need to add a vector of zeros for the recurrent bias\n", + " if 'bias' in fWeightName and len(fData.shape) == 1:\n", + " fWeightTensorShape[1] *= 2\n", + " fRbias = fData.copy()*0\n", + " fData = np.concatenate((fData,fRbias))\n", + "\n", + " else:\n", + " fData = fWeightArray.flatten()\n", + " \n", + " rmodel.AddInitializedTensorFromPy['float'](fWeightName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fWeightTensorShape, fData)\n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data layer type: \" + fWeightDType)\n", + " \n", + " # Extracting input tensor info\n", + " fPInputs = keras_model.input_names\n", + " fPInputShape = keras_model.input_shape if isinstance(keras_model.input_shape, list) else [keras_model.input_shape]\n", + " fPInputDType = []\n", + " for idx in range(len(keras_model.inputs)):\n", + " fPInputDType.append(keras_model.inputs[idx].dtype.__str__()[9:-2])\n", + " \n", + " if len(fPInputShape) == 1:\n", + " fInputName = fPInputs[0]\n", + " fInputDType = TMVA.Experimental.SOFIE.ConvertStringToType(fPInputDType[0])\n", + " if fInputDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fPInputShape[0][0] is None or fPInputShape[0][0] <= 0:\n", + " fPInputShape = list(fPInputShape[0])\n", + " fPInputShape[0] = 1\n", + " rmodel.AddInputTensorInfo(fInputName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fPInputShape)\n", + " rmodel.AddInputTensorName(fInputName) \n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data type \"+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType))\n", + " else:\n", + " #Iterating through multiple input tensors\n", + " for fInputName, fInputDType, fInputShapeTuple in zip(fPInputs, fPInputDType, fPInputShape):\n", + " fInputDType = TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)\n", + " if fInputDType == ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT:\n", + " if fInputShapeTuple[0] is None or fInputShapeTuple[0] <= 0:\n", + " fInputShapeTuple = list(fInputShapeTuple)\n", + " fInputShapeTuple[0] = 1\n", + " print(\"Model does not have a defined batch size. Assuming it is 1 - input shape: \", fInputShapeTuple)\n", + " rmodel.AddInputTensorInfo(fInputName, ROOT.TMVA.Experimental.SOFIE.ETensorType.FLOAT, fInputShapeTuple)\n", + " rmodel.AddInputTensorName(fInputName)\n", + " else:\n", + " raise TypeError(\"Type error: TMVA SOFIE does not yet support data type \"+TMVA.Experimental.SOFIE.ConvertStringToType(fInputDType)) \n", + " \n", + " # Adding OutputTensorInfos\n", + " outputNames = []\n", + " for layerName in keras_model.output_names:\n", + " outputNames.append(keras_model.get_layer(layerName).output.name)\n", + " rmodel.AddOutputTensorNameList(outputNames)\n", + " print(\"created RModel\")\n", + " return rmodel" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "5214c463", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Relutest.h5 in the header Relutest.hxx\n", + "compiling SOFIE model Relutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2023-08-24 10:55:39.354546: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: SSE4.1 SSE4.2\n", + "To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.\n" + ] + } + ], + "source": [ + "modelFile = \"Relutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Relutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ce452c1e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Selutest.h5 in the header Selutest.hxx\n", + "compiling SOFIE model Selutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_SeluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Selutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Selutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "3ef20d50", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Tanhtest.h5 in the header Tanhtest.hxx\n", + "compiling SOFIE model Tanhtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Tanhtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Tanhtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "5cd316a5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from LeakyRelutest.h5 in the header LeakyRelutest.hxx\n", + "compiling SOFIE model LeakyRelutest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_LeakyReluIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LeakyRelutest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LeakyRelutest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "id": "b08328a5", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Sigmoidtest.h5 in the header Sigmoidtest.hxx\n", + "compiling SOFIE model Sigmoidtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Sigmoidtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Sigmoidtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "efb934aa", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Softmaxtest.h5 in the header Softmaxtest.hxx\n", + "compiling SOFIE model Softmaxtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SoftmaxIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Softmaxtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Softmaxtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "1a6b1e3e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from MLPtest.h5 in the header MLPtest.hxx\n", + "compiling SOFIE model MLPtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_SeluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"MLPtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_MLPtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "648b43da", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from BatchNormalizationtest.h5 in the header BatchNormalizationtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE28ROperator_BatchNormalizationIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"BatchNormalizationtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_BatchNormalizationtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "9b05f15f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from CNNtest.h5 in the header CNNtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "kernel shape { 2 , 2 }\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 16 , 16 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshapeReshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 16 16 1\n", + "transpose output shape1 1 16 16\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ConvIfEE\n", + "Elements of the input vector:\n", + "1 1 16 16 \n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2dConv2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 10 16 16\n", + "transpose output shape1 16 16 10\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ReluIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2dRelu0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 16 16 10\n", + "transpose output shape1 10 16 16\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_PoolIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "maxpooling2dMaxPooling2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 10 8 8\n", + "transpose output shape1 8 8 10\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 640 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilizedoW = 16 oH = 16oD = 1\n" + ] + } + ], + "source": [ + "modelFile = \"CNNtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_CNNtest.Session()\n", + "input_test = np.ones((1,256), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "da02eff7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Convtest.h5 in the header Convtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshape2Reshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 2 2 1\n", + "transpose output shape1 1 2 2\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_ConvIfEE\n", + "Elements of the input vector:\n", + "1 1 2 2 \n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "conv2d2Conv2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 1 1 3\n", + "transpose output shape1 1 3 1\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_SigmoidIfEE\n", + "called intermidiatefinished operatorsinitilizedoW = 3 oH = 1oD = 1\n" + ] + } + ], + "source": [ + "modelFile = \"Convtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Convtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "f14a03db", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from MaxPooltest.h5 in the header MaxPooltest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "kernel shape { 2 , 2 }\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "reshape5Reshape0\n", + "transpose fAttrPerm0 3 1 2\n", + "\n", + "transpose input shape1 2 2 1\n", + "transpose output shape1 1 2 2\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_PoolIfEE\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE19ROperator_TransposeIfEE\n", + "maxpooling2d2MaxPooling2D\n", + "transpose fAttrPerm0 2 3 1\n", + "\n", + "transpose input shape1 1 1 1\n", + "transpose output shape1 1 1 1\n", + "called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_GemmIfEE\n", + "called intermidiatecalled intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_TanhIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"MaxPooltest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_MaxPooltest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "febac839", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "created RModel\n", + "Generating inference code for the Keras model from Flattentest.h5 in the header Flattentest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 , 1 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 4 }called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"Flattentest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Flattentest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "0d417b6c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from GRUtest.h5 in the header GRUtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_GRUIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"GRUtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_GRUtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "d182c117", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from GRUtestWithBias.h5 in the header GRUtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_GRUIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"GRUtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_GRUtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "6b57fd8f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "['Sigmoid', 'Tanh', 'Tanh']\n", + "units = 3\n", + "[[ 0.26783913 -0.38688368 0.5643282 0.13166183 -0.07244605 -0.64679545\n", + " -0.19337747 -0.39189202 0.44501936 0.1427446 0.6533164 0.58202267]\n", + " [-0.47489387 0.4988736 -0.18503693 0.19428462 -0.10970682 0.5229168\n", + " 0.18104374 -0.24045089 -0.18928796 -0.07183313 0.30804825 0.03168583]]\n", + "units = 3\n", + "[[ 0.13411438 -0.41057774 0.19926903 0.28373468 0.4937415 0.22720744\n", + " 0.2932028 0.3760723 0.03629123 -0.3049403 0.17142445 0.21617477]\n", + " [-0.24340835 -0.2369854 -0.09374416 0.03825668 -0.2696954 0.08172181\n", + " -0.6508013 0.2134273 -0.2155317 -0.44375497 -0.10091524 0.26883966]\n", + " [-0.41502652 -0.28477955 -0.23169267 -0.1553243 -0.33162177 -0.2608538\n", + " 0.37693858 0.46355975 0.25802857 0.21111429 -0.05007693 0.14213687]]\n", + "created RModel\n", + "Generating inference code for the Keras model from LSTMtestWithBias.h5 in the header LSTMtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_LSTMIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LSTMtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LSTMtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "id": "257eb151", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "['Sigmoid', 'Tanh', 'Tanh']\n", + "units = 3\n", + "[[ 0.19947463 0.09613985 0.51020825 0.40017605 0.61083114 -0.6033211\n", + " -0.24632642 0.02559096 -0.16021916 -0.15469247 -0.41483444 0.28665793]\n", + " [ 0.05244327 0.22595686 -0.52477694 0.5990974 0.32021672 0.3718195\n", + " 0.2150839 0.5866984 -0.24028108 -0.524948 -0.5695894 -0.25812244]]\n", + "units = 3\n", + "[[-0.12887514 -0.15723127 -0.53975976 0.05767192 -0.26313722 -0.11784092\n", + " -0.40979493 0.32428595 0.49482974 0.02542116 -0.22231646 -0.11337657]\n", + " [ 0.46751258 0.00470898 0.23244767 0.29808924 -0.05700614 0.5897542\n", + " -0.33070362 0.01808098 0.13594328 -0.17507811 0.08917926 -0.34739476]\n", + " [-0.50239605 0.10933484 0.01776595 -0.06194825 0.16853844 0.14763957\n", + " -0.3424148 -0.70896864 0.21470068 -0.0947246 -0.01963194 -0.07713211]]\n", + "created RModel\n", + "Generating inference code for the Keras model from LSTMtest.h5 in the header LSTMtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE14ROperator_LSTMIfEE\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"LSTMtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_LSTMtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "id": "bfa7aff2", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from SimpleRNNtestWithBias.h5 in the header SimpleRNNtestWithBias.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_RNNIfEE\n", + "1\t1\n", + "1\t1\n", + "0\n", + "2\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"SimpleRNNtestWithBias.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_SimpleRNNtestWithBias.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "79431739", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1\n", + "created RModel\n", + "Generating inference code for the Keras model from SimpleRNNtest.h5 in the header SimpleRNNtest.hxx\n", + "compiling SOFIE model BatchNormalizationtest\n", + "fraction of equal elements in the results vector = 100.0%\n", + "begin initializebegin input tensorsadded input tensorsfinished weight file\n", + "initialize operator N4TMVA12Experimental5SOFIE17ROperator_ReshapeIfEE\n", + "reshape output shape: { 1 , 2 , 2 }called intermidiate\n", + "initialize operator N4TMVA12Experimental5SOFIE13ROperator_RNNIfEE\n", + "0\t0\n", + "0\t0\n", + "0\n", + "2\n", + "called intermidiatefinished operatorsinitilized" + ] + } + ], + "source": [ + "modelFile = \"SimpleRNNtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_SimpleRNNtest.Session()\n", + "input_test = np.ones((1,4), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) " + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "b7537bad", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'\\nmodelFile = \"Swishtest.h5\"\\nrmodel = Keras_Parser_into_RModel(modelFile)\\ngeneratedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\\nprint(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\\nrmodel.Generate()\\nrmodel.OutputGenerated(generatedHeaderFile)\\nmodelName = modelFile.replace(\".h5\",\"\")\\nprint(\"compiling SOFIE model \", modelName)\\nret = ROOT.gInterpreter.Declare(\\'#include \"\\' + generatedHeaderFile + \\'\"\\')\\nif not ret:\\n print(\"Error compiling header file \", generatedHeaderFile)\\n exit()\\nsession = ROOT.TMVA_SOFIE_Swishtest.Session()\\ninput_test = np.ones((1,7), dtype = \\'float32\\')\\nresult = session.infer(input_test)\\nkeras_model = keras.models.load_model(modelFile)\\nkeras_model.load_weights(modelFile)\\nkeras_result = keras_model(input_test)\\n#We lower the precision because keras provides slightly better precision\\naccuracy = np.mean(np.asarray(result).astype(\\'float16\\') == np.asarray(keras_result).astype(\\'float16\\'))\\nprint(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) \\n'" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"\n", + "modelFile = \"Swishtest.h5\"\n", + "rmodel = Keras_Parser_into_RModel(modelFile)\n", + "generatedHeaderFile = modelFile.replace(\".h5\",\".hxx\")\n", + "print(\"Generating inference code for the Keras model from \",modelFile,\"in the header \", generatedHeaderFile)\n", + "rmodel.Generate()\n", + "rmodel.OutputGenerated(generatedHeaderFile)\n", + "modelName = modelFile.replace(\".h5\",\"\")\n", + "print(\"compiling SOFIE model \", modelName)\n", + "ret = ROOT.gInterpreter.Declare('#include \"' + generatedHeaderFile + '\"')\n", + "if not ret:\n", + " print(\"Error compiling header file \", generatedHeaderFile)\n", + " exit()\n", + "session = ROOT.TMVA_SOFIE_Swishtest.Session()\n", + "input_test = np.ones((1,7), dtype = 'float32')\n", + "result = session.infer(input_test)\n", + "keras_model = keras.models.load_model(modelFile)\n", + "keras_model.load_weights(modelFile)\n", + "keras_result = keras_model(input_test)\n", + "#We lower the precision because keras provides slightly better precision\n", + "accuracy = np.mean(np.asarray(result).astype('float16') == np.asarray(keras_result).astype('float16'))\n", + "print(\"fraction of equal elements in the results vector = {}%\".format(100*accuracy)) \n", + "\"\"\"" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.16" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}