diff --git a/elasticai/creator_plugins/downsampling/c/downsampling_simple_template.h b/elasticai/creator_plugins/downsampling/c/downsampling_simple_template.h new file mode 100644 index 0000000..484519f --- /dev/null +++ b/elasticai/creator_plugins/downsampling/c/downsampling_simple_template.h @@ -0,0 +1,70 @@ +#ifndef DOWNSAMPLING_SIMPLE_TEMPLATE_H +#define DOWNSAMPLING_SIMPLE_TEMPLATE_H +#include +#include +#include + +typedef struct { + uint16_t tap_start; + uint16_t tap_length; + void *output; + void *taps; +} DoSimpleTaps; + +#ifndef DOWNSAMPLING_SIMPLE_OUTPUT_LENGTH +#define DOWNSAMPLING_SIMPLE_OUTPUT_LENGTH(id, factor) \ +size_t get_downsampling_simple_output_length_ ## id(size_t input_length) { \ + return (input_length / (size_t)factor); \ +} +#endif // DOWNSAMPLING_SIMPLE_OUTPUT_LENGTH + +#ifndef DEF_DOWNSAMPLING_SIMPLE +#define DEF_DOWNSAMPLING_SIMPLE(id, input_type) \ +bool calc_next_datum_do_simple_ ## id(input_type data, DoSimpleTaps *tap_memory) { \ + uint16_t do_tap_start = tap_memory->tap_start; \ + uint16_t do_tap_length = tap_memory->tap_length; \ + input_type *do_output = (input_type *) tap_memory->output; \ + input_type *do_taps = (input_type *) tap_memory->taps; \ + do_taps[do_tap_start] = data; \ + \ + input_type sum = 0; \ + for (int16_t pos_tap = 0; pos_tap < do_tap_length; pos_tap++) { \ + sum += do_taps[pos_tap]; \ + } \ + do_tap_start++; \ + tap_memory->tap_start = do_tap_start; \ + if(do_tap_start >= do_tap_length) { \ + tap_memory->tap_start = 0; \ + *do_output = (input_type) (sum / do_tap_length); \ + return true; \ + } \ + return false; \ +} +#endif // DEF_DOWNSAMPLING_SIMPLE + +#ifndef DEF_NEW_DO_SIMPLE_TAP_IMPL +#define DEF_NEW_DO_SIMPLE_TAP_IMPL(id, input_type, dsr) \ +static DEF_DOWNSAMPLING_SIMPLE(id, input_type) \ +bool calc_do_simple_ ## id(input_type data, input_type *out) { \ + static input_type do_taps[dsr] = {0}; \ + static input_type do_output_val = 0; \ + static DoSimpleTaps settings = { \ + .tap_length = dsr, \ + .tap_start = 0, \ + .taps = do_taps, \ + .output = &do_output_val, \ + }; \ + if (calc_next_datum_do_simple_ ## id(data, &(settings))) { \ + *out = *((input_type *) settings.output); \ + return true; \ + } \ + return false; \ +} +#endif // DEF_NEW_DO_SIMPLE_TAP_IMPL + +#ifndef DEF_NEW_DO_SIMPLE_PROTO +#define DEF_NEW_DO_SIMPLE_PROTO(id, input_type) \ +bool calc_do_simple_ ## id(input_type data, input_type *out); \ +#endif // DEF_NEW_DO_SIMPLE_PROTO + +#endif // DOWNSAMPLING_SIMPLE_TEMPLATE_H diff --git a/elasticai/creator_plugins/downsampling/c/downsampling_subsampling_template.h b/elasticai/creator_plugins/downsampling/c/downsampling_subsampling_template.h index 0d5b7d4..692ec4e 100644 --- a/elasticai/creator_plugins/downsampling/c/downsampling_subsampling_template.h +++ b/elasticai/creator_plugins/downsampling/c/downsampling_subsampling_template.h @@ -1,12 +1,13 @@ #ifndef DOWNSAMPLING_SUBSAMPLING_TEMPLATE_H #define DOWNSAMPLING_SUBSAMPLING_TEMPLATE_H +#include #include #ifndef DEF_DOWNSAMPLING_SUBSAMPLING_OUTPUT_LENGTH #define DEF_DOWNSAMPLING_SUBSAMPLING_OUTPUT_LENGTH(id, factor) \ -uint32_t get_downsampling_subsampling_output_length_ ## id(uint32_t input_length) { \ +size_t get_downsampling_subsampling_output_length_ ## id(size_t input_length) { \ return (input_length + factor - 1u) / factor; \ } #endif @@ -15,13 +16,13 @@ uint32_t get_downsampling_subsampling_output_length_ ## id(uint32_t input_length #ifndef DEF_DOWNSAMPLING_SUBSAMPLING_IMPL #define DEF_DOWNSAMPLING_SUBSAMPLING_IMPL(id, input_type, factor) \ void downsample_subsampling_ ## id( \ - const input_type *input, input_type *output, uint32_t input_length, uint8_t augment \ + const input_type *input, input_type *output, size_t input_length, uint8_t augment \ ) { \ - const uint32_t output_length = get_downsampling_subsampling_output_length_ ## id(input_length); \ - const uint32_t offsets = augment ? factor : 1u; \ - for (uint32_t offset = 0u; offset < offsets; ++offset) { \ - for (uint32_t output_index = 0u; output_index < output_length; ++output_index) { \ - const uint32_t input_index = offset + output_index * factor; \ + const size_t output_length = get_downsampling_subsampling_output_length_ ## id(input_length); \ + const size_t offsets = augment ? factor : 1u; \ + for (size_t offset = 0u; offset < offsets; ++offset) { \ + for (size_t output_index = 0u; output_index < output_length; ++output_index) { \ + const size_t input_index = offset + output_index * factor; \ output[offset * output_length + output_index] = \ input_index < input_length ? input[input_index] : (input_type)0; \ } \ @@ -32,9 +33,9 @@ void downsample_subsampling_ ## id( \ #ifndef DEF_DOWNSAMPLING_SUBSAMPLING_PROTO #define DEF_DOWNSAMPLING_SUBSAMPLING_PROTO(id, input_type) \ -uint32_t get_downsampling_subsampling_output_length_ ## id(uint32_t input_length); \ +size_t get_downsampling_subsampling_output_length_ ## id(size_t input_length); \ void downsample_subsampling_ ## id( \ - const input_type *input, input_type *output, uint32_t input_length, uint8_t augment \ + const input_type *input, input_type *output, size_t input_length, uint8_t augment \ ); #endif diff --git a/elasticai/creator_plugins/downsampling/src/c_compile/__init__.py b/elasticai/creator_plugins/downsampling/src/c_compile/__init__.py index f14a2a7..945b4ee 100644 --- a/elasticai/creator_plugins/downsampling/src/c_compile/__init__.py +++ b/elasticai/creator_plugins/downsampling/src/c_compile/__init__.py @@ -1 +1,2 @@ +from .simple import build_downsampling_simple as build_downsampling_simple from .subsampling import build_downsampling_subsampling as build_downsampling_subsampling diff --git a/elasticai/creator_plugins/downsampling/src/c_compile/simple.py b/elasticai/creator_plugins/downsampling/src/c_compile/simple.py new file mode 100644 index 0000000..17d5679 --- /dev/null +++ b/elasticai/creator_plugins/downsampling/src/c_compile/simple.py @@ -0,0 +1,71 @@ +from datetime import datetime +from pathlib import Path + +import elasticai.creator_plugins.downsampling as design_plugin +from elasticai.preprocessor.translation.ir2c import ( + generate_c_files, + get_embedded_datatype, + replace_variables_with_parameters, +) + + +def build_downsampling_simple( + downsampling_ratio: int, + bitwidth: int, + signed: bool, + path2save: Path, + downsampling_id: str = "0", + define_path: str = "src", +) -> None: + """Generate C files for downsampling simple. + Args: + downsampling_ratio: Integer with downsampling ratio for reducing the input sampling rate (SR_out = SR_in / OSR) + bitwidth: Bit width of each sample + signed: Decision if data values are signed [otherwise unsigned] + path2save: Path to save the .h / .c output-files. + downsampling_id: ID appended to function names + define_path: Include path written into the generated #include line. + """ + assert bitwidth in range(2, 65), "Bitwidth must be between 2 and 64" + assert downsampling_ratio > 0, "dsr must be >= 1" + + module_id = downsampling_id.lower() + params = { + "datetime_created": datetime.now().strftime("%m/%d/%Y, %H:%M:%S"), + "path2include": define_path, + "template_name": "downsampling_simple_template.h", + "device_id": module_id.upper(), + "data_type": get_embedded_datatype(bitwidth, signed), + "downsampling_ratio": str(downsampling_ratio), + } + template_c = _generate_downsampling_simple_template() + generate_c_files( + path2save=path2save, + template_name=params["template_name"], + file_name="downsampling_simple", + module_id=module_id, + proto_file=replace_variables_with_parameters(template_c["head"], params), + impl_file=replace_variables_with_parameters(template_c["func"], params), + path2template=Path(design_plugin.__file__).parent / "c", + ) + + +def _generate_downsampling_simple_template() -> dict[str, list[str]]: + header_template = [ + "// --- Generating do_simple", + "// Copyright @ UDE-IES", + "// Code generated on: {$datetime_created}", + "// Params: ID = {$device_id}, type = {$data_type}, dsr = {$downsampling_ratio}", + '#include "{$path2include}/{$template_name}"', + "DEF_NEW_DO_SIMPLE_PROTO({$device_id}, {$data_type})", + ] + implementation_template = [ + "// --- Generating do_simple", + "// Copyright @ UDE-IES", + "// Code generated on: {$datetime_created}", + "// Params: ID = {$device_id}, type = {$data_type}, dsr = {$downsampling_ratio}", + '#include "{$path2include}/{$template_name}"', + "DOWNSAMPLING_SIMPLE_OUTPUT_LENGTH({$device_id}, {$downsampling_ratio})", + "DEF_NEW_DO_SIMPLE_TAP_IMPL({$device_id}, {$data_type}, {$downsampling_ratio})", + ] + return {"head": header_template, "func": implementation_template} diff --git a/elasticai/preprocessor/_basics_test.py b/elasticai/preprocessor/_basics_test.py index 55ec2c4..9ea2c2b 100644 --- a/elasticai/preprocessor/_basics_test.py +++ b/elasticai/preprocessor/_basics_test.py @@ -2,7 +2,7 @@ def test_path_to_project() -> None: - checks = ["elastic-ai", "preprocessor"] + checks = ["elasticai", "preprocessor"] rslt = get_path_to_project() assert rslt.is_dir() @@ -10,7 +10,7 @@ def test_path_to_project() -> None: def test_path_to_project_ref() -> None: - checks = ["elastic-ai", "preprocessor", "test"] + checks = ["elasticai", "preprocessor", "test"] rslt = get_path_to_project(new_folder=checks[2]) assert not rslt.exists() diff --git a/elasticai/preprocessor/downsampling/c_code/downsampling.c b/elasticai/preprocessor/downsampling/c_code/downsampling.c new file mode 100644 index 0000000..7273c3c --- /dev/null +++ b/elasticai/preprocessor/downsampling/c_code/downsampling.c @@ -0,0 +1,245 @@ +#include "downsampling.h" + +#include +#include +#include + +// helper +static int is_power_of_two(int n) +{ + return n >= 2 && (n & (n - 1)) == 0; +} + +// Returns the output sampling rate: SR_in/dsr +float sampling_rate_out(const SettingsDownSampling *s) +{ + return s->sampling_rate / (float)s->dsr; +} + +// do_simple: average every dsr input samples into one output sample. +bool do_simple( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + float *uout) +{ + if (s == NULL || uin == NULL || uout == NULL) return false; + if (s->dsr <= 0) return false; + if (uin_len == 0) return false; + + size_t dsr = s->dsr; + size_t sz = uin_len / (size_t)dsr; + + for (size_t i = 0; i < sz; i++) + { + float sum = 0.0f; + for (size_t j = 0; j < dsr; j++) + { + sum += uin[i * dsr + j]; + } + uout[i] = (sum / (float)dsr); + } + return true; +} + +/* do_cic: CIC-filter downsampling (Cascaded Integrator-Comb) + * with helpers + * + * Internally uses int64_t fixed-point to avoid float accumulation drift. + * The scale factor Q (a power of 2) is chosen so that the integrator state + * never exceeds INT64_MAX: Q = 2^(62 - ceil(N * log2(dsr))).*/ +typedef struct { int64_t yn; int64_t ynm; } Integrator; +typedef struct { int64_t xn; int64_t xnm; } Comb; + +static int64_t integrator_update(Integrator *inte, int64_t inp) +{ + inte->ynm = inte->yn; + inte->yn = inte->ynm + inp; + return inte->yn; +} + +static int64_t comb_update(Comb *c, int64_t inp) +{ + c->xnm = c->xn; + c->xn = inp; + return c->xn - c->xnm; +} + +bool do_cic( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int num_stages, + float *uout) +{ + if (s == NULL || uin == NULL || uout == NULL ) return false; + if (uin_len == 0) return false; + if (s->dsr <= 0) return false; + + size_t dsr = (size_t)s->dsr; + + /* bits consumed by CIC growth: integrators accumulate up to input * dsr^N */ + int growth_bits = (int)ceilf((float)num_stages * log2f((float)dsr)); + int frac_bits = 62 - growth_bits; + if (frac_bits < 1) frac_bits = 1; + int64_t Q = (int64_t)1 << frac_bits; + + /* exact integer gain = dsr^num_stages */ + int64_t gain = 1; + for (int i = 0; i < num_stages; i++) + gain *= (int64_t)dsr; + + Integrator *intes = calloc((size_t)num_stages, sizeof(Integrator)); + Comb *combs = calloc((size_t)num_stages, sizeof(Comb)); + if (!intes || !combs) + { + free(intes); + free(combs); + return false; + } + + size_t out_idx = 0; + for (size_t idx = 0; idx < uin_len; idx++) + { + int64_t z = (int64_t)(uin[idx] * (float)Q); + for (int i = 0; i < num_stages; i++) + z = integrator_update(&intes[i], z); + + if (idx % dsr == 0) + { + for (int c = 0; c < num_stages; c++) + z = comb_update(&combs[c], z); + uout[out_idx++] = (float)z / ((float)Q * (float)gain); + } + } + free(intes); + free(combs); + return true; +} + +// do_decimation_polyphase_order_one: First-order polyphase decimation by factor 2. +// FIR coefficients: [1, 1] +bool do_decimation_polyphase_order_one( + const float *uin, + size_t uin_len, + float *uout) +{ + if (uin == NULL || uout == NULL) return false; + if (uin_len == 0) return false; + + float last_hs = 0.0f; + size_t out_idx = 0; + + for (size_t idx = 0; idx < uin_len; idx++) + { + float val = uin[idx]; + if (idx % 2 == 1) + { + uout[out_idx++] = val + last_hs; + } + last_hs = val; + } + return true; +} + +// do_decimation_polyphase_order_two: Second-order polyphase decimation by factor 2. +// FIR coefficients: [1, 2, 1] +bool do_decimation_polyphase_order_two( + const float *uin, + size_t uin_len, + float *uout) +{ + if (uin == NULL || uout == NULL) return false; + if (uin_len == 0) return false; + + float last_even_prev = 0.0f; + float last_even = 0.0f; + size_t out_idx = 0; + + for (size_t idx = 0; idx < uin_len; idx++) + { + float val = uin[idx]; + if (idx % 2 == 0) + { + last_even_prev = last_even; + last_even = val; + } + else + { + uout[out_idx++] = val + 2.0f * last_even + last_even_prev; + } + } + return true; +} + +// do_decimation_polyphase: Iterative polyphase decimation for any power-of-2 dsr. +// Applies order_one or order_two log2(dsr) times in sequence. +bool do_decimation_polyphase( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + bool take_first_order, + float *uout) +{ + if (s == NULL || uin == NULL || uout == NULL) return false; + if (uin_len == 0) return false; + if (s->dsr <= 1) return false; + if (!is_power_of_two(s->dsr)) return false; + + int steps = 0; + int n = s->dsr; + while (n > 1) + { + n >>= 1; + steps++; + } + if (steps == 0) return false; + + // only one step: write direct in uout + if (steps == 1) + { + if (take_first_order) + do_decimation_polyphase_order_one(uin, uin_len, uout); + else + do_decimation_polyphase_order_two(uin, uin_len, uout); + return true; + } + + // more steps: two ping-pong buffers for internal intermediate results. + // a size of uin_len/2 suffices for all intermediate steps, + // since each stage halves the amount of data. + float *bufs[2] = + { + malloc((uin_len / 2) * sizeof(float)), + malloc((uin_len / 2) * sizeof(float)) + }; + if (!bufs[0] || !bufs[1]) + { + free(bufs[0]); + free(bufs[1]); + return false; + } + + const float *src = uin; + size_t src_size = uin_len; + int cur = 0; + + for (int i = 0; i < steps; i++) + { + /* last step writes direct in uout */ + float *dst = (i == steps - 1) ? uout : bufs[cur]; + + if (take_first_order) + do_decimation_polyphase_order_one(src, src_size, dst); + else + do_decimation_polyphase_order_two(src, src_size, dst); + + src = dst; + src_size = src_size / 2; + cur ^= 1; + } + + free(bufs[0]); + free(bufs[1]); + return true; +} diff --git a/elasticai/preprocessor/downsampling/c_code/downsampling.h b/elasticai/preprocessor/downsampling/c_code/downsampling.h new file mode 100644 index 0000000..ccc44a0 --- /dev/null +++ b/elasticai/preprocessor/downsampling/c_code/downsampling.h @@ -0,0 +1,53 @@ +#ifndef DOWNSAMPLING_H +#define DOWNSAMPLING_H + +#include +#include + +typedef struct { + float sampling_rate; /* Input sampling rate [Hz] */ + int dsr; /* Downsampling ratio */ +} SettingsDownSampling; + +// Returns the output sampling rate: SR_in/dsr +float sampling_rate_out(const SettingsDownSampling *s); + +// do_simple: average every dsr input samples into one output sample. +bool do_simple( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + float *uout); + +// do_cic: CIC-filter downsampling (Cascaded Integrator-Comb) +bool do_cic( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int num_stages, + float *uout); + +// do_decimation_polyphase_order_one: First-order polyphase decimation by factor 2. +// FIR coefficients: [1, 1] +bool do_decimation_polyphase_order_one( + const float *uin, + size_t uin_len, + float *uout); + +// do_decimation_polyphase_order_two: Second-order polyphase decimation by factor 2. +// FIR coefficients: [1, 2, 1] +bool do_decimation_polyphase_order_two( + const float *uin, + size_t uin_len, + float *uout); + +// do_decimation_polyphase: Iterative polyphase decimation for any power-of-2 dsr. +// Applies order_one or order_two log2(dsr) times in sequence. +bool do_decimation_polyphase( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + bool take_first_order, + float *uout); + +#endif /* DOWNSAMPLING_H */ diff --git a/elasticai/preprocessor/downsampling/c_code/downsampling_test.c b/elasticai/preprocessor/downsampling/c_code/downsampling_test.c new file mode 100644 index 0000000..4512d94 --- /dev/null +++ b/elasticai/preprocessor/downsampling/c_code/downsampling_test.c @@ -0,0 +1,473 @@ +// downsampling_test.c +// Compile: +// gcc -std=c99 -Wall -Wextra -o downsampling_test \ +// downsampling_test.c downsampling.c -lm + +#include "downsampling.h" + +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +// minimal test harness +static int g_run = 0; +static int g_pass = 0; +static int g_fail = 0; + +#define CHECK(cond, msg) do { \ + g_run++; \ + printf("%d. check:\t",g_run); \ + if (cond) { \ + g_pass++; \ + printf("%s passed.",msg); \ + } else { \ + g_fail++; \ + fprintf(stderr, "FAIL %-52s (%s:%d)\n", \ + (msg), __FILE__, __LINE__); \ + } \ + printf("\n"); \ +} while (0) + +#define CHECK_FEQ(a, b, eps, msg) \ + CHECK(fabsf((float)(a) - (float)(b)) <= (float)(eps), msg) + +// signal parameters +#define FS 40000.0f +#define DSR 10 +#define N_SAMPLES 40001 // linspace(0, 1, 40001, endpoint=True) +#define SENTINEL 1e38f // value that cannot appear in filter output +#define CIC_STAGES 5 + +static SettingsDownSampling g_sets; +static float s_input[N_SAMPLES]; +static float s_uout [N_SAMPLES + 1]; // +1: room for sentinel boundary check +static float s_ref [N_SAMPLES]; // reference buffer for equivalence tests + +// FIR-equivalent CIC reference + +// Impulse response of a 5-stage CIC filter with DSR=10: +// = 5-fold convolution of the boxcar [1,1,...,1] (length 10), divided by 10^5. +// Length = (DSR-1)*CIC_STAGES + 1 = 46. +// Computed with Python/numpy (float64) and embedded here as the drift-free +// mathematical ground truth. The do_cic() int64 implementation must match +// this reference within float32 output precision (~1e-6). +static const double s_cic_h[46] = { + 1.0000000000000001e-05, 5.0000000000000002e-05, 1.4999999999999999e-04, + 3.5000000000000000e-04, 6.9999999999999999e-04, 1.2600000000000001e-03, + 2.0999999999999999e-03, 3.3000000000000000e-03, 4.9500000000000004e-03, + 7.1500000000000001e-03, 9.9600000000000001e-03, 1.3400000000000000e-02, + 1.7450000000000000e-02, 2.2050000000000000e-02, 2.7100000000000000e-02, + 3.2460000000000003e-02, 3.7950000000000000e-02, 4.3350000000000000e-02, + 4.8399999999999999e-02, 5.2800000000000000e-02, 5.6309999999999999e-02, + 5.8749999999999997e-02, 6.0000000000000000e-02, 6.0000000000000000e-02, + 5.8749999999999997e-02, 5.6309999999999999e-02, 5.2800000000000000e-02, + 4.8399999999999999e-02, 4.3350000000000000e-02, 3.7950000000000000e-02, + 3.2460000000000003e-02, 2.7100000000000000e-02, 2.2050000000000000e-02, + 1.7450000000000000e-02, 1.3400000000000000e-02, 9.9600000000000001e-03, + 7.1500000000000001e-03, 4.9500000000000004e-03, 3.3000000000000000e-03, + 2.0999999999999999e-03, 1.2600000000000001e-03, 6.9999999999999999e-04, + 3.5000000000000000e-04, 1.4999999999999999e-04, 5.0000000000000002e-05, + 1.0000000000000001e-05 +}; +#define CIC_H_LEN 46 + +// Compute the FIR-equivalent CIC output for output index out_idx. +// Negative input indices are treated as 0 (zero initial state). +static double fir_cic_ref(size_t out_idx, const float *inp) +{ + double acc = 0.0; + for (int j = 0; j < CIC_H_LEN; j++) { + int src = (int)(out_idx * (size_t)DSR) - j; + if (src >= 0) acc += s_cic_h[j] * (double)inp[src]; + } + return acc; +} + +// mirrors Python: inp_samp(time) +static void generate_input(void) +{ + const float freqs[2] = { 4.0f, 400.0f }; + for (size_t i = 0; i < N_SAMPLES; i++) { + float t = (float)i / (float)(N_SAMPLES - 1); /* linspace(0,1,40001) */ + float z = 0.0f; + for (int f = 0; f < 2; f++) + z += sinf(2.0f * (float)M_PI * freqs[f] * t); + s_input[i] = 0.75f * z / 2.0f; + } +} + +// mirrors Python: setUp() – called from main() before every test +static void setup(void) +{ + g_sets.sampling_rate = FS; + g_sets.dsr = DSR; + generate_input(); + for (size_t i = 0; i < N_SAMPLES + 1; i++) s_uout[i] = SENTINEL; +} + +// tests +static void test_output_sampling_rate(void) +{ + SettingsDownSampling s = { .sampling_rate = 10000.0f, .dsr = 4 }; + CHECK_FEQ(sampling_rate_out(&s), 2500.0f, 1e-3f, + "sampling_rate_out: 10000 / 4 == 2500"); +} + +static void test_do_simple_size(void) +{ + // n = (40001 / 10) * 10 = 40000 → n_blocks = 4000 + const size_t expected = N_SAMPLES / (size_t)g_sets.dsr; // 4000 + bool result = do_simple(&g_sets, s_input, N_SAMPLES, s_uout); + CHECK(result, "do_simple: return-val is true"); + CHECK(s_uout[expected - 1] != SENTINEL, "do_simple: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "do_simple: no write past expected size"); + CHECK(expected == 4000u, "do_simple: output count is 4000"); +} + +static void test_do_simple_no_uin(void) +{ + bool result = do_simple(&g_sets, NULL, N_SAMPLES, s_uout); + CHECK(!result, "do_simple: no uin throws false"); +} + +static void test_do_simple_no_uout(void) +{ + bool result = do_simple(&g_sets, s_input, N_SAMPLES, NULL); + CHECK(!result, "do_simple: no uout throws false"); +} + +static void test_do_simple_no_settings(void) +{ + bool result = do_simple(NULL, s_input, N_SAMPLES, s_uout); + CHECK(!result, "do_simple: no settings throws false"); +} + +static void test_do_simple_dsr_is_zero(void) +{ + g_sets.dsr = 0; + bool result = do_simple(&g_sets, s_input, N_SAMPLES, s_uout); + CHECK(!result, "do_simple: dsr = 0 throws false"); +} + +static void test_do_simple_dsr_is_negative(void) +{ + g_sets.dsr = -10; + bool result = do_simple(&g_sets, s_input, N_SAMPLES, s_uout); + CHECK(!result, "do_simple: dsr is negative throws false"); +} + +static void test_do_simple_uin_len_is_zero(void) +{ + bool result = do_simple(&g_sets, s_input, 0, s_uout); + CHECK(!result, "do_simple: uin_len = 0 throws false"); +} + +static void test_cic_first_value(void) +{ + /* input[0] = 0.0 (t=0: both sines are 0) + * CIC fires at sample 0 (0 % DSR == 0); all integrators and combs + * start at 0 → z = 0 → output[0] = 0.0 / gain = 0.0 */ + bool result = do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(result, "do_cic: return-val is true"); + CHECK_FEQ(s_uout[0], 0.0f, 1e-7f, "cic: output[0] == 0.0"); +} + +static void test_cic_no_settings(void) +{ + bool result = do_cic(NULL, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(!result, "do_cic: no settings throws false"); +} + +static void test_cic_no_uin(void) +{ + bool result = do_cic(&g_sets, NULL, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(!result, "do_cic: no uin throws false"); +} + +static void test_cic_no_uout(void) +{ + bool result = do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, NULL); + CHECK(!result, "do_cic: no uout throws false"); +} + +static void test_cic_uin_len_is_zero(void) +{ + bool result = do_cic(&g_sets, s_input, 0, CIC_STAGES, s_uout); + CHECK(!result, "do_cic: uin_len = 0 throws false"); +} + +static void test_cic_dsr_is_zero(void) +{ + g_sets.dsr = 0; + bool result = do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(!result, "do_cic: dsr = 0 throws false"); +} + +static void test_cic_dsr_is_negative(void) +{ + g_sets.dsr = -10; + bool result = do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(!result, "do_cic: dsr is negative throws false"); +} + +static void test_cic_size(void) +{ + /* Fires at 0, DSR, 2*DSR, … → count = (N_SAMPLES-1)/DSR + 1 = 4001 */ + const size_t expected = (N_SAMPLES - 1) / (size_t)g_sets.dsr + 1; /* 4001 */ + do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "cic: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "cic: no write past expected size"); + CHECK(expected == 4001u, "cic: output count is 4001"); +} + +// compares every CIC output value against the FIR-equivalent reference. +// The FIR convolution uses double arithmetic and avoids the accumulation +// drift of float64 CIC integrators. Tolerance 1e-5 (actual max diff ~7e-8). */ +static void test_cic_all_values(void) +{ + do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + const size_t n_out = (N_SAMPLES - 1) / (size_t)g_sets.dsr + 1; + int ok = 1; + size_t fail_idx = 0; + double fail_diff = 0.0; + for (size_t i = 0; i < n_out; i++) { + double ref = fir_cic_ref(i, s_input); + double diff = fabs(ref - (double)s_uout[i]); + if (diff > 1e-5) { ok = 0; fail_idx = i; fail_diff = diff; break; } + } + if (!ok) + printf(" (first failure at index %zu, diff=%.3e)\n", + fail_idx, fail_diff); + CHECK(ok, "cic: all output values match FIR reference (tol 1e-5)"); +} + +static void test_polyphase_one_no_uin(void) +{ + bool result = do_decimation_polyphase_order_one(NULL, N_SAMPLES, s_uout); + CHECK(!result, "polyphase_one: no uin throws false"); +} + +static void test_polyphase_one_no_uout(void) +{ + bool result = do_decimation_polyphase_order_one(s_input, N_SAMPLES, NULL); + CHECK(!result, "polyphase_one: no uout throws false"); +} + +static void test_polyphase_one_uin_len_is_zero(void) +{ + bool result = do_decimation_polyphase_order_one(s_input, 0, s_uout); + CHECK(!result, "polyphase_one: uin_len = 0 throws false"); +} + +static void test_polyphase_one_first_value(void) +{ + /* idx=1 (first odd index): + * output[0] = input[1] + last_hs where last_hs initialises to 0 + * = input[1] + 0.0 = input[1] + * Python golden value[0]: 0.023782064257008607 */ + bool result = do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + CHECK(result, "poyphase_one: return-val is true"); + CHECK_FEQ(s_uout[0], s_input[1], 1e-6f, + "polyphase_one: output[0] == input[1] (last_hs init = 0)"); + CHECK_FEQ(s_uout[0], 0.023782f, 1e-4f, + "polyphase_one: output[0] matches Python golden value"); +} + +static void test_polyphase_one_size(void) +{ + /* Odd indices in [0..40000]: count = 40001 / 2 = 20000 (integer div) */ + const size_t expected = N_SAMPLES / 2; /* 20000 */ + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase_one: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase_one: no write past expected size"); + CHECK(expected == 20000u, "polyphase_one: output count is 20000"); +} + +static void test_polyphase_one_finite(void) +{ + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + const size_t n = N_SAMPLES / 2; + bool ok = true; + for (size_t i = 0; i < n; i++) + if (!isfinite(s_uout[i])) { ok = false; break; } + CHECK(ok, "polyphase_one: all output values are finite (not NaN / Inf)"); +} + +static void test_polyphase_two_no_uin(void) +{ + bool result = do_decimation_polyphase_order_two(NULL, N_SAMPLES, s_uout); + CHECK(!result, "polyphase_two: no uin throws false"); +} + +static void test_polyphase_two_no_uout(void) +{ + bool result = do_decimation_polyphase_order_two(s_input, N_SAMPLES, NULL); + CHECK(!result, "polyphase_two: no uout throws false"); +} + +static void test_polyphase_two_uin_len_is_zero(void) +{ + bool result = do_decimation_polyphase_order_two(s_input, 0, s_uout); + CHECK(!result, "polyphase_two: uin_len = 0 throws false"); +} + +static void test_polyphase_two_first_value(void) +{ + /* idx=1 (odd): + * output[0] = input[1] + 2*last_even(=input[0]=0) + last_even_prev(=0) + * = input[1] + * Both extra terms vanish: input[0]=0 (t=0) and last_even_prev inits to 0. + * Same first element as polyphase_one (confirmed by Python). */ + bool result = do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + CHECK(result, "polyphase_two: return-val is true"); + CHECK_FEQ(s_uout[0], s_input[1], 1e-6f, + "polyphase_two: output[0] == input[1] (states init = 0)"); + CHECK_FEQ(s_uout[0], 0.023782f, 1e-4f, + "polyphase_two: output[0] matches Python golden value"); +} + +static void test_polyphase_two_size(void) +{ + const size_t expected = N_SAMPLES / 2; /* 20000 */ + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase_two: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase_two: no write past expected size"); + CHECK(expected == 20000u, "polyphase_two: output count is 20000"); +} + +static void test_polyphase_two_finite(void) +{ + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + const size_t n = N_SAMPLES / 2; + bool ok = true; + for (size_t i = 0; i < n; i++) + if (!isfinite(s_uout[i])) { ok = false; break; } + CHECK(ok, "polyphase_two: all output values are finite (not NaN / Inf)"); +} + +static void test_polyphase_no_settings(void) +{ + bool result = do_decimation_polyphase(NULL, s_input, N_SAMPLES, false, s_uout); + CHECK(!result, "polyphase no settings: throws false"); +} + +static void test_polyphase_no_uin(void) +{ + bool result = do_decimation_polyphase(&g_sets, NULL, N_SAMPLES, false, s_uout); + CHECK(!result, "polyphase no uin: throws false"); +} + +static void test_polyphase_no_uout(void) +{ + bool result = do_decimation_polyphase(&g_sets, s_input, N_SAMPLES, false, NULL); + CHECK(!result, "polyphase no uout: throws false"); +} + +static void test_polyphase_uin_len_is_zero(void) +{ + bool result = do_decimation_polyphase(&g_sets, s_input, 0, false, s_uout); + CHECK(!result, "polyphase uin_len=0: throws false"); +} + +static void test_polyphase_dsr_is_zero(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 0 }; + bool result = do_decimation_polyphase(&s, s_input, N_SAMPLES, false, s_uout); + CHECK(!result, "polyphase dsr=0: throws false"); +} + +static void test_polyphase_dsr_is_one(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 1 }; + bool result = do_decimation_polyphase(&s, s_input, N_SAMPLES, false, s_uout); + CHECK(!result, "polyphase dsr=1: throws false"); +} + +static void test_polyphase_invalid_dsr(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 3 }; + bool result = do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK(!result, "polyphase dsr=3: throws false"); + CHECK(s_uout[0] == SENTINEL, "polyphase dsr=3: no output written (not power of two)"); +} + +static void test_polyphase_dsr2_order_two(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 2 }; + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_ref); + do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK_FEQ(s_uout[0], s_ref[0], 1e-6f, "polyphase dsr=2 order_two: output[0] matches"); + CHECK_FEQ(s_uout[100], s_ref[100], 1e-6f, "polyphase dsr=2 order_two: output[100] matches"); + CHECK_FEQ(s_uout[999], s_ref[999], 1e-6f, "polyphase dsr=2 order_two: output[999] matches"); +} + +static void test_polyphase_dsr2_order_one(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 2 }; + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_ref); + do_decimation_polyphase(&s, s_input, N_SAMPLES, 1, s_uout); + CHECK_FEQ(s_uout[0], s_ref[0], 1e-6f, "polyphase dsr=2 order_one: output[0] matches"); + CHECK_FEQ(s_uout[100], s_ref[100], 1e-6f, "polyphase dsr=2 order_one: output[100] matches"); + CHECK_FEQ(s_uout[999], s_ref[999], 1e-6f, "polyphase dsr=2 order_one: output[999] matches"); +} + +static void test_polyphase_dsr4_size(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 4 }; + const size_t expected = N_SAMPLES / 4; /* 10000 */ + do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase dsr=4: last expected element written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase dsr=4: no write past expected size"); +} + +// main +int main(void) +{ + setup(); test_output_sampling_rate(); + setup(); test_do_simple_size(); + setup(); test_do_simple_no_uin(); + setup(); test_do_simple_no_uout(); + setup(); test_do_simple_no_settings(); + setup(); test_do_simple_dsr_is_zero(); + setup(); test_do_simple_dsr_is_negative(); + setup(); test_do_simple_uin_len_is_zero(); + setup(); test_cic_first_value(); + setup(); test_cic_no_settings(); + setup(); test_cic_no_uin(); + setup(); test_cic_no_uout(); + setup(); test_cic_uin_len_is_zero(); + setup(); test_cic_dsr_is_zero(); + setup(); test_cic_dsr_is_negative(); + setup(); test_cic_size(); + setup(); test_cic_all_values(); + setup(); test_polyphase_one_no_uin(); + setup(); test_polyphase_one_no_uout(); + setup(); test_polyphase_one_uin_len_is_zero(); + setup(); test_polyphase_one_first_value(); + setup(); test_polyphase_one_size(); + setup(); test_polyphase_one_finite(); + setup(); test_polyphase_two_no_uin(); + setup(); test_polyphase_two_no_uout(); + setup(); test_polyphase_two_uin_len_is_zero(); + setup(); test_polyphase_two_first_value(); + setup(); test_polyphase_two_size(); + setup(); test_polyphase_two_finite(); + setup(); test_polyphase_no_settings(); + setup(); test_polyphase_no_uin(); + setup(); test_polyphase_no_uout(); + setup(); test_polyphase_uin_len_is_zero(); + setup(); test_polyphase_dsr_is_zero(); + setup(); test_polyphase_dsr_is_one(); + setup(); test_polyphase_invalid_dsr(); + setup(); test_polyphase_dsr2_order_two(); + setup(); test_polyphase_dsr2_order_one(); + setup(); test_polyphase_dsr4_size(); + + printf("\n%d tests run: %d passed, %d failed\n", + g_run, g_pass, g_fail); + return g_fail > 0 ? 1 : 0; +} diff --git a/elasticai/preprocessor/downsampling/downsampling.py b/elasticai/preprocessor/downsampling/downsampling.py index ab8af6e..11ba54b 100644 --- a/elasticai/preprocessor/downsampling/downsampling.py +++ b/elasticai/preprocessor/downsampling/downsampling.py @@ -1,3 +1,4 @@ +import math from dataclasses import dataclass from pathlib import Path @@ -106,7 +107,12 @@ def do_cic(self, uin: np.ndarray, num_stages: int = 5) -> np.ndarray: return: Numpy array with transient signal output (low sampling rate) """ output_transient = list() - gain = (self._settings.dsr * 1) ** num_stages + dsr = self._settings.dsr + gain = dsr ** num_stages + + growth_bits = math.ceil(num_stages * math.log2(dsr)) + frac_bits = max(62 - growth_bits, 1) + Q = 1 << frac_bits class integrator: def __init__(self): @@ -131,15 +137,14 @@ def update(self, inp): intes = [integrator() for a in range(num_stages)] combs = [comb() for a in range(num_stages)] for s, v in enumerate(uin): - z = v + z = round(v * Q) for i in range(num_stages): z = intes[i].update(z) - if (s % self._settings.dsr) == 0: - for c in range(num_stages): - z = combs[c].update(z) - j = z - output_transient.append(j / gain) + if s % dsr == 0: + for c in combs: + z = c.update(z) + output_transient.append(z / (Q * gain)) return np.array(output_transient) @staticmethod diff --git a/elasticai/preprocessor/downsampling/downsampling_test.py b/elasticai/preprocessor/downsampling/downsampling_test.py index dbb9b0c..bd098de 100644 --- a/elasticai/preprocessor/downsampling/downsampling_test.py +++ b/elasticai/preprocessor/downsampling/downsampling_test.py @@ -11,7 +11,7 @@ def inp_samp(time: np.ndarray) -> np.ndarray: - freq = [4, 20] + freq = [4, 400] z = 0 * time for f in freq: z += np.sin(2 * np.pi * f * time) @@ -21,7 +21,7 @@ def inp_samp(time: np.ndarray) -> np.ndarray: class TestDownSampling(TestCase): def setUp(self): self.sets: SettingsDownSampling = deepcopy(DefaultSettingsDownSampling) - self.sets.sampling_rate = 2e3 + self.sets.sampling_rate = 40e3 time = np.linspace(0, 1, int(self.sets.sampling_rate) + 1, endpoint=True, dtype=float) self.input = 0.75 * inp_samp(time) @@ -35,6 +35,25 @@ def test_do_simple(self): results = DownSampling(self.sets).do_simple(self.input) self.assertEqual(results.size, self.sets.sampling_rate / self.sets.dsr) + @staticmethod + def _fir_cic_ref(uin: np.ndarray, dsr: int, num_stages: int) -> np.ndarray: + h = np.ones(dsr) + for _ in range(num_stages - 1): + h = np.convolve(h, np.ones(dsr)) + h = h / dsr**num_stages + full = np.convolve(uin, h) + n_out = 1 + (len(uin) - 1) // dsr + return full[::dsr][:n_out] + + def test_cic_first_value(self): + results = DownSampling(self.sets).do_cic(self.input, 5) + self.assertAlmostEqual(results[0], 0.0, places=7) + + def test_cic_all_values(self): + ref = self._fir_cic_ref(self.input, self.sets.dsr, 5) + results = DownSampling(self.sets).do_cic(self.input, 5) + np.testing.assert_allclose(results, ref, atol=1e-5, rtol=0) + def test_cic_size(self): check = int(1 + (self.input.size - 1) / self.sets.dsr) results = DownSampling(self.sets).do_cic(self.input, 5) @@ -44,6 +63,20012 @@ def test_cic_type(self): # results = DownSampling(self.sets).do_cic(self.input, 5) self.assertEqual(type(results), np.ndarray) + def test_polyphase_one(self): + check = [ + 0.023782064257008607, + 0.11844605225874726, + 0.21126065268850705, + 0.3007769857646597, + 0.3855981872992274, + 0.46440143805710443, + 0.5359588253821403, + 0.5991567080897775, + 0.6530132792303214, + 0.6966940497475707, + 0.7295250088462661, + 0.7510032535214985, + 0.7608049196160485, + 0.7587902893281459, + 0.7450059946212009, + 0.7196842817864179, + 0.683239348756581, + 0.636260812933759, + 0.5795044125471894, + 0.5138800881864848, + 0.44043763247149736, + 0.36035013417212697, + 0.27489547787418844, + 0.18543619095266084, + 0.09339795567758885, + 0.0002471253295644269, + -0.0925324010909242, + -0.18346258086062617, + -0.27109453717367055, + -0.354031408817768, + -0.430950379533427, + -0.5006235396400318, + -0.5619372509284778, + -0.6139097094244331, + -0.6557064290469683, + -0.6866534019759972, + -0.7062477281816824, + -0.7141655464817684, + -0.7102671420493384, + -0.6945991498225385, + -0.6673938190671891, + -0.6290653506905635, + -0.5802033650690905, + -0.5215636034062321, + -0.4540560092656848, + -0.3787303782412409, + -0.2967598020765916, + -0.20942216833118837, + -0.11808000735348817, + -0.024159004386851944, + 0.07087448431498233, + 0.165536556778551, + 0.25834916730780655, + 0.3478634361242625, + 0.43268249904320133, + 0.5114835368328947, + 0.5830386368406861, + 0.6462341578856305, + 0.7000882930217626, + 0.7437665531967276, + 0.7765949276192308, + 0.7980705132884441, + 0.8078694460513475, + 0.8058520081104867, + 0.7920648314337059, + 0.7667401623167601, + 0.7302921986971026, + 0.6833105579815875, + 0.6265509784043546, + 0.5609234005600382, + 0.4874776170736269, + 0.40738671672027654, + 0.3219285840911736, + 0.23246574656678748, + 0.1404238864227689, + 0.04726935694543381, + -0.04551394285888623, + -0.13644797026098318, + -0.22408384844891144, + -0.3070247162041856, + -0.38394775726100505, + -0.453625061932328, + -0.5149429920025029, + -0.5669197434905362, + -0.6087208303087198, + -0.6396722446300708, + -0.659271086417738, + -0.6671934944823359, + -0.6632997539896992, + -0.6476364998706095, + -0.6204359813834042, + -0.5821123994277589, + -0.5332553743723847, + -0.47462064741291027, + -0.40711816210508256, + -0.33179771403462555, + -0.24983239493704584, + -0.16250009236349405, + -0.07116333665400695, + 0.022752186956588264, + 0.11778012222320647, + 0.21243656718115733, + 0.3052434761432743, + 0.3947519693400775, + 0.4795651825959707, + 0.5583602966884603, + 0.629909398974246, + 0.6930988482818544, + 0.7469468376749064, + 0.7906188781107537, + 0.8234409588079232, + 0.8449101767755249, + 0.8547026678705949, + 0.852678714305851, + 0.8388849480594261, + 0.8135536154374816, + 0.7770989143879925, + 0.7301104623284531, + 0.673343997503759, + 0.607709460519416, + 0.534256644011405, + 0.4541586367659849, + 0.3686933233855675, + 0.2792232312619598, + 0.18717404268226848, + 0.09401211094438461, + 0.0012213350663257197, + -0.08972024221089438, + -0.17736374406340405, + -0.26031230926068394, + -0.33724312152477565, + -0.40692827115636354, + -0.4682541199274102, + -0.520238863844418, + -0.5620480168070564, + -0.5930075709756062, + -0.6126146263003615, + -0.6205453215789658, + -0.6166599419641681, + -0.6010051223735466, + -0.5738131120521204, + -0.535498111886127, + -0.4866497422307286, + -0.42802374426788503, + -0.360530061539557, + -0.2852184896175721, + -0.20326212022341567, + -0.11593884089410686, + -0.024611181955436837, + 0.06929517137213739, + 0.16431386285800936, + 0.2589609905520818, + 0.3517585087819081, + 0.44125753779283505, + 0.5260612134242103, + 0.6048467164686051, + 0.6763861342978937, + 0.7395658257558941, + 0.7934039839216391, + 0.8370661197680047, + 0.869878222529157, + 0.8913373892299645, + 0.901119755743334, + 0.8990856042979724, + 0.885281566888116, + 0.8599398898361458, + 0.8234747711063726, + 0.7764758281327406, + 0.719698799176713, + 0.6540536248604782, + 0.5805900978368134, + 0.5004813069088914, + 0.41500513669615313, + 0.32552411460754993, + 0.23346392294744844, + 0.14029091503111504, + 0.04748898989405676, + -0.043463809705102496, + -0.13111860692477334, + -0.21407854051659714, + -0.29102079418466553, + -0.3607174582115942, + -0.4220548943511645, + -0.47405129859157724, + -0.5158721848140906, + -0.5468435451604571, + -0.5664624795623264, + -0.5744051267985848, + -0.5705317720031063, + -0.554889050074481, + -0.5277092102386236, + -0.48940645336255356, + -0.44057039978209833, + -0.3819567906597684, + -0.3144755695179635, + -0.23917653190882895, + -0.15723276953406076, + -0.06992216991076552, + 0.02139273665528391, + 0.115286264963772, + 0.21029205880434199, + 0.3049262162472666, + 0.39771069164058226, + 0.4871966052502268, + 0.5719870929362616, + 0.6507593355120834, + 0.7222854203705058, + 0.7854517063764033, + 0.8392763866299772, + 0.8829249721253851, + 0.9157234521181932, + 0.9371689236547807, + 0.9469375226296819, + 0.9448895312933439, + 0.9310715816618584, + 0.9057159200795759, + 0.869236744532889, + 0.8222236724779421, + 0.7654324421985096, + 0.6997729943392045, + 0.6262951215753432, + 0.5461719127327569, + 0.46068125245364666, + 0.3711856681698524, + 0.2791108422087355, + 0.18592312790866783, + 0.0931064243283852, + 0.002138774249844707, + -0.0855309454619132, + -0.16850587353496288, + -0.2454631936497177, + -0.31517499606500454, + -0.3765276425106945, + -0.4285393289509744, + -0.4703755692429664, + -0.5013623555041771, + -0.5209967876418979, + -0.5289550044105413, + -0.5250972909193946, + -0.5094702820423478, + -0.4823062269805033, + -0.4440193265759549, + -0.3951992011394884, + -0.33660159180846444, + -0.2691364420800144, + -0.1938535474809045, + -0.11192599968734082, + -0.02463168619082637, + 0.06666686272859143, + 0.16054396189641912, + 0.25553325512825054, + 0.3501508405204109, + 0.44291867244710503, + 0.5323878712005583, + 0.6171615726672257, + 0.695916957687008, + 0.7674261136793447, + 0.8305753995358381, + 0.8843830083835366, + 0.9280144512435582, + 0.9607957173985365, + 0.9822239039220353, + 0.9919751467358842, + 0.989909728117938, + 0.9760742801118087, + 0.9507010490894788, + 0.9142042330650867, + 0.8671734495226295, + 0.8103644367738547, + 0.744687135491455, + 0.6711913383789406, + 0.5910501342904423, + 0.5055414078965881, + 0.41602768665773626, + 0.3239346529298963, + 0.23072866008019166, + 0.13789360719621965, + 0.04690753708891468, + -0.04078067334759376, + -0.12377416281218309, + -0.20075011495595457, + -0.2704806200083116, + -0.33185203966959487, + -0.38388256987434044, + -0.425737724449918, + -0.4567434954839627, + -0.47639698285378795, + -0.4843743252837148, + -0.4805358078528294, + -0.464928065404709, + -0.4377833471100304, + -0.39951585378035237, + -0.35071520569581516, + -0.2921371439630187, + -0.22469161204823013, + -0.14942840544723596, + -0.0675206158051477, + 0.01975386941772672, + 0.11103251997265239, + 0.2048896507165634, + 0.29985890549657845, + 0.3944563824406715, + 0.4872040359548001, + 0.5766529863630541, + 0.6614063695838619, + 0.7401413664892127, + 0.8116300645307378, + 0.8747588226323513, + 0.928545833953512, + 0.9721566095478653, + 1.0049171387306832, + 1.0263245186082757, + 1.0360548851353273, + 1.0339685206226594, + 1.0201120571469624, + 0.9947177411134023, + 0.9581997705694156, + 0.911147763032407, + 0.8543174568476357, + 0.7886187927214195, + 0.7151015633910092, + 0.6349388577443719, + 0.5494085604861009, + 0.4598731991106033, + 0.3677584560080764, + 0.2745306845799074, + 0.18167378394810074, + 0.09066579695808635, + 0.002955600538600743, + -0.08005994397450714, + -0.15705802019752016, + -0.22681071832489771, + -0.2882044000219354, + -0.34025726118801936, + -0.3821348156152489, + -0.4131630553558936, + -0.4328390802517813, + -0.4408390289916442, + -0.43702318661886985, + -0.42143818794122945, + -0.39431628209348146, + -0.35607166985116645, + -0.3072939714582852, + -0.24873892798520342, + -0.18131648286183477, + -0.10607643154750784, + -0.024191865650777987, + 0.06305932740473452, + 0.15431461740706665, + 0.24814831925004177, + 0.3430940768177866, + 0.4376679882753619, + 0.5303920080659593, + 0.6198172565509714, + 0.704546869686268, + 0.7832580283813646, + 0.8547228201255452, + 0.9178276038804677, + 0.9715905728434546, + 1.0151772381061162, + 1.0479135890217985, + 1.0692967227349892, + 1.079002775238665, + 1.0768920288820412, + 1.0630111157803075, + 1.0375922823772434, + 1.0010497267589995, + 0.9539730664818024, + 0.897118039929846, + 0.8313945878484802, + 0.757852503014099, + 0.6776648743539283, + 0.5921095866119026, + 0.5025491673219113, + 0.41040929891369893, + 0.3171563348283575, + 0.22427417422764795, + 0.13324085999690213, + 0.045505269104851774, + -0.03753573707256485, + -0.11455934211140005, + -0.18433763616582408, + -0.24575698086069664, + -0.297835572054886, + -0.33973892349985946, + -0.37079302720714663, + -0.39049498297773544, + -0.3985209294594094, + -0.3947311516545016, + -0.3791722843296229, + -0.3520765765782695, + -0.31385822913460376, + -0.26510686220116486, + -0.20657821680672217, + -0.13918223633951365, + -0.06396871621707512, + 0.01788925199394066, + 0.10511378091190544, + 0.19634234036697001, + 0.290149245295169, + 0.38506813962293185, + 0.4796151215577693, + 0.5723121455853588, + 0.6617103321097618, + 0.7464128171295548, + 0.8250967815971066, + 0.8965343130446365, + 0.9596117704768553, + 1.0133473471342382, + 1.056906554151646, + 1.0896153809257905, + 1.1109709246446222, + 1.1206493213446849, + 1.1185108534188668, + 1.1046021530261356, + 1.0791554666541479, + 1.0425849924330395, + 0.9954803479631253, + 0.9385972716727826, + 0.8728457043516722, + 0.7992754388205658, + 0.719059564051207, + 0.6334759648321227, + 0.5438871687419204, + 0.4517188582551477, + 0.35843738685781057, + 0.2655266537566947, + 0.174464701882244, + 0.08670040824841299, + 0.003630634276477536, + -0.07342180356421173, + -0.14322899538226158, + -0.2046773027569282, + -0.25678492150132387, + -0.29871736532108534, + -0.32980062618180117, + -0.3495318038384137, + -0.35758703689256327, + -0.3538266103003347, + -0.3382971587819887, + -0.31123093138457114, + -0.27304212879569245, + -0.2243203711712279, + -0.165821399493207, + -0.09845515710298763, + -0.023271439371159497, + 0.05855666218269111, + 0.14575126022410403, + 0.2369498246304799, + 0.3307266703852348, + 0.4256154414622634, + 0.5201322361166344, + 0.6127990088817163, + 0.7021668802093128, + 0.7868389861458978, + 0.8654925076917983, + 0.9368995324273153, + 0.9999464194053285, + 1.0536513619145875, + 1.0971798711383365, + 1.1298579365217503, + 1.1511826553013678, + 1.1608301635624025, + 1.158660743746523, + 1.1447210280615727, + 1.1192432630441873, + 1.082641646873578, + 1.0355057971992367, + 0.9785914524988256, + 0.9128085536113637, + 0.839206893407128, + 0.7589595609074071, + 0.673344440950434, + 0.5837240611645621, + 0.4915241040742393, + 0.39821092321543305, + 0.3052684178450026, + 0.21417463094357236, + 0.12637843957536107, + 0.04327670521201551, + -0.03380775562663464, + -0.10364703299864447, + -0.16512748843258135, + -0.21726731769080915, + -0.2592320344280922, + -0.2903476305590553, + -0.310111205787583, + -0.31819889866415035, + -0.3144709940935867, + -0.29897412674479684, + -0.2719405456133679, + -0.23378445133536258, + -0.1850954640150016, + -0.1266293245825631, + -0.05929597632756918, + 0.01585478543134569, + 0.09764986922663313, + 0.18481138777596817, + 0.2759768110090084, + 0.3697204539614709, + 0.4645759606597136, + 0.559059429411313, + 0.6516928148022741, + 0.7410272373371243, + 0.8256658331151494, + 0.9042857831896036, + 0.9756591751937932, + 1.0386723682337144, + 1.0923435556513241, + 1.1358382486831629, + 1.1684824368278193, + 1.1897732173753148, + 1.1993867264644664, + 1.1971832465906271, + 1.1832094100154265, + 1.1576974633293804, + 1.1210616047656832, + 1.0738914520278928, + 1.0169427436478435, + 0.9511254205188256, + 0.8774892755654631, + 0.797207397863517, + 0.7115576723057493, + 0.6219026265751946, + 0.5296679432510127, + 0.43631997592401905, + 0.3433426239060078, + 0.2522139302326232, + 0.1643827720232166, + 0.08124601080464497, + 0.004126463152052312, + -0.06574796093720735, + -0.12726362293620896, + -0.17943871855170385, + -0.22143876138278232, + -0.25258974328827544, + -0.27238876391618955, + -0.28051196176103, + -0.27681962167155627, + -0.26135837826051067, + -0.234360480467232, + -0.19624012887142323, + -0.14758694352087312, + -0.08915666528931761, + -0.021859237409646667, + 0.05325554485621635, + 0.13501459009755673, + 0.22214001108894554, + 0.31326927781704306, + 0.4069767053746778, + 0.5017959378453757, + 0.596243073594014, + 0.6888400672639591, + 0.7781380394172136, + 0.8627401262106213, + 0.9413235087550889, + 1.012660274741667, + 1.0756367833341907, + 1.1292712279325443, + 1.172729119831295, + 1.205336448587139, + 1.2265903115483114, + 1.2361668449119192, + 1.23392633123171, + 1.2199154028277932, + 1.1943663063492598, + 1.1576932400879612, + 1.1104858218062268, + 1.05349979009472, + 0.9876450859056816, + 0.9139715022227617, + 0.8336521281808431, + 0.7479648487319039, + 0.6582721916182614, + 0.5659998394785, + 0.4726141459628927, + 0.37959901044282457, + 0.28843247601360017, + 0.20056341985433124, + 0.1173887035517059, + 0.04023114374082386, + -0.02968134952095275, + -0.0912351376465627, + -0.143448416282575, + -0.18548669896775985, + -0.21667597750057999, + -0.2365133514685579, + -0.24467495930563443, + -0.24102108579991613, + -0.225598365503401, + -0.19863904729459014, + -0.1605573316922752, + -0.1119428386832195, + -0.053551309080067985, + 0.013707313945477875, + 0.08878323519278887, + 0.1705033633124871, + 0.25758981114063084, + 0.34868004872540526, + 0.44234839122127645, + 0.5371284827734959, + 0.6315364218087338, + 0.7240941630322749, + 0.8133528270680858, + 0.8979155501351033, + 0.9764595134063756, + 1.04775680463522, + 1.1106937830477908, + 1.1642886421064103, + 1.2077068931681447, + 1.2402745258522985, + 1.2614886375697836, + 1.2710253645804874, + 1.2687449895010123, + 1.2546941447144158, + 1.229105076932822, + 1.192391984511205, + 1.1451444852750903, + 1.0881183178784553, + 1.0222234233368974, + 0.9485095946975519, + 0.8681499211588364, + 0.7824222877363807, + 0.6926892222362274, + 0.6003764073607503, + 0.5069501968241501, + 0.41389449006177803, + 0.32268733023299545, + 0.2347775945810785, + 0.15156214475696295, + 0.07436379746005312, + 0.004410462812138027, + -0.05718422053524286, + -0.10943844816406566, + -0.15151773354844805, + -0.18274806842209618, + -0.20262655230770055, + -0.21082932357428677, + -0.20721666694495577, + -0.1918352169066197, + -0.16491722227260952, + -0.12687688349645923, + -0.07830382049959293, + -0.01995377402922839, + 0.0472633128084296, + 0.12229764487834474, + 0.20397613089683747, + 0.2910208837656979, + 0.382069373598957, + 0.4756959156170216, + 0.570434154031126, + 0.664800187334069, + 0.7573159702972785, + 0.8465326236109891, + 0.9310532835604746, + 1.0095551313852198, + 1.0808102549050338, + 1.143705013412668, + 1.197257600437103, + 1.2406335274021787, + 1.2731587839940168, + 1.2943304676904568, + 1.3038247148183815, + 1.3015018080614764, + 1.2874083798699618, + 1.2617766770232097, + 1.2250208979435167, + 1.1777306605238185, + 1.120661703485577, + 1.0547239679119724, + 0.9809672469177804, + 0.9005646297691552, + 0.8147940015495353, + 0.7250178901328731, + 0.6326619782895027, + 0.5391926198016913, + 0.4460937141729052, + 0.3548433046307494, + 0.2668902684867915, + 0.1836314674603388, + 0.10638971831924499, + 0.03639293125384645, + -0.02524525501569362, + -0.07754303600266557, + -0.1196659251124068, + -0.15093991400976503, + -0.1708621021485009, + -0.1791086278286179, + -0.17553977570412704, + -0.16020218019276738, + -0.13332809003861423, + -0.09533170562587094, + -0.046802646806557976, + 0.011503345741598878, + 0.07867632898196988, + 0.15366650784915914, + 0.23530079112920538, + 0.32230129179369515, + 0.4133054800265694, + 0.5068876711181528, + 0.6015815093497577, + 0.6959030932842651, + 0.7883743777632944, + 0.877546483547381, + 0.9620225469921091, + 1.0404797494074116, + 1.1116901786835822, + 1.174540194183962, + 1.2280479895081866, + 1.2713790761508186, + 1.3038594438687978, + 1.3249861902108466, + 1.3344354515748098, + 1.332067510715412, + 1.3179290001539887, + 1.2922521667410987, + 1.2554512089703143, + 1.208115744805908, + 1.1510015130407671, + 1.085018454829555, + 1.0112163633586246, + 0.9307683279657861, + 0.8449522338061914, + 0.7551306088255791, + 0.6627291358661761, + 0.56921416878217, + 0.4760696071490869, + 0.3847734942665968, + 0.29677470751844925, + 0.21347010869618982, + 0.13618251464001166, + 0.06613983561264442, + 0.004455710406698052, + -0.04788805641854846, + -0.09005697819582975, + -0.12137704651729421, + -0.14134536076393767, + -0.14963805916292916, + -0.14611542629536228, + -0.1308240965059894, + -0.10399631846582964, + -0.0660462924859492, + -0.01756363834516124, + 0.040695903352079205, + 0.10782238964250396, + 0.18276602553413882, + 0.2643537198865201, + 0.3513075857448048, + 0.4422650933665714, + 0.5358005581158807, + 0.6304476243478004, + 0.724722390699087, + 0.8171468120852967, + 0.9062720093409626, + 0.9907011188957529, + 1.0691113221337196, + 1.1402747070194064, + 1.2030776329904234, + 1.2565382937207796, + 1.2998222007794635, + 1.3322553439979137, + 1.353334820999434, + 1.362736768256511, + 1.3603214685985843, + 1.346135554621776, + 1.3204112732515045, + 1.2835628230562595, + 1.2361798220753233, + 1.1790180091766373, + 1.112987325590016, + 1.039137564577008, + 0.9586418155506995, + 0.8727779637416029, + 0.7829085371708584, + 0.6904592187561769, + 0.5968963624273173, + 0.5037038678354131, + 0.41235977835583726, + 0.3243129714480811, + 0.24096030897955495, + 0.1636246078663215, + 0.09353377844708752, + 0.03180145959049979, + -0.020590544068063682, + -0.06280774578514924, + -0.0941761370766828, + -0.1141928172473421, + -0.12253392444792166, + -0.11905974318307043, + -0.1038169077210308, + -0.07703766665624157, + -0.03913622022312288, + 0.009297811876223597, + 0.06750868911413556, + 0.13458646860417323, + 0.20948135543129492, + 0.2910202585319972, + 0.37792529102851724, + 0.46883392325551987, + 0.5623204706542508, + 0.6569185776570357, + 0.7511443429779388, + 0.8435197216099012, + 0.9325958344648902, + 1.0169758180500814, + 1.0953368538271315, + 1.1664510298381903, + 1.2292047055986073, + 1.2826160748601425, + 1.3258506492696245, + 1.3582344187364066, + 1.3792644809617538, + 1.3886169724961839, + 1.386152176247235, + 1.371916724889191, + 1.346142865425698, + 1.3092447965035343, + 1.261812136240338, + 1.2046006235824693, + 1.138520199838225, + 1.0646206583477011, + 0.9840750886025973, + 0.8981613759120814, + 0.8082420483760597, + 0.7157427889910241, + 0.622129951765607, + 0.5288874364298477, + 0.4374932864381351, + 0.34939637932900736, + 0.26599357704897486, + 0.18860769659329701, + 0.11846664837990341, + 0.05668407135675527, + 0.004241770238596676, + -0.03802576815170909, + -0.06944453525057978, + -0.08951163028315663, + -0.09790319132061402, + -0.09447950278793114, + -0.07928719887361302, + -0.052558528092306586, + -0.014707690598567691, + 0.03367569398541405, + 0.09183588521195094, + 0.15886294027466025, + 0.2337070643385878, + 0.3151951664203997, + 0.4020493597225353, + 0.49290711465997117, + 0.586342746754275, + 0.6808899005181799, + 0.7750646747462124, + 0.8673890245118351, + 0.9564140708075972, + 1.0407429502213152, + 1.119052844295342, + 1.1901158411526036, + 1.2528183003892441, + 1.3061784158379146, + 1.3493616992263837, + 1.3816941405449978, + 1.4026728375760698, + 1.411973926951234, + 1.4094576916592014, + 1.3951707644554858, + 1.3693453924250132, + 1.3323957742959154, + 1.2849115282672336, + 1.227648393366785, + 1.161516310984386, + 1.087565074541704, + 1.006967773612082, + 0.9210022935863831, + 0.8310311626462317, + 0.7384800638699599, + 0.6448153513480356, + 0.5515209248924422, + 0.4600748280395124, + 0.3719259384098359, + 0.28847111803200587, + 0.2110331839834251, + 0.14084004676422315, + 0.07900534540461657, + 0.026510884701660825, + -0.015808848439411355, + -0.047279845372602436, + -0.06739920524056439, + -0.07584306603194774, + -0.07247171208914027, + -0.057331777518002544, + -0.030655510750479564, + 0.007142888141614387, + 0.05547379961891123, + 0.11358148331657646, + 0.18055599651115098, + 0.2553475444506431, + 0.33678303623474287, + 0.4235845851489827, + 0.5143896616914521, + 0.6077725814669207, + 0.7022669890713613, + 0.7963889833825784, + 0.888660519557402, + 0.9776327186717557, + 1.061908717396944, + 1.1401656973587952, + 1.2111757467638005, + 1.273825225291724, + 1.3271323268588755, + 1.370262563276742, + 1.4025419246194315, + 1.423467508753084, + 1.4327154523932062, + 1.4301460386124316, + 1.4158059002502479, + 1.3899272844756152, + 1.3529243901007388, + 1.3053868354087923, + 1.24807035951177, + 1.1818849038837245, + 1.1078802620306196, + 1.0272295236101079, + 0.941210574097455, + 0.8511859417587164, + 0.75858130975671, + 0.6648630322664401, + 0.5715150091844713, + 0.4800152841317882, + 0.39181273481365164, + 0.3083042233433905, + 0.23081256688320756, + 0.1605656760180496, + 0.0986771898630367, + 0.04612891330013415, + 0.003755333319576809, + -0.02776954134761117, + -0.047942809759006486, + -0.05644060981812575, + -0.0531232257821809, + -0.03803729167180661, + -0.011415055833677273, + 0.026329281745719996, + 0.07460610161238633, + 0.13265966348691227, + 0.1995800247312826, + 0.2743173906790403, + 0.3556986705154288, + 0.4424459776115944, + 0.5331967825512769, + 0.626525401024937, + 0.7209654777143075, + 0.8150331115829992, + 0.9072502578736686, + 0.9961680377481391, + 1.0803895879636305, + 1.1585920902319822, + 1.2295476328456938, + 1.2921425755706075, + 1.3453951124091534, + 1.3884707552589821, + 1.4206954942804157, + 1.441566427425845, + 1.4507596914970824, + 1.4481355696531057, + 1.4337406948197953, + 1.4078073142525462, + 1.3707496268500514, + 1.3231572509819944, + 1.265785925846955, + 1.199545593005603, + 1.1254860460505371, + 1.0447803747261462, + 0.9587064645944052, + 0.8686268440081891, + 0.775967196217145, + 0.6821938754831498, + 0.5887907817896783, + 0.49723595884468946, + 0.40897828444046125, + 0.3254146207773623, + 0.24786778510467916, + 0.17756568809450807, + 0.11562196894913954, + 0.06301843263777127, + 0.020589566237883272, + -0.010990621432184683, + -0.031219229342664453, + -0.03977239530968435, + -0.03651040350302562, + -0.021479887855851906, + 0.005086903372676102, + 0.04277577028362879, + 0.09099709351059831, + 0.14899513286180693, + 0.21585994578693773, + 0.29054173770722247, + 0.37186741789569744, + 0.4585590998112813, + 0.5492542541255524, + 0.6425271966168824, + 0.7369115720548874, + 0.8309234794911646, + 0.9230848742563494, + 1.0119468776003195, + 1.0961126263683734, + 1.174259302360455, + 1.2451589939572343, + 1.3076980610127489, + 1.360894697617654, + 1.4039144157578853, + 1.4360832056820716, + 1.4568981654309607, + 1.4660354318947475, + 1.4633552883208423, + 1.4489043677235913, + 1.42291491744689, + 1.3858011364779739, + 1.3381526432751123, + 1.2807251771254982, + 1.2144286796784476, + 1.1403129446152616, + 1.0595510617690436, + 0.9734209167905743, + 0.883285038121482, + 0.7905691091002617, + 0.6967394840776764, + 0.6032800631261346, + 0.5116688900425224, + 0.42335484270808166, + 0.33973478341222807, + 0.26213152949330804, + 0.191772991712496, + 0.12977280936121838, + 0.07711278749782305, + 0.034627413289008396, + 0.0029906956423306763, + -0.017294464323166003, + -0.025904204334305098, + -0.022698808471533063, + -0.0077249105786421635, + 0.01878524117462131, + 0.05641744697876008, + 0.10458208755684739, + 0.16252342280661347, + 0.22933151026728588, + 0.3039565554496821, + 0.38522546771642263, + 0.4718603606160967, + 0.5624987049099512, + 0.6557148164660591, + 0.7500423401438111, + 0.8439973750845495, + 0.936101876708735, + 1.0249069663560624, + 1.109015780961744, + 1.1871055024156105, + 1.2579482191882707, + 1.320430291223723, + 1.3735699127026444, + 1.4165325957009989, + 1.448644330557479, + 1.469402215402927, + 1.4784823872176744, + 1.475745129339288, + 1.461237074872304, + 1.435190471250842, + 1.3980195175523924, + 1.3503138323255022, + 1.2928291549476876, + 1.2264754271585963, + 1.1523024427299142, + 1.0714832915851558, + 0.9852958594655077, + 0.8951026749030908, + 0.8023294213268843, + 0.7084424531781855, + 0.614925670619934, + 0.5232571175395975, + 0.43488567190905036, + 0.3512081961083373, + 0.2735475075664816, + 0.20313151713533695, + 0.1410738641970577, + 0.08835635390076055, + 0.045813473503918054, + 0.01411923200489977, + -0.00622346938641985, + -0.014890768305994742, + -0.011742948743376655, + 0.0031733555485650017, + 0.02962589649102486, + 0.06720047436549206, + 0.11530746998602616, + 0.17319114334140864, + 0.23994155206190432, + 0.31450890174941093, + 0.3957201018576838, + 0.48229726602641154, + 0.572877865108042, + 0.6660362150618044, + 0.7603059608383141, + 0.854203201670152, + 0.9462498930690334, + 1.0349971564659737, + 1.1190481288874712, + 1.1970799923147064, + 1.267864835309654, + 1.3302890179076972, + 1.3833707343809465, + 1.4262754968967877, + 1.4583292958853837, + 1.4790292295690635, + 1.4880514350196767, + 1.485256195666322, + 1.4706901447050975, + 1.4445855296617107, + 1.4073565497052556, + 1.3595928234759103, + 1.3020500904428403, + 1.2356382924373914, + 1.1614072233229304, + 1.0805299731147018, + 0.994284427645628, + 0.9040331155396188, + 0.8112017203174462, + 0.7172565965121998, + 0.623681644378654, + 0.5319549078961568, + 0.44352526512845086, + 0.3597895785475002, + 0.2820706656741962, + 0.2115964374523916, + 0.14948053335618788, + 0.09670475862669337, + 0.054103600613377115, + 0.02235106840663903, + 0.0019500633084108404, + -0.006775552225196407, + -0.0036860620916445846, + 0.011171900048305136, + 0.03756608620798339, + 0.07508229676101846, + 0.12313091261365731, + 0.1809561938468488, + 0.24764819818308453, + 0.3221571313164848, + 0.40330990279305334, + 0.48982862634475544, + 0.5803507729162941, + 0.6734506585592439, + 0.7676619283165016, + 0.8615006815130215, + 0.9534888737528784, + 1.0421776265594451, + 1.1261700770516265, + 1.2041434073030088, + 1.2748697059680087, + 1.3372353331744793, + 1.3902584832869609, + 1.4331046685653384, + 1.4650998795322705, + 1.4857412145026228, + 1.494704810640762, + 1.491850951468345, + 1.4772262702740404, + 1.4510630146761394, + 1.413775383936331, + 1.3659529967874215, + 1.3083515927912117, + 1.2418811138716777, + 1.16759135398488, + 1.0866554032387101, + 1.000351147558814, + 0.9100411156618143, + 0.8171509911611887, + 0.7231471286827678, + 0.629513428574104, + 0.5377279349073159, + 0.44923952583891064, + 0.3654450639336536, + 0.28766736680526994, + 0.21713434549043067, + 0.1549596395560865, + 0.102125054336187, + 0.059465077273074526, + 0.027653717550042464, + 0.00719387656191349, + -0.0015905831422907135, + 0.001440054632888238, + 0.016239156319629036, + 0.04257447402420843, + 0.08003180821321662, + 0.12802153988586862, + 0.18578792921611667, + 0.25242103401943355, + 0.3268710600829555, + 0.4079649170457089, + 0.4944247187326829, + 0.5848879361816559, + 0.6779288855372195, + 0.7720812119353804, + 0.8658610147941407, + 0.9577902498106661, + 1.0464200386014622, + 1.1303535183785056, + 1.2082678713085433, + 1.2789351861390978, + 1.3412418230911745, + 1.3942059766224628, + 1.4369931590860225, + 1.4689293610976824, + 1.4895116810654843, + 1.4984162562469918, + 1.4955033702570648, + 1.4808196564775828, + 1.454597362620053, + 1.417250688039401, + 1.3693692515616678, + 1.3117087928419093, + 1.245179253897343, + 1.170830428777291, + 1.089835407682934, + 1.0034720766331993, + 0.9131029644379787, + 0.8201537548040443, + 0.7260908024505512, + 0.6323980078183635, + 0.5405534150728859, + 0.45200590246399275, + 0.36815233264974223, + 0.2903155233372279, + 0.21972338565646526, + 0.15748955926774055, + 0.10459584959836743, + 0.06187674418406465, + 0.0300062523014909, + 0.009487275438850237, + 0.0006436762385377826, + 0.00361517098941129, + 0.01835512621704108, + 0.0446312941210969, + 0.08202947526159168, + 0.1299600507311432, + 0.18766728079711287, + 0.25424122336839045, + 0.3286320843255536, + 0.40966677340104996, + 0.49606740451331344, + 0.5864714487935311, + 0.6794532224797775, + 0.7735463708014638, + 0.867266993270085, + 0.9591370456762189, + 1.0477076497298587, + 1.131581942736442, + 1.2094371069561511, + 1.2800452312300117, + 1.3422926758724665, + 1.3951976354347053, + 1.4379256223632457, + 1.4698026273673956, + 1.4903257489486865, + 1.4991711244581563, + 1.4961990376041507, + 1.481456121862038, + 1.4551746250368152, + 1.4177687465768856, + 1.369828105401806, + 1.312108441260077, + 1.2455196962624673, + 1.1711116645517685, + 1.0900574364226376, + 1.0036348979875342, + 0.9132065781497972, + 0.8201981607097575, + 0.7260760004800468, + 0.6323239979949629, + 0.5404201975135133, + 0.45181347737898586, + 0.36790070034297706, + 0.29000468420608294, + 0.2193533401917566, + 0.15706030805385301, + 0.10410739331314518, + 0.061329083598835404, + 0.02939938828109731, + 0.008821208941599448, + -8.159168375028447e-05, + 0.0028307027873788887, + 0.017511458974050834, + 0.04372842916941244, + 0.0810674140269555, + 0.1289387947327903, + 0.18658683164772724, + 0.25310158277417694, + 0.327433254086146, + 0.40840875540955546, + 0.4947502007563328, + 0.5850950613510891, + 0.6780176535253983, + 0.7720516226020966, + 0.8657130681861198, + 0.9575239461615577, + 1.046035378331775, + 1.1298505020956997, + 1.2076464998069136, + 1.2781954603999004, + 1.3403837442825295, + 1.393229546099393, + 1.4358983783904455, + 1.467716231958407, + 1.4881802053982054, + 1.4969664361542927, + 1.4939352080284096, + 1.4791331545893094, + 1.4527925237353845, + 1.4153275150084204, + 1.367327747421335, + 1.3095489608160262, + 1.2429010973965764, + 1.1684339513991775, + 1.0873206132118298, + 1.000838969040309, + 0.9103515478813382, + 0.8172840336285053, + 0.723102781187827, + 0.6292916911869051, + 0.537328807978023, + 0.4486630099978094, + 0.3646911600911129, + 0.28673607615184327, + 0.21602566949673468, + 0.15367357997286502, + 0.10066161319431731, + 0.05782425688351453, + 0.025835520503888418, + 0.005198305730338276, + -0.0037635246080091472, + -0.0009102540356008965, + 0.01371148415982884, + 0.03986944236463244, + 0.07714942132548173, + 0.12496180232166804, + 0.18255084580717026, + 0.24900660987755774, + 0.32327930059998566, + 0.4041958278935134, + 0.4904783058631865, + 0.5807642058267639, + 0.6736278442088961, + 0.767602866425525, + 0.8612053721746725, + 0.9529573174335014, + 1.0414098240984402, + 1.1251660296614676, + 1.2029031165692055, + 1.2733931738491586, + 1.3355225620022346, + 1.388309475766008, + 1.430919427773428, + 1.4626784089202087, + 1.4830835178942312, + 1.4918108922329103, + 1.488720815830925, + 1.473859922349962, + 1.4474604597813232, + 1.4099366277597096, + 1.3618780453909114, + 1.3040404526097182, + 1.2373337917130782, + 1.1628078570300175, + 1.0816357390413893, + 0.9950953240457501, + 0.9045491411326798, + 0.8114228742885502, + 0.7171828785121249, + 0.6233130545238219, + 0.5312914467686002, + 0.4425669337758954, + 0.3585363784832339, + 0.28052259887723063, + 0.20975350636733395, + 0.14734274089326332, + 0.09427210816178105, + 0.0513760959879489, + 0.019328713927810534, + -0.0013671362511082502, + -0.010387591627101844, + -0.007592935632030479, + 0.006970198538926747, + 0.03306956336467197, + 0.07029095968439289, + 0.1180447688699081, + 0.17557525146767394, + 0.2419724656657251, + 0.31618661762372163, + 0.39704461735310737, + 0.4832685790513951, + 0.5734959741287201, + 0.6663011191021087, + 0.7602176594799352, + 0.8537616950524983, + 0.9454551818893461, + 1.0338492419791891, + 1.1175470129062932, + 1.1952256772096126, + 1.2656573240088531, + 1.327728313897179, + 1.3804568417043839, + 1.423008420155617, + 1.454709040238771, + 1.4750558007338879, + 1.4837248392705218, + 1.4805764398354742, + 1.4656572361825293, + 1.4391994763950702, + 1.4016173601998614, + 1.353500506794717, + 1.2956046562064594, + 1.2288397508240292, + 1.1542555850684284, + 1.0730252495124653, + 0.9864266305466389, + 0.8958222573524122, + 0.8026378140080981, + 0.7083396556042552, + 0.614411682953212, + 0.5223319405917409, + 0.43354930714104967, + 0.34946064563049334, + 0.2713887741383803, + 0.20056160416594795, + 0.1380927757446167, + 0.08496409467281776, + 0.04201004885730755, + 0.009904647945742237, + -0.01084920620270903, + -0.019927650574751696, + -0.01719096851067549, + -0.0026857931141114483, + 0.02335562818537472, + 0.06051909631846353, + 0.10821499274844057, + 0.16568757811325052, + 0.23202691069231138, + 0.3061831967367226, + 0.3869833463492819, + 0.4731494738188535, + 0.5633190506469304, + 0.6560663934418016, + 0.7499251478031503, + 0.8434114136125268, + 0.9350471470306638, + 1.0233834701375448, + 1.10702352060854, + 1.1846444810737984, + 1.255018440744122, + 1.3170317603037667, + 1.3697026346736303, + 1.4121965766698754, + 1.443839577371421, + 1.464128735649291, + 1.4727401892240044, + 1.4695342221732997, + 1.4545574683418687, + 1.428042175903966, + 1.3904025446772175, + 1.3422281939502632, + 1.284274863840705, + 1.217452496828277, + 1.1428108874246903, + 1.061523126293489, + 0.9748670999158475, + 0.8842053375638925, + 0.7909635234065318, + 0.6966080126249508, + 0.6026227061220353, + 0.5104856485250957, + 0.42164571854584787, + 0.33749977930412656, + 0.25937064896868883, + 0.18848623913119986, + 0.1259601899134461, + 0.07277430720424155, + 0.02976307900066409, + -0.0023994849593314133, + -0.02321048272630752, + -0.03234605119673202, + -0.02966647362068818, + -0.01521838301163296, + 0.01076597329101528, + 0.04787239630805401, + 0.09551126759283707, + 0.1529268478733815, + 0.21920919551910534, + 0.2933085168710928, + 0.37405172212212234, + 0.46016092565093514, + 0.5502735990489839, + 0.6429640590143553, + 0.7367659512365681, + 0.8301953756869973, + 0.921774288616094, + 1.0100538121936102, + 1.0936370841845795, + 1.1712012873088051, + 1.2415185108667686, + 1.303475115632261, + 1.3560892966157776, + 1.398526566722988, + 1.4301129171223044, + 1.450345446774228, + 1.4589002934886834, + 1.4556377414328046, + 1.4406044245406395, + 1.4140325910757707, + 1.3763364409450887, + 1.328105593526512, + 1.2700957890268327, + 1.2032169700149928, + 1.1285189310918262, + 1.047174763009986, + 0.9604623523397484, + 0.8697442284422398, + 0.7764460755754008, + 0.682034249009384, + 0.5879926497359735, + 0.49579932247142583, + 0.4069031460162431, + 0.32270098357914145, + 0.2445156534176506, + 0.17357506721215676, + 0.11099286517319532, + 0.05775085327820677, + 0.014683519612942217, + -0.01753512599605435, + -0.03840218151079511, + -0.047593783739214884, + -0.04497021584291534, + -0.030578110746906487, + -0.004649715702198187, + 0.03240077040037784, + 0.07998372920250735, + 0.1373434215205006, + 0.20356990581203055, + 0.2776133885063882, + 0.3583007798845559, + 0.44435419441338553, + 0.5344111037724372, + 0.6270458247478568, + 0.7207920031171822, + 0.8141657389397685, + 0.9056889885540067, + 0.993912874217529, + 1.0774405337832875, + 1.154949150058839, + 1.225210812432487, + 1.287111881765738, + 1.3396705531567812, + 1.382052339598978, + 1.4135832323483202, + 1.4337603304529019, + 1.442259771810178, + 1.438941840674775, + 1.4238531710681892, + 1.3972260113414208, + 1.3594745614887147, + 1.3111884409753274, + 1.253123390095344, + 1.1861893515049067, + 1.1114361198921001, + 1.0300367860966921, + 0.9432692367761008, + 0.8524960013785252, + 0.7591427642489035, + 0.6646758807444155, + 0.5705792519437454, + 0.4783309226500808, + 0.38937977175077887, + 0.3051226625413379, + 0.2268824133660945, + 0.15588693599212455, + 0.0932498707166688, + 0.03995302360380189, + -0.0031691171741455304, + -0.035442541704072655, + -0.0563643478614964, + -0.06561067236788137, + -0.06304179829842124, + -0.04870435849175522, + -0.02283060011257869, + 0.014165278034579107, + 0.06169365767760847, + 0.11899879971902565, + 0.185170762702649, + 0.25915975314384276, + 0.3397926814096734, + 0.42579166205297075, + 0.515794166839252, + 0.6083745126406064, + 0.7020663453203853, + 0.7953857650238372, + 0.8868547281750618, + 0.9750243571174386, + 1.0584977897895982, + 1.1359522090847285, + 1.2061597044767187, + 1.2680066369126115, + 1.3205112015760858, + 1.3628389115459458, + 1.3943157581635752, + 1.4144388405624169, + 1.4228842967252222, + 1.4195124109918684, + 1.4043698174690535, + 1.3776887645929303, + 1.3398834524428496, + 1.2915435005691223, + 1.2334246493508414, + 1.1664368415291078, + 1.0916298718769137, + 1.0101768313189061, + 0.9233556065972677, + 0.8325287272449939, + 0.7391218776917147, + 0.6446014133792923, + 0.5504512354710331, + 0.45814938885462275, + 0.3691447525020024, + 0.2848341897930812, + 0.20654051915664334, + 0.13549165244409794, + 0.0728012300369959, + 0.01945105808369052, + -0.023724375159303618, + -0.056051059694714175, + -0.07702609331395634, + -0.08632561265444762, + -0.08380990070737596, + -0.06952559022742485, + -0.04370492829539896, + -0.006762113631982716, + 0.040713235574521806, + 0.09796538031034539, + 0.16408437920304453, + 0.2380204388515771, + 0.31860046970659994, + 0.40454658640450303, + 0.49449626079423403, + 0.5870238098313805, + 0.6806628794626046, + 0.7739295699164852, + 0.8653458377004204, + 0.9534628052409613, + 1.0368836105599375, + 1.1142854366336143, + 1.1844403730189272, + 1.2462347807459613, + 1.2986868550812896, + 1.340962109186635, + 1.372386534486203, + 1.392457230196218, + 1.4008503343821639, + 1.3974261314665843, + 1.3822312556387932, + 1.3554979554175013, + 1.31764043096458, + 1.269248301912761, + 1.2110773087235671, + 1.1440373942204065, + 1.069178353258578, + 0.9876732768449483, + 0.9008000518038721, + 0.8099212077504605, + 0.7164624291964024, + 0.6218900716655635, + 0.5276880364031965, + 0.4353343683788766, + 0.3462779466463785, + 0.2619156346673873, + 0.18357025095240614, + 0.11246970743450657, + 0.04972764457684395, + -0.003674131390680957, + -0.04690113213006411, + -0.07927934756260073, + -0.10030587539833047, + -0.10965685219335784, + -0.1071925608576105, + -0.09295963406457282, + -0.06719031881390264, + -0.030298813745211886, + 0.01712526303423946, + 0.07432617259163302, + 0.14039397363543007, + 0.2142788728454513, + 0.2948077807531264, + 0.380702812075615, + 0.47060143874248644, + 0.5630779777899484, + 0.6566660752452462, + 0.7498818314173983, + 0.8412472028943082, + 0.9293133121828268, + 1.012683297385137, + 1.0900343415577542, + 1.1601385343377797, + 1.2218822368354618, + 1.2742836443974215, + 1.3165082702653945, + 1.3478821059435484, + 1.367902250727979, + 1.376244842764011, + 1.3727701665539445, + 1.3575248563668025, + 1.3307411608009323, + 1.292833280097798, + 1.2443908339696328, + 1.1861695629574327, + 1.1190794099640122, + 1.0441701699239563, + 0.9626149339234598, + 0.875691588866041, + 0.784762664445987, + 0.6912538452540817, + 0.596631486893148, + 0.5023794906874712, + 0.40997590168546894, + 0.32086959901977896, + 0.236457446230864, + 0.15806226190787614, + 0.08691195806259235, + 0.024120175236705663, + -0.029331280261341325, + -0.0726079200151119, + -0.1050357338675132, + -0.1261118194502532, + -0.13551231324118285, + -0.13309749807203558, + -0.11891400653816615, + -0.09319408556116741, + -0.056351933702656246, + -0.00897716899194169, + 0.048174469716013094, + 0.11419304120747957, + 0.18802875224001897, + 0.26850851342273563, + 0.3543544395503986, + 0.44420400263012083, + 0.5366315197755884, + 0.6301706370914588, + 0.7233374549640968, + 0.8146539300586758, + 0.9026711849592918, + 0.9859923578452263, + 1.0632946318501406, + 1.1333500966880967, + 1.195045113546302, + 1.2473978778482793, + 1.2895739029125508, + 1.3208991803200605, + 1.3408708094435624, + 1.3491649285050005, + 1.345641822083222, + 1.330348124523729, + 1.3035160845012714, + 1.2655599023336639, + 1.2170691978094244, + 1.1587997115457185, + 1.0916613865215437, + 1.0167040177475184, + 0.9351006963858641, + 0.8481293094160445, + 0.757152386608151, + 0.6635956126288345, + 0.5689253431566037, + 0.47462547959140167, + 0.38217406705727763, + 0.2930199847623163, + 0.20856009632250183, + 0.1301172204023201, + 0.05891926908888638, + -0.003920117000859619, + -0.0574191314833445, + -0.10074328586698425, + -0.13321856991967962, + -0.15434208119816464, + -0.16378995610540192, + -0.16142247739830592, + -0.14728627759748097, + -0.12161360354983299, + -0.08481865374237699, + -0.03749104612988677, + 0.01961348050715893, + 0.08558498502940304, + 0.15937367426876173, + 0.23980645890856894, + 0.32560545381777434, + 0.4154081310776212, + 0.5077888078758142, + 0.6012811303910213, + 0.6944011990834491, + 0.7856709706921154, + 0.8736415678748676, + 0.9569161288846662, + 1.0341718369287787, + 1.1041807817947933, + 1.1658293247434024, + 1.2181356612714942, + 1.2602653047709143, + 1.29154424689585, + 1.3114695870922237, + 1.3197174636550772, + 1.3161481612362806, + 1.300808314254288, + 1.273930171456719, + 1.2359279332341975, + 1.1873912194479739, + 1.1290757707878503, + 1.0618915303054235, + 0.9868882930838219, + 0.9052391503576727, + 0.818221989178834, + 0.7271993393896427, + 0.6335968857289881, + 0.5388809839475148, + 0.44453553551719305, + 0.35203858563409884, + 0.26283901357818595, + 0.1783336830373032, + 0.09984541274770281, + 0.028602114868132217, + -0.034282569912802235, + -0.08782683514003067, + -0.13119619225049306, + -0.16371663094070832, + -0.18488524869612416, + -0.19437818184845757, + -0.19205571308347297, + -0.17796447485069886, + -0.15233671392604725, + -0.11558662872558977, + -0.0683038371332785, + -0.011244077858796789, + 0.05468270802916558, + 0.1284267274331638, + 0.2088148911070727, + 0.2945693139902766, + 0.3843274682344432, + 0.47666367109755503, + 0.5701115688285094, + 0.6631872619576981, + 0.7544127072941617, + 0.8423390275658158, + 0.92556936109548, + 1.0027808911602745, + 1.0727457076175768, + 1.134350171797725, + 1.1866124792672599, + 1.228698143487518, + 1.2599331561821445, + 1.279814616866443, + 1.2880186639047368, + 1.2844055820181117, + 1.2690220056941561, + 1.2421001837495478, + 1.2040543166438749, + 1.1554740243072947, + 1.0971150474984224, + 1.0298873293375919, + 0.9548406649765968, + 0.8731481457186159, + 0.786087658684031, + 0.6950217337835873, + 0.6013760558245125, + 0.5066169806257175, + 0.4122284097273182, + 0.31968838839351876, + 0.23044579597228718, + 0.14589749621937892, + 0.06736630793892905, + -0.003919856642551206, + -0.06684735676876304, + -0.12043438591701391, + -0.1638464554567482, + -0.19640955501699892, + -0.21762078201586604, + -0.22715627271777258, + -0.22487630974128273, + -0.21082752546879893, + -0.1852421666092, + -0.14853443151158646, + -0.10129393799304517, + -0.0442764246964745, + 0.021608167376188064, + 0.09531004519407833, + 0.17565611957765853, + 0.2613685055327512, + 0.3510846752774043, + 0.4433789461359309, + 0.5367849644234032, + 0.6298188307363772, + 0.7210025019499444, + 0.8088871008579563, + 0.8920757658491563, + 0.9692456802664271, + 1.0391689340328973, + 1.1007318885445136, + 1.1529527394333692, + 1.1949970002262782, + 1.2261906627122594, + 1.2460308264719209, + 1.2541936299347893, + 1.2505393578870851, + 1.2351146448814394, + 1.2081517397995003, + 1.170064843165708, + 1.1214435749750402, + 1.0630436760508002, + 0.9957750895779398, + 0.9206876107728141, + 0.8389543310030185, + 0.7518531374533293, + 0.6607465600987733, + 0.567060283810743, + 0.4722606644723021, + 0.37783160368754803, + 0.28525114678465646, + 0.1959681731754479, + 0.1113795466794151, + 0.03280808616441311, + -0.03851829607948658, + -0.10148595923245114, + -0.1551130967083733, + -0.198565219813361, + -0.23116831811319716, + -0.2524194889628184, + -0.2619948685635708, + -0.2597547394710287, + -0.24574573400469385, + -0.22020009881062125, + -0.18353203217518999, + -0.13633115185284267, + -0.07935319642392284, + -0.013508106827900615, + 0.06015432396673932, + 0.14046100684275142, + 0.226134056868153, + 0.3158109463231391, + 0.408065992594021, + 0.5014328420578223, + 0.5944275953729415, + 0.6855722094762662, + 0.7734178072232833, + 0.8565675270643638, + 0.9336985524038528, + 1.0035829732263166, + 1.065107150989024, + 1.1172892813852804, + 1.1592948780030685, + 1.1904499326924483, + 1.2102515450949975, + 1.2183758537011262, + 1.2146831433578409, + 1.1992200486784657, + 1.1722188186052667, + 1.1340936537232065, + 1.0854341740876794, + 1.0269961205823588, + 0.9596894364523991, + 0.8845639169743605, + 0.8027926535759048, + 0.7156535335017611, + 0.6245090867868972, + 0.5307849983624334, + 0.4359476241712074, + 0.34148086587692633, + 0.24886276886726305, + 0.15954221261351909, + 0.07491606099449506, + -0.0036928670626673044, + -0.07505665920872476, + -0.13806167456481458, + -0.19172610648579458, + -0.2352154662189106, + -0.26785574327112804, + -0.2891440349386744, + -0.2987564773642894, + -0.29655335304500874, + -0.2825812942418992, + -0.25707254754267583, + -0.22044131117547316, + -0.17327720283654674, + -0.11633596104820688, + -0.05052752669191683, + 0.02309830732170068, + 0.10336845193318006, + 0.18900502226829316, + 0.2786454906647754, + 0.3708641745665014, + 0.46419472040788506, + 0.5571532289046635, + 0.6482616570509598, + 0.7360711277594035, + 0.8191847795374054, + 0.8962797958462958, + 0.9661282667274759, + 1.0276165536949928, + 1.0797628524988296, + 1.1217326767835516, + 1.1528520184557078, + 1.172617977213272, + 1.1807066916029556, + 1.1769784465279753, + 1.1614798766577672, + 1.134443230990618, + 1.0962827101674224, + 1.0475879342993903, + 0.9891146443259482, + 0.9217727835478973, + 0.84661214729733, + 0.7648058270573808, + 0.6776317101280976, + 0.5864523265997625, + 0.4926933614586574, + 0.39782117070266265, + 0.3033196560505188, + 0.21066686294471, + 0.12131167091140047, + 0.036650943884044426, + -0.04199249915561601, + -0.11339074580380769, + -0.17643015512729138, + -0.23012892042658978, + -0.27365255289473445, + -0.30632704198458355, + -0.3276494849383234, + -0.33729601784477337, + -0.3351269231471329, + -0.3211888330527276, + -0.29571399409564136, + -0.2591166044504498, + -0.2119862817599763, + -0.15507876449315128, + -0.08930399347823675, + -0.01571176157263164, + 0.06452484221721401, + 0.15012793307008496, + 0.23973498337652535, + 0.3319203106332331, + 0.42521756132725363, + 0.5181428362269449, + 0.6092180923788778, + 0.6969944527480663, + 0.7800750558942272, + 0.8571370853308765, + 0.9269526311514752, + 0.9884080549221148, + 1.040521552444627, + 1.0824586374153995, + 1.113545301792677, + 1.1332786453260266, + 1.141334806613678, + 1.1375740706102402, + 1.122043072036467, + 1.094974059941845, + 1.056781235018393, + 1.0080542174283211, + 0.9495487481619674, + 0.8821747705709773, + 0.8069820800380982, + 0.7251437680971555, + 0.6379377220986657, + 0.5467264721833689, + 0.452935703387839, + 0.35803177176019896, + 0.26349857906928054, + 0.1708141708076341, + 0.08142742655129745, + -0.003264789716371501, + -0.08193965896400816, + -0.15336926873812207, + -0.2164399780559859, + -0.27016998016870103, + -0.313724786219959, + -0.3464303856134032, + -0.36778387554208425, + -0.37746139204578627, + -0.37532321751879205, + -0.3614159841196052, + -0.33597193833355654, + -0.2994052782866419, + -0.25230562157310354, + -0.19542870661349726, + -0.12968447418770676, + -0.05612271710494898, + 0.024083475676483543, + 0.1096562193833209, + 0.1992329864541467, + 0.29138809443335867, + 0.3846551898558702, + 0.4775503735375102, + 0.5685956025724729, + 0.6563419999731268, + 0.7393927043465246, + 0.8164248992533968, + 0.8862106748343164, + 0.9476363927023752, + 0.9997202487063515, + 1.0416277565893952, + 1.0726849083564942, + 1.092388803803797, + 1.10041558157604, + 1.096625526674238, + 1.0810652738654434, + 1.053967072245329, + 1.0157451225520182, + 0.9669890449937121, + 0.908454580606636, + 0.8410516727882245, + 0.7658301169669068, + 0.6839630047220939, + 0.5967282234498197, + 0.505488303336082, + 0.41166892946286965, + 0.31673645792335237, + 0.22217479053155817, + 0.12946197282491737, + 0.04004688442435122, + -0.0446736106420232, + -0.1233766932981675, + -0.19483445104608996, + -0.25793324285854885, + -0.3116912619423674, + -0.35527401939692227, + -0.3880075045817707, + -0.4093888146458967, + -0.419094085585174, + -0.41698359975004917, + -0.4031039892552989, + -0.3776875005426447, + -0.3411483316945342, + -0.2940761002618592, + -0.23722654462178153, + -0.17150960551108435, + -0.09797507569578212, + -0.017796044091254, + 0.06774960457219528, + 0.15729934277587881, + 0.249427488106917, + 0.3426676871427158, + 0.4355360407417255, + 0.5265545060403203, + 0.614274206093338, + 0.6972982795498299, + 0.7743039100126746, + 0.8440631876643407, + 0.9054624741597808, + 0.9575199653895119, + 0.9994011751383258, + 1.0304320954527089, + 1.0501098261702744, + 1.0581105059770506, + 1.054294419915271, + 1.0387082027930963, + 1.0115841037471958, + 0.9733363235565935, + 0.9245544824702772, + 0.865994321565157, + 0.7985657842792456, + 0.7233186660814643, + 0.6414260585915352, + 0.5541658492458075, + 0.46290056827041365, + 0.36905590078739303, + 0.2740982029298773, + 0.17951137655166644, + 0.0867734672300054, + -0.002666645374645317, + -0.08741209719458898, + -0.16614006911439894, + -0.2376226485967798, + -0.30074619457529345, + -0.35452890021766015, + -0.3981362765843074, + -0.43089431299586944, + -0.45230010656261077, + -0.46202979324170146, + -0.45994365534504766, + -0.44608832494897904, + -0.42069604845687175, + -0.38418102391295117, + -0.3371328688299515, + -0.2803073215470577, + -0.21461432276307338, + -0.14110366520631543, + -0.060948437754332035, + 0.024573474900036932, + 0.11409954527566092, + 0.2062040909969951, + 0.2994207586787975, + 0.39226564921652907, + 0.4832607197837839, + 0.5709570934721977, + 0.6539579089677575, + 0.7309403499099778, + 0.800676506518051, + 0.8620527404833611, + 0.914087247732882, + 0.9559455420876549, + 0.9869536156303952, + 1.0066085682347523, + 1.01458653862275, + 1.010747811872477, + 0.9951390228278454, + 0.9679924206611874, + 0.9297222061870141, + 0.8809179996897992, + 0.8223355422817185, + 0.7548847774360312, + 0.6796155006567455, + 0.5977008035985754, + 0.5104185737327525, + 0.4191313413202045, + 0.32526479151757126, + 0.23028528049262448, + 0.1356767101335246, + 0.04291712605191723, + -0.04654459205751063, + -0.13131158009300428, + -0.2100610189050511, + -0.2815649959225288, + -0.3447098700451565, + -0.3985138344069936, + -0.44214240003489647, + -0.4749215562160394, + -0.4963484000273304, + -0.5060990673927106, + -0.5040338405909456, + -0.49019935166534, + -0.46482784698637264, + -0.42833352456543505, + -0.38130600188261926, + -0.3245010172444935, + -0.25882851131741624, + -0.18533827679729417, + -0.10520340252949173, + -0.01970177317463622, + 0.06980408381809516, + 0.1618884861051788, + 0.25508508033303534, + 0.3479099674289721, + 0.4388851045980667, + 0.5265616149635145, + 0.6095426372425896, + 0.6865053551061391, + 0.7562218588044448, + 0.8175785100599561, + 0.8695935048305223, + 0.9114323569680678, + 0.942421058585955, + 0.9620567095884662, + 0.9700154487280737, + 0.9661575611132454, + 0.9505296816181514, + 0.923364059445261, + 0.8850748954391449, + 0.8362518099141765, + 0.7776505440123681, + 0.710181041236636, + 0.6348930971206393, + 0.5529598033485019, + 0.46565904742087644, + 0.37435335962792726, + 0.2804684251554379, + 0.18547060020021217, + 0.09084378667933063, + -0.001933969766752506, + -0.0914137894146538, + -0.1761988081340336, + -0.25496620674690756, + -0.32648807265377494, + -0.3896507647261532, + -0.44347247606990686, + -0.4871187176839177, + -0.5199154788274108, + -0.5413598565495079, + -0.5511279867464605, + -0.5490801516694591, + -0.5352629833343463, + -0.5099087280842381, + -0.4734315839033171, + -0.42642116824449044, + -0.3696332193873795, + -0.3039776779713663, + -0.23050433666565712, + -0.15038628428887832, + -0.06490140547512957, + 0.024587772352924597, + 0.11665556687801724, + 0.20983562477287887, + 0.3026440469908453, + 0.39360279076309834, + 0.48126297923857786, + 0.5642277511604916, + 0.6411742902251965, + 0.7108746867086486, + 0.7722153023586514, + 0.8242143331584324, + 0.8660372929850849, + 0.8970101739770868, + 0.9166300760636836, + 0.9245731380222431, + 0.920699644985981, + 0.905056231853697, + 0.8778751478524137, + 0.8395705938510898, + 0.7907321901884256, + 0.7321156780306135, + 0.6646310009046461, + 0.5893279543681448, + 0.5073796301291029, + 0.4200639157118493, + 0.328743341430249, + 0.234843592493511, + 0.1398310251218958, + 0.04518954125574383, + -0.04760281344132474, + -0.13709715922285373, + -0.22189663193562442, + -0.3006784123787668, + -0.37221458793009143, + -0.4353915174385175, + -0.4892273939874282, + -0.5328877285533329, + -0.5656985103732068, + -0.5871568364740234, + -0.5969388427300212, + -0.5949048113704649, + -0.581101374389402, + -0.5557607781082755, + -0.5192972204896775, + -0.47230031896509145, + -0.4155258117927717, + -0.34988363959089663, + -0.2764235950075152, + -0.19631876684032143, + -0.11084703970244093, + -0.021370940995886042, + 0.07068384698280897, + 0.16385097092689288, + 0.2566465318101273, + 0.3475924868839827, + 0.4352399593176554, + 0.5181920878743351, + 0.5951260562704929, + 0.6648139548017586, + 0.7261421452358182, + 0.7781288235754075, + 0.819939503717213, + 0.8509001778190534, + 0.8705079458294784, + 0.8784389465449985, + 0.87455346511788, + 0.8588981364658657, + 0.8317052098347667, + 0.7933888861123004, + 0.744538785655666, + 0.6859106496496102, + 0.6184144216394165, + 0.5430998972009913, + 0.461140168060437, + 0.3738131217600932, + 0.2824812886316983, + 0.18857035390232496, + 0.09354667380977133, + -0.001105849687947611, + -0.09390917090992555, + -0.18341441009226306, + -0.26822470306458024, + -0.3470172306089224, + -0.41856408008612633, + -0.481751610328258, + -0.5355980144019579, + -0.5792688032671058, + -0.6120899661441912, + -0.6335586000437713, + -0.643350840823812, + -0.6413269706974212, + -0.6275336216426001, + -0.6022030399648515, + -0.5657494236109736, + -0.5187623899967204, + -0.46199767736478947, + -0.3963652263178853, + -0.32291482948870504, + -0.24281957565970794, + -0.15735734942891874, + -0.06789067818328831, + 0.024154755795456128, + 0.11731259921541787, + 0.2100989530649496, + 0.30103577461010345, + 0.38867418703443707, + 0.47161732911552695, + 0.5485423845839426, + 0.6182214437494951, + 0.6795408683937446, + 0.7315188545333386, + 0.7733209160786085, + 0.8042730452010605, + 0.8238723418626827, + 0.831794944873391, + 0.8279011393987084, + 0.8122375603695164, + 0.7850364570446662, + 0.7467120303247561, + 0.6978539005798432, + 0.6392178090072667, + 0.5717136991649776, + 0.49639136664122535, + 0.41442390317452565, + 0.32708919631935657, + 0.2357497764196329, + 0.14183132871432533, + 0.04680020945315854, + -0.04785967939414616, + -0.14067029213496873, + -0.23018274899401922, + -0.3150001857894018, + -0.39379978329201004, + -0.465353628851393, + -0.5285480812886483, + -0.5824013336594436, + -0.6260788969128558, + -0.6589067602586784, + -0.680382020696886, + -0.6901808140749832, + -0.6881634225957289, + -0.6743764782268991, + -0.649052227263867, + -0.6126048676434503, + -0.5656240167715268, + -0.508865412880998, + -0.4432389965649709, + -0.36979456044655556, + -0.2897051932988444, + -0.2042487797105517, + -0.11478784705944911, + -0.022748077618201884, + 0.07040417533021773, + 0.16318501278305414, + 0.25411639201496516, + 0.3417494362182477, + 0.42468728417881335, + 0.501607119635705, + 0.5712810329068707, + 0.632595385782067, + 0.6845683742859219, + 0.7263655123366917, + 0.7573127921136168, + 0.7769073135863752, + 0.7848252155724018, + 0.7809267832446514, + 0.7652586515413146, + 0.7380530697284273, + 0.6997242387136724, + 0.6508617788740193, + 0.5922214314137247, + 0.5247131398973731, + 0.44938669991987057, + 0.3674152032261859, + 0.2800765373772439, + 0.18873323272309384, + 0.09481097450894177, + -0.0002238810095549354, + -0.09488743185668963, + -0.1877016323341438, + -0.2772176026608995, + -0.3620384786495509, + -0.4408414410654895, + -0.5123985772530559, + -0.5755962460280577, + -0.629452640441176, + -0.6731332714364424, + -0.7059641282188547, + -0.7274423077836385, + -0.7372439459736932, + -0.7352293249872879, + -0.7214450767878211, + -0.6961234476664193, + -0.6596786355557356, + -0.6127002578576602, + -0.5559440528011443, + -0.4903199609755451, + -0.41687777500030443, + -0.3367905836449113, + -0.25133627149471566, + -0.16187736592409352, + -0.06983954920256853, + 0.023310825389968492, + 0.11608985885379225, + 0.20701950846638695, + 0.29465089742265915, + 0.37758716451131635, + 0.45450549347376346, + 0.5241779746304488, + 0.5854909697732906, + 0.6374626749291032, + 0.6792586040181378, + 0.7102047492215722, + 0.7297982105108773, + 0.7377151267051556, + 0.7338157829789151, + 0.7181468142717855, + 0.6909404698511357, + 0.6526109506258393, + 0.6037478769739457, + 0.5451069901006875, + 0.4775982335715506, + 0.4022714029821029, + 0.3202995900779762, + 0.23296068242049855, + 0.14161721036025718, + 0.0476948591426028, + -0.04734001497655461, + -0.14200351002158645, + -0.2348175802942607, + -0.3243333460136604, + -0.4091539429927687, + -0.4879565519974516, + -0.5595132603725368, + -0.6227104269345987, + -0.6765662447349877, + -0.7202462247187371, + -0.7530763560918385, + -0.7745537358506915, + -0.784354499839437, + -0.782338930257721, + -0.7685536590704498, + -0.7432309325703604, + -0.7067849486918496, + -0.6598053248386186, + -0.6030477992416502, + -0.5374223124923404, + -0.4639786572123658, + -0.3838899221734998, + -0.2984339919634871, + -0.20897339395941683, + -0.11693381043334777, + -0.02378159466799966, + 0.06899935433395216, + 0.15993099384707246, + 0.2475644470630809, + 0.3305028527673466, + 0.4074233946979777, + 0.4770981631718927, + 0.53841351997744, + 0.5903876611376537, + 0.6321861005689835, + 0.6631348304486082, + 0.682730950743929, + 0.6906506002698574, + 0.6867540641965719, + 0.6710879774592842, + 0.6438845893207918, + 0.6055581006853146, + 0.5566981319261137, + 0.4980604242435328, + 0.43055492119797756, + 0.35523141837996863, + 0.27326300752982213, + 0.18592757620350847, + 0.09458765474612528, + 0.0006689283974386437, + -0.09436224659243003, + -0.18902196825362946, + -0.28183219089388734, + -0.3713440347384251, + -0.456160635606374, + -0.5349591742698603, + -0.6065117380802449, + -0.6697046858605502, + -0.723556210668887, + -0.7672318234569886, + -0.8000575134377728, + -0.8215303776146363, + -0.8313265518388675, + -0.8293063183173605, + -0.8155163090223773, + -0.7901887702541506, + -0.7537378999546527, + -0.7067533155353325, + -0.6499907552349682, + -0.5843601596529392, + -0.5109113214189593, + -0.43081732931305994, + -0.34535606793121637, + -0.25589006465889286, + -0.1638450017767827, + -0.07068723257621953, + 0.02209934393137319, + 0.11303668501158952, + 0.20067591384725114, + 0.2836201692145829, + 0.3605466348424161, + 0.43022740103832147, + 0.4915488295812072, + 0.5435291164845235, + 0.5853337756549587, + 0.6162887992599181, + 0.6358912872568483, + 0.6438173784506083, + 0.6399273580012093, + 0.6242678608335583, + 0.5970711362000682, + 0.5587513849944228, + 0.5098982275792574, + 0.45126740514412456, + 0.38376886123861087, + 0.3084523914421863, + 0.22649108748410798, + 0.13916283690912892, + 0.04783017005094753, + -0.04608122786208846, + -0.14110500059138587, + -0.23575724617884647, + -0.32855991894396164, + -0.41806413912393686, + -0.5028730425498629, + -0.5816638100061126, + -0.6532085288562135, + -0.7163935579356465, + -0.7702370903150084, + -0.813904636958653, + -0.8467221870922328, + -0.8681868377320145, + -0.8779747247422371, + -0.8759461303428904, + -0.8621476865194395, + -0.836811639585426, + -0.8003521874962812, + -0.7533589476769857, + -0.6965876583799906, + -0.6309482602184597, + -0.5574905458360269, + -0.4773876040266666, + -0.3919173194006175, + -0.3024422193574789, + -0.21038798619232574, + -0.1172209732110149, + -0.024425079439567503, + 0.06652165237294067, + 0.15417034539451765, + 0.23712413838634605, + 0.31406021506227566, + 0.38375066571469324, + 0.44508185210714524, + 0.4970719702377826, + 0.5388865339977107, + 0.5698515355386848, + 0.5894640748024103, + 0.5974002905778701, + 0.5935204680090864, + 0.5778712420048715, + 0.5506848618014024, + 0.5123755282760394, + 0.463532861774991, + 0.40491260347116687, + 0.33742469689752885, + 0.2621189376167734, + 0.18016841734119732, + 0.09285102359855957, + 0.0015292867053523299, + -0.0923711081272522, + -0.18738380467812132, + -0.2820249010065837, + -0.3748163514497379, + -0.46430927626257246, + -0.5491068112939526, + -0.6278861373462088, + -0.699419341800986, + -0.7625927835118829, + -0.8164246555678516, + -0.8600804689516216, + -0.8928862129073896, + -0.9143389844700497, + -0.9241149195226188, + -0.9220743003039522, + -0.9082637588185032, + -0.8829155413989278, + -0.8464438460198529, + -0.7994382901256252, + -0.7426546119881172, + -0.6770027522400499, + -0.6035325035447645, + -0.5234169547160361, + -0.43793399038395314, + -0.34844613796817414, + -0.25637907978395535, + -0.16319916915734398, + -0.07039030513472776, + 0.020569469514272333, + 0.10823127793711225, + 0.19119825887430048, + 0.2681475960188018, + 0.33785137964206957, + 0.3991959714866522, + 0.45119956752945856, + 0.49302768164032396, + 0.5240063059496511, + 0.5436325403775941, + 0.5515825236915219, + 0.5477165410137166, + 0.5320812272311234, + 0.5049088315579704, + 0.46661355484952066, + 0.4177850174297739, + 0.35917896044938014, + 0.2917053274188149, + 0.21641391387823883, + 0.13447781151732816, + 0.04717490784108012, + -0.04413226685693519, + -0.13801802738856545, + -0.23301601755565915, + -0.3276423354409172, + -0.4204189354046898, + -0.5098969377254178, + -0.5946794782755926, + -0.6734437378811775, + -0.7449618039475796, + -0.8081200353523557, + -0.8619366252084458, + -0.9055770845227473, + -0.9383674025636644, + -0.9598046763904794, + -0.9695650419106618, + -0.9675087813876639, + -0.9536825268506357, + -0.9283185246570452, + -0.891830972806459, + -0.8448094887682323, + -0.7880098108394309, + -0.722341879677995, + -0.6488554879726842, + -0.5687237245627315, + -0.4832244741038887, + -0.39372026404151667, + -0.3016367767165977, + -0.2084403654812463, + -0.11561492940788698, + -0.024638511292246833, + 0.06304001198676415, + 0.14602377914334053, + 0.22298997384388047, + 0.2927106863332346, + 0.3540722783272081, + 0.4060929457758795, + 0.4479382025221622, + 0.478934040669309, + 0.4985775601103414, + 0.5065448995853203, + 0.5026963441891212, + 0.4870785287811765, + 0.4599237025480664, + 0.4216460663173214, + 0.3728352403850957, + 0.31424696587403217, + 0.2467911862665445, + 0.17151769707463782, + 0.08959958995963627, + 0.0023147523981337306, + -0.08897428534482656, + -0.18284183810971272, + -0.2778215497272106, + -0.3724295183087578, + -0.46518769824376605, + -0.5546472098397227, + -0.6394111889983762, + -0.7181568165749277, + -0.7896561800042756, + -0.8527956381934586, + -0.9065933842850612, + -0.9502149293157995, + -0.982986262583887, + -1.0044044811785873, + -1.0141457210374893, + -1.012070264454233, + -0.9982247434882732, + -0.9728414045275176, + -0.9363344456020503, + -0.8892934842119036, + -0.8324742586848881, + -0.766786709709776, + -0.6932806300063494, + -0.613129108444938, + -0.5276100297124362, + -0.43808592128559337, + -0.34598246553673423, + -0.2527660158495679, + -0.15992047132812037, + -0.0689238747999564, + 0.01877489682425542, + 0.1017789822267087, + 0.17876556504167945, + 0.24850673548184352, + 0.30988885523071086, + 0.3619301202058959, + 0.4037960442178475, + 0.4348126193371633, + 0.454476945424101, + 0.46246516118587694, + 0.45863755168440246, + 0.4430407517460172, + 0.4159070105241397, + 0.3776505288129894, + 0.3288609268753036, + 0.2702939458002769, + 0.20285952903659032, + 0.1276074720625654, + 0.04571086650569951, + -0.04155240019138111, + -0.13281979779767727, + -0.22666564118789245, + -0.3216235742269101, + -0.416209695060644, + -0.5089459581129423, + -0.5983834837259048, + -0.6831254078360568, + -0.7618489113333851, + -0.8333260816876946, + -0.8964432778411218, + -0.9502186929713856, + -0.993817838150469, + -1.0265667027119516, + -1.0479623837805983, + -1.0576810173295592, + -1.0555828856881924, + -1.0417146209517523, + -1.0163084695440625, + -0.9797786295312436, + -0.9327147184494299, + -0.8758724746626998, + -0.8101618388961825, + -0.7366326039060717, + -0.6564578585992868, + -0.5709154876994391, + -0.48136801872000295, + -0.3892411340702525, + -0.2960011871707684, + -0.2031320771628296, + -0.11211184691108794, + -0.024389373363657804, + 0.05863848212427226, + 0.13564890314953176, + 0.20541397988704102, + 0.26682007398258445, + 0.31888538131595623, + 0.3607754156595889, + 0.39181616904604954, + 0.41150474129738834, + 0.4195172710825398, + 0.41571404342502305, + 0.40014169311267916, + 0.3730324692602973, + 0.3348005726234026, + 0.2860356234259159, + 0.22749336271804926, + 0.1600837339095413, + 0.08485653243948701, + 0.0029848498961412284, + -0.08425342631719022, + -0.17549576600896677, + -0.26931648409350367, + -0.3642492244753837, + -0.45881008534019607, + -0.5515210211517632, + -0.6409331522921775, + -0.7256496147379886, + -0.80434758941949, + -0.8757991638467738, + -0.938890697002363, + -0.9926403821045222, + -1.0362137302658527, + -1.0689367308606994, + -1.0903064810546412, + -1.0999991168617949, + -1.09787492065256, + -1.0839805245633611, + -1.0585481750592751, + -1.021992070247792, + -0.9749018277065483, + -0.9180331858411763, + -0.8522960854184987, + -0.7787403192364999, + -0.6985389762440177, + -0.6129699412066056, + -0.5233957416799013, + -0.431242060115351, + -0.337975249975914, + -0.2450792104452268, + -0.15403198443050825, + -0.06628244892244095, + 0.016772534680989402, + 0.09381014993379527, + 0.16360248696795382, + 0.22503590738621293, + 0.27712860702517633, + 0.31904609961405406, + 0.3501143771420596, + 0.36983053938775595, + 0.3778707249765195, + 0.37409521888819447, + 0.35855065586685547, + 0.33146928498339845, + 0.2932653069493609, + 0.24452834194459083, + 0.1860141309751198, + 0.11863261740636452, + 0.04343359663299605, + -0.03840983980114209, + -0.12561980453741728, + -0.21683376742900148, + -0.3106260434349361, + -0.4055302765048231, + -0.5000625648692477, + -0.5927448630371097, + -0.6821282914357263, + -0.766815986087013, + -0.8454851279667034, + -0.9169078046303212, + -0.9799703751061366, + -1.0336910326580862, + -1.0772352884446121, + -1.1099291318860476, + -1.1312696601939671, + -1.1409330094286407, + -1.138779462006727, + -1.124855650110999, + -1.0993938202529705, + -1.0628081705867118, + -1.01568831873648, + -0.9587900031546913, + -0.8930231646550528, + -0.8194375960824118, + -0.7392063864327635, + -0.6536074205188147, + -0.5640032259434067, + -0.47181948520545414, + -0.3785225518152381, + -0.28559632500408966, + -0.1945188477268353, + -0.10673899702199026, + -0.023653634335366797, + 0.053414423839105885, + 0.12323726758527795, + 0.18470125845772983, + 0.23682459224482844, + 0.2787727826273672, + 0.3098718215460995, + 0.3296188087310122, + 0.33768988275880096, + 0.3339453285605395, + 0.31843178083141715, + 0.2913814885933501, + 0.2532086525088194, + 0.20450289270847566, + 0.14601995014906294, + 0.07866976814666485, + 0.003502142046451953, + -0.0783098366573487, + -0.1654882806557286, + -0.25667065985162996, + -0.35043128925403266, + -0.44530381286242904, + -0.5398043289575631, + -0.6324547920984429, + -0.7218063227626786, + -0.8064620570225391, + -0.8850991759042481, + -0.9564897670139606, + -1.0195201894304846, + -1.073208636468604, + -1.116720619337616, + -1.1493821275087868, + -1.1706902582447964, + -1.1803211476570545, + -1.1781350782134736, + -1.164178682148195, + -1.1386842060241782, + -1.10206584804703, + -1.0549132258927156, + -0.9979820780653289, + -0.9321823454304673, + -0.8585638208849297, + -0.7782995934767012, + -0.692667548070659, + -0.6030302123219249, + -0.5108132687816882, + -0.41748307101270193, + -0.32452351829876347, + -0.23341265364740904, + -0.14559935414979433, + -0.0624804813046146, + 0.014621148341288831, + 0.08447762481880391, + 0.14597530962935984, + 0.19813239850808512, + 0.24011440508254125, + 0.27124732124002127, + 0.2910282466570643, + 0.299133319856738, + 0.2954228257164332, + 0.2799433988775617, + 0.2529272883081677, + 0.21478869461671274, + 0.1661172378798148, + 0.10766865900005218, + 0.04035290123919964, + -0.034780240111874416, + -0.11655767361346342, + -0.2037015120110583, + -0.2948492252622881, + -0.38857512843079, + -0.48341286557102014, + -0.5778785350185707, + -0.6704940913874984, + -0.7598106552105365, + -0.8444313626151891, + -0.9230333946829365, + -0.9943888390753823, + -1.057384054926862, + -1.1110372356077085, + -1.1545138923829195, + -1.1871400147795688, + -1.208412700116193, + -1.2180080845601746, + -1.215786450635505, + -1.2017944306324786, + -1.176264271170329, + -1.1396101705109754, + -1.0924217463868295, + -1.0354547373585707, + -0.9696190843483824, + -0.8959645803098144, + -0.8156643143476154, + -0.7299961713836469, + -0.640322679129955, + -0.5480695201948848, + -0.4547030481984014, + -0.36170716248145685, + -0.2705599061090687, + -0.1827101562298794, + -0.0995547744000817, + -0.022416577224225354, + 0.04747652527093291, + 0.10901089452887348, + 0.1612047262268767, + 0.20322353393441045, + 0.23439330948069675, + 0.2542111524840699, + 0.2623532014092845, + 0.25867974107535185, + 0.24323740606519445, + 0.21625844528829558, + 0.17815705929442946, + 0.12952286810148161, + 0.07111161255315827, + 0.0038332358523395227, + -0.07126246676915882, + -0.15300240393079367, + -0.24010868843721284, + -0.33121879030534424, + -0.4249070246583033, + -0.5197070356098825, + -0.6141349215553766, + -0.7067126371684853, + -0.7959913030416554, + -0.8805740553622405, + -0.9591380752716955, + -1.0304554504916594, + -1.0934125402165076, + -1.147027537876843, + -1.1904659547979501, + -1.2230537805672541, + -1.2442881125638223, + -1.2538450870155706, + -1.2515849865071442, + -1.2375544433895889, + -1.2119857043429603, + -1.1752929676901231, + -1.128065851224492, + -1.0710600935678176, + -1.0051856357035067, + -0.931492270646396, + -0.8511530875625466, + -0.7654459714353075, + -0.6757334500383122, + -0.5834412060414784, + -0.4900355931264901, + -0.3970005106961719, + -0.30581400187739516, + -0.2179249438807469, + -0.1347301983245553, + -0.05755258187550784, + 0.01237999537737243, + 0.07395389481527585, + 0.1261873120530051, + 0.16824576059756313, + 0.1994552322155395, + 0.21931282646259329, + 0.22749468174071735, + 0.22386108280604713, + 0.20845866417857029, + 0.1815196747047324, + 0.14345831487120492, + 0.09486420463261169, + 0.0364930847694373, + -0.030745101578879885, + -0.10580055924394924, + -0.1875001969087535, + -0.27456612744169406, + -0.36563582092330993, + -0.4592835925405425, + -0.554043086471145, + -0.6484304011743083, + -0.7409674913878853, + -0.8302054777684125, + -0.9147474965675202, + -0.9932707289909327, + -1.064547262824723, + -1.1274634573278344, + -1.1810375059953548, + -1.2244349202172575, + -1.2569816896457466, + -1.2781749117246757, + -1.2876907227469179, + -1.2853894053621042, + -1.2713175919863675, + -1.2457075293649462, + -1.2089734158859466, + -1.161704869408104, + -1.10465762861865, + -1.0387416345664553, + -0.9650066803319393, + -0.8846258551469108, + -0.79887704406039, + -0.7091227749118645, + -0.6167887304372187, + -0.523341264384147, + -0.4302642762215232, + -0.3390358091423735, + -0.2511047404236654, + -0.16786793174992654, + -0.09064819985434826, + -0.020673454892438367, + 0.04094266445040544, + 0.09321835372232293, + 0.1353191263635328, + 0.16657097407382349, + 0.18647099634192243, + 0.1946953315028231, + 0.19110426424558416, + 0.1757444290230224, + 0.14884807461434235, + 0.11082940143888119, + 0.06227802938388151, + 0.003949699162308182, + -0.06324564615394268, + -0.13825821146418146, + -0.21991490551905757, + -0.30693784125485857, + -0.3979644888199604, + -0.4915691634693212, + -0.5862855094486856, + -0.6806296252854247, + -0.7731234657856494, + -0.8623181516741297, + -0.9468168192708775, + -1.025296649850129, + -1.0965297312664233, + -1.159402422847386, + -1.2129329181567576, + -1.2562867286533006, + -1.2887898440580716, + -1.3099393618838748, + -1.3194114184925876, + -1.3170662966029318, + -1.3029506287002204, + -1.277296661598933, + -1.2405185937565397, + -1.193206043101148, + -1.136114748389478, + -1.0701546507399915, + -0.9963755433027626, + -0.9159505153792891, + -0.8301574520883674, + -0.7403588813394667, + -0.6479804859383504, + -0.5544886197027685, + -0.4613671821717508, + -0.37009421660841046, + -0.2821186003600282, + -0.19883719518155718, + -0.12157281787653185, + -0.05155337867099709, + 0.010107483679113835, + 0.062427964651233875, + 0.10457357761489536, + 0.13587031419904289, + 0.15581527382152727, + 0.16408459474639536, + 0.16053856159164615, + 0.14522380873900007, + 0.11837258489645047, + 0.08039909041210126, + 0.031892945101788195, + -0.026390110392880903, + -0.09354013307154482, + -0.1685073279050343, + -0.2501186037156927, + -0.33709607351151405, + -0.42807720751267164, + -0.5216363210459729, + -0.616307058429175, + -0.7106055182616058, + -0.8030536554214962, + -0.8922025907057874, + -0.9766554605067559, + -1.0550894461708868, + -1.1262766356252214, + -1.1891033882697843, + -1.242587897740877, + -1.285895675569882, + -1.3183527115505516, + -1.3394561032684371, + -1.3488819871582758, + -1.3464906460116968, + -1.3323287123869956, + -1.3066284331717233, + -1.2698040068964598, + -1.2224450515625498, + -1.1653073059999546, + -1.0993007114005224, + -1.0254750609877379, + -0.9450034441366182, + -0.8591637460395121, + -0.7693184946794693, + -0.676893372936068, + -0.5833547347008063, + -0.4901864795865521, + -0.3988666509304336, + -0.31084412615362955, + -0.22751576708519172, + -0.15020439060284085, + -0.08013790700683303, + -0.018429955127360273, + 0.03393766043865416, + 0.07613045298625402, + 0.10747441406992882, + 0.12746664303293992, + 0.13578327806469243, + 0.13228460370847514, + 0.11701725427120599, + 0.09021347838604407, + 0.052287476326152105, + 0.003828867832382704, + -0.05440660652875852, + -0.1215090038319933, + -0.1964285291234218, + -0.27799209130061553, + -0.36492180344691066, + -0.45585513585795523, + -0.5493664039360056, + -0.6439892520743269, + -0.7382397789479371, + -0.8306399395106949, + -0.9197408546354289, + -1.004145660790102, + -1.0825315393972135, + -1.1536705784596641, + -1.2164491374535593, + -1.2698854100913675, + -1.313144907980562, + -1.3455536209911583, + -1.3666086467850347, + -1.3759861218732816, + -1.3735463291239869, + -1.3593359011719537, + -1.333587084981302, + -1.2967140791592935, + -1.2493065017839355, + -1.1921200917620047, + -1.1260647903621872, + -1.0521903908848858, + -0.9716699827820765, + -0.8857814513232147, + -0.7958873245684286, + -0.7034132854744333, + -0.6098256880100366, + -0.51660843186542, + -0.425239560455028, + -0.3371679512775283, + -0.2537904662395212, + -0.1764299222962441, + -0.106314229825602, + -0.0445570277355635, + 0.007859879299285902, + 0.05010200449609292, + 0.08149533933143543, + 0.10153698307062188, + 0.10990307382502086, + 0.10645389605982324, + 0.0912360840037944, + 0.06448188621184955, + 0.02660550287887456, + -0.021803446332610346, + -0.0799892209345933, + -0.1470418780802225, + -0.22191162289411903, + -0.303425364352513, + -0.3903052156173781, + -0.4811886470631619, + -0.5746499741708362, + -0.6692228414126167, + -0.7634233475423816, + -0.8557734475929826, + -0.9448242625163595, + -1.0291789288595306, + -1.107514628124176, + -1.1786034483924879, + -1.2413317492198082, + -1.2947177243980268, + -1.3379268856140065, + -1.3702852228172677, + -1.3912898337492208, + -1.4006168550005902, + -1.3981265695191267, + -1.3838656100193685, + -1.358066223545243, + -1.3211426087838343, + -1.273684383893132, + -1.2164472878598342, + -1.1503412620326714, + -1.0764160997921743, + -0.9958448906704889, + -0.9099055200172537, + -0.8199605159728541, + -0.7274355615744524, + -0.633797010871176, + -0.5405287636336678, + -0.4491088633569775, + -0.36098618762025014, + -0.27755759841075023, + -0.20014591276445517, + -0.12997904114002304, + -0.06817062252618443, + -0.015702461678476123, + 0.02659095453932571, + 0.05803561752284786, + 0.07812862645630672, + 0.0865461193699696, + 0.0831483806478567, + 0.06798204443749525, + 0.041279359212530356, + 0.00345452508648926, + -0.04490283835952101, + -0.10303699071891292, + -0.17003798922637084, + -0.24485603908813042, + -0.32631804936200676, + -0.4131461332916595, + -0.503977761333323, + -0.5973872490497771, + -0.6919082409950339, + -0.7860568360049762, + -0.8783549891943644, + -0.9673538215971725, + -1.051656469842566, + -1.1299401155143252, + -1.2009768467768103, + -1.2636530232676728, + -1.3169868388610828, + -1.3601438053263037, + -1.3924499126952417, + -1.4134022587918134, + -1.4226769802892556, + -1.4201343602179184, + -1.40582103137498, + -1.3799692408870659, + -1.342993187524026, + -1.2954824895266268, + -1.2381928859644697, + -1.172034318269154, + -1.0980565799042215, + -1.0174327604848088, + -0.931440745443691, + -0.8414430630043717, + -0.7488653962870933, + -0.6551740994243473, + -0.5618530722700499, + -0.47038035840253445, + -0.3822048354844292, + -0.29872336558637014, + -0.22125876582789988, + -0.15103894675121718, + -0.0891775474286743, + -0.03665637269945643, + 0.0056900904889800735, + 0.037187833448414906, + 0.05733395527929301, + 0.06580459392799813, + 0.062460033694627395, + 0.04734690864273586, + 0.020697467161928607, + -0.01707409071833474, + -0.06537814550106741, + -0.12345895686388664, + -0.1904065821257329, + -0.26517122657702785, + -0.34657979936003697, + -0.4333544138027362, + -0.5241325404458126, + -0.617488494936532, + -0.7119559219134648, + -0.8060509202970152, + -0.8982954452866454, + -0.9872406180009929, + -1.0714895751539593, + -1.1497194984140946, + -1.2207024760306449, + -1.2833248677260922, + -1.336604867459561, + -1.3797079870852966, + -1.41196021672024, + -1.4328586542733694, + -1.4420794365030785, + -1.4394828465248815, + -1.425115517221173, + -1.3992096958038687, + -1.3621795811281223, + -1.314614791520102, + -1.2572710661348134, + -1.191058346489286, + -1.1170264261326184, + -1.036348394765514, + -0.9503021379062982, + -0.860250183864207, + -0.7676182158451046, + -0.6738725880672938, + -0.5804972004704447, + -0.48897009671881686, + -0.400740154560822, + -0.317204236153057, + -0.23968515870108323, + -0.16941083283310643, + -0.10749489770754182, + -0.05491915824974229, + -0.012518101493266848, + 0.01903426378743381, + 0.039235036606532256, + 0.04776035482412168, + 0.044470502653956065, + 0.029412114073182172, + 0.002817437384993793, + -0.03489932746764639, + -0.08314856107427576, + -0.14117452319904994, + -0.20806727124759525, + -0.28277701059697186, + -0.36413065047607507, + -0.4508503042996961, + -0.5415734426952739, + -0.6348743813969722, + -0.7292867651301529, + -0.8233266929022274, + -0.9155161199995562, + -1.0044061676277682, + -1.0885999725879312, + -1.166774716635587, + -1.2377024881071064, + -1.3002696468122021, + -1.3534943867971765, + -1.3965422200036044, + -1.428739136635662, + -1.4495822346897158, + -1.4587476510115196, + -1.4560956688040365, + -1.441672921037127, + -1.4157116550102198, + -1.3786260696660362, + -1.3310057834183087, + -1.2736065355097077, + -1.207338267544933, + -1.1332507731608015, + -1.0525171421457546, + -0.9664152601059957, + -0.876307655438483, + -0.7836200114370399, + -0.6898186824078687, + -0.5963875683786212, + -0.5048047131014723, + -0.41651899441299833, + -0.33292727455782817, + -0.25535237082955176, + -0.18502219394464364, + -0.12305038314968983, + -0.07041874345824015, + -0.027961761992177606, + 0.0036465523857774074, + 0.02390329860141875, + 0.03248461442645731, + 0.029250783986220802, + 0.014248441169395124, + -0.012290165809351078, + -0.04995083709557402, + -0.09814395336739619, + -0.15611377447760694, + -0.2229503579204285, + -0.29760390916168256, + -0.3789013375189866, + -0.46556475649585993, + -0.5562316368085407, + -0.6494762942800725, + -0.7438323737247163, + -0.8378159742386884, + -0.9299490511973839, + -1.018782725895413, + -1.1029201352227869, + -1.1810384610242028, + -1.2519097917250983, + -1.31442048722428, + -1.3675887416572343, + -1.4105800670547208, + -1.4427204537101785, + -1.463506999709213, + -1.4726158419868995, + -1.4699072638355277, + -1.4554278983143405, + -1.4294099928121624, + -1.3922677463611557, + -1.3445907774645542, + -1.287134825454512, + -1.2208098320253091, + -1.146665590903248, + -1.0658751919664944, + -0.9797165209107863, + -0.8895521062228772, + -0.7968076312862645, + -0.7029494504967874, + -0.6094614639720013, + -0.5178217155538685, + -0.42947908316874595, + -0.34583042915119944, + -0.2681985708847038, + -0.19781141917567258, + -0.13578261336065128, + -0.08309395854323115, + -0.040579941935288646, + -0.008914572489626474, + 0.011399248629451672, + 0.02003765910352956, + 0.016860942967772907, + 0.0019157340206795853, + -0.024565719613299425, + -0.062169218169995044, + -0.11030514241779248, + -0.16821775229978558, + -0.23499710540056779, + -0.3095934072763613, + -0.3908335673350988, + -0.477439699170803, + -0.5680492735901803, + -0.6612366065066843, + -0.755535342825204, + -0.8494615817324874, + -0.9415372786944687, + -1.0303135550963716, + -1.114393547918887, + -1.1924544390973928, + -1.2632683171479238, + -1.3257215420601263, + -1.378832308060176, + -1.4217661272696185, + -1.4538489900727478, + -1.474577994645962, + -1.4836292780152096, + -1.480863123563685, + -1.4663261644415515, + -1.4402506481285653, + -1.4030507737478926, + -1.355316159893734, + -1.2978025459893, + -1.2314198738199367, + -1.1572179372029772, + -1.076369826107746, + -0.9901534263211218, + -0.899931266420958, + -0.8071290298820206, + -0.7132130711912801, + -0.6196672905575935, + -0.5279697319141468, + -0.4395692732786483, + -0.35586277707693525, + -0.2781730607837911, + -0.20772803529704906, + -0.14564134004463852, + -0.09289478022152756, + -0.0503228431310819, + -0.018599537817528947, + 0.0017722344633156473, + 0.01046861130152689, + 0.007349876640739966, + -0.00753733581211001, + -0.033960778024175534, + -0.07150625032285803, + -0.11958413356819975, + -0.17743868779495908, + -0.24415997067936362, + -0.3186981878693598, + -0.39988024886464396, + -0.486428267350933, + -0.5769797142266977, + -0.6701089054972456, + -0.7643494861592389, + -0.8582175554911966, + -0.9502350690510382, + -1.0389531483157812, + -1.122974930358022, + -1.2009775972050987, + -1.2717332374650008, + -1.3341282112192623, + -1.38718071278611, + -1.4300562543790856, + -1.462080826474483, + -1.482751527340791, + -1.4917444940960087, + -1.4889200102154156, + -1.474324708941296, + -1.4481908378455275, + -1.4109325961434096, + -1.3631396025213713, + -1.3055675964947406, + -1.2391265199411166, + -1.1648661667700684, + -1.0839596270431164, + -0.9976847866394358, + -0.9074041742292102, + -0.8145434733794501, + -0.7205690386694892, + -0.6269647704004633, + -0.5352087125980023, + -0.44674974337210993, + -0.36298472524108205, + -0.2852364757721114, + -0.21473290595541125, + -0.15258765531140112, + -0.09978252912754743, + -0.057152014799627754, + -0.025370121464431267, + -0.004939750470242532, + 0.003815235680442716, + 0.000755120838714235, + -0.01407346138105399, + -0.04043826303858994, + -0.07792508455393764, + -0.125944306879717, + -0.18374019014331655, + -0.25040279211365696, + -0.3248823185312918, + -0.40600567898866174, + -0.4924949872641285, + -0.5829877143488928, + -0.6760581763409665, + -0.7702400183297746, + -0.8640493396866779, + -0.9560080960621965, + -1.0446674090262407, + -1.1286304157442029, + -1.2065742983361627, + -1.2772711455030321, + -1.3396073174191607, + -1.3926010084956024, + -1.4354177310387788, + -1.4673834756178898, + -1.4879953405942985, + -1.4969294631789136, + -1.4940461269399488, + -1.479391965212617, + -1.4531992256617485, + -1.4158821075956127, + -1.368030229793571, + -1.310399331864001, + -1.2438993557774585, + -1.169580095536531, + -1.0886146412957625, + -1.0022808790273836, + -0.9119413374945621, + -0.8190217003574258, + -0.7249883222884002, + -0.6313251036815722, + -0.53951008865577, + -0.4509921554141178, + -0.367168166567961, + -0.28936093977767086, + -0.21879838612649333, + -0.15659414522810328, + -0.10373002246303849, + -0.06104050532031251, + -0.02919960302984491, + -0.008710217033101722, + 0.00010379007421275344, + -0.00289729795000343, + -0.017666847584595385, + -0.04397261098249991, + -0.08140038865701277, + -0.1293605616539686, + -0.18709739019402782, + -0.2537009321393061, + -0.32812139332369294, + -0.4091856834328943, + -0.49561591633851376, + -0.5860495631250568, + -0.6790609399838536, + -0.7731836920975472, + -0.8669339189309159, + -0.9588335762277767, + -1.0474337856513223, + -1.131337684460282, + -1.209222454868113, + -1.2798601856690812, + -1.3421372371308142, + -1.3950718037577885, + -1.4378293979497812, + -1.4697360103693298, + -1.4902887394712303, + -1.499163722559743, + -1.4962212432964703, + -1.4815079351100275, + -1.4552560457586492, + -1.4178797746439873, + -1.3699687406388514, + -1.312278683444991, + -1.2457195451264154, + -1.1713411197791648, + -1.090316497651104, + -1.0039235648079845, + -0.9135248501064376, + -0.8205460372999738, + -0.7264534811544842, + -0.6327310821575067, + -0.5408568845213435, + -0.45227976654251467, + -0.36839659092588894, + -0.2905301754252789, + -0.21990843121739959, + -0.157644998009396, + -0.10472168127528717, + -0.06197296859753085, + -0.03007286929955877, + -0.009524284916303194, + -0.0006510781369508112, + -0.0035929652970931175, + -0.01830331296905341, + -0.0445498733992607, + -0.08191844719448327, + -0.12981941549410106, + -0.1874970386121954, + -0.25404137450445397, + -0.32840262909817053, + -0.4094077121725694, + -0.49577873769284797, + -0.5861531768368959, + -0.6791053458895557, + -0.7731688901270317, + -0.8668599091075146, + -0.9587003586684035, + -1.0472413605663253, + -1.131086052153544, + -1.2089116157369588, + -1.279490140204357, + -1.3417079859169336, + -1.3945833474725655, + -1.4372817373645477, + -1.4691291463489389, + -1.4896226729739783, + -1.4984384546374545, + -1.4954367750944395, + -1.4806642678670343, + -1.4543531808069683, + -1.4169177134093607, + -1.368947484640481, + -1.3111982342956123, + -1.2445799045321946, + -1.170142289539731, + -1.089058479659628, + -1.002606361051014, + -0.912148462663996, + -0.8191104683455843, + -0.7249587329551066, + -0.6311771570735734, + -0.5392437850066725, + -0.45060749514445064, + -0.36666515028513746, + -0.2887395682760418, + -0.2180586603873047, + -0.15573606641945203, + -0.10275359193996401, + -0.05994572462473191, + -0.02798647389056637, + -0.007378741365825628, + 0.0015536101669123281, + -0.0013291357213480737, + -0.015980345696326503, + -0.04216777209783415, + -0.07947721562602793, + -0.12731905751363548, + -0.1849375581681374, + -0.251422775638555, + -0.3257249159455875, + -0.4066708889617619, + -0.49298280874563283, + -0.5832981465684258, + -0.676191218808335, + -0.7701956708348222, + -0.8638276022994569, + -0.9556089691329231, + -1.044090893185148, + -1.1278765119016705, + -1.2056430076827278, + -1.2761624695093268, + -1.3383212578359514, + -1.3911375673537383, + -1.4337769106492302, + -1.4655652785717272, + -1.485999769762715, + -1.4947565217131968, + -1.4916958182714581, + -1.4768642930528133, + -1.4504941940021778, + -1.4129997207078917, + -1.3649704922293648, + -1.307162248455049, + -1.240484931635567, + -1.16598833605358, + -1.0848455521435965, + -0.9983344661578483, + -0.9078176071396815, + -0.8147206590290719, + -0.7205099767785249, + -0.6266694610621579, + -0.5346771562786063, + -0.44598194091108684, + -0.3619806778508969, + -0.28399618503832524, + -0.2132563738365771, + -0.15087488413915123, + -0.0978335216065843, + -0.05496677400771423, + -0.02294865085236611, + -0.002282053861857203, + 0.006709154088295852, + 0.003885256476133511, + -0.010707113456974615, + -0.036835708143775917, + -0.07408632837729677, + -0.12186935548321817, + -0.17942904996183556, + -0.24585546995507251, + -0.3200988215764279, + -0.4009860147912916, + -0.4872391637510832, + -0.5774957398197775, + -0.6703300594683584, + -0.7642757681591303, + -0.8578489656363417, + -0.9495716079235101, + -1.0379948169632338, + -1.1217217302937903, + -1.1994295304081064, + -1.2698903063799118, + -1.3319904187563565, + -1.3847480623212065, + -1.4273287497536649, + -1.4590584719956579, + -1.4794343277812658, + -1.4881324546941037, + -1.4850131366750283, + -1.4701230074319103, + -1.443694315002221, + -1.4061412590668039, + -1.358053458777587, + -1.3001866541155453, + -1.2334507874237428, + -1.1588956530773071, + -1.0776943416032099, + -0.9911247393460672, + -0.9005493754416068, + -0.8073939339222952, + -0.7131247698329247, + -0.619225783939963, + -0.527175020734462, + -0.43842135879184574, + -0.3543616610957319, + -0.2763187456787244, + -0.20552052399627926, + -0.1430806360341024, + -0.08998088754494432, + -0.04705576638989947, + -0.014979282170924951, + 0.005745663298487053, + 0.014795207050681852, + 0.012029632471585339, + -0.0025044272895489023, + -0.028574724757526912, + -0.06576706081744758, + -0.11349181688701747, + -0.1709932535585842, + -0.23736142906601548, + -0.3115465496148472, + -0.39237552526237696, + -0.4785704702519523, + -0.5687688560395199, + -0.6615449991879164, + -0.7554325452512496, + -0.8489475940657418, + -0.9406121017466094, + -1.0289771903283973, + -1.112645997441041, + -1.1902957056692811, + -1.2606984041785325, + -1.3227404536076828, + -1.3754400488322491, + -1.417962702623019, + -1.4496344060135864, + -1.4699522578296675, + -1.4785923957464515, + -1.4754151037963814, + -1.4604670157788733, + -1.433980379822913, + -1.3963693957008796, + -1.3482236826561493, + -1.2902989807611154, + -1.223505232450329, + -1.1488922321903, + -1.0676330705993564, + -0.9810056341135455, + -0.890372451959828, + -0.7971592082619887, + -0.7028322581561401, + -0.6088755025000024, + -0.5167669858757903, + -0.42795558695017255, + -0.3438381687979788, + -0.26573754954290174, + -0.19488164073152595, + -0.13238408244069785, + -0.07922668051420136, + -0.036243922904157205, + -0.004109819303572584, + 0.016672728383086255, + 0.025779857097199474, + 0.023071850133758287, + 0.008595340551116992, + -0.017417424266425785, + -0.0545522452948089, + -0.10221950404253931, + -0.1596634611928361, + -0.22597417507027864, + -0.3001018519711178, + -0.3808734020434097, + -0.4670109396211303, + -0.5571519362510001, + -0.6498707085863391, + -0.7437009022719768, + -0.8371586172345753, + -0.9287658096799539, + -1.0170736017332054, + -1.1006851311146826, + -1.1782775804995809, + -1.2486230391437845, + -1.3106078677765054, + -1.3632502613636774, + -1.4057157327663803, + -1.4373302731085218, + -1.45759098130607, + -1.466173995124472, + -1.4629395986863685, + -1.4479344258813507, + -1.4213907249285604, + -1.3837226956904556, + -1.335519957500558, + -1.2775382505212538, + -1.2106875172771159, + -1.1360175523246698, + -1.0547014463722064, + -0.9680170859456579, + -0.8773270003618505, + -0.784056873834532, + -0.6896730615895582, + -0.5956594645744416, + -0.5034941274612413, + -0.4146259290062481, + -0.3304517323740094, + -0.2522943557779181, + -0.1813817108541803, + -0.11882743776920432, + -0.06561334245634395, + -0.022573912957274386, + 0.009616840945541008, + 0.030456017258150225, + 0.03961975283252028, + 0.036968330874253066, + 0.022548384352339107, + -0.0034078394382277416, + -0.04048614156268428, + -0.08809690361879981, + -0.1454843863789712, + -0.21173864825697783, + -0.2858098956382531, + -0.36652503875991593, + -0.4526061920450304, + -0.5426908271293572, + -0.6353532607552184, + -0.7291271386563882, + -0.8225285608485238, + -0.9140794836262736, + -1.0023310292036096, + -1.0858863353897068, + -1.163422584948559, + -1.2337118672247485, + -1.295640543036249, + -1.3482268074376371, + -1.3906361733786616, + -1.4221946320717924, + -1.4423992825215843, + -1.450926262581989, + -1.447635856464141, + -1.4325746981460759, + -1.405975035935343, + -1.3682510697827848, + -1.319992419110223, + -1.2619548241683793, + -1.195048227570033, + -1.120322423959966, + -1.0389505041346119, + -0.9522103547080987, + -0.8614645050853353, + -0.7681386395680233, + -0.673699113470162, + -0.5796298278272238, + -0.4874088273991437, + -0.3984849910301972, + -0.31425518197272695, + -0.2360422185279515, + -0.16507401241989186, + -0.10246420390268798, + -0.04919459899736457, + -0.006099685833251878, + 0.026146525719524805, + 0.04704113357947712, + 0.05626027451102682, + 0.05366423163228365, + 0.03929963782479193, + 0.013398740296123438, + -0.02362426210631549, + -0.07117975106760861, + -0.12851198744746126, + -0.1947110297469156, + -0.2687270844385088, + -0.34938706184663104, + -0.4354130764813928, + -0.525442600065622, + -0.6180499494287526, + -0.7117687703914406, + -0.8051151630562847, + -0.8966110838049381, + -0.9848076549381446, + -1.0683080143519303, + -1.145789344896986, + -1.2160237360047228, + -1.277897548579742, + -1.3304289777632312, + -1.3727835365915744, + -1.4042872163637656, + -1.4244371161708884, + -1.4329093739533234, + -1.4295642740086372, + -1.4144484504012294, + -1.3877941515249663, + -1.3500155774169715, + -1.3017023475853362, + -1.2436102023669182, + -1.1766490844606432, + -1.1018687885974034, + -1.0204424056597392, + -0.9336478223476736, + -0.8428475681521508, + -0.7494673274607415, + -0.6549734556733762, + -0.5608498539113033, + -0.4685745670201687, + -0.3795964739301163, + -0.29531243797901024, + -0.21704527755384986, + -0.146022904464117, + -0.08335895904954209, + -0.03003524741668548, + 0.01311374221977643, + 0.04541399990427182, + 0.06636262346996719, + 0.07563574959598206, + 0.0730936613151964, + 0.058782991423929995, + 0.03293598704460286, + -0.004033153060454278, + -0.05153481066139751, + -0.10881324670296542, + -0.17495851977110924, + -0.24892083642334845, + -0.32952710706881655, + -0.4154994463025593, + -0.5054753259320692, + -0.5980290628715739, + -0.6916943030263067, + -0.7849871465835824, + -0.876429550009511, + -0.9645726356893101, + -1.0480195416036644, + -1.1254474506875176, + -1.1956284524567118, + -1.2574489079000621, + -1.3099270122430886, + -1.3522282786064115, + -1.3836786983731317, + -1.4037753707184244, + -1.4121944336667571, + -1.4087961715996857, + -1.3936272186655516, + -1.3669198233421365, + -1.329088185750419, + -1.2807219254822306, + -1.222576782958233, + -1.1555627009610159, + -1.080729474305147, + -0.9992501939566849, + -0.9124027466991769, + -0.8215496621071643, + -0.7281166246515266, + -0.6335699898156064, + -0.539393658803931, + -0.44706567654553764, + -0.3580349220536588, + -0.2736982587493591, + -0.1953785051027116, + -0.12430357300631695, + -0.061587102882898634, + -0.00821090092187901, + 0.03499054457908245, + 0.06734322358165425, + 0.0883442338361624, + 0.09766971193904003, + 0.09517994084047506, + 0.08092155325418457, + 0.05512679622003576, + 0.0182098684178294, + -0.029239612005055163, + -0.08646590607567631, + -0.15255907246239978, + -0.22646931780500376, + -0.3070235525948875, + -0.39294389150919307, + -0.4828678064375249, + -0.5753696143762084, + -0.6689829613125666, + -0.762223947515777, + -0.8536145295337542, + -0.941705829833676, + -1.0251009864779608, + -1.1024771824833393, + -1.1726065074471124, + -1.2343753224399037, + -1.286801822768732, + -1.3290515216356626, + -1.360450410505255, + -1.3804955886340473, + -1.3888631941278455, + -1.38541351144945, + -1.3701931748284077, + -1.3434344328236365, + -1.3055514856372, + -1.2571339529419316, + -1.1989375752395277, + -1.1318722953934488, + -1.0569879082990388, + -0.9754575050032019, + -0.8885589723702991, + -0.7976548400554275, + -0.7041707926101584, + -0.6095731855982165, + -0.5153459203048336, + -0.4229670417394362, + -0.33388542899550544, + -0.24949794557457747, + -0.17112741002682547, + -0.10000173432518465, + -0.03723455897240589, + 0.016192309762006182, + 0.059444383500329726, + 0.09184765212430589, + 0.11289921330439652, + 0.12227520355719242, + 0.11983590575311587, + 0.10562795252617978, + 0.0798835908366085, + 0.04301701928460114, + -0.004382144061943538, + -0.06155816030953477, + -0.12760108820598168, + -0.2014611344703729, + -0.28196520967341693, + -0.36783542857135165, + -0.45770926313304067, + -0.5501610304338977, + -0.6437243765402255, + -0.7369154018000303, + -0.8282560628403359, + -0.916297482207105, + -0.9996427980414094, + -1.0769691934388004, + -1.1470487580751834, + -1.2087678530997834, + -1.2611446738980838, + -1.3033447337505901, + -1.3346940242003398, + -1.3546896445821228, + -1.363007733080023, + -1.3595085742350257, + -1.344238802354828, + -1.3174306660763753, + -1.2794983656797272, + -1.2310315209157567, + -1.172785872363915, + -1.1056713629655064, + -1.0307377876935795, + -0.9491582376727834, + -0.8622105998450931, + -0.7712574039430308, + -0.6777243345957673, + -0.5830777474443976, + -0.48880154385154284, + -0.3963737689038247, + -0.3072433017719411, + -0.22280700603469433, + -0.1443877003192206, + -0.07321329667550945, + -0.010397435683207487, + 0.04307807631114266, + 0.0863787508531456, + 0.11883057774779046, + 0.1399306545888167, + 0.1493551178162048, + 0.1469642502238395, + 0.1328046843692583, + 0.10710866713627316, + 0.07029039704872171, + 0.02293949209828322, + -0.034188308897813005, + -0.10018306476352766, + -0.1739949822939964, + -0.25445097213581125, + -0.340273149121325, + -0.43009898529527724, + -0.5225027978086292, + -0.6160182328036592, + -0.7091613907039501, + -0.8004542282121536, + -0.8884478679496719, + -0.9717454481330289, + -1.049024151933236, + -1.119056069101469, + -1.1807275608622252, + -1.233056822676075, + -1.2752093678987098, + -1.30651118814817, + -1.326459382834223, + -1.3347300902158028, + -1.3311835949087565, + -1.3158665312955071, + -1.2890111480876978, + -1.2510316456400115, + -1.2025176437778236, + -1.144224883155039, + -1.0770633067874154, + -1.0020827097223317, + -0.9204561831586267, + -0.8334616141124891, + -0.7424615323905109, + -0.648881622696025, + -0.5541882407440137, + -0.4598652879709059, + -0.36739080953719305, + -0.278213684687527, + -0.1937307770741437, + -0.1152649053979019, + -0.04404398178219246, + 0.01881835311968519, + 0.072340292887922, + 0.11568734899479333, + 0.14818551117199805, + 0.16933187694016166, + 0.17880258266612759, + 0.17645791107078176, + 0.16234449463869577, + 0.13669458018081337, + 0.09992236614819346, + 0.05261747045974603, + -0.004464368139993791, + -0.07041320854739933, + -0.14417925763024747, + -0.22458942610761015, + -0.31036582888413444, + -0.4001459380767582, + -0.4925040709087718, + -0.5859738735945061, + -0.6790714466297303, + -0.7703187467889958, + -0.8582668967655311, + -0.9415190348478208, + -1.0187523442785924, + -1.0887389148807678, + -1.150365107950269, + -1.2026491190193833, + -1.2447564615152302, + -1.2760131271271427, + -1.29591621533626, + -1.3041418644727467, + -1.3005503592235848, + -1.285188334042284, + -1.2582880377114942, + -1.2202636706568037, + -1.1717048527744442, + -1.1133673247890636, + -1.0461610297871942, + -0.9711357628867514, + -0.8894646153571402, + -0.8024254742849317, + -0.7113808695473437, + -0.6177564859177769, + -0.5230186791814809, + -0.42865135084512396, + -0.33613254613927, + -0.2469111443784854, + -0.16238400928493119, + -0.08387395962934788, + -0.012608907604952466, + 0.05029750606534371, + 0.10386347489215077, + 0.14725451027820352, + 0.17979660188569696, + 0.20098684716594067, + 0.21050138241646787, + 0.20820049028894366, + 0.19413080319883003, + 0.1685245678880074, + 0.13179598273852075, + 0.08453466560040636, + 0.027496355149440974, + -0.03840900757955934, + -0.1121316295230047, + -0.19249842146854326, + -0.27823149838936084, + -0.36796833247069194, + -0.46028324100428525, + -0.55370987027273, + -0.646764320839929, + -0.7379685495484047, + -0.8258736791596129, + -0.9090828480299604, + -0.9862732394698106, + -1.0562169433700763, + -1.1178003210943017, + -1.1700415682424032, + -1.212106198308971, + -1.2433202030508355, + -1.2631806820165168, + -1.2713637736034311, + -1.267729762565775, + -1.252325283424186, + -1.2253825850283646, + -1.187315867870812, + -1.1387147519146357, + -1.0803349779514064, + -1.0130864891342253, + -0.9380190806476495, + -0.8563058438276973, + -0.7692246658274164, + -0.6781380765903258, + -0.5844717609561212, + -0.48969207477639626, + -0.39528291962378215, + -0.30272234079506327, + -0.21345921767064574, + -0.1288904140385794, + -0.05033874873555021, + 0.02096786597971946, + 0.08391578931854829, + 0.13752321472607365, + 0.18095565353943427, + 0.2135390953555738, + 0.23477063756046068, + 0.2443264163864151, + 0.24206671441997218, + 0.22803816401154928, + 0.20247301183805072, + 0.16578545621667234, + 0.1185651149326498, + 0.061567726597077724, + -0.0042967678198993775, + -0.07797857531923824, + -0.1583046067530123, + -0.24399697715864838, + -0.3336931587858569, + -0.42596746899058946, + -0.5193535541192931, + -0.6123675148001476, + -0.703531307939532, + -0.7913960563627919, + -0.8745648984899873, + -0.9517150176952773, + -1.0216185039331025, + -1.0831617186306315, + -1.1353628574510615, + -1.1773874339523536, + -1.2085614399546345, + -1.228381975069563, + -1.2365251777576354, + -1.2328513328360298, + -1.2174070748882964, + -1.190424652826918, + -1.152318267207193, + -1.1036775380548445, + -1.0452582062239655, + -0.9779702149301117, + -0.9028633594203197, + -0.8211107310928002, + -0.7339902171628389, + -0.6428643476360294, + -0.54915880741418, + -0.4543399524108265, + -0.3598916842604104, + -0.26729204832139564, + -0.17798992403591432, + -0.09338217525379636, + -0.014791620872992961, + 0.056553826786284, + 0.11954052687405635, + 0.17318667277415176, + 0.21665777576263948, + 0.24927982537539256, + 0.27054991893738595, + 0.2801441926200803, + 0.27792292894922016, + 0.2639327602145254, + 0.23840593303227495, + 0.2017566456591834, + 0.15457451582001702, + 0.09761528206554072, + 0.03178888530558599, + -0.0418548815207757, + -0.12214292932584186, + -0.2077973732070701, + -0.2974556854739906, + -0.38969218354226925, + -0.48304051381818713, + -0.5760167769894625, + -0.6671429300221683, + -0.7549700958008831, + -0.8381014128050575, + -0.9152140644681883, + -0.9850801408038724, + -1.046586003298289, + -1.098749847673629, + -1.1407371875467998, + -1.1718740147967242, + -1.1916574290937065, + -1.1997635689569166, + -1.1960527192620523, + -1.1805715146510827, + -1.1535522040948676, + -1.1154089882069238, + -1.0667314870711464, + -1.0082754415996669, + -0.9409507950660727, + -0.8658073427752901, + -0.784018176183296, + -0.6968611825629893, + -0.6056988919776455, + -0.5119569893866714, + -0.4171018307609003, + -0.32261731779210123, + -0.2299814958960592, + -0.1406432445720445, + -0.05599942772685693, + 0.022627135684588184, + 0.09400853328511695, + 0.15703112416810758, + 0.21071310166059692, + 0.2542199769821678, + 0.28687773961214313, + 0.3081834868191041, + 0.3178133547182502, + 0.31562762577908665, + 0.30167293223520786, + 0.2761815206469269, + 0.239567589214998, + 0.1924207556083121, + 0.1354967583219296, + 0.06970553821010396, + -0.0039031118437273526, + -0.0841561028072892, + -0.16977554983343643, + -0.2593989252868867, + -0.3516005466384712, + -0.4449140603496741, + -0.5378555671630654, + -0.6289470240996462, + -0.7167395540987442, + -0.7998362956945881, + -0.8769144323752981, + -0.9467460542087747, + -1.0082175227358054, + -1.0603470337328285, + -1.1023001008709823, + -1.1334027160832658, + -1.1531519790940488, + -1.1612240284764321, + -1.1574791491599252, + -1.1419639758402482, + -1.1149107575419095, + -1.0767336949319737, + -1.0280224081477294, + -0.9695326381546956, + -0.9021743282797765, + -0.8269972738809754, + -0.745174566467283, + -0.6579840933647507, + -0.5667883846894167, + -0.47301312545341384, + -0.3781246716802479, + -0.28360692511439334, + -0.19093793122394676, + -0.10156656956072725, + -0.016889704083661347, + 0.06176984620003298, + 0.13318416886109535, + 0.19623962294097858, + 0.24995440171478855, + 0.2934940163503301, + 0.3261844562751707, + 0.34752281870634427, + 0.35718523970752797, + 0.35503200169681703, + 0.34110973685651236, + 0.3156506916957037, + 0.27906906436401674, + 0.23195447247936868, + 0.17506265448589042, + 0.10930355118704842, + 0.035726955415468775, + -0.044494043847091484, + -0.13008156180400476, + -0.2196730708704822, + -0.3118428885676421, + -0.40512466140723113, + -0.49803449018181656, + -0.5890943319625086, + -0.6768553097386412, + -0.7599205620941801, + -0.836967272566906, + -0.9067675312744516, + -0.9682076998070703, + -1.020305973990727, + -1.062227867545764, + -1.0932993724544398, + -1.113017588490294, + -1.121058654275418, + -1.1172828547882623, + -1.1017368247733774, + -1.0746528133039908, + -1.0364450210957576, + -0.9877030683345831, + -0.9291826960343712, + -0.8617938475703151, + -0.7865863183486317, + -0.7047331999265434, + -0.6175123796780172, + -0.5262863877670486, + -0.4324809092535502, + -0.3375623002088329, + -0.24301446242499047, + -0.15031544141759381, + -0.06091411678579788, + 0.02379264746406947, + 0.10248203227750433, + 0.1739261251782459, + 0.23701128516069822, + 0.29075570545310175, + 0.33432489717632125, + 0.36704484971134993, + 0.3884126602285783, + 0.39810446474516503, + 0.39598054563281804, + 0.3820875350275431, + 0.35665767939220794, + 0.3201051768303781, + 0.2730196449139834, + 0.21615682204122896, + 0.1504266489698097, + 0.0768789184866347, + -0.0033132804720201053, + -0.08887206315510815, + -0.17843490202318454, + -0.2705761146426827, + -0.3638293475703951, + -0.45671070164408284, + -0.5477421339797812, + -0.6354747676117232, + -0.7185117411685567, + -0.795530238232721, + -0.8653023489665059, + -0.9267144350045147, + -0.9787846922170884, + -1.0206786343687955, + -1.0517222534860755, + -1.0714126493864868, + -1.0794259607360308, + -1.075622472557008, + -1.0600488196376867, + -1.0329372510948982, + -0.9947019676878606, + -0.9459325896458708, + -0.88738485802608, + -0.8199687162469289, + -0.7447339597577727, + -0.6628536801588347, + -0.5756057648669024, + -0.4843527440887919, + -0.390520302927056, + -0.29557479749571064, + -0.20100012962919564, + -0.10827434488545142, + -0.018846322905940995, + 0.06588707226073609, + 0.14460302151821752, + 0.2160736123482434, + 0.2791852037032863, + 0.33295598876993604, + 0.37655147862739496, + 0.4092976626151368, + 0.43069163786210707, + 0.44040954034415314, + 0.4383116523917854, + 0.42444460609989304, + 0.39904064789033156, + 0.36251397582580813, + 0.31545420743745023, + 0.25861708108271536, + 0.19291253747873283, + 0.11939036937210382, + 0.03922366565854853, + -0.046309688951085545, + -0.13584716695754762, + -0.22796308596723763, + -0.32119109257688727, + -0.4140472876642225, + -0.505053628384879, + -0.5927612378127565, + -0.6757732546159811, + -0.7527668624164806, + -0.8225141514158385, + -0.8839014832877641, + -0.9359470539417792, + -0.9778163771814065, + -1.008835445071985, + -1.028501357469772, + -1.036490253079502, + -1.0326624169620087, + -1.0170644839439977, + -0.9899287031806607, + -0.9516692754694581, + -0.9028758210777599, + -0.8443040811008256, + -0.776863998994901, + -0.701605370247266, + -0.6197012864957474, + -0.5324296351947144, + -0.44115294658854276, + -0.34729690581716655, + -0.25232786903178206, + -0.15772973810394691, + -0.06498055862890509, + 0.02447078971514948, + 0.10922744284281771, + 0.18796658162092145, + 0.25946029349455585, + 0.32259493737968614, + 0.376388706426537, + 0.4200071116780529, + 0.4527761424374669, + 0.47419289579762747, + 0.4839335076984541, + 0.48185826043458063, + 0.46801378606512745, + 0.44263233097635846, + 0.40612809319539234, + 0.35909069021792095, + 0.30227586036613147, + 0.23659354432195565, + 0.1630935347968325, + 0.08294892065147952, + -0.0025624134380596852, + -0.09207794000730701, + -0.18417197669740498, + -0.2773781701396023, + -0.37021262124611176, + -0.4611972872067809, + -0.548883291129822, + -0.6318737717175567, + -0.7088459126258699, + -0.7785718040900825, + -0.8399378078178934, + -0.891962119752417, + -0.933810253730828, + -0.9648082018518123, + -0.9844530640050472, + -0.9924209789284932, + -0.9885722317161153, + -0.9729534572276317, + -0.9457969046511706, + -0.9075167748169696, + -0.858702688025075, + -0.8001103854033671, + -0.7326498104405827, + -0.6573707586562966, + -0.5754463217205406, + -0.4881543871200519, + -0.39685748513100844, + -0.3029813009253397, + -0.20799219068600985, + -0.11337405631640099, + -0.02060494344321892, + 0.06886626822382266, + 0.1536427145679574, + 0.23240157642478682, + 0.30391494120815477, + 0.36706916780309756, + 0.42088244932890284, + 0.46452029679766926, + 0.4973086994818925, + 0.5187447544439114, + 0.5285045975931318, + 0.5264485111938131, + 0.5126231272748242, + 0.4872606921922817, + 0.45077540394324617, + 0.40375687999352694, + 0.346960858635532, + 0.2812972805213587, + 0.2078159383329652, + 0.12768992090152556, + 0.042197112873826506, + -0.04729995831497701, + -0.13937561033526058, + -0.23256348984726413, + -0.3253796977919071, + -0.41634619138810003, + -0.5040140937727083, + -0.5869865436765535, + -0.6639407247840052, + -0.7336487273588135, + -0.7949969131369157, + -0.8470034780895099, + -0.8888339360818214, + -0.9198142792404371, + -0.9394416074828673, + -0.9473920595747449, + -0.9435259206376037, + -0.9278898255586325, + -0.9007160235533096, + -0.8624187154790725, + -0.8135875216632105, + -0.7549781832605318, + -0.6875006437866246, + -0.6122046987879068, + -0.5302634399611633, + -0.442954754819589, + -0.3516411736658489, + -0.2577483816982107, + -0.16274273512582138, + -0.06810813587830608, + 0.02467737039175926, + 0.11416490394876891, + 0.19895760065013818, + 0.27773264130570346, + 0.3492621133039431, + 0.41243237550443435, + 0.4662616210009879, + 0.5099153607806479, + 0.5427195840907637, + 0.5641713879686943, + 0.5739469082989618, + 0.571906427321083, + 0.5580965770392808, + 0.5327496037851397, + 0.496279705531288, + 0.4492764997192842, + 0.39249572461729476, + 0.3268473208533573, + 0.253381081085398, + 0.17327009412095315, + 0.08779224458286414, + -0.0016899401173505746, + -0.09375077767336548, + -0.18692391476893677, + -0.2797254523683093, + -0.3706773477135581, + -0.45833072396447827, + -0.5412887198749537, + -0.6182285191521366, + -0.6879222120824887, + -0.7492561604245712, + -0.8012485601719839, + -0.8430649252123832, + -0.8740312476946387, + -0.8936446275583599, + -0.9015812035911845, + -0.8977012609365982, + -0.882051434503575, + -0.8548639735292595, + -0.8165530788927073, + -0.7677083709426153, + -0.7090855908551182, + -0.641594682167086, + -0.5662854404460235, + -0.4843309574097492, + -0.3970091205922679, + -0.30568246031700763, + -0.21177666180297045, + -0.1167580812798468, + -0.022110620697598532, + 0.07068767427092561, + 0.16018792386968156, + 0.24499326393621065, + 0.3237808752604157, + 0.39532284521083905, + 0.4585055326272743, + 0.512347130583996, + 0.556013150048497, + 0.5888295802487986, + 0.6102935182029068, + 0.6200810997762063, + 0.6180526071891833, + 0.6042546724271185, + 0.5789195418027546, + 0.5424614132701022, + 0.49546990425204973, + 0.4387007529982629, + 0.3730639001185616, + 0.2996091382525611, + 0.21950955618962933, + 0.13404303853459015, + 0.044572112681190434, + -0.047477539082147246, + -0.14063956345680112, + -0.23343006142456485, + -0.32437099024498783, + -0.4120134730950592, + -0.49496064874598816, + -0.5718897009219728, + -0.6415727199265064, + -0.7028960675348246, + -0.754877939757448, + -0.7966838504986156, + -0.8276397919236613, + -0.8472428639886109, + -0.8551692054973927, + -0.8512791016096384, + -0.8356191872503841, + -0.8084217116726747, + -0.7701008757714262, + -0.721246299910993, + -0.66261372528308, + -0.5951130954401382, + -0.5197942059648426, + -0.4378301485903725, + -0.35049881086574053, + -0.2591627231296162, + -0.16524757061569267, + -0.0702197095683823, + 0.0244369580476097, + 0.11724438654481496, + 0.20675369615288935, + 0.29156802269502735, + 0.37036454694697285, + 0.44191535626312695, + 0.5051068094693277, + 0.5589570996260704, + 0.602631737687106, + 0.6354567128668079, + 0.6569291221696999, + 0.6667251014478134, + 0.6647049329083496, + 0.6509152485234709, + 0.6255882945928659, + 0.5891382690576419, + 0.5421547893278655, + 0.4853935936406, + 0.4197646225930575, + 0.3463176688123356, + 0.2662258210755309, + 0.18076696397529723, + 0.09130362489328725, + -0.0007385138940938819, + -0.09389309910017732, + -0.18667623171846046, + -0.2776098690199136, + -0.3652451341932927, + -0.4481851660211581, + -0.5251071482389088, + -0.5947831711612168, + -0.6560995965744268, + -0.7080746204999779, + -0.749873756852862, + -0.7808229978091847, + -0.8004194433354936, + -0.8083392322462204, + -0.8044426497113283, + -0.788776330666092, + -0.7615725243736626, + -0.7232454317389547, + -0.6743846731361569, + -0.6157459897668793, + -0.5482393251930767, + -0.47291447500700107, + -0.3909445309512073, + -0.30360738058411724, + -0.21226555425346622, + -0.11834473720200313, + -0.023311285683172225, + 0.07135089832953717, + 0.16416376913990144, + 0.2536784469691078, + 0.3384980676317503, + 0.4172998118952187, + 0.48885576710574263, + 0.5520522920809987, + 0.6059075798735137, + 0.6495871414290195, + 0.6824169659542287, + 0.7038941504460066, + 0.7136948307488011, + 0.711679289062406, + 0.6978941573516744, + 0.6725716819091205, + 0.6361260606687196, + 0.5891469110336607, + 0.5323899712341629, + 0.466765181860671, + 0.39332233553369966, + 0.3132345210238243, + 0.2277796229174403, + 0.1383201685898369, + 0.04628184031123685, + -0.046869008637495706, + -0.13964847925588508, + -0.23057852882072777, + -0.3182102805264411, + -0.4011468731610178, + -0.47806549046540403, + -0.5477382227595458, + -0.6090514318350099, + -0.661023313718262, + -0.7028193823292623, + -0.7337656298489919, + -0.7533591562487401, + -0.761276100347513, + -0.7573767473197711, + -0.7417077321051717, + -0.7145013039711211, + -0.6761716638266535, + -0.6273084320500413, + -0.5686673498467401, + -0.5011583607824783, + -0.4258312604532431, + -0.3438591406051126, + -0.256519888799984, + -0.1651760353887905, + -0.07125326561760527, + 0.023782064257001988, + 0.11844605225870325, + 0.21126065268850974, + 0.3007769857647067, + 0.38559818729931217, + 0.4644014380571523, + 0.5359588253821566, + 0.5991567080897933, + 0.653013279230338, + 0.6966940497475682, + 0.7295250088462647, + 0.7510032535214989, + 0.7608049196160475, + 0.7587902893281375, + 0.7450059946211884, + 0.7196842817864109, + 0.6832393487565496, + 0.636260812933741, + 0.5795044125471934, + 0.5138800881864536, + 0.4404376324714943, + 0.360350134172157, + 0.2748954778741757, + 0.18543619095264258, + 0.09339795567752338, + 0.000247125329494325, + -0.09253240109095616, + -0.18346258086066164, + -0.27109453717370957, + -0.3540314088177722, + -0.4309503795334338, + -0.5006235396400422, + -0.5619372509284634, + -0.613909709424443, + -0.6557064290469963, + -0.6866534019760062, + -0.7062477281816952, + -0.71416554648177, + -0.710267142049338, + -0.6945991498225353, + -0.6673938190671845, + -0.6290653506905748, + -0.5802033650691008, + -0.5215636034062123, + -0.4540560092656594, + -0.37873037824117367, + -0.2967598020765531, + -0.20942216833118288, + -0.11808000735343681, + -0.024159004386836713, + 0.07087448431495894, + 0.16553655677857482, + 0.2583491673077931, + 0.3478634361242926, + 0.43268249904327216, + 0.5114835368329296, + 0.5830386368407199, + 0.6462341578856641, + 0.7000882930217707, + 0.743766553196735, + 0.7765949276192377, + 0.7980705132884423, + 0.8078694460513455, + 0.8058520081104821, + 0.7920648314336971, + 0.76674016231673, + 0.7302921986970787, + 0.6833105579815787, + 0.6265509784043404, + 0.560923400560019, + 0.4874776170736372, + 0.4073867167202828, + 0.32192858409117603, + 0.2324657465667851, + 0.14042388642267775, + 0.047269356945380404, + -0.045513942858902, + -0.1364479702610447, + -0.22408384844893492, + -0.3070247162041757, + -0.38394775726103414, + -0.45362506193232677, + -0.5149429920024785, + -0.5669197434905604, + -0.6087208303087408, + -0.639672244630086, + -0.6592710864177479, + -0.667193494482337, + -0.663299753989695, + -0.6476364998706017, + -0.6204359813834053, + -0.5821123994277568, + -0.5332553743723809, + -0.4746206474129311, + -0.40711816210500534, + -0.33179771403457187, + -0.2498323949370215, + -0.16250009236342364, + -0.0711633366539714, + 0.022752186956586977, + 0.1177801222232107, + 0.21243656718116377, + 0.305243476143245, + 0.39475196934005385, + 0.47956518259602665, + 0.5583602966884821, + 0.6299093989742994, + 0.693098848281877, + 0.7469468376749064, + 0.7906188781107724, + 0.8234409588079257, + 0.8449101767755203, + 0.8547026678705955, + 0.8526787143058524, + 0.8388849480594102, + 0.8135536154374567, + 0.7770989143879761, + 0.7301104623284282, + 0.6733439975037283, + 0.60770946051941, + 0.5342566440113931, + 0.454158636765969, + 0.368693323385586, + 0.2792232312619731, + 0.18717404268219429, + 0.0940121109443476, + 0.0012213350662412976, + -0.08972024221093923, + -0.17736374406341282, + -0.2603123092606951, + -0.33724312152478986, + -0.40692827115635, + -0.4682541199274009, + -0.5202388638444141, + -0.5620480168070716, + -0.59300757097563, + -0.6126146263003689, + -0.620545321578966, + -0.6166599419641631, + -0.6010051223735424, + -0.5738131120521268, + -0.5354981118861145, + -0.4866497422307342, + -0.42802374426791623, + -0.3605300615394925, + -0.285218489617531, + -0.20326212022336726, + -0.1159388408940524, + -0.024611181955417175, + 0.06929517137216182, + 0.16431386285803734, + 0.2589609905520729, + 0.35175850878190373, + 0.4412575377928364, + 0.526061213424216, + 0.6048467164686817, + 0.6763861342979349, + 0.739565825755907, + 0.7934039839216741, + 0.8370661197680171, + 0.869878222529155, + 0.891337389229963, + 0.9011197557433339, + 0.8990856042979759, + 0.8852815668881113, + 0.859939889836127, + 0.8234747711063639, + 0.7764758281327029, + 0.7196987991766938, + 0.6540536248604842, + 0.5805900978367802, + 0.5004813069088898, + 0.41500513669618644, + 0.32552411460753794, + 0.23346392294743218, + 0.14029091503105112, + 0.047488989893989815, + -0.04346380970513224, + -0.13111860692480595, + -0.21407854051663297, + -0.2910207941846681, + -0.3607174582115994, + -0.4220548943511717, + -0.47405129859156453, + -0.515872184814097, + -0.5468435451604761, + -0.5664624795623311, + -0.5744051267985876, + -0.5705317720031026, + -0.5548890500744809, + -0.5277092102386065, + -0.4894064533625487, + -0.4405703997821128, + -0.38195679065978183, + -0.31447556951794275, + -0.23917653190876606, + -0.1572327695339892, + -0.0699221699107276, + 0.021392736655288395, + 0.11528626496382252, + 0.21029205880435572, + 0.304926216247243, + 0.3977106916406029, + 0.4871966052502119, + 0.571987092936288, + 0.6507593355121465, + 0.7222854203705358, + 0.7854517063764315, + 0.8392763866300035, + 0.8829249721253906, + 0.9157234521181974, + 0.9371689236547843, + 0.9469375226296817, + 0.9448895312933432, + 0.9310715816618491, + 0.9057159200795623, + 0.8692367445328498, + 0.8222236724779142, + 0.765432442198501, + 0.6997729943391586, + 0.6262951215753243, + 0.5461719127327684, + 0.46068125245365577, + 0.371185668169857, + 0.27911084220877735, + 0.185923127908579, + 0.0931064243283338, + 0.0021387742498307077, + -0.08553094546196986, + -0.16850587353498375, + -0.2454631936497076, + -0.3151749960650285, + -0.3765276425106927, + -0.4285393289509535, + -0.47037556924296936, + -0.5013623555041917, + -0.5209967876419059, + -0.5289550044105431, + -0.5250972909193925, + -0.5094702820423403, + -0.4823062269804925, + -0.4440193265759569, + -0.3951992011394878, + -0.3366015918084611, + -0.26913644208003873, + -0.1938535474808214, + -0.11192599968728462, + -0.02463168619080218, + 0.06666686272866187, + 0.1605439618964542, + 0.2555332551282467, + 0.3501508405204547, + 0.44291867244711136, + 0.5323878712005303, + 0.6171615726672017, + 0.6959169576870594, + 0.7674261136793917, + 0.8305753995358829, + 0.8843830083835547, + 0.9280144512435566, + 0.9607957173985486, + 0.9822239039220365, + 0.9919751467358832, + 0.9899097281179365, + 0.9760742801118131, + 0.9507010490894545, + 0.9142042330650534, + 0.8671734495226107, + 0.8103644367738277, + 0.7446871354914213, + 0.671191338378934, + 0.591050134290432, + 0.5055414078965726, + 0.41602768665775913, + 0.323934652929914, + 0.23072866008011989, + 0.13789360719618565, + 0.04690753708883519, + -0.040780673347635396, + -0.12377416281219049, + -0.20075011495599912, + -0.2704806200083252, + -0.3318520396695823, + -0.38388256987435465, + -0.4257377244499135, + -0.456743495483983, + -0.4763969828538006, + -0.48437432528371643, + -0.4805358078528234, + -0.4649280654046971, + -0.4377833471100241, + -0.39951585378036125, + -0.35071520569579884, + -0.2921371439630262, + -0.22469161204826635, + -0.14942840544719968, + -0.06752061580510689, + 0.019753869417775183, + 0.11103251997270734, + 0.2048896507165796, + 0.2998589054966002, + 0.394456382440698, + 0.4872040359547902, + 0.5766529863630485, + 0.6614063695838621, + 0.7401413664892165, + 0.8116300645308064, + 0.8747588226323864, + 0.9285458339535222, + 0.9721566095478922, + 1.0049171387306919, + 1.0263245186082743, + 1.0360548851353286, + 1.0339685206226599, + 1.0201120571469704, + 0.9947177411133973, + 0.9581997705693907, + 0.911147763032372, + 0.8543174568475919, + 0.7886187927213997, + 0.7151015633910158, + 0.6349388577443409, + 0.5494085604860981, + 0.45987319911064184, + 0.36775845600806256, + 0.274530684579894, + 0.18167378394804046, + 0.09066579695802254, + 0.002955600538576013, + -0.08005994397453636, + -0.1570580201975501, + -0.22681071832489808, + -0.28820440002193815, + -0.34025726118802413, + -0.382134815615239, + -0.41316305535589665, + -0.4328390802517915, + -0.440839028991645, + -0.4370231866188634, + -0.4214381879412207, + -0.39431628209348263, + -0.35607166985114347, + -0.3072939714582795, + -0.24873892798522107, + -0.1813164828618193, + -0.10607643154748728, + -0.024191865650710312, + 0.06305932740480766, + 0.15431461740710606, + 0.24814831925008735, + 0.3430940768178321, + 0.43766798827537556, + 0.5303920080659313, + 0.6198172565509914, + 0.7045468696862518, + 0.7832580283813226, + 0.8547228201256007, + 0.9178276038804929, + 0.9715905728434775, + 1.015177238106137, + 1.0479135890218019, + 1.0692967227349914, + 1.0790027752386657, + 1.0768920288820425, + 1.0630111157803088, + 1.037592282377246, + 1.0010497267589822, + 0.9539730664817547, + 0.8971180399298129, + 0.8313945878484721, + 0.7578525030140505, + 0.6776648743539093, + 0.5921095866119174, + 0.5025491673218797, + 0.41040929891370626, + 0.31715633482839933, + 0.22427417422756146, + 0.13324085999685342, + 0.045505269104801044, + -0.037535737072613415, + -0.11455934211141924, + -0.18433763616584076, + -0.24575698086071668, + -0.29783557205488254, + -0.33973892349984214, + -0.3707930272071481, + -0.39049498297774343, + -0.39852092945940976, + -0.3947311516544957, + -0.3791722843296177, + -0.3520765765782583, + -0.3138582291345908, + -0.26510686220116647, + -0.2065782168067234, + -0.13918223633951168, + -0.06396871621710423, + 0.017889251994029007, + 0.10511378091196362, + 0.19634234036699383, + 0.29014924529523833, + 0.3850681396229667, + 0.47961512155776165, + 0.5723121455854028, + 0.6617103321097643, + 0.7464128171295252, + 0.8250967815971171, + 0.8965343130446803, + 0.9596117704768959, + 1.0133473471342742, + 1.0569065541516602, + 1.0896153809258, + 1.1109709246446293, + 1.1206493213446849, + 1.11851085341887, + 1.1046021530261318, + 1.0791554666541558, + 1.0425849924329904, + 0.9954803479630856, + 0.9385972716727635, + 0.8728457043516417, + 0.7992754388205328, + 0.7190595640512021, + 0.6334759648321144, + 0.5438871687419045, + 0.451718858255171, + 0.3584373868578286, + 0.2655266537566658, + 0.17446470188221097, + 0.08670040824833952, + 0.0036306342764385255, + -0.07342180356421427, + -0.14322899538230133, + -0.20467730275693707, + -0.25678492150131205, + -0.29871736532109544, + -0.3298006261817974, + -0.3495318038384167, + -0.35758703689256566, + -0.3538266103003305, + -0.3382971587819767, + -0.31123093138455316, + -0.2730421287956851, + -0.22432037117121667, + -0.16582139949318764, + -0.09845515710299804, + -0.02327143937120142, + 0.05855666218272733, + 0.14575126022414214, + 0.2369498246305714, + 0.33072667038528825, + 0.42561544146227975, + 0.5201322361166556, + 0.6127990088817395, + 0.7021668802093035, + 0.7868389861458903, + 0.8654925076917985, + 0.9368995324273167, + 0.9999464194053862, + 1.0536513619146168, + 1.0971798711383425, + 1.1298579365217696, + 1.1511826553013718, + 1.1608301635624025, + 1.15866074374652, + 1.1447210280615734, + 1.1192432630442006, + 1.0826416468735545, + 1.0355057971992072, + 0.9785914524987844, + 0.9128085536113177, + 0.839206893407104, + 0.75895956090738, + 0.6733444409503963, + 0.5837240611645644, + 0.4915241040742786, + 0.3982109232154245, + 0.3052684178449919, + 0.21417463094347264, + 0.12637843957530254, + 0.04327670521199238, + -0.03380775562665912, + -0.10364703299866941, + -0.16512748843258157, + -0.2172673176908101, + -0.2592320344280957, + -0.29034763055904783, + -0.31011120578757784, + -0.3181988986641523, + -0.3144709940935844, + -0.29897412674477997, + -0.27194054561335607, + -0.23378445133536266, + -0.18509546401497612, + -0.12662932458255816, + -0.059295976327591204, + 0.01585478543136072, + 0.09764986922661642, + 0.1848113877760369, + 0.27597681100907906, + 0.36972045396151126, + 0.46457596065975393, + 0.5590594294113608, + 0.6516928148022822, + 0.7410272373371362, + 0.825665833115166, + 0.904285783189589, + 0.9756591751937539, + 1.0386723682337626, + 1.0923435556513434, + 1.1358382486831984, + 1.1684824368278324, + 1.1897732173753175, + 1.199386726464466, + 1.1971832465906254, + 1.1832094100154307, + 1.1576974633293853, + 1.1210616047656865, + 1.073891452027874, + 1.0169427436477894, + 0.951125420518792, + 0.8774892755654562, + 0.7972073978634672, + 0.7115576723057364, + 0.6219026265752126, + 0.5296679432509833, + 0.4363199759240266, + 0.34334262390605186, + 0.2522139302325388, + 0.16438277202317014, + 0.08124601080459753, + 0.004126463152003684, + -0.06574796093722446, + -0.12726362293622318, + -0.17943871855172192, + -0.22143876138277982, + -0.25258974328827377, + -0.2723887639161909, + -0.28051196176103127, + -0.276819621671547, + -0.26135837826049846, + -0.234360480467224, + -0.1962401288713932, + -0.14758694352085672, + -0.08915666528932294, + -0.02185923740965212, + 0.053255544856218556, + 0.13501459009752081, + 0.2221400110890337, + 0.31326927781709824, + 0.406976705374697, + 0.5017959378454429, + 0.5962430735940434, + 0.6888400672639519, + 0.7781380394172506, + 0.8627401262106238, + 0.9413235087550618, + 1.0126602747416766, + 1.0756367833342013, + 1.1292712279325778, + 1.1727291198313239, + 1.2053364485871496, + 1.2265903115483159, + 1.2361668449119212, + 1.23392633123171, + 1.21991540282779, + 1.1943663063492553, + 1.1576932400879745, + 1.1104858218062112, + 1.0534997900946768, + 0.9876450859056597, + 0.913971502222698, + 0.8336521281808074, + 0.7479648487319014, + 0.6582721916182581, + 0.5659998394784864, + 0.4726141459629215, + 0.37959901044284794, + 0.28843247601357724, + 0.20056341985429935, + 0.11738870355163925, + 0.04023114374078793, + -0.02968134952095504, + -0.09123513764659726, + -0.1434484162825824, + -0.18548669896775283, + -0.21667597750058748, + -0.23651335146855618, + -0.24467495930563324, + -0.24102108579990814, + -0.22559836550339118, + -0.1986390472945736, + -0.16055733169224987, + -0.11194283868321217, + -0.053551309080054746, + 0.01370731394549582, + 0.08878323519277322, + 0.17050336331248056, + 0.25758981114066404, + 0.34868004872544467, + 0.4423483912213645, + 0.5371284827735417, + 0.6315364218087475, + 0.724094163032329, + 0.8133528270681082, + 0.8979155501350876, + 0.9764595134063687, + 1.0477568046352148, + 1.1106937830478172, + 1.1642886421064558, + 1.2077068931681678, + 1.240274525852303, + 1.2614886375697947, + 1.2710253645804885, + 1.2687449895010134, + 1.2546941447144082, + 1.229105076932823, + 1.192391984511223, + 1.1451444852750885, + 1.0881183178784186, + 1.0222234233368552, + 0.948509594697497, + 0.8681499211588151, + 0.7824222877363525, + 0.6926892222361936, + 0.6003764073607576, + 0.5069501968241523, + 0.4138944900617696, + 0.3226873302330281, + 0.23477759458098796, + 0.15156214475691, + 0.07436379746003392, + 0.004410462812087151, + -0.05718422053526455, + -0.10943844816406453, + -0.15151773354846665, + -0.1827480684220974, + -0.20262655230769672, + -0.2108293235742851, + -0.20721666694494983, + -0.19183521690661437, + -0.16491722227258543, + -0.12687688349644108, + -0.07830382049959439, + -0.019953774029201954, + 0.04726331280843539, + 0.12229764487832505, + 0.20397613089685396, + 0.2910208837656754, + 0.3820693735990281, + 0.47569591561709357, + 0.5704341540311665, + 0.6648001873341087, + 0.7573159702973171, + 0.846532623610997, + 0.9310532835604856, + 1.0095551313852344, + 1.080810254905017, + 1.1437050134126558, + 1.1972576004371434, + 1.240633527402193, + 1.2731587839940404, + 1.2943304676904641, + 1.303824714818382, + 1.3015018080614715, + 1.2874083798699592, + 1.261776677023216, + 1.2250208979435215, + 1.1777306605238256, + 1.120661703485526, + 1.054723967911911, + 0.9809672469177388, + 0.9005646297691479, + 0.8147940015494877, + 0.7250178901328547, + 0.6326619782895264, + 0.5391926198016614, + 0.4460937141729179, + 0.3548433046308026, + 0.2668902684867156, + 0.18363146746029518, + 0.10638971831920573, + 0.036392931253810434, + -0.025245255015705362, + -0.07754303600267706, + -0.11966592511241858, + -0.15093991400976342, + -0.17086210214849876, + -0.17910862782861875, + -0.17553977570412582, + -0.1602021801927459, + -0.13332809003859525, + -0.09533170562586228, + -0.04680264680652063, + 0.011503345741618112, + 0.0786763289819638, + 0.1536665078491921, + 0.23530079112920316, + 0.32230129179366235, + 0.41330548002657796, + 0.5068876711182145, + 0.6015815093498192, + 0.6959030932843261, + 0.7883743777633231, + 0.8775464835473692, + 0.9620225469921437, + 1.0404797494074098, + 1.1116901786835542, + 1.1745401941839673, + 1.2280479895081924, + 1.2713790761508426, + 1.303859443868817, + 1.324986190210852, + 1.33443545157481, + 1.3320675107154085, + 1.3179290001539885, + 1.2922521667410967, + 1.2554512089703085, + 1.2081157448059245, + 1.1510015130407494, + 1.0850184548295054, + 1.0112163633586004, + 0.9307683279657173, + 0.8449522338061537, + 0.7551306088255766, + 0.6627291358661251, + 0.5692141687821617, + 0.47606960714910995, + 0.38477349426661955, + 0.2967747075184227, + 0.21347010869612854, + 0.1361825146399547, + 0.06613983561261577, + 0.004455710406699134, + -0.04788805641857431, + -0.09005697819583329, + -0.12137704651728651, + -0.14134536076394205, + -0.14963805916292905, + -0.14611542629535706, + -0.13082409650597243, + -0.10399631846581595, + -0.06604629248592739, + -0.017563638345135843, + 0.04069590335208799, + 0.10782238964251882, + 0.1827660255341586, + 0.26435371988650347, + 0.35130758574479776, + 0.4422650933665687, + 0.5358005581159209, + 0.6304476243478889, + 0.7247223906991374, + 0.8171468120853151, + 0.9062720093410193, + 0.9907011188957692, + 1.0691113221337096, + 1.1402747070194275, + 1.2030776329904218, + 1.2565382937207565, + 1.2998222007794968, + 1.3322553439979288, + 1.353334820999442, + 1.3627367682565135, + 1.3603214685985825, + 1.3461355546217804, + 1.320411273251493, + 1.283562823056263, + 1.2361798220753486, + 1.1790180091766351, + 1.1129873255899783, + 1.0391375645769612, + 0.9586418155506498, + 0.8727779637415805, + 0.7829085371708292, + 0.6904592187561476, + 0.5968963624273248, + 0.5037038678354102, + 0.41235977835582893, + 0.3243129714481124, + 0.24096030897946533, + 0.16362460786627273, + 0.0935337784470667, + 0.031801459590455536, + -0.020590544068078878, + -0.06280774578514865, + -0.09417613707669459, + -0.11419281724734355, + -0.12253392444792095, + -0.11905974318306997, + -0.10381690772101752, + -0.07703766665621771, + -0.03913622022309003, + 0.00929781187624304, + 0.0675086891141595, + 0.13458646860420714, + 0.20948135543129714, + 0.2910202585319711, + 0.37792529102852973, + 0.46883392325549655, + 0.5623204706543601, + 0.6569185776571078, + 0.7511443429779736, + 0.8435197216099395, + 0.9325958344649274, + 1.016975818050089, + 1.0953368538271375, + 1.1664510298382038, + 1.2292047055985926, + 1.2826160748601292, + 1.3258506492696542, + 1.3582344187364184, + 1.3792644809617673, + 1.3886169724961852, + 1.3861521762472349, + 1.3719167248891806, + 1.346142865425692, + 1.309244796503545, + 1.2618121362403245, + 1.2046006235824782, + 1.1385201998381973, + 1.0646206583476328, + 0.984075088602557, + 0.8981613759120382, + 0.8082420483760051, + 0.7157427889910104, + 0.6221299517656255, + 0.5288874364298235, + 0.43749328643814744, + 0.3493963793290531, + 0.26599357704894067, + 0.18860769659326115, + 0.11846664837986848, + 0.05668407135672404, + 0.004241770238586684, + -0.038025768151715836, + -0.06944453525058807, + -0.08951163028315484, + -0.09790319132061252, + -0.0944795027879321, + -0.07928719887361277, + -0.05255852809227478, + -0.014707690598544584, + 0.03367569398542154, + 0.09183588521199502, + 0.1588629402746824, + 0.2337070643385769, + 0.31519516642043055, + 0.4020493597225378, + 0.4929071146599322, + 0.5863427467543258, + 0.6808899005182364, + 0.775064674746273, + 0.8673890245118996, + 0.9564140708076194, + 1.0407429502213448, + 1.119052844295374, + 1.1901158411526018, + 1.2528183003892202, + 1.3061784158379193, + 1.3493616992263902, + 1.3816941405450271, + 1.4026728375760797, + 1.4119739269512357, + 1.4094576916591977, + 1.3951707644554774, + 1.3693453924250139, + 1.3323957742959154, + 1.2849115282672292, + 1.2276483933668043, + 1.1615163109843705, + 1.0875650745416536, + 1.0069677736120606, + 0.9210022935863103, + 0.8310311626461978, + 0.7384800638699625, + 0.64481535134799, + 0.5515209248924288, + 0.4600748280395399, + 0.3719259384098184, + 0.28847111803198555, + 0.211033183983369, + 0.14084004676416836, + 0.07900534540459508, + 0.02651088470163855, + -0.015808848439431672, + -0.047279845372604934, + -0.06739920524056647, + -0.07584306603194899, + -0.07247171208914169, + -0.05733177751801512, + -0.030655510750455126, + 0.007142888141632497, + 0.05547379961893471, + 0.11358148331661014, + 0.1805559965111571, + 0.25534754445065067, + 0.33678303623475947, + 0.42358458514896513, + 0.5143896616914394, + 0.6077725814669128, + 0.7022669890713965, + 0.7963889833826658, + 0.8886605195574458, + 0.9776327186717685, + 1.0619087173969923, + 1.1401656973588103, + 1.2111757467637878, + 1.2738252252917421, + 1.3271323268588717, + 1.3702625632767238, + 1.4025419246194564, + 1.4234675087530924, + 1.4327154523932073, + 1.4301460386124263, + 1.4158059002502439, + 1.3899272844756045, + 1.3529243901007257, + 1.3053868354087939, + 1.2480703595117995, + 1.1818849038837258, + 1.1078802620305779, + 1.0272295236100248, + 0.9412105740973973, + 0.8511859417586981, + 0.7585813097566858, + 0.6648630322664106, + 0.5715150091844787, + 0.4800152841317909, + 0.39181273481364853, + 0.30830422334342433, + 0.23081256688312957, + 0.16056567601800975, + 0.09867718986302179, + 0.046128913300099925, + 0.003755333319564985, + -0.02776954134760934, + -0.047942809759013355, + -0.05644060981812625, + -0.05312322578218444, + -0.03803729167180511, + -0.011415055833656623, + 0.026329281745753927, + 0.07460610161242705, + 0.13265966348693164, + 0.19958002473131342, + 0.2743173906790733, + 0.355698670515436, + 0.4424459776116024, + 0.5331967825512847, + 0.6265254010249133, + 0.7209654777143317, + 0.8150331115830706, + 0.9072502578736973, + 0.9961680377482104, + 1.08038958796367, + 1.1585920902319846, + 1.229547632845699, + 1.2921425755706162, + 1.3453951124091414, + 1.388470755258974, + 1.4206954942804217, + 1.4415664274258508, + 1.4507596914970853, + 1.448135569653102, + 1.4337406948197953, + 1.4078073142525294, + 1.370749626850043, + 1.3231572509820078, + 1.2657859258469426, + 1.1995455930056127, + 1.1254860460505114, + 1.0447803747260724, + 0.9587064645943675, + 0.8686268440081496, + 0.7759671962170944, + 0.6821938754831309, + 0.5887907817896598, + 0.4972359588446711, + 0.408978284440473, + 0.3254146207774053, + 0.24786778510464816, + 0.1775656880944797, + 0.11562196894908537, + 0.0630184326377425, + 0.02058956623787761, + -0.010990621432188805, + -0.031219229342668575, + -0.03977239530968414, + -0.03651040350302545, + -0.02147988785585407, + 0.005086903372678017, + 0.042775770283671216, + 0.09099709351062675, + 0.14899513286181915, + 0.21585994578698348, + 0.29054173770724684, + 0.37186741789568567, + 0.45855909981130905, + 0.5492542541255498, + 0.6425271966168373, + 0.7369115720549384, + 0.8309234794912153, + 0.9230848742564033, + 1.0119468776003764, + 1.0961126263683947, + 1.1742593023604777, + 1.2451589939572592, + 1.3076980610127444, + 1.3608946976176546, + 1.4039144157578887, + 1.4360832056820745, + 1.4568981654309765, + 1.46603543189475, + 1.4633552883208405, + 1.448904367723575, + 1.4229149174468785, + 1.385801136477975, + 1.33815264327511, + 1.2807251771254928, + 1.2144286796784693, + 1.1403129446152849, + 1.0595510617689938, + 0.9734209167905417, + 0.8832850381214066, + 0.790569109100227, + 0.6967394840776842, + 0.6032800631260896, + 0.5116688900425092, + 0.4233548427081081, + 0.3397347834122162, + 0.2621315294933223, + 0.19177299171244977, + 0.12977280936117064, + 0.07711278749780506, + 0.034627413288991576, + 0.0029906956423179365, + -0.01729446432316646, + -0.025904204334304556, + -0.02269880847153223, + -0.0077249105786462435, + 0.01878524117461619, + 0.05641744697879501, + 0.10458208755686688, + 0.16252342280667176, + 0.22933151026732013, + 0.30395655544968453, + 0.3852254677164726, + 0.47186036061610936, + 0.5624987049099334, + 0.6557148164660515, + 0.7500423401438033, + 0.843997375084626, + 0.9361018767088096, + 1.0249069663561141, + 1.109015780961756, + 1.1871055024156552, + 1.2579482191882807, + 1.320430291223712, + 1.3735699127026624, + 1.416532595700996, + 1.4486443305574652, + 1.4694022154029414, + 1.4784823872176767, + 1.4757451293392818, + 1.461237074872292, + 1.4351904712508379, + 1.398019517552381, + 1.350313832325489, + 1.292829154947693, + 1.226475427158601, + 1.1523024427299207, + 1.0714832915851158, + 0.9852958594654151, + 0.8951026749030361, + 0.802329421326871, + 0.7084424531781188, + 0.6149256706198993, + 0.5232571175396048, + 0.4348856719090579, + 0.35120819610834364, + 0.27354750756650426, + 0.20313151713532895, + 0.14107386419702303, + 0.08835635390075343, + 0.04581347350389153, + 0.014119232004889737, + -0.0062234693864189755, + -0.0148907683059962, + -0.011742948743376488, + 0.0031733555485563003, + 0.029625896491029063, + 0.06720047436549914, + 0.11530746998606492, + 0.17319114334145294, + 0.23994155206192253, + 0.31450890174944035, + 0.3957201018577147, + 0.4822972660264144, + 0.5728778651080451, + 0.666036215061818, + 0.760305960838285, + 0.8542032016701651, + 0.9462498930690977, + 1.034997156466006, + 1.119048128887538, + 1.197079992314734, + 1.2678648353096489, + 1.3302890179077318, + 1.3833707343809536, + 1.4262754968967764, + 1.4583292958853744, + 1.4790292295690681, + 1.4880514350196785, + 1.485256195666315, + 1.4706901447050902, + 1.4445855296617105, + 1.4073565497052305, + 1.359592823475903, + 1.3020500904428596, + 1.2356382924373737, + 1.1614072233229458, + 1.0805299731146696, + 0.9942844276455551, + 0.9040331155395849, + 0.8112017203174009, + 0.7172565965121435, + 0.6236816443786406, + 0.5319549078961441, + 0.44352526512843826, + 0.3597895785475066, + 0.2820706656742028, + 0.21159643745236761, + 0.1494805333561663, + 0.09670475862664848, + 0.05410360061335459, + 0.02235106840663495, + 0.0019500633084017227, + -0.006775552225197115, + -0.0036860620916462916, + 0.01117190004831238, + 0.037566086207980395, + 0.07508229676104157, + 0.12313091261370698, + 0.18095619384688577, + 0.24764819818312747, + 0.3221571313165401, + 0.40330990279307494, + 0.4898286263447381, + 0.5803507729163282, + 0.6734506585592362, + 0.7676619283164619, + 0.8615006815130244, + 0.9534888737529222, + 1.0421776265594964, + 1.1261700770516752, + 1.2041434073030282, + 1.274869705968033, + 1.3372353331745006, + 1.3902584832869573, + 1.4331046685653344, + 1.4650998795322745, + 1.4857412145026185, + 1.4947048106407657, + 1.49185095146834, + 1.477226270274036, + 1.4510630146761136, + 1.4137753839363154, + 1.365952996787426, + 1.308351592791182, + 1.2418811138716754, + 1.1675913539849039, + 1.0866554032387357, + 1.0003511475587614, + 0.910041115661749, + 0.8171509911611117, + 0.7231471286827328, + 0.6295134285741115, + 0.5377279349072719, + 0.4492395258389076, + 0.3654450639336785, + 0.28766736680525895, + 0.21713434549045085, + 0.15495963955604605, + 0.10212505433614733, + 0.05946507727306037, + 0.02765371755003372, + 0.007193876561907703, + -0.001590583142291463, + 0.0014400546328905278, + 0.01623915631963166, + 0.04257447402419827, + 0.08003180821320942, + 0.12802153988591203, + 0.1857879292161395, + 0.25242103401949145, + 0.32687106008299327, + 0.40796491704571153, + 0.49442471873273564, + 0.5848879361816691, + 0.6779288855372012, + 0.7720812119354045, + 0.8658610147941224, + 0.9577902498107402, + 1.0464200386015334, + 1.130353518378545, + 1.2082678713085784, + 1.278935186139138, + 1.341241823091183, + 1.3942059766224535, + 1.436993159086032, + 1.4689293610976804, + 1.4895116810654767, + 1.4984162562469918, + 1.4955033702570606, + 1.4808196564775695, + 1.4545973626200346, + 1.417250688039395, + 1.3693692515616593, + 1.3117087928418867, + 1.2451792538973492, + 1.1708304287772968, + 1.089835407682941, + 1.0034720766331962, + 0.9131029644378823, + 0.8201537548039883, + 0.7260908024505377, + 0.6323980078182974, + 0.5405534150728626, + 0.45200590246399963, + 0.36815233264971203, + 0.29031552333723376, + 0.21972338565649285, + 0.15748955926773406, + 0.1045958495983385, + 0.06187674418404325, + 0.03000625230147491, + 0.00948727543884445, + 0.0006436762385376993, + 0.003615170989414246, + 0.01835512621703908, + 0.04463129412108674, + 0.08202947526159755, + 0.12996005073115163, + 0.1876672807971508, + 0.2542412233684406, + 0.32863208432558216, + 0.4096667734010815, + 0.4960674045133462, + 0.586471448793534, + 0.6794532224797805, + 0.7735463708014774, + 0.8672669932700459, + 0.9591370456762414, + 1.0477076497299205, + 1.131581942736463, + 1.2094371069562126, + 1.2800452312300368, + 1.3422926758724687, + 1.3951976354347293, + 1.4379256223632466, + 1.4698026273673905, + 1.4903257489486892, + 1.4991711244581556, + 1.4961990376041439, + 1.4814561218620215, + 1.4551746250367996, + 1.417768746576869, + 1.3698281054017745, + 1.3121084412600754, + 1.2455196962624893, + 1.1711116645517485, + 1.0900574364226636, + 1.0036348979875007, + 0.9132065781497322, + 0.8201981607097226, + 0.7260760004799907, + 0.6323239979949283, + 0.5404201975135001, + 0.45181347737897387, + 0.3679007003429652, + 0.2900046842060888, + 0.21935334019177788, + 0.15706030805385746, + 0.10410739331312141, + 0.06132908359880426, + 0.029399388281081282, + 0.00882120894159899, + -8.159168375240777e-05, + 0.0028307027873818863, + 0.017511458974044214, + 0.043728429169423974, + 0.08106741402695625, + 0.12893879473276176, + 0.18658683164779233, + 0.25310158277421113, + 0.32743325408619295, + 0.40840875540961474, + 0.4947502007563454, + 0.5850950613511234, + 0.6780176535254225, + 0.7720516226020889, + 0.8657130681860807, + 0.9575239461615603, + 1.0460353783318266, + 1.1298505020957756, + 1.2076464998069665, + 1.278195460399918, + 1.3403837442825433, + 1.3932295460994113, + 1.4358983783904429, + 1.4677162319584065, + 1.4881802053982065, + 1.4969664361542914, + 1.4939352080283994, + 1.4791331545892974, + 1.452792523735376, + 1.4153275150083906, + 1.367327747421316, + 1.3095489608160242, + 1.2429010973965504, + 1.168433951399175, + 1.0873206132118656, + 1.0008389690402963, + 0.910351547881273, + 0.8172840336284491, + 0.7231027811877495, + 0.6292916911868811, + 0.5373288079779897, + 0.4486630099977675, + 0.3646911600911194, + 0.2867360761518659, + 0.21602566949672483, + 0.15367357997288258, + 0.10066161319425582, + 0.05782425688349184, + 0.025835520503878343, + 0.005198305730333697, + -0.0037635246080105628, + -0.0009102540355999389, + 0.013711484159830756, + 0.03986944236463677, + 0.07714942132547283, + 0.12496180232165263, + 0.18255084580719408, + 0.24900660987757584, + 0.3232793006000495, + 0.4041958278935537, + 0.49047830586318936, + 0.5807642058268188, + 0.6736278442088991, + 0.7676028664254962, + 0.8612053721746966, + 0.9529573174334839, + 1.0414098240984713, + 1.1251660296615253, + 1.2029031165692414, + 1.2733931738491977, + 1.3355225620022624, + 1.388309475766015, + 1.4309194277734372, + 1.4626784089202154, + 1.4830835178942303, + 1.4918108922329083, + 1.4887208158309195, + 1.4738599223499527, + 1.4474604597812935, + 1.4099366277596843, + 1.361878045390904, + 1.3040404526097011, + 1.2373337917130605, + 1.1628078570300242, + 1.081635739041386, + 0.9950953240457575, + 0.9045491411326766, + 0.8114228742884624, + 0.7171828785120687, + 0.6233130545237979, + 0.531291446768546, + 0.4425669337758632, + 0.35853637848324943, + 0.2805225988772029, + 0.20975350636733187, + 0.14734274089329397, + 0.09427210816175328, + 0.05137609598793004, + 0.019328713927795754, + -0.0013671362511207819, + -0.010387591627102635, + -0.007592935632026232, + 0.006970198538934075, + 0.0330695633646691, + 0.07029095968440009, + 0.11804476886990356, + 0.1755752514676836, + 0.24197246566580682, + 0.3161866176237678, + 0.3970446173531381, + 0.4832685790514579, + 0.573495974128754, + 0.6663011191021115, + 0.7602176594799276, + 0.8537616950525119, + 0.9454551818893081, + 1.0338492419792007, + 1.117547012906351, + 1.1952256772096315, + 1.2656573240089082, + 1.3277283138971936, + 1.3804568417043803, + 1.4230084201556354, + 1.454709040238772, + 1.4750558007338839, + 1.4837248392705227, + 1.4805764398354762, + 1.4656572361825142, + 1.4391994763950473, + 1.4016173601998407, + 1.3535005067946964, + 1.2956046562064294, + 1.2288397508240276, + 1.1542555850684169, + 1.0730252495124435, + 0.9864266305466565, + 0.8958222573524719, + 0.8026378140080104, + 0.7083396556042201, + 0.6144116829531248, + 0.522331940591697, + 0.4335493071410369, + 0.34946064563047313, + 0.2713887741383695, + 0.20056160416596092, + 0.13809277574462847, + 0.08496409467282155, + 0.04201004885728936, + 0.009904647945720213, + -0.01084920620271819, + -0.01992765057475261, + -0.017190968510670576, + -0.002685793114106244, + 0.023355628185364685, + 0.06051909631847906, + 0.10821499274843616, + 0.16568757811321705, + 0.23202691069238512, + 0.30618319673675126, + 0.3869833463493324, + 0.47314947381890615, + 0.5633190506469437, + 0.6560663934418365, + 0.7499251478031747, + 0.8434114136125193, + 0.9350471470306666, + 1.0233834701375382, + 1.107023520608588, + 1.1846444810738679, + 1.255018440744162, + 1.3170317603037822, + 1.3697026346736643, + 1.4121965766698894, + 1.4438395773714159, + 1.4641287356492887, + 1.4727401892240053, + 1.4695342221733032, + 1.454557468341847, + 1.4280421759039508, + 1.3904025446772064, + 1.342228193950226, + 1.284274863840689, + 1.2174524968282832, + 1.1428108874246616, + 1.0615231262934863, + 0.9748670999158852, + 0.8842053375638795, + 0.7909635234064649, + 0.6966080126248946, + 0.6026227061219691, + 0.5104856485250722, + 0.42164571854581623, + 0.3374997793040873, + 0.2593706489686947, + 0.18848623913119106, + 0.12596018991344388, + 0.07277430720425612, + 0.029763079000657056, + -0.0023994849593474837, + -0.023210482726313472, + -0.032346051196734935, + -0.029666473620685266, + -0.015218383011630254, + 0.010765973291016862, + 0.047872396308060006, + 0.09551126759282678, + 0.15292684787336325, + 0.21920919551913207, + 0.2933085168711123, + 0.3740517221221913, + 0.4601609256509878, + 0.5502735990489761, + 0.6429640590144112, + 0.7367659512365816, + 0.8301953756869689, + 0.9217742886161278, + 1.010053812193584, + 1.0936370841846084, + 1.1712012873088753, + 1.2415185108667934, + 1.3034751156322946, + 1.3560892966158007, + 1.3985265667229938, + 1.4301129171223104, + 1.4503454467742305, + 1.4589002934886834, + 1.4556377414328052, + 1.4406044245406309, + 1.4140325910757556, + 1.3763364409450487, + 1.3281055935264807, + 1.270095789026831, + 1.2032169700149427, + 1.1285189310918067, + 1.0471747630100021, + 0.9604623523397553, + 0.8697442284422474, + 0.7764460755753552, + 0.6820342490092957, + 0.5879926497359285, + 0.4957993224714024, + 0.40690314601619143, + 0.32270098357912047, + 0.24451565341766474, + 0.1735750672121319, + 0.11099286517319365, + 0.05775085327823229, + 0.014683519612925189, + -0.017535125996067755, + -0.03840218151080298, + -0.04759378373921713, + -0.04497021584291434, + -0.030578110746898035, + -0.004649715702190485, + 0.03240077040037409, + 0.07998372920251026, + 0.13734342152049533, + 0.20356990581200887, + 0.27761338850646955, + 0.35830077988460574, + 0.44435419441341834, + 0.5344111037724919, + 0.6270458247478914, + 0.7207920031171744, + 0.8141657389398029, + 0.90568898855402, + 0.9939128742175026, + 1.0774405337832624, + 1.1549491500589002, + 1.2252108124325258, + 1.2871118817657854, + 1.3396705531568047, + 1.3820523395989754, + 1.4135832323483362, + 1.4337603304529023, + 1.4422597718101775, + 1.4389418406747734, + 1.423853171068196, + 1.3972260113413932, + 1.3594745614886843, + 1.3111884409753076, + 1.253123390095313, + 1.1861893515048725, + 1.111436119892089, + 1.0300367860966888, + 0.9432692367760882, + 0.8524960013785432, + 0.7591427642489218, + 0.6646758807443378, + 0.5705792519437212, + 0.47833092264999605, + 0.38937977175073657, + 0.30512266254133547, + 0.22688241336604975, + 0.1558869359921149, + 0.09324987071668009, + 0.03995302360381209, + -0.003169117174142616, + -0.03544254170409622, + -0.056364347861508804, + -0.06561067236788287, + -0.06304179829842174, + -0.04870435849174319, + -0.02283060011257057, + 0.014165278034565867, + 0.061693657677627786, + 0.11899879971901316, + 0.1851707627026112, + 0.2591597531439154, + 0.33979268140970403, + 0.4257916620530239, + 0.5157941668392965, + 0.6083745126406199, + 0.70206634532042, + 0.7953857650238508, + 0.8868547281750545, + 0.9750243571174313, + 1.0584977897895917, + 1.135952209084773, + 1.206159704476774, + 1.268006636912646, + 1.3205112015760985, + 1.362838911545968, + 1.3943157581635854, + 1.414438840562414, + 1.4228842967252235, + 1.419512410991869, + 1.4043698174690649, + 1.3776887645929237, + 1.3398834524428287, + 1.2915435005690896, + 1.2334246493507979, + 1.1664368415290896, + 1.0916298718769202, + 1.010176831318866, + 0.9233556065972652, + 0.8325287272450224, + 0.7391218776917117, + 0.6446014133792787, + 0.550451235470967, + 0.45814938885455836, + 0.3691447525019702, + 0.28483418979306097, + 0.20654051915660737, + 0.1354916524440953, + 0.07280123003699536, + 0.0194510580836834, + -0.023724375159292044, + -0.056051059694718505, + -0.07702609331396766, + -0.08632561265444837, + -0.08380990070736784, + -0.06952559022741765, + -0.04370492829539792, + -0.006762113631962732, + 0.0407132355745293, + 0.09796538031033332, + 0.1640843792030548, + 0.23802043885159813, + 0.31860046970665956, + 0.4045465864045755, + 0.49449626079427833, + 0.5870238098314156, + 0.6806628794626609, + 0.7739295699164882, + 0.8653458377003926, + 0.9534628052409835, + 1.036883610559913, + 1.1142854366336403, + 1.1844403730189819, + 1.2462347807459828, + 1.2986868550813169, + 1.340962109186649, + 1.372386534486207, + 1.3924572301962193, + 1.4008503343821648, + 1.3974261314665855, + 1.3822312556387963, + 1.3554979554174889, + 1.3176404309645595, + 1.2692483019127176, + 1.2110773087235298, + 1.1440373942204045, + 1.0691783532585315, + 0.9876732768449268, + 0.9008000518038894, + 0.8099212077504268, + 0.7164624291964208, + 0.6218900716656139, + 0.5276880364031089, + 0.43533436837883277, + 0.34627794664632705, + 0.2619156346673481, + 0.18357025095238688, + 0.11246970743451914, + 0.04972764457682913, + -0.0036741313906771683, + -0.04690113213004429, + -0.07927934756260123, + -0.10030587539834013, + -0.10965685219335876, + -0.10719256085760417, + -0.09295963406456828, + -0.06719031881389331, + -0.030298813745196274, + 0.01712526303423488, + 0.07432617259163618, + 0.1403939736354319, + 0.2142788728454275, + 0.2948077807532238, + 0.3807028120756676, + 0.4706014387425098, + 0.5630779777900148, + 0.6566660752452813, + 0.7498818314174013, + 0.8412472028943417, + 0.9293133121828396, + 1.0126832973851032, + 1.0900343415577654, + 1.1601385343378268, + 1.2218822368354951, + 1.2742836443974612, + 1.3165082702654047, + 1.3478821059435568, + 1.3679022507279879, + 1.3762448427640115, + 1.3727701665539476, + 1.3575248563667999, + 1.330741160800943, + 1.2928332800977433, + 1.244390833969601, + 1.18616956295741, + 1.1190794099639776, + 1.0441701699239276, + 0.9626149339234478, + 0.8756915888660377, + 0.7847626644459738, + 0.6912538452541004, + 0.5966314868931774, + 0.5023794906873944, + 0.4099759016854453, + 0.3208695990197077, + 0.23645744623082415, + 0.15806226190787376, + 0.08691195806255221, + 0.02412017523670408, + -0.029331280261332, + -0.07260792001512185, + -0.10503573386750788, + -0.12611181945026473, + -0.13551231324118598, + -0.13309749807203142, + -0.11891400653815541, + -0.09319408556115201, + -0.05635193370264538, + -0.008977168991958051, + 0.04817446971602912, + 0.11419304120746566, + 0.1880287522399774, + 0.2685085134227768, + 0.3543544395504312, + 0.44420400263016546, + 0.5366315197756334, + 0.6301706370914724, + 0.7233374549641207, + 0.8146539300586993, + 0.9026711849592848, + 0.9859923578452284, + 1.0632946318501348, + 1.133350096688098, + 1.1950451135463565, + 1.247397877848308, + 1.2895739029125601, + 1.320899180320077, + 1.340870809443568, + 1.3491649285050007, + 1.3456418220832194, + 1.3303481245237285, + 1.303516084501289, + 1.2655599023336375, + 1.2170691978093928, + 1.15879971154568, + 1.0916613865214857, + 1.016704017747507, + 0.9351006963858326, + 0.8481293094160018, + 0.7571523866081584, + 0.6635956126288635, + 0.5689253431566011, + 0.4746254795913883, + 0.382174067057172, + 0.2930199847622642, + 0.20856009632247152, + 0.13011722040230153, + 0.058919269088861526, + -0.003920117000862033, + -0.057419131483344585, + -0.10074328586698995, + -0.13321856991966807, + -0.15434208119816417, + -0.163789956105405, + -0.1614224773983041, + -0.14728627759746465, + -0.12161360354982458, + -0.08481865374237565, + -0.03749104612986179, + 0.019613480507161093, + 0.08558498502938101, + 0.15937367426877325, + 0.239806458908591, + 0.32560545381783723, + 0.4154081310776966, + 0.5077888078758593, + 0.6012811303910559, + 0.694401199083494, + 0.7856709706921188, + 0.8736415678748797, + 0.956916128884687, + 1.0341718369287562, + 1.1041807817947582, + 1.1658293247434437, + 1.2181356612715122, + 1.260265304770949, + 1.29154424689586, + 1.311469587092226, + 1.3197174636550764, + 1.3161481612362798, + 1.3008083142542903, + 1.2739301714567282, + 1.2359279332342015, + 1.1873912194479477, + 1.129075770787799, + 1.0618915303053813, + 0.9868882930838195, + 0.9052391503576226, + 0.8182219891788016, + 0.7271993393896711, + 0.6335968857289533, + 0.5388809839475226, + 0.4445355355172431, + 0.35203858563400336, + 0.26283901357815354, + 0.1783336830372549, + 0.09984541274764948, + 0.02860211486812214, + -0.03428256991282276, + -0.08782683514004304, + -0.13119619225049006, + -0.1637166309406978, + -0.18488524869612422, + -0.19437818184845995, + -0.1920557130834649, + -0.17796447485068737, + -0.15233671392603976, + -0.11558662872557732, + -0.06830383713325919, + -0.011244077858808904, + 0.054682708029168955, + 0.12842672743316602, + 0.20881489110703774, + 0.29456931399036923, + 0.3843274682344977, + 0.47666367109757907, + 0.5701115688285762, + 0.6631872619577217, + 0.7544127072941644, + 0.8423390275658484, + 0.9255693610954827, + 1.0027808911602438, + 1.072745707617587, + 1.1343501717977658, + 1.1866124792672874, + 1.2286981434875444, + 1.2599331561821518, + 1.2798146168664475, + 1.2880186639047384, + 1.2844055820181128, + 1.2690220056941524, + 1.2421001837495476, + 1.2040543166438886, + 1.155474024307233, + 1.097115047498385, + 1.0298873293375657, + 0.9548406649765326, + 0.8731481457185849, + 0.7860876586840183, + 0.695021733783595, + 0.6013760558244989, + 0.5066169806257361, + 0.4122284097273473, + 0.31968838839348557, + 0.2304457959722645, + 0.14589749621931175, + 0.06736630793889274, + -0.003919856642545919, + -0.06684735676879797, + -0.1204343859170267, + -0.16384645545673696, + -0.1964095550170087, + -0.21762078201586288, + -0.22715627271777133, + -0.2248763097412752, + -0.21082752546879185, + -0.1852421666091805, + -0.14853443151156578, + -0.10129393799303756, + -0.044276424696457845, + 0.021608167376206258, + 0.095310045194072, + 0.17565611957764285, + 0.26136850553278423, + 0.35108467527744847, + 0.4433789461360183, + 0.5367849644234592, + 0.6298188307363906, + 0.7210025019500084, + 0.8088871008579789, + 0.8920757658491407, + 0.9692456802664204, + 1.039168934032892, + 1.1007318885445394, + 1.1529527394334145, + 1.1949970002263006, + 1.226190662712266, + 1.24603082647193, + 1.2541936299347902, + 1.2505393578870874, + 1.2351146448814319, + 1.2081517397994994, + 1.170064843165732, + 1.1214435749750078, + 1.0630436760507702, + 0.9957750895778967, + 0.9206876107727586, + 0.8389543310030063, + 0.7518531374532962, + 0.6607465600987497, + 0.567060283810751, + 0.4722606644722886, + 0.3778316036875561, + 0.2852511467846439, + 0.1959681731753567, + 0.1113795466793661, + 0.03280808616438513, + -0.03851829607952634, + -0.10148595923247279, + -0.15511309670837553, + -0.19856521981335679, + -0.23116831811320124, + -0.25241948896281163, + -0.2619948685635687, + -0.25975473947102334, + -0.24574573400468858, + -0.2202000988105956, + -0.18353203217517933, + -0.13633115185284728, + -0.07935319642389282, + -0.013508106827898284, + 0.06015432396671509, + 0.14046100684275448, + 0.22613405686813587, + 0.31581094632320394, + 0.4080659925940875, + 0.5014328420578569, + 0.5944275953729865, + 0.6855722094763099, + 0.7734178072232957, + 0.8565675270643656, + 0.9336985524038725, + 1.0035829732263046, + 1.0651071509890118, + 1.1172892813853195, + 1.1592948780030827, + 1.1904499326924725, + 1.210251545095005, + 1.2183758537011262, + 1.214683143357835, + 1.199220048678463, + 1.1722188186052729, + 1.1340936537232142, + 1.085434174087685, + 1.0269961205822988, + 0.9596894364523412, + 0.8845639169743222, + 0.8027926535759025, + 0.7156535335017081, + 0.6245090867868736, + 0.5307849983624624, + 0.4359476241711728, + 0.3414808658769445, + 0.24886276886731185, + 0.15954221261343787, + 0.07491606099446457, + -0.003692867062711644, + -0.07505665920876481, + -0.1380616745648229, + -0.19172610648581143, + -0.2352154662189163, + -0.267855743271126, + -0.28914403493867413, + -0.2987564773642889, + -0.2965533530450041, + -0.28258129424188033, + -0.25707254754265707, + -0.2204413111754629, + -0.17327720283651582, + -0.11633596104818407, + -0.050527526691930155, + 0.0230983073216951, + 0.10336845193318239, + 0.18900502226825622, + 0.2786454906648713, + 0.37086417456654636, + 0.46419472040789855, + 0.5571532289047294, + 0.6482616570509833, + 0.7360711277593963, + 0.8191847795374354, + 0.8962797958462985, + 0.9661282667274488, + 1.027616553694995, + 1.0797628524988354, + 1.1217326767835725, + 1.1528520184557263, + 1.172617977213276, + 1.180706691602956, + 1.1769784465279707, + 1.1614798766577694, + 1.134443230990616, + 1.0962827101674164, + 1.0475879342994072, + 0.9891146443259304, + 0.9217727835478468, + 0.8466121472973012, + 0.7648058270573017, + 0.6776317101280649, + 0.5864523265997594, + 0.4926933614586122, + 0.397821170702649, + 0.3033196560505372, + 0.2106668629447384, + 0.12131167091136888, + 0.03665094388398712, + -0.04199249915567771, + -0.11339074580384041, + -0.17643015512728688, + -0.23012892042661842, + -0.2736525528947361, + -0.3063270419845757, + -0.3276494849383289, + -0.3372960178447726, + -0.3351269231471259, + -0.3211888330527138, + -0.2957139940956265, + -0.25911660445042783, + -0.21198628175995088, + -0.15507876449314972, + -0.08930399347821806, + -0.015711761572611532, + 0.0645248422172168, + 0.15012793307006805, + 0.23973498337656998, + 0.33192031063325683, + 0.4252175613273413, + 0.5181428362269899, + 0.6092180923788804, + 0.696994452748128, + 0.7800750558942484, + 0.8571370853308623, + 0.9269526311515075, + 0.9884080549221048, + 1.0405215524446478, + 1.082458637415434, + 1.1135453017926895, + 1.1332786453260366, + 1.141334806613679, + 1.1375740706102386, + 1.1220430720364714, + 1.0949740599418376, + 1.0567812350183918, + 1.0080542174283436, + 0.9495487481619367, + 0.8821747705709272, + 0.8069820800380592, + 0.725143768097096, + 0.6379377220986628, + 0.5467264721833451, + 0.4529357033878148, + 0.35803177176019624, + 0.26349857906927787, + 0.17081417080763184, + 0.08142742655133414, + -0.003264789716466425, + -0.08193965896404418, + -0.15336926873814, + -0.21643997805602785, + -0.27016998016872423, + -0.3137247862199599, + -0.34643038561341577, + -0.36778387554208475, + -0.37746139204578594, + -0.37532321751879427, + -0.36141598411959186, + -0.33597193833354, + -0.2994052782866023, + -0.2523056215730903, + -0.19542870661349537, + -0.12968447418767298, + -0.05612271710494636, + 0.024083475676448633, + 0.10965621938334379, + 0.1992329864541288, + 0.2913880944334458, + 0.38465518985593683, + 0.4775503735375547, + 0.568595602572496, + 0.6563419999731684, + 0.7393927043465274, + 0.8164248992533986, + 0.8862106748343339, + 0.9476363927023648, + 0.9997202487063421, + 1.0416277565894294, + 1.0726849083565013, + 1.0923888038038105, + 1.1004155815760415, + 1.0966255266742375, + 1.0810652738654296, + 1.053967072245328, + 1.0157451225520275, + 0.9669890449936991, + 0.9084545806066486, + 0.8410516727881572, + 0.7658301169668515, + 0.6839630047220528, + 0.5967282234497564, + 0.5054883033360371, + 0.41166892946284556, + 0.31673645792339206, + 0.22217479053153438, + 0.12946197282493496, + 0.04004688442440753, + -0.04467361064209997, + -0.12337669329820378, + -0.1948344510461212, + -0.25793324285859043, + -0.3116912619423694, + -0.35527401939693126, + -0.388007504581771, + -0.4093888146458943, + -0.4190940855851726, + -0.41698359975004845, + -0.4031039892552968, + -0.3776875005426153, + -0.34114833169451364, + -0.2940761002618464, + -0.23722654462175122, + -0.17150960551105032, + -0.09797507569579778, + -0.0177960440912132, + 0.0677496045721985, + 0.15729934277584057, + 0.24942748810696208, + 0.34266768714278206, + 0.43553604074177016, + 0.5265545060404047, + 0.6142742060933607, + 0.6972982795498683, + 0.7743039100126945, + 0.844063187664343, + 0.9054624741597564, + 0.9575199653895137, + 0.9994011751383259, + 1.0304320954527393, + 1.050109826170285, + 1.0581105059770515, + 1.0542944199152684, + 1.038708202793086, + 1.0115841037472029, + 0.973336323556591, + 0.9245544824702758, + 0.8659943215651837, + 0.7985657842792255, + 0.7233186660814093, + 0.6414260585915136, + 0.5541658492457239, + 0.46290056827039017, + 0.3690559007873898, + 0.27409820292983195, + 0.17951137655166352, + 0.08677346723002317, + -0.00266664537464769, + -0.08741209719460952, + -0.16614006911445206, + -0.23762264859682788, + -0.30074619457532126, + -0.35452890021768224, + -0.398136276584326, + -0.4308943129958767, + -0.4523001065626041, + -0.4620297932417028, + -0.4599436553450512, + -0.446088324948972, + -0.42069604845685005, + -0.38418102391293085, + -0.33713286882992494, + -0.28030732154702764, + -0.214614322763071, + -0.14110366520629503, + -0.06094843775432956, + 0.02457347490001959, + 0.11409954527564392, + 0.20620409099704046, + 0.29942075867882145, + 0.39226564921661566, + 0.48326071978382745, + 0.5709570934722002, + 0.6539579089677969, + 0.7309403499099973, + 0.8006765065180392, + 0.8620527404833893, + 0.9140872477328732, + 0.9559455420876395, + 0.986953615630414, + 1.0066085682347587, + 1.01458653862275, + 1.0107478118724726, + 0.995139022827841, + 0.9679924206611704, + 0.9297222061870039, + 0.8809179996897977, + 0.8223355422817598, + 0.7548847774360293, + 0.6796155006567073, + 0.5977008035984969, + 0.5104185737326894, + 0.4191313413201805, + 0.3252647915175471, + 0.23028528049257868, + 0.13567671013354296, + 0.04291712605191479, + -0.04654459205751284, + -0.13131158009296984, + -0.21006101890513867, + -0.28156499592256173, + -0.34470987004517223, + -0.39851383440702803, + -0.4421424000349069, + -0.4749215562160407, + -0.4963484000273374, + -0.5060990673927102, + -0.5040338405909476, + -0.49019935166533923, + -0.4648278469863515, + -0.42833352456541335, + -0.38130600188258273, + -0.3245010172444779, + -0.25882851131738127, + -0.1853382767972563, + -0.10520340252948894, + -0.01970177317467369, + 0.06980408381811903, + 0.16188848610514012, + 0.25508508033314403, + 0.3479099674290381, + 0.4388851045981099, + 0.5265616149635364, + 0.6095426372426287, + 0.6865053551061415, + 0.7562218588044458, + 0.8175785100599584, + 0.8695935048305137, + 0.9114323569680598, + 0.9424210585859794, + 0.9620567095884704, + 0.9700154487280759, + 0.9661575611132436, + 0.9505296816181505, + 0.9233640594452457, + 0.8850748954391436, + 0.8362518099141876, + 0.7776505440123529, + 0.7101810412366507, + 0.6348930971205998, + 0.5529598033484424, + 0.46565904742083364, + 0.37435335962788235, + 0.2804684251553923, + 0.1854706002001879, + 0.09084378667932774, + -0.0019339697667756645, + -0.09141378941463704, + -0.17619880813398092, + -0.25496620674694237, + -0.32648807265380764, + -0.38965076472620735, + -0.4434724760699419, + -0.48711871768391873, + -0.5199154788274172, + -0.5413598565495126, + -0.5511279867464604, + -0.5490801516694569, + -0.5352629833343452, + -0.5099087280842364, + -0.47343158390326856, + -0.42642116824446497, + -0.3696332193873645, + -0.30397767797133196, + -0.23050433666563758, + -0.15038628428889464, + -0.06490140547508652, + 0.024587772352927324, + 0.11665556687797828, + 0.20983562477292453, + 0.30264404699091063, + 0.39360279076314164, + 0.48126297923863903, + 0.5642277511604942, + 0.6411742902252315, + 0.7108746867086664, + 0.7722153023586533, + 0.8242143331584332, + 0.8660372929850864, + 0.8970101739770859, + 0.9166300760637013, + 0.9245731380222455, + 0.920699644985976, + 0.905056231853683, + 0.877875147852398, + 0.8395705938510989, + 0.7907321901884228, + 0.7321156780306121, + 0.6646310009046761, + 0.5893279543681236, + 0.5073796301290429, + 0.4200639157118264, + 0.3287433414301629, + 0.2348435924934868, + 0.13983102512189255, + 0.04518954125571995, + -0.047602813441327045, + -0.1370971592228368, + -0.22189663193562675, + -0.30067841237878573, + -0.37221458793013834, + -0.4353915174385595, + -0.4892273939874515, + -0.5328877285533421, + -0.5656985103732193, + -0.5871568364740278, + -0.59693884273002, + -0.5949048113704631, + -0.5811013743894098, + -0.5557607781082963, + -0.519297220489648, + -0.47230031896507885, + -0.41552581179271353, + -0.3498836395908626, + -0.2764235950075125, + -0.19631876684029964, + -0.11084703970243767, + -0.021370940995903923, + 0.07068384698279062, + 0.16385097092687506, + 0.25664653181017183, + 0.3475924868840667, + 0.4352399593176971, + 0.5181920878743559, + 0.595126056270529, + 0.664813954801776, + 0.7261421452357941, + 0.7781288235754308, + 0.8199395037172068, + 0.8509001778190425, + 0.8705079458294915, + 0.878438946545, + 0.874553465117874, + 0.8588981364658513, + 0.8317052098347657, + 0.7933888861122782, + 0.7445387856556532, + 0.6859106496496082, + 0.6184144216394304, + 0.5430998972009891, + 0.4611401680603958, + 0.3738131217600094, + 0.28248128863165356, + 0.1885703539023011, + 0.09354667380970434, + -0.0011058496879929186, + -0.09390917090990794, + -0.18341441009226475, + -0.26822470306456425, + -0.3470172306088908, + -0.41856408008618956, + -0.48175161032828606, + -0.5355980144019713, + -0.579268803267133, + -0.6120899661441987, + -0.6335586000437716, + -0.6433508408238133, + -0.641326970697421, + -0.6275336216426084, + -0.6022030399648497, + -0.5657494236109446, + -0.5187623899966939, + -0.4619976773647463, + -0.3963652263178675, + -0.3229148294886848, + -0.24281957565966716, + -0.15735734942891594, + -0.06789067818328465, + 0.02415475579548038, + 0.11731259921537827, + 0.21009895306497375, + 0.30103577461014697, + 0.38867418703445894, + 0.4716173291155847, + 0.5485423845839783, + 0.6182214437494971, + 0.6795408683937725, + 0.7315188545333404, + 0.773320916078602, + 0.8042730452010486, + 0.8238723418626854, + 0.8317949448733919, + 0.8279011393987001, + 0.8122375603695065, + 0.7850364570446648, + 0.7467120303247354, + 0.69785390057983, + 0.6392178090072932, + 0.5717136991649598, + 0.49639136664124167, + 0.4144239031744842, + 0.3270891963192934, + 0.2357497764195876, + 0.14183132871427956, + 0.04680020945311318, + -0.04785967939414923, + -0.140670292134992, + -0.23018274899404156, + -0.31500018578940386, + -0.39379978329199467, + -0.4653536288514247, + -0.5285480812886643, + -0.5824013336594884, + -0.6260788969128743, + -0.658906760258679, + -0.6803820206968973, + -0.6901808140749842, + -0.6881634225957312, + -0.6743764782268973, + -0.6490522272638732, + -0.612604867643427, + -0.5656240167714779, + -0.508865412880968, + -0.44323899656495364, + -0.3697945604465178, + -0.28970519329882327, + -0.204248779710569, + -0.11478784705942556, + -0.022748077618198442, + 0.07040417533017843, + 0.16318501278309827, + 0.25411639201502945, + 0.3417494362182887, + 0.4246872841788706, + 0.5016071196357073, + 0.571281032906887, + 0.6325953857820825, + 0.6845683742859234, + 0.726365512336692, + 0.7573127921136179, + 0.7769073135863744, + 0.7848252155724051, + 0.7809267832446467, + 0.76525865154131, + 0.7380530697284053, + 0.6997242387136514, + 0.6508617788740303, + 0.5922214314136947, + 0.5247131398973712, + 0.4493866999199036, + 0.3674152032262212, + 0.2800765373771811, + 0.18873323272302794, + 0.09481097450885319, + -0.00022388100957934642, + -0.09488743185669235, + -0.18770163233418768, + -0.27721760266090234, + -0.3620384786495166, + -0.4408414410655083, + -0.5123985772530428, + -0.5755962460281112, + -0.6294526404412111, + -0.6731332714364607, + -0.7059641282188611, + -0.7274423077836454, + -0.7372439459736935, + -0.7352293249872857, + -0.7214450767878162, + -0.6961234476664262, + -0.6596786355557428, + -0.6127002578576111, + -0.5559440528011294, + -0.49031996097547914, + -0.41687777500026724, + -0.33679058364490877, + -0.2513362714946531, + -0.16187736592409027, + -0.06983954920258685, + 0.023310825389971913, + 0.11608985885377457, + 0.20701950846642997, + 0.2946508974227401, + 0.37758716451135527, + 0.45450549347378233, + 0.524177974630482, + 0.5854909697732924, + 0.6374626749290835, + 0.6792586040181481, + 0.7102047492215733, + 0.7297982105108711, + 0.7377151267051578, + 0.7338157829789103, + 0.7181468142717741, + 0.6909404698511136, + 0.6526109506258183, + 0.6037478769739426, + 0.5451069901006858, + 0.4775982335715484, + 0.4022714029821, + 0.3202995900779549, + 0.23296068242047552, + 0.14161721036017097, + 0.04769485914255696, + -0.04734001497657969, + -0.14200351002167388, + -0.234817580294263, + -0.3243333460136436, + -0.40915394299280805, + -0.4879565519974537, + -0.5595132603725237, + -0.6227104269345857, + -0.6765662447350111, + -0.7202462247187635, + -0.7530763560918632, + -0.7745537358506993, + -0.7843544998394353, + -0.7823389302577193, + -0.7685536590704487, + -0.7432309325703736, + -0.7067849486918394, + -0.6598053248386153, + -0.6030477992416194, + -0.5374223124922911, + -0.4639786572123283, + -0.3838899221734591, + -0.29843399196348397, + -0.20897339395943487, + -0.11693381043334437, + -0.023781594667975383, + 0.0689993543339556, + 0.15993099384707454, + 0.2475644470631224, + 0.3305028527673678, + 0.40742339469804717, + 0.4770981631719244, + 0.5384135199774298, + 0.5903876611376769, + 0.6321861005689848, + 0.6631348304486038, + 0.6827309507439365, + 0.6906506002698567, + 0.6867540641965658, + 0.6710879774592642, + 0.6438845893207761, + 0.6055581006852836, + 0.5566981319261008, + 0.4980604242435307, + 0.4305549211980075, + 0.35523141837994876, + 0.27326300752981986, + 0.18592757620350464, + 0.09458765474605971, + 0.0006689283973931436, + -0.09436224659247601, + -0.18902196825369644, + -0.2818321908938905, + -0.3713440347384268, + -0.4561606356063763, + -0.5349591742698627, + -0.6065117380802458, + -0.669704685860578, + -0.7235562106689004, + -0.7672318234570238, + -0.8000575134377859, + -0.8215303776146409, + -0.8313265518388706, + -0.8293063183173597, + -0.8155163090223818, + -0.7901887702541346, + -0.7537378999546511, + -0.7067533155353063, + -0.6499907552349244, + -0.5843601596529053, + -0.5109113214189215, + -0.4308173293129815, + -0.3453560679311941, + -0.25589006465893116, + -0.1638450017767586, + -0.07068723257621624, + 0.022099343931334024, + 0.11303668501159339, + 0.20067591384729228, + 0.2836201692146211, + 0.3605466348424694, + 0.4302274010383534, + 0.49154882958122126, + 0.5435291164845253, + 0.5853337756549519, + 0.6162887992599179, + 0.6358912872568527, + 0.643817378450609, + 0.6399273580012008, + 0.6242678608335479, + 0.59707113620006, + 0.5587513849943825, + 0.5098982275792445, + 0.4512674051441373, + 0.38376886123857656, + 0.30845239144218395, + 0.2264910874841245, + 0.13916283690912729, + 0.04783017005090291, + -0.046081227862134436, + -0.14110500059145287, + -0.235757246178892, + -0.3285599189440058, + -0.41806413912395923, + -0.5028730425498649, + -0.5816638100060811, + -0.6532085288562313, + -0.7163935579356354, + -0.7702370903150534, + -0.8139046369586805, + -0.8467221870922456, + -0.8681868377320209, + -0.8779747247422397, + -0.8759461303428928, + -0.8621476865194372, + -0.8368116395854248, + -0.8003521874962897, + -0.7533589476769953, + -0.6965876583799608, + -0.6309482602184419, + -0.5574905458359543, + -0.4773876040266266, + -0.3919173194005951, + -0.3024422193574344, + -0.21038798619232243, + -0.11722097321103321, + -0.024425079439522164, + 0.0665216523729435, + 0.15417034539455862, + 0.23712413838640325, + 0.3140602150623113, + 0.3837506657147246, + 0.44508185210719897, + 0.4970719702377839, + 0.5388865339977109, + 0.5698515355386922, + 0.589464074802411, + 0.5974002905778689, + 0.5935204680090803, + 0.5778712420048614, + 0.5506848618013721, + 0.512375528276009, + 0.4635328617749651, + 0.4049126034711643, + 0.3374246968975268, + 0.2621189376167888, + 0.1801684173411943, + 0.09285102359855664, + 0.0015292867053702842, + -0.09237110812734012, + -0.1873838046781673, + -0.2820249010066079, + -0.37481635144982306, + -0.46430927626257534, + -0.5491068112939368, + -0.6278861373462443, + -0.6994193418009879, + -0.7625927835118722, + -0.8164246555678626, + -0.8600804689516399, + -0.8928862129074016, + -0.9143389844700609, + -0.9241149195226206, + -0.9220743003039502, + -0.9082637588184985, + -0.8829155413989265, + -0.8464438460198707, + -0.7994382901256116, + -0.7426546119881143, + -0.6770027522399841, + -0.6035325035447096, + -0.5234169547159958, + -0.43793399038391045, + -0.3484461379681709, + -0.2563790797839737, + -0.16319916915734073, + -0.07039030513472486, + 0.020569469514255232, + 0.10823127793711443, + 0.1911982588743394, + 0.26814759601882077, + 0.3378513796421316, + 0.39919597148668007, + 0.45119956752943846, + 0.49302768164034194, + 0.5240063059496521, + 0.543632540377592, + 0.5515825236915236, + 0.5477165410137135, + 0.5320812272311116, + 0.5049088315579482, + 0.46661355484949957, + 0.4177850174297467, + 0.35917896044935105, + 0.29170532741881317, + 0.21641391387823572, + 0.1344778115173067, + 0.047174907841077494, + -0.04413226685695914, + -0.13801802738861124, + -0.23301601755570484, + -0.32764233544100474, + -0.42041893540475433, + -0.5098969377254214, + -0.594679478275594, + -0.6734437378811797, + -0.7449618039475665, + -0.8081200353523562, + -0.8619366252084371, + -0.9055770845227575, + -0.9383674025636893, + -0.959804676390487, + -0.9695650419106635, + -0.9675087813876613, + -0.9536825268506347, + -0.9283185246570521, + -0.891830972806438, + -0.8448094887682305, + -0.7880098108394575, + -0.7223418796779459, + -0.6488554879726469, + -0.5687237245626904, + -0.4832244741038263, + -0.3937202640414934, + -0.30163677671659433, + -0.20844036548122202, + -0.11561492940788373, + -0.024638511292244366, + 0.06304001198676801, + 0.1460237791433616, + 0.2229899738439498, + 0.29271068633328173, + 0.35407227832723565, + 0.4060929457758916, + 0.44793820252216354, + 0.47893404066930434, + 0.4985775601103406, + 0.5065448995853203, + 0.502696344189127, + 0.4870785287811572, + 0.45992370254805054, + 0.42164606631731083, + 0.37283524038504573, + 0.3142469658740161, + 0.24679118626657442, + 0.1715176970746186, + 0.08959958995963382, + 0.002314752398151071, + -0.08897428534482882, + -0.1828418381097582, + -0.2778215497272566, + -0.37242951830882404, + -0.46518769824381023, + -0.5546472098397641, + -0.6394111889983973, + -0.7181568165749296, + -0.7896561800042766, + -0.8527956381934736, + -0.9065933842850624, + -0.9502149293158348, + -0.9829862625838997, + -1.0044044811785948, + -1.0141457210374925, + -1.0120702644542277, + -0.9982247434882777, + -0.9728414045275151, + -0.9363344456020488, + -0.8892934842119142, + -0.8324742586848852, + -0.7667867097097423, + -0.6932806300063304, + -0.6131291084448598, + -0.5276100297123931, + -0.4380859212855701, + -0.3459824655367103, + -0.25276601584956465, + -0.1599204713281595, + -0.06892387479991233, + 0.018774896824258126, + 0.10177898222671006, + 0.17876556504173252, + 0.24850673548187546, + 0.30988885523073717, + 0.3619301202059303, + 0.4037960442178492, + 0.434812619337163, + 0.4544769454241054, + 0.4624651611858772, + 0.4586375516844009, + 0.4430407517460154, + 0.4159070105241319, + 0.37765052881294897, + 0.32886092687527785, + 0.2702939458002463, + 0.20285952903655596, + 0.1276074720625631, + 0.045710866505716624, + -0.04155240019138419, + -0.13281979779768027, + -0.22666564118791677, + -0.3216235742269984, + -0.4162096950606895, + -0.5089459581129658, + -0.5983834837259862, + -0.683125407836059, + -0.7618489113333536, + -0.8333260816877115, + -0.8964432778411233, + -0.9502186929713763, + -0.993817838150478, + -1.0265667027119645, + -1.0479623837806042, + -1.0576810173295623, + -1.0555828856881888, + -1.0417146209517498, + -1.0163084695440552, + -0.9797786295312421, + -0.9327147184494271, + -0.8758724746626838, + -0.81016183889618, + -0.736632603905999, + -0.6564578585992469, + -0.5709154876994168, + -0.4813680187199169, + -0.38924113407020733, + -0.29600118717078683, + -0.2031320771628266, + -0.11211184691108511, + -0.024389373363674083, + 0.058638482124291846, + 0.13564890314956735, + 0.20541397988705845, + 0.2668200739826382, + 0.3188853813159789, + 0.36077541565959137, + 0.39181616904605737, + 0.4115047412973889, + 0.41951727108253845, + 0.41571404342501894, + 0.40014169311268416, + 0.3730324692602802, + 0.33480057262337276, + 0.28603562342588984, + 0.22749336271801804, + 0.1600837339095079, + 0.0848565324394844, + 0.0029848498961381684, + -0.08425342631721236, + -0.1754957660089695, + -0.2693164840934854, + -0.36424922447542984, + -0.4588100853402202, + -0.5515210211518482, + -0.6409331522922194, + -0.725649614737992, + -0.8043475894195258, + -0.8757991638467759, + -0.938890697002352, + -0.9926403821045222, + -1.0362137302658452, + -1.068936730860718, + -1.0903064810546554, + -1.0999991168617964, + -1.0978749206525587, + -1.0839805245633527, + -1.058548175059274, + -1.0219920702478098, + -0.9749018277065349, + -0.9180331858411743, + -0.8522960854185442, + -0.7787403192364449, + -0.6985389762439773, + -0.6129699412065629, + -0.5233957416798365, + -0.43124206011534794, + -0.33797524997591094, + -0.24507921044520287, + -0.1540319844305051, + -0.06628244892243876, + 0.016772534680993233, + 0.0938101499338147, + 0.16360248696801577, + 0.22503590738624074, + 0.2771286070251889, + 0.3190460996140885, + 0.35011437714206056, + 0.36983053938775423, + 0.37787072497652113, + 0.3740952188881941, + 0.35855065586686025, + 0.33146928498336836, + 0.29326530694933983, + 0.24452834194455253, + 0.1860141309750611, + 0.11863261740633022, + 0.04343359663302898, + -0.03840983980116351, + -0.12561980453741992, + -0.21683376742896232, + -0.31062604343496003, + -0.40553027650486895, + -0.5000625648692931, + -0.5927448630371742, + -0.6821282914357685, + -0.7668159860870516, + -0.8454851279667056, + -0.916907804630323, + -0.9799703751061373, + -1.0336910326580988, + -1.0772352884446135, + -1.1099291318860456, + -1.131269660193975, + -1.1409330094286427, + -1.1387794620067189, + -1.1248556501109896, + -1.0993938202529776, + -1.062808170586691, + -1.0156883187364785, + -0.9587900031547038, + -0.8930231646550497, + -0.8194375960824085, + -0.7392063864327036, + -0.6536074205187319, + -0.5640032259433627, + -0.4718194852054304, + -0.3785225518152133, + -0.2855963250040866, + -0.19451884772687356, + -0.10673899702196747, + -0.023653634335364257, + 0.05341442383910672, + 0.12323726758532558, + 0.18470125845775737, + 0.2368245922448503, + 0.278772782627394, + 0.30987182154609494, + 0.3296188087310115, + 0.3376898827588028, + 0.3339453285605394, + 0.31843178083141505, + 0.291381488593348, + 0.2532086525088089, + 0.2045028927084258, + 0.14601995014903268, + 0.07866976814664665, + 0.0035021420464145664, + -0.07830983665735132, + -0.1654882806557112, + -0.25667065985167425, + -0.35043128925403516, + -0.4453038128624748, + -0.5398043289576295, + -0.6324547920984871, + -0.7218063227627399, + -0.8064620570226155, + -0.8850991759042677, + -0.9564897670139325, + -1.0195201894304995, + -1.0732086364686055, + -1.1167206193376, + -1.1493821275087992, + -1.1706902582448038, + -1.180321147657055, + -1.1781350782134683, + -1.1641786821481852, + -1.1386842060241693, + -1.1020658480470287, + -1.0549132258927136, + -0.997982078065326, + -0.9321823454304492, + -0.8585638208849629, + -0.7782995934766233, + -0.6926675480706163, + -0.6030302123219017, + -0.5108132687816009, + -0.4174830710126776, + -0.3245235182987811, + -0.2334126536473651, + -0.14559935414979175, + -0.0624804813046298, + 0.014621148341292245, + 0.08447762481883572, + 0.1459753096293866, + 0.19813239850812964, + 0.2401144050825592, + 0.27124732124002326, + 0.29102824665706856, + 0.29913331985673824, + 0.29542282571643735, + 0.2799433988775572, + 0.25292728830817457, + 0.21478869461669048, + 0.16611723787977772, + 0.1076686590000217, + 0.04035290123916446, + -0.034780240111911595, + -0.11655767361344649, + -0.20370151201106146, + -0.29484922526229107, + -0.3885751284307928, + -0.4834128655710012, + -0.5778785350186162, + -0.6704940913875221, + -0.7598106552106181, + -0.8444313626152284, + -0.9230333946829399, + -0.9943888390754143, + -1.0573840549268638, + -1.1110372356076994, + -1.1545138923829374, + -1.1871400147795639, + -1.2084127001161988, + -1.2180080845601775, + -1.2157864506355012, + -1.2017944306324635, + -1.1762642711702989, + -1.139610170510974, + -1.0924217463868517, + -1.0354547373585548, + -0.9696190843483803, + -0.8959645803098468, + -0.8156643143475563, + -0.7299961713836044, + -0.6403226791299101, + -0.5480695201948185, + -0.4547030481983564, + -0.36170716248145396, + -0.27055990610906544, + -0.18271015622989584, + -0.09955477440007998, + -0.022416577224205494, + 0.047476525270950434, + 0.10901089452892715, + 0.1612047262268998, + 0.20322353393442033, + 0.2343933094807213, + 0.2542111524840705, + 0.2623532014092844, + 0.25867974107534775, + 0.24323740606519426, + 0.21625844528830251, + 0.1781570592944176, + 0.12952286810145563, + 0.07111161255312701, + 0.0038332358522894378, + -0.07126246676919666, + -0.15300240393079695, + -0.2401086884372352, + -0.33121879030534707, + -0.424907024658264, + -0.5197070356099067, + -0.6141349215553791, + -0.7067126371685706, + -0.7959913030417173, + -0.8805740553622802, + -0.9591380752717309, + -1.0304554504916617, + -1.0934125402164965, + -1.1470275378768435, + -1.190465954797951, + -1.223053780567255, + -1.24428811256382, + -1.2538450870155722, + -1.2515849865071427, + -1.2375544433895702, + -1.2119857043429452, + -1.1752929676901318, + -1.1280658512244663, + -1.0710600935678158, + -1.005185635703521, + -0.9314922706463584, + -0.8511530875625432, + -0.7654459714352642, + -0.6757334500382475, + -0.5834412060414331, + -0.4900355931264448, + -0.397000510696148, + -0.3058140018773922, + -0.21792494388078293, + -0.13473019832453398, + -0.05755258187550563, + 0.012379995377388042, + 0.07395389481531728, + 0.1261873120530279, + 0.1682457605975799, + 0.1994552322155585, + 0.2193128264625951, + 0.22749468174071621, + 0.22386108280604677, + 0.20845866417857506, + 0.18151967470473052, + 0.14345831487118405, + 0.09486420463259841, + 0.03649308476937864, + -0.03074510157891415, + -0.10580055924396926, + -0.18750019690881276, + -0.27456612744169684, + -0.3656358209232917, + -0.45928359254058787, + -0.5540430864711481, + -0.648430401174269, + -0.74096749138795, + -0.8302054777684547, + -0.9147474965675588, + -0.9932707289909859, + -1.0645472628247408, + -1.127463457327835, + -1.1810375059953673, + -1.2244349202172589, + -1.2569816896457353, + -1.278174911724677, + -1.2876907227469196, + -1.2853894053620958, + -1.2713175919863535, + -1.2457075293649311, + -1.2089734158859349, + -1.1617048694081022, + -1.1046576286186625, + -1.0387416345664522, + -0.9650066803319365, + -0.8846258551469466, + -0.7988770440603075, + -0.7091227749118201, + -0.6167887304371527, + -0.5233412643841016, + -0.43026427622145724, + -0.33903580914237114, + -0.25110474042366315, + -0.167867931749961, + -0.09064819985432773, + -0.020673454892464346, + 0.04094266445046023, + 0.09321835372234716, + 0.13531912636354396, + 0.16657097407384674, + 0.18647099634192538, + 0.19469533150282203, + 0.1911042642455813, + 0.17574442902302295, + 0.14884807461435057, + 0.11082940143888027, + 0.06227802938385657, + 0.003949699162235157, + -0.06324564615400996, + -0.13825821146421996, + -0.21991490551907983, + -0.30693784125488044, + -0.39796448881996294, + -0.4915691634692813, + -0.5862855094487098, + -0.680629625285427, + -0.7731234657857337, + -0.862318151674191, + -0.9468168192709164, + -1.0252966498501306, + -1.0965297312664721, + -1.1594024228473763, + -1.2129329181567798, + -1.2562867286533093, + -1.2887898440580714, + -1.3099393618838668, + -1.3194114184925878, + -1.3170662966029287, + -1.3029506287002026, + -1.277296661598919, + -1.2405185937565308, + -1.1932060431011213, + -1.1361147483894745, + -1.0701546507400048, + -0.9963755433027257, + -0.9159505153792867, + -0.8301574520883638, + -0.7403588813394022, + -0.6479804859383053, + -0.5544886197026595, + -0.461367182171664, + -0.37009421660840786, + -0.2821186003600653, + -0.19883719518153511, + -0.12157281787652843, + -0.05155337867102407, + 0.010107483679101928, + 0.06242796465125798, + 0.104573577614929, + 0.13587031419906065, + 0.15581527382153296, + 0.16408459474639264, + 0.16053856159164753, + 0.14522380873900081, + 0.11837258489643374, + 0.08039909041208981, + 0.03189294510182225, + -0.02639011039294077, + -0.09354013307158004, + -0.16850732790505527, + -0.2501186037157707, + -0.3370960735115165, + -0.428077207512653, + -0.5216363210460185, + -0.6163070584291775, + -0.7106055182615876, + -0.8030536554214774, + -0.8922025907058289, + -0.9766554605067578, + -1.055089446170958, + -1.126276635625255, + -1.1891033882697608, + -1.2425878977408886, + -1.2858956755698823, + -1.318352711550539, + -1.3394561032684429, + -1.348881987158276, + -1.3464906460116952, + -1.3323287123869834, + -1.306628433171709, + -1.2698040068964187, + -1.2224450515625245, + -1.1653073059999661, + -1.0993007114005509, + -1.0254750609877188, + -0.9450034441366163, + -0.8591637460394892, + -0.7693184946794251, + -0.6768933729360442, + -0.5833547347007184, + -0.49018647958650763, + -0.39886665093043067, + -0.31084412615358714, + -0.22751576708518856, + -0.15020439060285398, + -0.08013790700680147, + -0.018429955127372097, + 0.03393766043869792, + 0.07613045298627967, + 0.10747441406994014, + 0.12746664303294283, + 0.13578327806469664, + 0.13228460370847614, + 0.11701725427121627, + 0.09021347838603512, + 0.05228747632614948, + 0.0038288678324166353, + -0.0544066065288034, + -0.12150900383202881, + -0.19642852912342507, + -0.2779920913006746, + -0.3649218034469124, + -0.455855135858, + -0.5493664039360082, + -0.6439892520743087, + -0.7382397789478975, + -0.8306399395106985, + -0.9197408546354506, + -1.0041456607901786, + -1.08253153939725, + -1.153670578459683, + -1.2164491374536, + -1.2698854100913677, + -1.3131449079805537, + -1.3455536209911723, + -1.366608646785036, + -1.3759861218732832, + -1.373546329123983, + -1.3593359011719448, + -1.3335870849812714, + -1.2967140791592526, + -1.2493065017839213, + -1.19212009176203, + -1.1260647903621703, + -1.052190390884884, + -0.9716699827821125, + -0.8857814513232118, + -0.7958873245683846, + -0.7034132854743455, + -0.6098256880099702, + -0.5166084318653753, + -0.4252395604550459, + -0.3371679512775248, + -0.2537904662395359, + -0.17642992229620902, + -0.10631422982560079, + -0.04455702773556246, + 0.0078598792993292, + 0.05010200449610974, + 0.0814953393314413, + 0.10153698307063691, + 0.10990307382502336, + 0.10645389605982727, + 0.09123608400378308, + 0.06448188621184756, + 0.02660550287888222, + -0.02180344633263495, + -0.07998922093462457, + -0.14704187808022567, + -0.2219116228941736, + -0.30342536435255296, + -0.3903052156174619, + -0.48118864706318537, + -0.5746499741708394, + -0.6692228414125767, + -0.763423347542406, + -0.8557734475929857, + -0.9448242625163619, + -1.0291789288595892, + -1.1075146281242128, + -1.1786034483925494, + -1.241331749219849, + -1.2947177243980168, + -1.3379268856139892, + -1.3702852228172695, + -1.3912898337492199, + -1.4006168550005902, + -1.3981265695191287, + -1.3838656100193654, + -1.358066223545212, + -1.3211426087838127, + -1.273684383893118, + -1.2164472878598052, + -1.15034126203267, + -1.0764160997921906, + -0.9958448906704475, + -0.9099055200172502, + -0.8199605159728505, + -0.727435561574386, + -0.6337970108711306, + -0.5405287636336653, + -0.44910886335691275, + -0.3609861876202469, + -0.2775575984107115, + -0.20014591276443636, + -0.12997904114002196, + -0.0681706225262097, + -0.01570246167845385, + 0.026590954539342196, + 0.05803561752287367, + 0.07812862645631892, + 0.08654611936997227, + 0.083148380647851, + 0.06798204443749359, + 0.041279359212535977, + 0.003454525086506288, + -0.04490283835952168, + -0.10303699071892954, + -0.1700379892264362, + -0.24485603908816742, + -0.32631804936202785, + -0.41314613329174293, + -0.5039777613333469, + -0.5973872490497588, + -0.6919082409950796, + -0.7860568360049791, + -0.8783549891943474, + -0.9673538215971753, + -1.0516564698426063, + -1.129940115514394, + -1.2009768467768573, + -1.2636530232677, + -1.316986838861073, + -1.3601438053263153, + -1.3924499126952437, + -1.413402258791819, + -1.4226769802892556, + -1.4201343602179222, + -1.4058210313749595, + -1.3799692408870428, + -1.3429931875240042, + -1.2954824895266244, + -1.2381928859644415, + -1.172034318269169, + -1.098056579904183, + -1.0174327604848055, + -0.9314407454437077, + -0.8414430630044307, + -0.7488653962870477, + -0.6551740994243233, + -0.5618530722699626, + -0.47038035840249054, + -0.3822048354844253, + -0.2987233655863497, + -0.2212587658278981, + -0.1510389467512305, + -0.08917754742864537, + -0.03665637269946384, + 0.005690090488979949, + 0.0371878334484351, + 0.05733395527930142, + 0.06580459392799934, + 0.06246003369462311, + 0.04734690864273382, + 0.020697467161941013, + -0.017074090718344065, + -0.06537814550106778, + -0.12345895686384475, + -0.1904065821257662, + -0.2651712265770648, + -0.3465797993601163, + -0.4333544138027997, + -0.5241325404458155, + -0.6174884949364927, + -0.7119559219134677, + -0.8060509202969974, + -0.8982954452866885, + -0.9872406180009757, + -1.0714895751539815, + -1.1497194984141634, + -1.2207024760306762, + -1.2833248677261067, + -1.3366048674595865, + -1.379707987085299, + -1.4119602167202303, + -1.432858654273375, + -1.4420794365030771, + -1.4394828465248826, + -1.4251155172211578, + -1.3992096958038518, + -1.36217958112812, + -1.314614791520066, + -1.2572710661347846, + -1.1910583464892508, + -1.1170264261325977, + -1.036348394765511, + -0.9503021379063352, + -0.8602501838641836, + -0.7676182158450806, + -0.6738725880672056, + -0.5804972004703997, + -0.4889700967187728, + -0.40074015456074175, + -0.31720423615305493, + -0.2396851587010982, + -0.16941083283313527, + -0.10749489770753887, + -0.054919158249749994, + -0.012518101493266723, + 0.019034263787447755, + 0.03923503660653775, + 0.04776035482412305, + 0.044470502653950195, + 0.029412114073189666, + 0.002817437384987423, + -0.034899327467646304, + -0.0831485610742639, + -0.1411745231990808, + -0.20806727124756647, + -0.2827770105970456, + -0.364130650476135, + -0.4508503042997394, + -0.5415734426952774, + -0.634874381396996, + -0.729286765130156, + -0.8233266929022719, + -0.9155161199995794, + -1.0044061676277702, + -1.0885999725879316, + -1.1667747166356222, + -1.2377024881071232, + -1.3002696468122572, + -1.3534943867972122, + -1.3965422200035988, + -1.4287391366356736, + -1.449582234689715, + -1.4587476510115183, + -1.4560956688040392, + -1.4416729210371162, + -1.4157116550102111, + -1.3786260696659973, + -1.3310057834182842, + -1.2736065355096935, + -1.2073382675449142, + -1.133250773160798, + -1.0525171421457893, + -0.9664152601059534, + -0.8763076554384803, + -0.7836200114370365, + -0.6898186824078021, + -0.596387568378576, + -0.5048047131013882, + -0.41651899441293716, + -0.3329272745578077, + -0.25535237082958373, + -0.1850221939446251, + -0.12305038314968687, + -0.070418743458218, + -0.027961761992176606, + 0.003646552385786067, + 0.0239032986014312, + 0.03248461442645714, + 0.02925078398621514, + 0.014248441169382384, + -0.01229016580935062, + -0.049950837095563944, + -0.09814395336742275, + -0.15611377447761, + -0.22295035792046453, + -0.2976039091617565, + -0.37890133751902777, + -0.465564756495883, + -0.5562316368086264, + -0.6494762942800965, + -0.7438323737246768, + -0.8378159742387123, + -0.9299490511973862, + -1.0187827258953759, + -1.1029201352227904, + -1.1810384610242382, + -1.2519097917250996, + -1.3144204872243226, + -1.3675887416572585, + -1.410580067054747, + -1.4427204537101845, + -1.463506999709212, + -1.4726158419868969, + -1.4699072638355273, + -1.4554278983143516, + -1.429409992812134, + -1.3922677463611361, + -1.3445907774645425, + -1.2871348254544528, + -1.220809832025275, + -1.1466655909032628, + -1.0658751919664544, + -0.9797165209107841, + -0.8895521062228957, + -0.79680763128624, + -0.702949450496742, + -0.6094614639718934, + -0.5178217155537843, + -0.42947908316870476, + -0.3458304291511969, + -0.26819857088468346, + -0.1978114191756695, + -0.13578261336067454, + -0.08309395854321924, + -0.04057994193529643, + -0.0089145724896032, + 0.011399248629461498, + 0.020037659103529643, + 0.016860942967771117, + 0.0019157340206722995, + -0.024565719613299175, + -0.06216921817001682, + -0.11030514241780659, + -0.16821775229978847, + -0.23499710540053897, + -0.30959340727639983, + -0.3908335673351208, + -0.4774396991708855, + -0.5680492735902245, + -0.6612366065067082, + -0.7555353428252494, + -0.84946158173249, + -0.9415372786944507, + -1.0303135550963345, + -1.1143935479188904, + -1.1924544390973943, + -1.263268317147987, + -1.3257215420601554, + -1.3788323080601903, + -1.4217661272696525, + -1.4538489900727471, + -1.4745779946459543, + -1.4836292780152123, + -1.4808631235636862, + -1.4663261644415613, + -1.4402506481285706, + -1.4030507737478732, + -1.3553161598936836, + -1.297802545989255, + -1.2314198738199018, + -1.1572179372030091, + -1.0763698261077255, + -0.9901534263211194, + -0.8999312664209131, + -0.8071290298819966, + -0.7132130711913409, + -0.6196672905575065, + -0.5279697319141035, + -0.4395692732786263, + -0.35586277707685876, + -0.2781730607837879, + -0.20772803529706063, + -0.14564134004461157, + -0.0928947802215273, + -0.05032284313108977, + -0.018599537817537315, + 0.001772234463321351, + 0.010468611301526931, + 0.0073498766407330135, + -0.007537335812118712, + -0.033960778024160754, + -0.07150625032286964, + -0.11958413356820233, + -0.17743868779493385, + -0.2441599706793804, + -0.31869818786939813, + -0.39988024886464724, + -0.4864282673509953, + -0.5769797142267419, + -0.6701089054973335, + -0.7643494861592417, + -0.8582175554911995, + -0.9502350690509996, + -1.038953148315804, + -1.1229749303580254, + -1.2009775972051, + -1.271733237465034, + -1.3341282112192787, + -1.3871807127861535, + -1.4300562543791024, + -1.4620808264744836, + -1.4827515273407994, + -1.4917444940960103, + -1.4889200102154194, + -1.4743247089412848, + -1.448190837845533, + -1.4109325961433685, + -1.363139602521321, + -1.3055675964947095, + -1.2391265199410981, + -1.1648661667700322, + -1.0839596270431144, + -0.9976847866394735, + -0.9074041742291863, + -0.814543473379447, + -0.7205690386694652, + -0.6269647704003973, + -0.535208712597959, + -0.44674974337210793, + -0.3629847252410235, + -0.28523647577210737, + -0.21473290595537992, + -0.15258765531140042, + -0.09978252912754701, + -0.05715201479964474, + -0.02537012146442781, + -0.004939750470239451, + 0.0038152356804467963, + 0.0007551208387112374, + -0.014073461381057362, + -0.040438263038613295, + -0.07792508455394018, + -0.12594430687970726, + -0.18374019014334564, + -0.25040279211365823, + -0.3248823185312574, + -0.40600567898872036, + -0.49249498726417096, + -0.5829877143489999, + -0.6760581763410545, + -0.7702400183297988, + -0.8640493396866384, + -0.9560080960622204, + -1.0446674090262438, + -1.1286304157441693, + -1.2065742983361651, + -1.2772711455030652, + -1.3396073174192138, + -1.3926010084956357, + -1.4354177310387954, + -1.4673834756178838, + -1.4879953405943003, + -1.496929463178915, + -1.494046126939943, + -1.4793919652126108, + -1.4531992256617619, + -1.4158821075955719, + -1.368030229793544, + -1.3103993318639846, + -1.2438993557773932, + -1.1695800955365119, + -1.0886146412957798, + -1.0022808790273403, + -0.9119413374945589, + -0.819021700357444, + -0.7249883222883545, + -0.6313251036815275, + -0.5395100886557677, + -0.4509921554140557, + -0.3671681665679212, + -0.2893609397775848, + -0.21879838612647673, + -0.15659414522810244, + -0.10373002246305985, + -0.06104050532030106, + -0.02919960302984287, + -0.008710217033086567, + 0.0001037900742168335, + -0.002897297950006386, + -0.01766684758461591, + -0.04397261098252314, + -0.08140038865700502, + -0.1293605616539474, + -0.1870973901940288, + -0.2537009321393074, + -0.3281213933237314, + -0.40918568343285955, + -0.4956159163385359, + -0.5860495631251431, + -0.679060939983899, + -0.7731836920975714, + -0.8669339189309612, + -0.9588335762277799, + -1.0474337856513063, + -1.1313376844603207, + -1.2092224548681143, + -1.2798601856690803, + -1.3421372371308549, + -1.3950718037578107, + -1.4378293979497812, + -1.4697360103693555, + -1.490288739471232, + -1.499163722559743, + -1.4962212432964672, + -1.4815079351100255, + -1.4552560457586612, + -1.4178797746439562, + -1.3699687406388248, + -1.3122786834449882, + -1.2457195451263665, + -1.171341119779128, + -1.0903164976510629, + -1.0039235648079812, + -0.9135248501064552, + -0.8205460373000131, + -0.7264534811544598, + -0.6327310821574827, + -0.5408568845212585, + -0.45227976654247226, + -0.3683965909258671, + -0.2905301754252101, + -0.21990843121739842, + -0.15764499800940773, + -0.10472168127526285, + -0.06197296859752839, + -0.030072869299561975, + -0.009524284916306733, + -0.0006510781369480217, + -0.003592965297102735, + -0.01830331296906869, + -0.04454987339927739, + -0.08191844719448456, + -0.12981941549411305, + -0.1874970386121963, + -0.2540413745044234, + -0.32840262909819107, + -0.4094077121725533, + -0.49577873769293146, + -0.5861531768369613, + -0.6791053458896011, + -0.7731688901270346, + -0.8668599091075602, + -0.9587003586683864, + -1.0472413605663664, + -1.1310860521535457, + -1.208911615736944, + -1.2794901402043717, + -1.3417079859169605, + -1.394583347472577, + -1.437281737364584, + -1.469129146348953, + -1.4896226729739817, + -1.4984384546374547, + -1.495436775094438, + -1.4806642678670379, + -1.454353180806954, + -1.4169177134093707, + -1.3689474846404779, + -1.3111982342955693, + -1.2445799045321613, + -1.1701422895396574, + -1.0890584796595875, + -1.002606361051011, + -0.9121484626640344, + -0.8191104683455604, + -0.7249587329551036, + -0.6311771570736333, + -0.5392437850066076, + -0.45060749514440823, + -0.3666651502850623, + -0.2887395682759893, + -0.21805866038730265, + -0.1557360664194774, + -0.10275359193996139, + -0.059945724624737365, + -0.02798647389055496, + -0.007378741365829208, + 0.0015536101669151176, + -0.001329135721357691, + -0.015980345696337744, + -0.042167772097842934, + -0.0794772156260462, + -0.12731905751363606, + -0.18493755816812374, + -0.25142277563859006, + -0.32572491594559083, + -0.40667088896172665, + -0.49298280874569583, + -0.5832981465684707, + -0.6761912188083381, + -0.770195670834889, + -0.8638276022994809, + -0.9556089691329666, + -1.04409089318517, + -1.1278765119016723, + -1.2056430076826956, + -1.2761624695093308, + -1.3383212578359658, + -1.391137567353784, + -1.4337769106492586, + -1.465565278571741, + -1.4859997697627272, + -1.4947565217131955, + -1.4916958182714593, + -1.4768642930528206, + -1.450494194002178, + -1.412999720707902, + -1.3649704922293162, + -1.3071622484550196, + -1.2404849316355502, + -1.1659883360535062, + -1.0848455521435552, + -0.9983344661578852, + -0.9078176071396373, + -0.8147206590290692, + -0.7205099767785432, + -0.6266694610621131, + -0.5346771562785622, + -0.4459819409110063, + -0.3619806778508396, + -0.28399618503829005, + -0.21325637383657592, + -0.15087488413913475, + -0.09783352160658172, + -0.05496677400769737, + -0.02294865085236003, + -0.002282053861858077, + 0.0067091540882918965, + 0.0038852564761278907, + -0.010707113456985731, + -0.03683570814380448, + -0.07408632837732537, + -0.12186935548320618, + -0.17942904996186668, + -0.24585546995507557, + -0.3200988215764132, + -0.40098601479125684, + -0.48723916375112664, + -0.5774957398198014, + -0.6703300594684459, + -0.7642757681591759, + -0.8578489656363659, + -0.9495716079235332, + -1.0379948169632363, + -1.1217217302937743, + -1.1994295304081433, + -1.269890306379915, + -1.3319904187563574, + -1.384748062321242, + -1.4273287497536842, + -1.4590584719956814, + -1.4794343277812758, + -1.4881324546941024, + -1.4850131366750303, + -1.4701230074319072, + -1.443694315002221, + -1.4061412590667821, + -1.358053458777608, + -1.3001866541155307, + -1.2334507874236758, + -1.1588956530772512, + -1.0776943416031683, + -0.9911247393460247, + -0.9005493754416043, + -0.8073939339223137, + -0.7131247698328793, + -0.6192257839399604, + -0.5271750207345001, + -0.4384213587917653, + -0.3543616610956932, + -0.2763187456787056, + -0.2055205239962159, + -0.1430806360340859, + -0.08998088754496335, + -0.047055766389890605, + -0.014979282170925326, + 0.005745663298483389, + 0.014795207050684725, + 0.012029632471579843, + -0.0025044272895508174, + -0.028574724757547562, + -0.06576706081746694, + -0.11349181688705565, + -0.17099325355860087, + -0.23736142906601854, + -0.31154654961481515, + -0.3923755252623976, + -0.4785704702519141, + -0.5687688560396055, + -0.6615449991879616, + -0.7554325452512951, + -0.8489475940658289, + -0.9406121017466531, + -1.0289771903283802, + -1.1126459974410063, + -1.1902957056692842, + -1.260698404178521, + -1.3227404536076972, + -1.3754400488322736, + -1.4179627026230301, + -1.4496344060136097, + -1.4699522578296733, + -1.4785923957464515, + -1.4754151037963812, + -1.460467015778874, + -1.4339803798229278, + -1.3963693957008578, + -1.348223682656159, + -1.2902989807610559, + -1.2235052324502784, + -1.1488922321902613, + -1.0676330705993529, + -0.9810056341135035, + -0.8903724519598255, + -0.7971592082619434, + -0.7028322581561162, + -0.6088755024999997, + -0.5167669858758492, + -0.42795558695013125, + -0.34383816879795825, + -0.26573754954283113, + -0.19488164073149278, + -0.132384082440694, + -0.07922668051417933, + -0.03624392290415725, + -0.004109819303578455, + 0.01667272838307876, + 0.025779857097200806, + 0.023071850133755373, + 0.008595340551099215, + -0.01741742426643994, + -0.05455224529481793, + -0.10221950404258977, + -0.15966346119283914, + -0.22597417507024986, + -0.3001018519711368, + -0.3808734020434116, + -0.46701093962111234, + -0.5571519362510648, + -0.6498707085863842, + -0.7437009022720649, + -0.837158617234641, + -0.9287658096799972, + -1.0170736017331685, + -1.1006851311147048, + -1.178277580499584, + -1.248623039143816, + -1.3106078677765198, + -1.3632502613636914, + -1.405715732766414, + -1.4373302731085331, + -1.457590981306073, + -1.466173995124476, + -1.4629395986863696, + -1.447934425881357, + -1.4213907249285436, + -1.3837226956904534, + -1.3355199575005678, + -1.277538250521249, + -1.2106875172770806, + -1.1360175523246494, + -1.0547014463721285, + -0.9680170859456154, + -0.8773270003618894, + -0.784056873834508, + -0.6896730615895553, + -0.5956594645744812, + -0.5034941274612175, + -0.4146259290062069, + -0.3304517323740074, + -0.25229435577786397, + -0.1813817108541469, + -0.11882743776915124, + -0.06561334245633234, + -0.02257391295727447, + 0.009616840945528726, + 0.030456017258155846, + 0.03961975283252178, + 0.03696833087425144, + 0.022548384352330572, + -0.0034078394382338617, + -0.04048614156272541, + -0.08809690361882637, + -0.14548438637895955, + -0.21173864825701122, + -0.28580989563825504, + -0.3665250387598987, + -0.45260619204507363, + -0.5426908271293187, + -0.6353532607553274, + -0.7291271386564762, + -0.8225285608485684, + -0.9140794836262965, + -1.002331029203633, + -1.0858863353897101, + -1.1634225849485285, + -1.2337118672247651, + -1.2956405430362499, + -1.3482268074376464, + -1.3906361733786876, + -1.422194632071804, + -1.442399282521584, + -1.450926262581993, + -1.4476358564641436, + -1.4325746981460643, + -1.4059750359353342, + -1.368251069782782, + -1.3199924191102443, + -1.261954824168321, + -1.195048227570014, + -1.1203224239598937, + -1.0389505041345717, + -0.9522103547080765, + -0.86146450508527, + -0.7681386395680202, + -0.6736991134701804, + -0.5796298278271785, + -0.4874088273991407, + -0.39848499103023255, + -0.3142551819726502, + -0.23604221852791454, + -0.16507401241981484, + -0.10246420390263469, + -0.04919459899735279, + -0.006099685833269031, + 0.026146525719533506, + 0.04704113357947891, + 0.05626027451102669, + 0.053664231632283316, + 0.039299637824783476, + 0.013398740296092337, + -0.023624262106346217, + -0.0711797510676353, + -0.12851198744744952, + -0.1947110297469169, + -0.26872708443851057, + -0.34938706184667245, + -0.4354130764814159, + -0.5254426000655833, + -0.618049949428819, + -0.7117687703914861, + -0.8051151630563294, + -0.8966110838050236, + -0.9848076549381484, + -1.068308014351897, + -1.145789344897021, + -1.216023736004725, + -1.2778975485797166, + -1.3304289777631895, + -1.3727835365915908, + -1.404287216363777, + -1.4244371161708966, + -1.432909373953326, + -1.4295642740086392, + -1.4144484504012182, + -1.387794151524965, + -1.3500155774169884, + -1.3017023475853118, + -1.2436102023669187, + -1.176649084460641, + -1.1018687885973661, + -1.0204424056596988, + -0.9336478223475907, + -0.8428475681521059, + -0.7494673274607809, + -0.6549734556734158, + -0.5608498539112582, + -0.4685745670202064, + -0.37959647393007523, + -0.2953124379789702, + -0.2170452775538129, + -0.14602290446405455, + -0.08335895904951515, + -0.03003524741666308, + 0.013113742219795665, + 0.045413999904274985, + 0.06636262346996223, + 0.07563574959598222, + 0.07309366131519066, + 0.05878299142390027, + 0.03293598704458642, + -0.004033153060476052, + -0.05153481066142403, + -0.10881324670299448, + -0.17495851977110957, + -0.2489208364233149, + -0.32952710706885785, + -0.4154994463025624, + -0.5054753259320308, + -0.5980290628716192, + -0.6916943030263518, + -0.7849871465835851, + -0.8764295500095547, + -0.9645726356893524, + -1.0480195416037028, + -1.1254474506875531, + -1.1956284524566827, + -1.257448907900037, + -1.309927012243113, + -1.3522282786064286, + -1.3836786983731586, + -1.4037753707184328, + -1.4121944336667598, + -1.4087961715996773, + -1.393627218665551, + -1.3669198233421487, + -1.3290881857503998, + -1.2807219254822315, + -1.22257678295826, + -1.1555627009610447, + -1.08072947430511, + -0.9992501939565677, + -0.9124027466991331, + -0.8215496621071194, + -0.7281166246515662, + -0.6335699898155611, + -0.5393936588039276, + -0.4470656765455756, + -0.3580349220536174, + -0.273698258749394, + -0.19537850510264185, + -0.12430357300628547, + -0.0615871028828717, + -0.00821090092187747, + 0.03499054457910181, + 0.06734322358164438, + 0.08834423383616798, + 0.09766971193904003, + 0.09517994084047755, + 0.08092155325418136, + 0.05512679622001915, + 0.018209868417807792, + -0.029239612005102417, + -0.08646590607570524, + -0.1525590724624003, + -0.22646931780504215, + -0.30702355259489, + -0.3929438915091563, + -0.4828678064375694, + -0.5753696143762961, + -0.668982961312612, + -0.7622239475158219, + -0.8536145295337982, + -0.9417058298337952, + -1.0251009864779994, + -1.102477182483307, + -1.1726065074470837, + -1.2343753224399325, + -1.286801822768736, + -1.3290515216356327, + -1.360450410505269, + -1.3804955886340553, + -1.3888631941278482, + -1.3854135114494441, + -1.3701931748284073, + -1.3434344328236487, + -1.3055514856371808, + -1.2571339529419552, + -1.1989375752394968, + -1.1318722953934466, + -1.0569879082990017, + -0.9754575050031231, + -0.8885589723702556, + -0.7976548400553825, + -0.7041707926100708, + -0.6095731855982138, + -0.5153459203048726, + -0.42296704173939276, + -0.33388542899550305, + -0.2494979455746124, + -0.17112741002679, + -0.10000173432515334, + -0.03723455897237879, + 0.016192309762030538, + 0.05944438350033343, + 0.09184765212431738, + 0.11289921330440218, + 0.12227520355719221, + 0.11983590575311816, + 0.10562795252618165, + 0.07988359083659209, + 0.043017019284563626, + -0.004382144061967769, + -0.06155816030956379, + -0.1276010882060477, + -0.20146113447041156, + -0.2819652096733822, + -0.3678354285713148, + -0.4577092631330849, + -0.5501610304338587, + -0.6437243765402707, + -0.7369154018000754, + -0.8282560628403796, + -0.9162974822071859, + -0.9996427980414477, + -1.0769691934387686, + -1.1470487580752162, + -1.2087678530997876, + -1.2611446738980647, + -1.3033447337506074, + -1.3346940242003535, + -1.3546896445821417, + -1.3630077330800225, + -1.35950857423502, + -1.3442388023548166, + -1.317430666076361, + -1.2794983656797463, + -1.2310315209157803, + -1.172785872363884, + -1.1056713629655046, + -1.0307377876935067, + -0.9491582376727421, + -0.8622105998450497, + -0.7712574039430278, + -0.6777243345957216, + -0.5830777474444372, + -0.4888015438514984, + -0.3963737689037815, + -0.30724330177197795, + -0.22280700603472944, + -0.14438770031918574, + -0.07321329667547789, + -0.010397435683178385, + 0.043078076311167265, + 0.08637875085316504, + 0.11883057774780179, + 0.13993065458881732, + 0.14935511781620212, + 0.14696425022383625, + 0.13280468436926013, + 0.10710866713625655, + 0.07029039704870269, + 0.022939492098258824, + -0.03418830889790023, + -0.10018306476356259, + -0.17399498229396426, + -0.2544509721357769, + -0.3402731491213673, + -0.43009898529523816, + -0.5225027978085897, + -0.6160182328036199, + -0.7091613907039949, + -0.8004542282122382, + -0.8884478679497126, + -0.9717454481330674, + -1.0490241519332035, + -1.1190560691015028, + -1.1807275608622017, + -1.2330568226760974, + -1.2752093678987266, + -1.306511188148158, + -1.3264593828342286, + -1.3347300902158028, + -1.3311835949087505, + -1.3158665312954905, + -1.2890111480876998, + -1.2510316456400308, + -1.2025176437777967, + -1.1442248831550375, + -1.0770633067874442, + -1.0020827097222587, + -0.9204561831585854, + -0.8334616141124456, + -0.7424615323904666, + -0.6488816226959797, + -0.5541882407439254, + -0.4598652879708613, + -0.3673908095372318, + -0.278213684687564, + -0.19373077707410374, + -0.11526490539783217, + -0.044043981782128136, + 0.01881835311971454, + 0.07234029288794644, + 0.11568734899482859, + 0.14818551117200937, + 0.16933187694015395, + 0.17880258266612514, + 0.17645791107077874, + 0.16234449463870537, + 0.136694580180812, + 0.09992236614817405, + 0.05261747045972205, + -0.004464368140024891, + -0.07041320854743413, + -0.14417925763025008, + -0.22458942610765006, + -0.31036582888413666, + -0.40014593807671905, + -0.4925040709088173, + -0.5859738735945094, + -0.6790714466298591, + -0.7703187467890386, + -0.8582668967655723, + -0.941519034847859, + -1.0187523442786295, + -1.0887389148807407, + -1.1503651079502963, + -1.202649119019405, + -1.2447564615152136, + -1.2760131271271198, + -1.2959162153362658, + -1.3041418644727467, + -1.3005503592235792, + -1.285188334042275, + -1.2582880377114956, + -1.2202636706567822, + -1.1717048527744176, + -1.1133673247890887, + -1.0461610297872235, + -0.9711357628867506, + -0.8894646153570985, + -0.8024254742848891, + -0.7113808695472993, + -0.6177564859177316, + -0.5230186791814353, + -0.42865135084512096, + -0.33613254613930854, + -0.2469111443784434, + -0.1623840092849274, + -0.08387395962941137, + -0.01260890760491895, + 0.05029750606537277, + 0.10386347489221655, + 0.1472545102782205, + 0.17979660188570865, + 0.2009868471659328, + 0.2105013824164706, + 0.20820049028894888, + 0.19413080319881865, + 0.16852456788799033, + 0.1317959827385018, + 0.0845346656003569, + 0.02749635514941033, + -0.03840900757959431, + -0.11213162952307582, + -0.19249842146858362, + -0.27823149838932304, + -0.3679683324707371, + -0.4602832410043306, + -0.5537098702726906, + -0.6467643208399736, + -0.7379685495484479, + -0.8258736791596537, + -0.9090828480300001, + -0.9862732394698471, + -1.0562169433700497, + -1.1178003210943286, + -1.170041568242405, + -1.2121061983089538, + -1.24332020305085, + -1.2631806820165226, + -1.2713637736034311, + -1.267729762565772, + -1.2523252834241774, + -1.2253825850283184, + -1.1873158678707902, + -1.1387147519146574, + -1.080334977951432, + -1.0130864891341917, + -0.9380190806476834, + -0.8563058438276949, + -0.7692246658273737, + -0.6781380765902816, + -0.584471760956033, + -0.48969207477635074, + -0.39528291962382167, + -0.30272234079501903, + -0.2134592176706036, + -0.12889041403861323, + -0.05033874873551519, + 0.020967865979690525, + 0.08391578931862773, + 0.1375232147260958, + 0.18095565353945153, + 0.2135390953555854, + 0.23477063756046926, + 0.24432641638641747, + 0.24206671441997715, + 0.22803816401153812, + 0.2024730118380496, + 0.16578545621666824, + 0.11856511493262374, + 0.061567726597046624, + -0.0042967678199338916, + -0.07797857531927505, + -0.15830460675297625, + -0.24399697715869204, + -0.33369315878590156, + -0.4259674689905505, + -0.5193535541192533, + -0.6123675148001928, + -0.7035313079395753, + -0.7913960563628738, + -0.8745648984900265, + -0.9517150176953139, + -1.0216185039331651, + -1.083161718630634, + -1.13536285745104, + -1.177387433952337, + -1.2085614399546483, + -1.2283819750695688, + -1.2365251777576383, + -1.2328513328360269, + -1.2174070748882877, + -1.1904246528269014, + -1.1523182672071914, + -1.1036775380548658, + -1.0452582062239368, + -0.9779702149301115, + -0.902863359420353, + -0.8211107310927974, + -0.7339902171627963, + -0.642864347635943, + -0.5491588074141345, + -0.4543399524107806, + -0.35989168426040763, + -0.26729204832135167, + -0.17798992403595004, + -0.09338217525375797, + -0.014791620872958156, + 0.056553826786254605, + 0.11954052687411047, + 0.17318667277417416, + 0.21665777576265646, + 0.2492798253754201, + 0.2705499189373889, + 0.2801441926200805, + 0.2779229289492141, + 0.26393276021451406, + 0.2384059330322872, + 0.20175664565922036, + 0.15457451581999043, + 0.09761528206551025, + 0.03178888530555285, + -0.04185488152081196, + -0.12214292932584342, + -0.20779737320711322, + -0.2974556854739938, + -0.38969218354222973, + -0.48304051381823304, + -0.576016776989466, + -0.6671429300221711, + -0.7549700958009251, + -0.8381014128050972, + -0.9152140644682902, + -0.9850801408039036, + -1.046586003298264, + -1.098749847673608, + -1.140737187546819, + -1.1718740147967148, + -1.191657429093707, + -1.1997635689569188, + -1.1960527192620491, + -1.1805715146510631, + -1.1535522040948507, + -1.1154089882069225, + -1.0667314870711218, + -1.0082754415996669, + -0.9409507950661038, + -0.8658073427752517, + -0.7840181761832545, + -0.6968611825628653, + -0.6056988919776005, + -0.5119569893866256, + -0.4171018307608547, + -0.32261731779205566, + -0.22998149589605607, + -0.14064324457208047, + -0.0559994277268183, + 0.02262713568459039, + 0.09400853328508756, + 0.15703112416813508, + 0.2107131016606191, + 0.2542199769821694, + 0.28687773961215723, + 0.308183486819113, + 0.31781335471824984, + 0.3156276257790811, + 0.30167293223521474, + 0.27618152064693924, + 0.23956758921497853, + 0.19242075560828495, + 0.13549675832187336, + 0.06970553821007136, + -0.0039031118437641565, + -0.08415610280736713, + -0.16977554983343962, + -0.2593989252868481, + -0.3516005466385168, + -0.444914060349677, + -0.5378555671630267, + -0.6289470240996076, + -0.7167395540987863, + -0.7998362956946999, + -0.8769144323753331, + -0.9467460542088052, + -1.0082175227357801, + -1.0603470337328533, + -1.1023001008709863, + -1.133402716083256, + -1.1531519790940552, + -1.16122402847643, + -1.1574791491599166, + -1.1419639758402367, + -1.1149107575418924, + -1.076733694931952, + -1.028022408147705, + -0.9695326381547227, + -0.9021743282797416, + -0.8269972738809375, + -0.745174566467318, + -0.657984093364747, + -0.5667883846893715, + -0.4730131254533682, + -0.37812467168015923, + -0.28360692511434804, + -0.19093793122398434, + -0.10156656956068638, + -0.016889704083658953, + 0.06176984620000092, + 0.13318416886112833, + 0.19623962294100505, + 0.2499544017148113, + 0.2934940163503496, + 0.3261844562751851, + 0.34752281870636353, + 0.35718523970752813, + 0.35503200169681637, + 0.3411097368565198, + 0.31565069169568905, + 0.2790690643640179, + 0.2319544724793674, + 0.17506265448586145, + 0.10930355118701524, + 0.03572695541539658, + -0.044494043847132556, + -0.13008156180400715, + -0.21967307087044427, + -0.31184288856768727, + -0.40512466140719194, + -0.49803449018186124, + -0.5890943319625113, + -0.6768553097386828, + -0.759920562094256, + -0.8369672725669411, + -0.9067675312744828, + -0.9682076998071261, + -1.0203059739907308, + -1.0622278675457497, + -1.0932993724544517, + -1.1130175884902944, + -1.1210586542754157, + -1.1172828547882565, + -1.1017368247733659, + -1.074652813303974, + -1.0364450210957377, + -0.9877030683345838, + -0.9291826960343985, + -0.86179384757028, + -0.7865863183486292, + -0.7047331999265785, + -0.6175123796780158, + -0.5262863877670038, + -0.4324809092535469, + -0.3375623002087872, + -0.24301446242494484, + -0.15031544141750933, + -0.06091411678575648, + 0.023792647464034186, + 0.10248203227747199, + 0.17392612517827927, + 0.23701128516067452, + 0.29075570545312623, + 0.3343248971763413, + 0.3670448497113641, + 0.38841266022859255, + 0.39810446474516503, + 0.39598054563282054, + 0.382087535027534, + 0.3566576793922096, + 0.3201051768303968, + 0.27301964491398156, + 0.21615682204119996, + 0.15042664896971086, + 0.07687891848659639, + -0.003313280472060594, + -0.08887206315511079, + -0.17843490202322856, + -0.2705761146426858, + -0.3638293475703554, + -0.4567107016441281, + -0.5477421339797839, + -0.6354747676118037, + -0.7185117411685945, + -0.795530238232756, + -0.8653023489665079, + -0.9267144350045435, + -0.9787846922170693, + -1.0206786343688128, + -1.0517222534860875, + -1.0714126493864797, + -1.079425960736028, + -1.075622472557002, + -1.0600488196376752, + -1.0329372510948702, + -0.9947019676878409, + -0.9459325896458457, + -0.8873848580260493, + -0.8199687162469269, + -0.7447339597578047, + -0.6628536801587949, + -0.5756057648669008, + -0.48435274408874707, + -0.3905203029270107, + -0.2955747974956646, + -0.20100012962906655, + -0.1082743448854076, + -0.018846322905978402, + 0.0658870722607014, + 0.14460302151825388, + 0.21607361234824723, + 0.27918520370326316, + 0.3329559887699143, + 0.37655147862741445, + 0.4092976626151621, + 0.43069163786211295, + 0.4404095403441537, + 0.4383116523917874, + 0.42444460609988455, + 0.3990406478903458, + 0.36251397582578637, + 0.31545420743742303, + 0.25861708108274073, + 0.1929125374786979, + 0.11939036937206554, + 0.03922366565850746, + -0.046309688951166834, + -0.13584716695755006, + -0.2279630859671979, + -0.32119109257693323, + -0.41404728766422527, + -0.5050536283848411, + -0.5927612378127982, + -0.6757732546160191, + -0.752766862416515, + -0.8225141514158716, + -0.8839014832877929, + -0.9359470539418016, + -0.9778163771814232, + -1.008835445071973, + -1.0285013574697648, + -1.0364902530795048, + -1.032662416962003, + -1.0170644839439806, + -0.9899287031806463, + -0.9516692754694382, + -0.9028758210777101, + -0.8443040811007942, + -0.7768639989949304, + -0.7016053702472983, + -0.6197012864957072, + -0.5324296351947524, + -0.44115294658854004, + -0.3472969058171206, + -0.2523278690317364, + -0.15772973810390165, + -0.06498055862886157, + 0.024470789715152312, + 0.1092274428428571, + 0.18796658162092555, + 0.25946029349452826, + 0.32259493737971284, + 0.3763887064265389, + 0.4200071116781037, + 0.45277614243747843, + 0.4741928957976341, + 0.48393350769845433, + 0.48185826043457813, + 0.4680137860651369, + 0.4426323309763419, + 0.40612809319537, + 0.3590906902179194, + 0.30227586036618537, + 0.2365935443219213, + 0.16309353479679428, + 0.08294892065140233, + -0.002562413438101943, + -0.09207794000730887, + -0.18417197669745064, + -0.2773781701396477, + -0.3702126212460728, + -0.46119728720674225, + -0.5488832911298263, + -0.6318737717175951, + -0.7088459126259061, + -0.7785718040901148, + -0.8399378078179223, + -0.8919621197524621, + -0.9338102537308294, + -0.9648082018517998, + -0.9844530640050558, + -0.9924209789284965, + -0.9885722317161209, + -0.9729534572276229, + -0.945796904651156, + -0.9075167748169088, + -0.8587026880250478, + -0.8001103854033653, + -0.7326498104406115, + -0.6573707586562603, + -0.5754463217205767, + -0.4881543871200896, + -0.39685748513100605, + -0.30298130092529435, + -0.20799219068592095, + -0.11337405631635604, + -0.02060494344317507, + 0.06886626822382519, + 0.15364271456799744, + 0.2324015764247558, + 0.3039149412081862, + 0.367069167803124, + 0.42088244932888136, + 0.46452029679768625, + 0.4973086994819041, + 0.5187447544439174, + 0.5285045975931355, + 0.5264485111938102, + 0.5126231272748343, + 0.48726069219226453, + 0.450775403943245, + 0.4037568799935476, + 0.34696085863550297, + 0.28129728052132413, + 0.2078159383329276, + 0.1276899209014857, + 0.04219711287378423, + -0.04729995831510478, + -0.13937561033530588, + -0.23256348984722458, + -0.32537969779186754, + -0.41634619138814455, + -0.5040140937726723, + -0.5869865436765561, + -0.6639407247840419, + -0.7336487273588461, + -0.7949969131369696, + -0.8470034780895317, + -0.8888339360818047, + -0.919814279240425, + -0.9394416074828755, + -0.9473920595747451, + -0.9435259206375985, + -0.9278898255586401, + -0.9007160235532952, + -0.86241871547905, + -0.8135875216631838, + -0.7549781832605001, + -0.6875006437865918, + -0.6122046987879057, + -0.5302634399611998, + -0.4429547548195458, + -0.3516411736658459, + -0.25774838169816544, + -0.16274273512577575, + -0.06810813587826052, + 0.024677370391802768, + 0.11416490394881174, + 0.19895760065010415, + 0.2777326413057387, + 0.34926211330397394, + 0.41243237550440914, + 0.466261621000966, + 0.509915360780665, + 0.5427195840907754, + 0.5641713879687108, + 0.5739469082989648, + 0.5719064273210808, + 0.5580965770392692, + 0.5327496037851231, + 0.49627970553130435, + 0.4492764997193055, + 0.39249572461726523, + 0.3268473208533217, + 0.25338108108536156, + 0.173270094120914, + 0.08779224458282188, + -0.001689940117395164, + -0.09375077767336829, + -0.18692391476889697, + -0.2797254523683547, + -0.37067734771356214, + -0.4583307239644429, + -0.5412887198749559, + -0.6182285191521729, + -0.6879222120825801, + -0.7492561604245978, + -0.8012485601720057, + -0.8430649252123843, + -0.8740312476946532, + -0.8936446275583553, + -0.9015812035911845, + -0.8977012609365927, + -0.8820514345035824, + -0.8548639735292293, + -0.8165530788926854, + -0.7677083709425879, + -0.7090855908550617, + -0.6415946821670854, + -0.5662854404460576, + -0.48433095740970783, + -0.39700912059222515, + -0.3056824603170462, + -0.21177666180305255, + -0.11675808127980115, + -0.02211062069755361, + 0.07068767427097053, + 0.16018792386972402, + 0.24499326393621468, + 0.32378087526045035, + 0.3953228452108413, + 0.45850553262724847, + 0.5123471305840205, + 0.5560131500484997, + 0.5888295802488004, + 0.6102935182029154, + 0.6200810997762093, + 0.6180526071891698, + 0.6042546724271077, + 0.5789195418027664, + 0.5424614132701191, + 0.4954699042520247, + 0.43870075299829026, + 0.37306390011855894, + 0.29960913825252433, + 0.2195095561895898, + 0.134043038534508, + 0.04457211268114583, + -0.04747753908215038, + -0.1406395634568469, + -0.23343006142460992, + -0.3243709902449503, + -0.412013473095101, + -0.4949606487459912, + -0.5718897009220751, + -0.6415727199265371, + -0.7028960675348513, + -0.7548779397574695, + -0.796683850498635, + -0.8276397919236648, + -0.8472428639886065, + -0.855169205497393, + -0.851279101609638, + -0.8356191872503915, + -0.8084217116726578, + -0.7701008757714034, + -0.7212462999109661, + -0.6626137252830504, + -0.5951130954401047, + -0.519794205964804, + -0.4378301485903318, + -0.3504988108657773, + -0.25916272312965516, + -0.16524757061564765, + -0.07021970956833665, + 0.024436958047697355, + 0.11724438654485925, + 0.2067536961529325, + 0.2915680226951033, + 0.3703645469469754, + 0.44191535626309747, + 0.5051068094693569, + 0.5589570996260943, + 0.6026317376870917, + 0.6354567128667952, + 0.6569291221697091, + 0.6667251014478163, + 0.6647049329083441, + 0.6509152485234597, + 0.6255882945928781, + 0.5891382690576221, + 0.5421547893278662, + 0.4853935936406266, + 0.4197646225930226, + 0.3463176688123675, + 0.26622582107545245, + 0.1807669639752544, + 0.0913036248932433, + -0.0007385138941392051, + -0.09389309910022342, + -0.18667623171842168, + -0.27760986901995677, + -0.36524513419333415, + -0.44818516602112374, + -0.5251071482389097, + -0.5947831711612479, + -0.6560995965744533, + -0.7080746205000249, + -0.7498737568528808, + -0.7808229978091755, + -0.8004194433354996, + -0.8083392322462211, + -0.8044426497113307, + -0.7887763306660991, + -0.7615725243736464, + -0.7232454317389325, + -0.6743846731361316, + -0.61574598976685, + -0.5482393251930429, + -0.47291447500696315, + -0.3909445309512045, + -0.3036073805841546, + -0.21226555425342192, + -0.11834473720200098, + -0.023311285683169133, + 0.07135089832958254, + 0.1641637691399457, + 0.25367844696918884, + 0.3384980676317896, + 0.4172998118952209, + 0.4888557671057138, + 0.5520522920810271, + 0.605907579873495, + 0.649587141429036, + 0.6824169659542294, + 0.7038941504460152, + 0.7136948307488047, + 0.7116792890624006, + 0.6978941573516633, + 0.6725716819090934, + 0.6361260606687209, + 0.589146911033684, + 0.5323899712341318, + 0.4667651818606355, + 0.39332233553366025, + 0.3132345210237836, + 0.22777962291739717, + 0.13832016858979262, + 0.04628184031119244, + -0.04686900863749857, + -0.1396484792558466, + -0.23057852882077134, + -0.3182102805264437, + -0.4011468731609832, + -0.47806549046540886, + -0.5477382227595766, + -0.6090514318350115, + -0.6610233137182857, + -0.7028193823292817, + -0.7337656298490162, + -0.7533591562487464, + -0.7612761003475108, + -0.757376747319774, + -0.7417077321051633, + -0.7145013039711361, + -0.6761716638266158, + -0.6273084320500166, + -0.5686673498467101, + -0.501158360782412, + -0.4258312604532405, + -0.3438591406051478, + -0.2565198887999415, + -0.1651760353887887, + -0.07125326561764474, + 0.023782064257047625, + 0.11844605225874852, + 0.21126065268855315, + 0.3007769857646675, + 0.3855981872992765, + 0.46440143805711953, + 0.5359588253821899, + 0.5991567080897979, + 0.6530132792303648, + 0.6966940497476215, + 0.7295250088462921, + 0.7510032535215081, + 0.7608049196160503, + 0.7587902893281502, + 0.7450059946212161, + 0.7196842817863961, + 0.6832393487565283, + 0.6362608129337153, + 0.5795044125471629, + 0.5138800881864825, + 0.4404376324714545, + 0.36035013417204065, + 0.2748954778741325, + 0.1854361909526392, + 0.09339795567760478, + 0.0002471253296186769, + -0.09253240109108506, + -0.1834625808607469, + -0.2710945371737514, + -0.3540314088178119, + -0.43095037953343734, + -0.5006235396400152, + -0.5619372509285444, + -0.6139097094244701, + -0.6557064290469823, + -0.6866534019759971, + -0.7062477281816868, + -0.7141655464817671, + -0.7102671420493247, + -0.6945991498225159, + -0.6673938190671673, + -0.6290653506905521, + -0.5802033650690992, + -0.5215636034062088, + -0.45405600926562495, + -0.3787303782412062, + -0.29675980207658836, + -0.2094221683311403, + -0.11808000735347567, + -0.0241590043867065, + 0.0708744843150905, + 0.16553655677862017, + 0.2583491673078377, + 0.34786343612425763, + 0.43268249904316475, + 0.5114835368329655, + 0.5830386368407832, + 0.6462341578856909, + 0.7000882930217929, + 0.7437665531967361, + 0.7765949276192474, + 0.7980705132884616, + 0.8078694460513485, + 0.8058520081104814, + 0.7920648314337039, + 0.7667401623167709, + 0.730292198697092, + 0.6833105579815069, + 0.6265509784042842, + 0.5609234005599862, + 0.48747761707360104, + 0.40738671672028154, + 0.3219285840911347, + 0.23246574656669944, + 0.14042388642271686, + 0.0472693569454195, + -0.04551394285894598, + -0.13644797026108751, + -0.224083848448975, + -0.3070247162042871, + -0.3839477572610684, + -0.4536250619323576, + -0.5149429920025053, + -0.5669197434905187, + -0.6087208303087218, + -0.6396722446300873, + -0.6592710864177416, + -0.667193494482339, + -0.6632997539896972, + -0.6476364998706112, + -0.6204359813833622, + -0.5821123994277186, + -0.5332553743723563, + -0.47462064741290144, + -0.40711816210510066, + -0.3317977140346764, + -0.24983239493690423, + -0.1625000923633802, + -0.07116333665392649, + 0.02275218695663326, + 0.11778012222321378, + 0.2124365671812083, + 0.30524347614337033, + 0.39475196934013523, + 0.4795651825959917, + 0.5583602966884489, + 0.6299093989742093, + 0.6930988482819583, + 0.7469468376749744, + 0.7906188781107926, + 0.8234409588079399, + 0.844910176775529, + 0.8547026678705957, + 0.8526787143058423, + 0.8388849480594113, + 0.813553615437471, + 0.7770989143879945, + 0.7301104623284268, + 0.6733439975036957, + 0.6077094605193119, + 0.5342566440113206, + 0.45415863676592794, + 0.36869332338554284, + 0.279223231261971, + 0.18717404268223287, + 0.09401211094438619, + 0.0012213350662801832, + -0.08972024221098321, + -0.17736374406345468, + -0.2603123092606988, + -0.33724312152482777, + -0.40692827115644326, + -0.4682541199274565, + -0.5202388638444382, + -0.5620480168070577, + -0.5930075709755974, + -0.6126146263003511, + -0.6205453215789687, + -0.6166599419641566, + -0.6010051223735311, + -0.5738131120521099, + -0.5354981118861313, + -0.48664974223070473, + -0.42802374426782797, + -0.36053006153952266, + -0.2852184896175639, + -0.2032621202234411, + -0.11593884089409003, + -0.024611181955289038, + 0.0692951713722495, + 0.16431386285808305, + 0.2589609905521182, + 0.3517585087819081, + 0.4412575377928006, + 0.526061213424293, + 0.6048467164686504, + 0.6763861342979072, + 0.7395658257559343, + 0.7934039839216536, + 0.8370661197680316, + 0.8698782225291903, + 0.891337389229977, + 0.9011197557433349, + 0.8990856042979705, + 0.8852815668881207, + 0.8599398898361358, + 0.8234747711063415, + 0.7764758281326789, + 0.7196987991766648, + 0.6540536248604514, + 0.5805900978368139, + 0.5004813069087743, + 0.41500513669606465, + 0.3255241146074939, + 0.233463922947429, + 0.1402909150311328, + 0.04748898989411244, + -0.043463809705256665, + -0.13111860692488608, + -0.21407854051667166, + -0.2910207941847031, + -0.36071745821160106, + -0.4220548943511957, + -0.47405129859163014, + -0.5158721848141168, + -0.5468435451604641, + -0.5664624795623241, + -0.5744051267985828, + -0.5705317720030916, + -0.5548890500744534, + -0.5277092102385922, + -0.4894064533625284, + -0.44057039978208823, + -0.3819567906597815, + -0.31447556951794425, + -0.23917653190876564, + -0.15723276953402598, + -0.06992216991068347, + 0.021392736655333297, + 0.1152862649638684, + 0.21029205880440127, + 0.3049262162473727, + 0.39771069164064643, + 0.4871966052502533, + 0.5719870929362545, + 0.6507593355120465, + 0.7222854203705047, + 0.7854517063764321, + 0.8392763866300283, + 0.8829249721254102, + 0.9157234521182008, + 0.9371689236547802, + 0.9469375226296872, + 0.9448895312933377, + 0.931071581661851, + 0.9057159200795765, + 0.8692367445329068, + 0.822223672477886, + 0.7654324421984133, + 0.6997729943391237, + 0.6262951215752863, + 0.546171912732728, + 0.46068125245365343, + 0.3711856681698118, + 0.27911084220864724, + 0.1859231279086182, + 0.09310642432837267, + 0.002138774249868053, + -0.08553094546193321, + -0.16850587353509683, + -0.24546319364981126, + -0.3151749960650616, + -0.37652764251072124, + -0.4285393289509777, + -0.47037556924295437, + -0.5013623555042068, + -0.5209967876419096, + -0.528955004410543, + -0.5250972909193867, + -0.5094702820423396, + -0.48230622698047254, + -0.4440193265758962, + -0.3951992011394382, + -0.33660159180842986, + -0.2691364420800032, + -0.1938535474809241, + -0.11192599968731926, + -0.024631686190759693, + 0.0666668627287062, + 0.16054396189649955, + 0.25553325512829306, + 0.3501508405204159, + 0.4429186724472375, + 0.5323878712006511, + 0.6171615726672798, + 0.6959169576870281, + 0.7674261136793348, + 0.8305753995358067, + 0.8843830083835746, + 0.9280144512436077, + 0.9607957173985608, + 0.9822239039220426, + 0.9919751467358834, + 0.9899097281179392, + 0.9760742801117999, + 0.950701049089453, + 0.914204233065069, + 0.867173449522631, + 0.810364436773828, + 0.7446871354914524, + 0.6711913383788266, + 0.591050134290355, + 0.5055414078965303, + 0.4160276866577154, + 0.32393465292991147, + 0.2307286600802442, + 0.13789360719613936, + 0.046907537088872416, + -0.04078067334767651, + -0.12377416281222822, + -0.20075011495596679, + -0.2704806200083547, + -0.3318520396696613, + -0.3838825698743762, + -0.4257377244499295, + -0.4567434954839612, + -0.4763969828537808, + -0.4843743252837116, + -0.4805358078528177, + -0.4649280654046877, + -0.43778334711000977, + -0.39951585378034166, + -0.3507152056958221, + -0.29213714396294, + -0.224691612048169, + -0.14942840544719893, + -0.06752061580514362, + 0.01975386941769639, + 0.11103251997275312, + 0.20488965071671073, + 0.2998589054966885, + 0.3944563824407429, + 0.4872040359548337, + 0.576652986363052, + 0.6614063695838994, + 0.7401413664892856, + 0.8116300645307767, + 0.8747588226323604, + 0.9285458339535007, + 0.9721566095478779, + 1.00491713873073, + 1.026324518608296, + 1.0360548851353315, + 1.0339685206226576, + 1.020112057146962, + 0.994717741113414, + 0.9581997705694119, + 0.9111477630323721, + 0.8543174568475614, + 0.7886187927213654, + 0.7151015633909772, + 0.6349388577442986, + 0.5494085604860544, + 0.4598731991105147, + 0.3677584560080175, + 0.27453068457989055, + 0.18167378394812123, + 0.09066579695814236, + 0.0029556005386135453, + -0.0800599439746135, + -0.15705802019758625, + -0.22681071832493105, + -0.2882044000219416, + -0.3402572611880049, + -0.3821348156152917, + -0.41316305535591347, + -0.43283908025178713, + -0.4408390289916462, + -0.43702318661886497, + -0.4214381879412067, + -0.39431628209343694, + -0.3560716698511215, + -0.3072939714582521, + -0.24873892798518984, + -0.18131648286184804, + -0.10607643154748347, + -0.024191865650708168, + 0.06305932740477065, + 0.1543146174070666, + 0.24814831925009043, + 0.34309407681779264, + 0.43766798827550507, + 0.530392008066058, + 0.6198172565510338, + 0.7045468696862919, + 0.7832580283813596, + 0.854722820125513, + 0.9178276038805212, + 0.971590572843523, + 1.0151772381061535, + 1.0479135890218134, + 1.0692967227349923, + 1.079002775238664, + 1.0768920288820292, + 1.0630111157802897, + 1.0375922823772297, + 1.0010497267589984, + 0.9539730664818233, + 0.8971180399298351, + 0.8313945878483756, + 0.7578525030140136, + 0.6776648743538696, + 0.5921095866118751, + 0.5025491673219191, + 0.4104092989135763, + 0.31715633482826905, + 0.22427417422759938, + 0.1332408599968907, + 0.04550526910487444, + -0.03753573707265043, + -0.1145593421115216, + -0.18433763616590235, + -0.24575698086074332, + -0.2978355720549047, + -0.33973892349985885, + -0.37079302720715657, + -0.39049498297773344, + -0.398520929459411, + -0.3947311516544991, + -0.3791722843296089, + -0.3520765765782597, + -0.31385822913457295, + -0.2651068622010939, + -0.20657821680666696, + -0.13918223633947824, + -0.06396871621706665, + 0.01788925199391639, + 0.10511378091184521, + 0.19634234036703727, + 0.29014924529528396, + 0.3850681396230126, + 0.47961512155780717, + 0.5723121455853644, + 0.6617103321098046, + 0.7464128171296371, + 0.825096781597153, + 0.8965343130446509, + 0.9596117704768445, + 1.0133473471342085, + 1.0569065541517138, + 1.0896153809258275, + 1.1109709246446378, + 1.1206493213446882, + 1.1185108534188672, + 1.1046021530261423, + 1.0791554666541134, + 1.0425849924330093, + 0.995480347963108, + 0.9385972716727902, + 0.8728457043516397, + 0.7992754388204935, + 0.7190595640510855, + 0.6334759648320313, + 0.5438871687418598, + 0.4517188582551259, + 0.3584373868578264, + 0.2655266537566632, + 0.17446470188216662, + 0.08670040824837599, + 0.003630634276398745, + -0.0734218035642504, + -0.14322899538227415, + -0.2046773027570176, + -0.2567849215013796, + -0.29871736532111437, + -0.3298006261818113, + -0.3495318038384146, + -0.35758703689256377, + -0.3538266103003387, + -0.3382971587819573, + -0.3112309313845357, + -0.27304212879566303, + -0.2243203711712149, + -0.1658213994931544, + -0.09845515710296053, + -0.023271439371092342, + 0.058556662182729556, + 0.14575126022410456, + 0.23694982463044933, + 0.3307266703851639, + 0.42561544146241065, + 0.5201322361167435, + 0.6127990088817838, + 0.7021668802093459, + 0.7868389861458949, + 0.8654925076917681, + 0.9368995324273804, + 0.9999464194053624, + 1.0536513619145975, + 1.0971798711383598, + 1.1298579365217578, + 1.1511826553013749, + 1.1608301635624056, + 1.1586607437465148, + 1.144721028061563, + 1.1192432630441842, + 1.0826416468735913, + 1.0355057971992256, + 0.9785914524987823, + 0.9128085536113464, + 0.8392068934070671, + 0.7589595609073794, + 0.6733444409504341, + 0.5837240611644375, + 0.4915241040741487, + 0.3982109232153793, + 0.3052684178449883, + 0.21417463094359177, + 0.1263784395754157, + 0.043276705211881115, + -0.03380775562672869, + -0.1036470329987006, + -0.16512748843260835, + -0.21726731769081092, + -0.25923203442811005, + -0.2903476305590832, + -0.31011120578759155, + -0.3181988986641502, + -0.314470994093587, + -0.2989741267448069, + -0.2719405456133129, + -0.2337844513353044, + -0.18509546401495153, + -0.12662932458252837, + -0.059295976327557856, + 0.015854785431327206, + 0.09764986922673247, + 0.18481138777603828, + 0.27597681100903937, + 0.3697204539615574, + 0.46457596065975676, + 0.5590594294114053, + 0.6516928148024078, + 0.7410272373372178, + 0.8256658331152045, + 0.9042857831896244, + 0.9756591751937853, + 1.0386723682337347, + 1.0923435556513195, + 1.1358382486831804, + 1.1684824368278468, + 1.189773217375326, + 1.199386726464469, + 1.1971832465906251, + 1.1832094100154036, + 1.1576974633293582, + 1.1210616047656674, + 1.073891452027897, + 1.0169427436478724, + 0.9511254205188856, + 0.8774892755653474, + 0.7972073978634262, + 0.7115576723056938, + 0.6219026265751685, + 0.5296679432510225, + 0.4363199759239813, + 0.3433426239059233, + 0.2522139302325771, + 0.16438277202320664, + 0.08124601080466745, + 0.0041264631520343265, + -0.0657479609373178, + -0.1272636229362787, + -0.17943871855174615, + -0.2214387613827985, + -0.25258974328827705, + -0.2723887639161854, + -0.28051196176103477, + -0.2768196216715524, + -0.2613583782605091, + -0.23436048046720714, + -0.19624012887140957, + -0.14758694352082719, + -0.0891566652892353, + -0.02185923740958584, + 0.05325554485625711, + 0.13501459009756261, + 0.22214001108891623, + 0.3132692778170595, + 0.40697670537474173, + 0.5017959378454885, + 0.5962430735940889, + 0.688840067263996, + 0.778138039417215, + 0.8627401262107373, + 0.9413235087551661, + 1.0126602747417106, + 1.0756367833342053, + 1.1292712279325374, + 1.1727291198312753, + 1.2053364485871847, + 1.22659031154833, + 1.2361668449119219, + 1.2339263312317041, + 1.2199154028277899, + 1.1943663063492367, + 1.1576932400879145, + 1.1104858218061866, + 1.053499790094701, + 0.9876450859056882, + 0.9139715022227317, + 0.8336521281806921, + 0.7479648487317789, + 0.6582721916181734, + 0.5659998394784413, + 0.4726141459628763, + 0.3795990104428447, + 0.2884324760135728, + 0.20056341985425635, + 0.1173887035516723, + 0.04023114374075287, + -0.02968134952098568, + -0.09123513764662186, + -0.14344841628260202, + -0.18548669896780345, + -0.21667597750059825, + -0.2365133514685619, + -0.24467495930563374, + -0.24102108579991915, + -0.2255983655033963, + -0.19863904729457274, + -0.1605573316922303, + -0.11194283868318732, + -0.05355130908005466, + 0.013707313945465344, + 0.08878323519288125, + 0.17050336331255805, + 0.25758981114066554, + 0.34868004872540526, + 0.4423483912212396, + 0.5371284827735874, + 0.631536421808877, + 0.7240941630323723, + 0.8133528270681496, + 0.8979155501351264, + 0.9764595134063716, + 1.0477568046352443, + 1.1106937830478456, + 1.1642886421064338, + 1.2077068931681505, + 1.24027452585229, + 1.2614886375697898, + 1.2710253645804945, + 1.2687449895010028, + 1.2546941447144, + 1.229105076932809, + 1.1923919845112039, + 1.1451444852751123, + 1.088118317878389, + 1.0222234233368543, + 0.9485095946974591, + 0.8681499211587741, + 0.7824222877363498, + 0.6926892222361483, + 0.6003764073606279, + 0.5069501968240648, + 0.4138944900617247, + 0.32268733023298485, + 0.2347775945811028, + 0.15156214475694602, + 0.07436379746006685, + 0.004410462812054136, + -0.0571842205352934, + -0.10943844816408876, + -0.15151773354845158, + -0.18274806842211394, + -0.20262655230771837, + -0.21082932357429046, + -0.20721666694495522, + -0.191835216906625, + -0.16491722227262925, + -0.12687688349641693, + -0.07830382049951962, + -0.01995377402917048, + 0.047263312808470986, + 0.12229764487836364, + 0.20397613089681932, + 0.2910208837657197, + 0.38206937359903065, + 0.4756959156170538, + 0.5704341540311259, + 0.6648001873341125, + 0.7573159702972796, + 0.8465326236111179, + 0.9310532835605629, + 1.0095551313852715, + 1.0808102549050504, + 1.14370501341266, + 1.1972576004370805, + 1.2406335274022118, + 1.2731587839940297, + 1.29433046769047, + 1.3038247148183821, + 1.3015018080614742, + 1.2874083798699458, + 1.2617766770231702, + 1.2250208979434816, + 1.1777306605237992, + 1.1206617034855797, + 1.0547239679120033, + 0.9809672469177686, + 0.900564629769032, + 0.8147940015494454, + 0.725017890132811, + 0.6326619782894811, + 0.5391926198017016, + 0.44609371417278865, + 0.3548433046306769, + 0.2668902684867509, + 0.1836314674603283, + 0.10638971831926855, + 0.036392931253781166, + -0.02524525501578434, + -0.07754303600272149, + -0.11966592511243536, + -0.15093991400977477, + -0.17086210214849912, + -0.17910862782861564, + -0.17553977570411763, + -0.160202180192754, + -0.13332809003860802, + -0.09533170562584276, + -0.046802646806543696, + 0.011503345741703627, + 0.0786763289820614, + 0.1536665078492292, + 0.23530079112924318, + 0.32230129179370526, + 0.41330548002653833, + 0.5068876711181739, + 0.601581509349822, + 0.6959030932843709, + 0.7883743777633669, + 0.877546483547411, + 0.9620225469921807, + 1.0404797494074431, + 1.111690178683646, + 1.1745401941839946, + 1.228047989508194, + 1.271379076150809, + 1.3038594438687805, + 1.3249861902108415, + 1.3344354515748158, + 1.3320675107154059, + 1.3179290001539803, + 1.2922521667410982, + 1.2554512089703278, + 1.2081157448058522, + 1.1510015130407223, + 1.0850184548295354, + 1.0112163633586335, + 0.9307683279657523, + 0.84495223380611, + 0.7551306088254488, + 0.6627291358660798, + 0.5692141687821164, + 0.47606960714906565, + 0.3847734942666169, + 0.2967747075184206, + 0.2134701086961255, + 0.1361825146399865, + 0.06613983561264458, + 0.004455710406670282, + -0.04788805641855516, + -0.09005697819588637, + -0.12137704651732414, + -0.14134536076395, + -0.14963805916293177, + -0.1461154262953651, + -0.13082409650600152, + -0.10399631846580208, + -0.06604629248588709, + -0.017563638345108615, + 0.04069590335211905, + 0.10782238964252111, + 0.1827660255341988, + 0.2643537198866211, + 0.35130758574488075, + 0.44226509336661357, + 0.5358005581158812, + 0.6304476243477637, + 0.7247223906990972, + 0.8171468120854412, + 0.9062720093410618, + 0.9907011188958091, + 1.0691113221337467, + 1.1402747070194004, + 1.2030776329905033, + 1.2565382937208245, + 1.2998222007794817, + 1.3322553439979186, + 1.353334820999443, + 1.362736768256511, + 1.3603214685985692, + 1.3461355546217506, + 1.3204112732514768, + 1.2835628230562417, + 1.2361798220753215, + 1.1790180091766604, + 1.1129873255900051, + 1.0391375645769587, + 0.9586418155506842, + 0.872777963741538, + 0.782908537170827, + 0.6904592187561873, + 0.5968963624271946, + 0.503703867835323, + 0.4123597783557853, + 0.32431297144807014, + 0.24096030897957194, + 0.16362460786637015, + 0.09353377844703327, + 0.03180145959042889, + -0.02059054406810082, + -0.06280774578516547, + -0.0941761370766818, + -0.11419281724734667, + -0.12253392444792366, + -0.11905974318306431, + -0.10381690772102518, + -0.07703766665624606, + -0.039136220223146154, + 0.009297811876315731, + 0.06750868911421579, + 0.1345864686042407, + 0.20948135543133417, + 0.2910202585320113, + 0.3779252910284919, + 0.468833923255624, + 0.5623204706543202, + 0.656918577657068, + 0.751144342977934, + 0.8435197216099424, + 0.9325958344649676, + 1.0169758180502009, + 1.0953368538272075, + 1.166451029838235, + 1.2292047055986197, + 1.282616074860131, + 1.3258506492696345, + 1.3582344187364295, + 1.3792644809617591, + 1.388616972496188, + 1.386152176247232, + 1.371916724889191, + 1.3461428654256489, + 1.3092447965034872, + 1.2618121362402999, + 1.2046006235824493, + 1.1385201998382297, + 1.0646206583477367, + 0.9840750886025937, + 0.8981613759119554, + 0.8082420483759605, + 0.7157427889909653, + 0.6221299517655801, + 0.5288874364297792, + 0.4374932864381049, + 0.349396379328934, + 0.265993577048938, + 0.18860769659329268, + 0.11846664837992618, + 0.056684071356693025, + 0.004241770238519238, + -0.03802576815175322, + -0.06944453525060201, + -0.08951163028316325, + -0.09790319132061523, + -0.09447950278793676, + -0.0792871988735962, + -0.05255852809229006, + -0.014707690598564194, + 0.03367569398544831, + 0.09183588521197, + 0.15886294027471964, + 0.23370706433868577, + 0.31519516642047174, + 0.4020493597225814, + 0.4929071146599773, + 0.5863427467542438, + 0.6808899005181961, + 0.7750646747462757, + 0.8673890245118607, + 0.9564140708076623, + 1.0407429502213486, + 1.1190528442953436, + 1.1901158411526955, + 1.2528183003893014, + 1.3061784158379437, + 1.3493616992263937, + 1.3816941405449932, + 1.4026728375760613, + 1.4119739269512384, + 1.4094576916591899, + 1.395170764455466, + 1.3693453924249974, + 1.332395774295914, + 1.2849115282672008, + 1.2276483933667173, + 1.1615163109843367, + 1.0875650745416854, + 1.0069677736120952, + 0.9210022935864273, + 0.8310311626460709, + 0.7384800638698324, + 0.6448153513479444, + 0.5515209248923837, + 0.4600748280394962, + 0.3719259384098544, + 0.2884711180319084, + 0.21103318398336468, + 0.1408400467641952, + 0.07900534540456844, + 0.02651088470163747, + -0.01580884843944591, + -0.04727984537264007, + -0.06739920524058021, + -0.0758430660319487, + -0.07247171208913603, + -0.05733177751800375, + -0.030655510750465034, + 0.007142888141617801, + 0.05547379961893596, + 0.11358148331663932, + 0.1805559965111906, + 0.2553475444506516, + 0.3367830362347984, + 0.4235845851490878, + 0.5143896616915251, + 0.6077725814669581, + 0.7022669890713567, + 0.7963889833825424, + 0.8886605195573261, + 0.9776327186718881, + 1.0619087173970307, + 1.1401656973588454, + 1.2111757467638193, + 1.2738252252917173, + 1.3271323268588915, + 1.3702625632767746, + 1.402541924619444, + 1.4234675087530848, + 1.4327154523932044, + 1.4301460386124316, + 1.4158059002502168, + 1.389927284475577, + 1.3529243901007066, + 1.3053868354087697, + 1.2480703595117708, + 1.1818849038837567, + 1.1078802620305406, + 1.0272295236100604, + 0.9412105740974348, + 0.8511859417586536, + 0.7585813097566829, + 0.6648630322663652, + 0.5715150091843502, + 0.48001528413170624, + 0.39181273481360734, + 0.30830422334338586, + 0.23081256688322888, + 0.16056567601804034, + 0.09867718986299444, + 0.04612891330007578, + 0.003755333319545709, + -0.027769541347623203, + -0.04794280975900844, + -0.05644060981813154, + -0.053123225782173406, + -0.03803729167179641, + -0.011415055833671528, + 0.02632928174571396, + 0.07460610161235523, + 0.1326596634870192, + 0.1995800247313796, + 0.27431739067911187, + 0.35569867051547754, + 0.4424459776116051, + 0.5331967825513302, + 0.6265254010249592, + 0.7209654777143775, + 0.8150331115830309, + 0.9072502578736584, + 0.9961680377481745, + 1.0803895879637113, + 1.158592090232089, + 1.229547632845763, + 1.2921425755706453, + 1.3453951124091659, + 1.3884707552589775, + 1.4206954942804013, + 1.441566427425859, + 1.450759691497085, + 1.4481355696530964, + 1.4337406948197842, + 1.4078073142525418, + 1.3707496268500186, + 1.3231572509819334, + 1.2657859258469115, + 1.1995455930055778, + 1.1254860460505451, + 1.0447803747261828, + 0.9587064645944032, + 0.8686268440081466, + 0.7759671962170493, + 0.6821938754830856, + 0.5887907817896565, + 0.49723595884470884, + 0.4089782844403526, + 0.32541462077729233, + 0.24786778510464416, + 0.17756568809450665, + 0.1156219689491606, + 0.0630184326377228, + 0.020589566237827067, + -0.01099062143221316, + -0.031219229342674196, + -0.039772395309684225, + -0.03651040350302508, + -0.021479887855839874, + 0.005086903372707868, + 0.04277577028365402, + 0.09099709351060543, + 0.14899513286179372, + 0.21585994578695306, + 0.2905417377073543, + 0.3718674178958018, + 0.4585590998113515, + 0.5492542541255943, + 0.6425271966168827, + 0.7369115720548562, + 0.8309234794912601, + 0.9230848742564066, + 1.0119468776004177, + 1.0961126263684333, + 1.17425930236048, + 1.2451589939572885, + 1.3076980610128235, + 1.3608946976176997, + 1.4039144157579058, + 1.436083205682075, + 1.4568981654309554, + 1.4660354318947446, + 1.46335528832084, + 1.4489043677235665, + 1.4229149174468643, + 1.3858011364779554, + 1.3381526432751105, + 1.2807251771254662, + 1.2144286796783723, + 1.1403129446152136, + 1.0595510617690298, + 0.9734209167905793, + 0.8832850381213613, + 0.7905691091001814, + 0.6967394840775536, + 0.6032800631260448, + 0.5116688900424657, + 0.42335484270806706, + 0.33973478341225105, + 0.2621315294932889, + 0.19177299171244755, + 0.12977280936119595, + 0.07711278749782617, + 0.03462741328898804, + 0.002990695642327887, + -0.017294464323188277, + -0.025904204334309885, + -0.022698808471529233, + -0.007724910578637542, + 0.018785241174614775, + 0.05641744697873706, + 0.10458208755689127, + 0.16252342280664445, + 0.2293315102673552, + 0.303956555449723, + 0.38522546771643784, + 0.4718603606161538, + 0.5624987049100615, + 0.6557148164661392, + 0.7500423401438487, + 0.8439973750845446, + 0.9361018767086893, + 1.024906966356076, + 1.1090157809618693, + 1.187105502415692, + 1.2579482191883136, + 1.3204302912237413, + 1.3735699127026435, + 1.4165325957010493, + 1.448644330557503, + 1.4694022154029363, + 1.4784823872176767, + 1.4757451293392922, + 1.4612370748722783, + 1.4351904712507921, + 1.398019517552341, + 1.3503138323254626, + 1.2928291549476618, + 1.226475427158599, + 1.152302442729881, + 1.0714832915850745, + 0.9852958594654517, + 0.8951026749030744, + 0.8023294213268259, + 0.7084424531781585, + 0.6149256706197701, + 0.5232571175394789, + 0.434885671908976, + 0.3512081961083038, + 0.2735475075664674, + 0.2031315171353542, + 0.14107386419704404, + 0.08835635390072882, + 0.04581347350387463, + 0.01411923200487833, + -0.006223469386424721, + -0.014890768305993451, + -0.011742948743368245, + 0.003173355548586193, + 0.0296258964910458, + 0.06720047436550047, + 0.11530746998601858, + 0.17319114334137115, + 0.23994155206201978, + 0.31450890174951185, + 0.39572010185775486, + 0.48229726602645684, + 0.5728778651080475, + 0.6660362150617783, + 0.7603059608384158, + 0.8542032016702106, + 0.9462498930690598, + 1.0349971564659701, + 1.1190481288875034, + 1.1970799923147677, + 1.2678648353097404, + 1.3302890179077589, + 1.3833707343809758, + 1.4262754968967932, + 1.4583292958853755, + 1.4790292295690661, + 1.4880514350196783, + 1.4852561956663173, + 1.4706901447050975, + 1.4445855296616963, + 1.4073565497052496, + 1.3595928234758308, + 1.302050090442774, + 1.2356382924373404, + 1.1614072233229091, + 1.0805299731147069, + 0.994284427645673, + 0.9040331155395407, + 0.8112017203173132, + 0.717256596512098, + 0.623681644378596, + 0.5319549078961413, + 0.443525265128398, + 0.3597895785473948, + 0.2820706656741332, + 0.21159643745236556, + 0.14948053335619152, + 0.09670475862671314, + 0.05410360061337399, + 0.022351068406597313, + 0.0019500633083933128, + -0.006775552225199863, + -0.0036860620916433773, + 0.01117190004830243, + 0.03756608620799205, + 0.07508229676105868, + 0.12313091261368342, + 0.1809561938468584, + 0.24764819818312972, + 0.3221571313165801, + 0.4033099027931174, + 0.4898286263448617, + 0.5803507729163728, + 0.6734506585592819, + 0.7676619283165076, + 0.861500681512985, + 0.9534888737528828, + 1.042177626559499, + 1.12617007705164, + 1.2041434073030648, + 1.2748697059680367, + 1.3372353331744775, + 1.3902584832870248, + 1.4331046685653717, + 1.4650998795322885, + 1.485741214502627, + 1.494704810640763, + 1.491850951468353, + 1.477226270274006, + 1.4510630146760968, + 1.4137753839362937, + 1.3659529967873993, + 1.3083515927912073, + 1.241881113871639, + 1.167591353984795, + 1.086655403238657, + 1.000351147558798, + 0.9100411156618291, + 0.8171509911612358, + 0.7231471286826021, + 0.6295134285739823, + 0.5377279349072277, + 0.44923952583886534, + 0.3654450639336385, + 0.2876673668052895, + 0.21713434549035748, + 0.15495963955604208, + 0.10212505433616631, + 0.0594650772730749, + 0.02765371755003293, + 0.007193876561904539, + -0.0015905831422942107, + 0.0014400546328988129, + 0.01623915631964294, + 0.042574474024214964, + 0.08003180821321083, + 0.12802153988589293, + 0.1857879292161706, + 0.2524210340194626, + 0.3268710600830302, + 0.4079649170457515, + 0.4944247187326979, + 0.5848879361817965, + 0.6779288855373313, + 0.7720812119354501, + 0.8658610147941677, + 0.9577902498106621, + 1.0464200386014193, + 1.1303535183785127, + 1.208267871308648, + 1.278935186139169, + 1.34124182309121, + 1.3942059766224757, + 1.4369931590860467, + 1.4689293610976895, + 1.4895116810654958, + 1.4984162562469918, + 1.495503370257063, + 1.4808196564775877, + 1.4545973626200228, + 1.4172506880393367, + 1.3693692515616118, + 1.3117087928418574, + 1.2451792538973159, + 1.1708304287772955, + 1.0898354076829768, + 1.0034720766331142, + 0.9131029644379214, + 0.8201537548040281, + 0.7260908024504922, + 0.6323980078183369, + 0.54055341507282, + 0.4520059024638802, + 0.3681523326496735, + 0.2903155233371986, + 0.21972338565646152, + 0.15748955926775737, + 0.10459584959836218, + 0.06187674418404204, + 0.030006252301487277, + 0.009487275438835999, + 0.0006436762385349515, + 0.0036151709894091666, + 0.018355126217066267, + 0.04463129412112975, + 0.08202947526161704, + 0.1299600507311511, + 0.18766728079709438, + 0.25424122336834615, + 0.32863208432569113, + 0.40966677340116003, + 0.49606740451338943, + 0.5864714487935787, + 0.6794532224797835, + 0.7735463708015229, + 0.8672669932701749, + 0.9591370456762854, + 1.0477076497298836, + 1.1315819427364282, + 1.2094371069561132, + 1.28004523123013, + 1.3422926758725497, + 1.3951976354347533, + 1.4379256223632662, + 1.4698026273674047, + 1.4903257489486843, + 1.4991711244581611, + 1.4961990376041463, + 1.4814561218620315, + 1.455174625036783, + 1.4177687465768674, + 1.3698281054017456, + 1.3121084412599882, + 1.2455196962623902, + 1.1711116645517101, + 1.0900574364226223, + 1.0036348979875385, + 0.91320657814977, + 0.8201981607097619, + 0.7260760004799878, + 0.6323239979948831, + 0.5404201975134559, + 0.45181347737897004, + 0.3679007003429986, + 0.2900046842059847, + 0.2193533401917136, + 0.15706030805382853, + 0.10410739331314044, + 0.06132908359885268, + 0.029399388281072414, + 0.008821208941579797, + -8.159168375249104e-05, + 0.0028307027873875484, + 0.017511458974055413, + 0.043728429169411734, + 0.08106741402698044, + 0.12893879473283643, + 0.18658683164776713, + 0.25310158277418227, + 0.32743325408612495, + 0.40840875540957866, + 0.49475020075646803, + 0.5850950613512089, + 0.6780176535254678, + 0.7720516226021344, + 0.865713068186126, + 0.9575239461615226, + 1.0460353783318692, + 1.1298505020957421, + 1.2076464998069358, + 1.2781954603999492, + 1.340383744282545, + 1.3932295460994308, + 1.4358983783904935, + 1.467716231958431, + 1.4881802053982125, + 1.4969664361542916, + 1.4939352080284096, + 1.4791331545893023, + 1.4527925237353596, + 1.415327515008371, + 1.3673277474212913, + 1.3095489608159951, + 1.2429010973965813, + 1.1684339513990676, + 1.0873206132117494, + 1.000838969040254, + 0.910351547881312, + 0.8172840336285314, + 0.7231027811878744, + 0.629291691186752, + 0.537328807977905, + 0.4486630099977262, + 0.3646911600910809, + 0.2867360761518307, + 0.21602566949669544, + 0.1536735799728578, + 0.10066161319427717, + 0.05782425688350887, + 0.02583552050389079, + 0.0051983057303305324, + -0.0037635246080161416, + -0.000910254035589031, + 0.013711484159847367, + 0.039869442364650926, + 0.07714942132549227, + 0.12496180232165205, + 0.18255084580713765, + 0.24900660987760923, + 0.323279300600016, + 0.4041958278935949, + 0.4904783058632326, + 0.5807642058267803, + 0.6736278442089447, + 0.7676028664256269, + 0.8612053721747415, + 0.9529573174335273, + 1.0414098240984355, + 1.125166029661417, + 1.2029031165692077, + 1.2733931738492619, + 1.3355225620022915, + 1.3883094757660395, + 1.4309194277734407, + 1.4626784089202056, + 1.483083517894252, + 1.4918108922329136, + 1.4887208158309218, + 1.4738599223499627, + 1.447460459781337, + 1.4099366277596603, + 1.3618780453908295, + 1.3040404526096427, + 1.2373337917130252, + 1.1628078570299856, + 1.0816357390413835, + 0.9950953240457132, + 0.9045491411325904, + 0.8114228742885019, + 0.7171828785121086, + 0.6233130545238375, + 0.5312914467685839, + 0.44256693377574263, + 0.35853637848313613, + 0.280522598877166, + 0.20975350636729878, + 0.14734274089326493, + 0.09427210816179292, + 0.05137609598791089, + 0.01932871392779255, + -0.0013671362511265689, + -0.01038759162710276, + -0.007592935632026024, + 0.0069701985389478555, + 0.033069563364714685, + 0.07029095968443998, + 0.11804476886993016, + 0.1755752514676856, + 0.24197246566571415, + 0.31618661762373745, + 0.3970446173531048, + 0.4832685790515003, + 0.5734959741287982, + 0.6663011191021566, + 0.7602176594799306, + 0.8537616950525575, + 0.9454551818894339, + 1.0338492419792442, + 1.1175470129063179, + 1.195225677209601, + 1.2656573240089373, + 1.3277283138972185, + 1.3804568417044454, + 1.4230084201556523, + 1.4547090402387832, + 1.4750558007338896, + 1.48372483927052, + 1.4805764398354677, + 1.4656572361825138, + 1.4391994763950597, + 1.4016173601998576, + 1.353500506794697, + 1.2956046562064565, + 1.2288397508239304, + 1.1542555850683454, + 1.0730252495124035, + 0.986426630546614, + 0.8958222573524276, + 0.8026378140081349, + 0.7083396556041748, + 0.6144116829530799, + 0.5223319405916536, + 0.43354930714099554, + 0.3494606456304707, + 0.27138877413833584, + 0.20056160416586932, + 0.1380927757445743, + 0.08496409467279953, + 0.04201004885730651, + 0.009904647945756517, + -0.010849206202708031, + -0.019927650574758107, + -0.017190968510667703, + -0.002685793114097501, + 0.023355628185378757, + 0.06051909631845974, + 0.10821499274850843, + 0.16568757811330243, + 0.23202691069235468, + 0.3061831967367178, + 0.38698334634925813, + 0.4731494738189503, + 0.5633190506470716, + 0.6560663934419242, + 0.7499251478032201, + 0.8434114136125639, + 0.9350471470306692, + 1.0233834701375784, + 1.1070235206085521, + 1.184644481073836, + 1.255018440744133, + 1.317031760303811, + 1.369702634673645, + 1.4121965766699112, + 1.4438395773714536, + 1.4641287356493051, + 1.472740189224008, + 1.4695342221733005, + 1.4545574683418758, + 1.428042175903994, + 1.390402544677187, + 1.3422281939501992, + 1.284274863840658, + 1.2174524968282479, + 1.1428108874246936, + 1.061523126293444, + 0.9748670999157616, + 0.8842053375638347, + 0.7909635234065046, + 0.6966080126249768, + 0.6026227061220929, + 0.510485648524946, + 0.4216457185457342, + 0.3374997793040473, + 0.2593706489686578, + 0.188486239131187, + 0.12596018991346697, + 0.07277430720418843, + 0.029763079000635115, + -0.0023994849593374085, + -0.02321048272630831, + -0.03234605119673248, + -0.02966647362067698, + -0.01521838301160057, + 0.010765973291046588, + 0.0478723963080817, + 0.0955112675928536, + 0.15292684787336508, + 0.2192091955191362, + 0.2933085168711509, + 0.37405172212215676, + 0.46016092565095124, + 0.5502735990490203, + 0.6429640590143715, + 0.7367659512367122, + 0.8301953756870981, + 0.9217742886161719, + 1.0100538121936262, + 1.0936370841845762, + 1.1712012873087776, + 1.2415185108668267, + 1.3034751156323487, + 1.3560892966158227, + 1.3985265667230107, + 1.4301129171223108, + 1.4503454467742336, + 1.458900293488686, + 1.4556377414327968, + 1.4406044245406302, + 1.414032591075768, + 1.3763364409451047, + 1.3281055935264998, + 1.2700957890267455, + 1.2032169700149091, + 1.1285189310917694, + 1.047174763009962, + 0.9604623523397535, + 0.8697442284422037, + 0.7764460755753104, + 0.6820342490093356, + 0.5879926497359678, + 0.49579932247135916, + 0.4069031460161511, + 0.32270098357908306, + 0.24451565341756212, + 0.17357506721210067, + 0.11099286517316667, + 0.05775085327821006, + 0.014683519612957913, + -0.017535125996052517, + -0.0384021815108031, + -0.0475937837392143, + -0.044970215842911596, + -0.030578110746900117, + -0.00464971570220539, + 0.03240077040043238, + 0.07998372920255743, + 0.13734342152052428, + 0.20356990581204198, + 0.27761338850636574, + 0.3583007798844941, + 0.4443541944135416, + 0.5344111037725365, + 0.6270458247479367, + 0.7207920031172198, + 0.8141657389397636, + 0.9056889885540624, + 0.993912874217622, + 1.0774405337833382, + 1.1549491500588682, + 1.225210812432468, + 1.2871118817657081, + 1.3396705531568722, + 1.3820523395990285, + 1.41358323234835, + 1.433760330452911, + 1.4422597718101802, + 1.4389418406747783, + 1.4238531710681688, + 1.3972260113413952, + 1.3594745614887036, + 1.3111884409753314, + 1.253123390095311, + 1.1861893515048356, + 1.1114361198919802, + 1.0300367860966102, + 0.9432692367760447, + 0.8524960013784983, + 0.7591427642489186, + 0.664675880744378, + 0.5705792519436768, + 0.4783309226500346, + 0.38937977175069405, + 0.3051226625412953, + 0.2268824133660801, + 0.15588693599202125, + 0.0932498707165987, + 0.039953023603764626, + -0.0031691171741621837, + -0.03544254170407553, + -0.05636434786149053, + -0.06561067236788533, + -0.06304179829840834, + -0.04870435849173216, + -0.022830600112553792, + 0.014165278034587517, + 0.061693657677656555, + 0.11899879971904613, + 0.1851707627027103, + 0.25915975314388373, + 0.3397926814096697, + 0.42579166205294655, + 0.5157941668393398, + 0.6083745126407497, + 0.7020663453205083, + 0.7953857650238958, + 0.8868547281750985, + 0.9750243571174348, + 1.0584977897895582, + 1.1359522090848102, + 1.2061597044767467, + 1.2680066369126233, + 1.3205112015761205, + 1.3628389115459512, + 1.3943157581635943, + 1.4144388405624329, + 1.4228842967252235, + 1.4195124109918633, + 1.4043698174690538, + 1.3776887645929383, + 1.3398834524428431, + 1.2915435005690883, + 1.2334246493507686, + 1.1664368415290562, + 1.091629871876883, + 1.0101768313189015, + 0.9233556065971422, + 0.8325287272448949, + 0.7391218776916666, + 0.6446014133792757, + 0.5504512354710482, + 0.45814938885467826, + 0.36914475250185047, + 0.28483418979298514, + 0.20654051915657198, + 0.13549165244406386, + 0.07280123003699332, + 0.01945105808366379, + -0.023724375159343003, + -0.05605105969473241, + -0.07702609331396004, + -0.08632561265444537, + -0.08380990070737787, + -0.06952559022739038, + -0.04370492829535512, + -0.006762113631943414, + 0.040713235574553655, + 0.09796538031036255, + 0.164084379203024, + 0.23802043885159727, + 0.31860046970666145, + 0.4045465864045382, + 0.4944962607943232, + 0.5870238098314182, + 0.680662879462706, + 0.7739295699165324, + 0.8653458377005177, + 0.953462805241025, + 1.0368836105599513, + 1.11428543663361, + 1.184440373018893, + 1.2462347807459557, + 1.298686855081319, + 1.3409621091866684, + 1.372386534486221, + 1.3924572301962221, + 1.4008503343821646, + 1.3974261314665744, + 1.3822312556387795, + 1.35549795541749, + 1.317640430964579, + 1.2692483019127894, + 1.211077308723497, + 1.1440373942203053, + 1.0691783532584929, + 0.9876732768448855, + 0.9008000518038463, + 0.8099212077504649, + 0.7164624291963749, + 0.6218900716654829, + 0.5276880364031487, + 0.43533436837887174, + 0.346277946646403, + 0.2619156346673813, + 0.18357025095228247, + 0.11246970743442551, + 0.04972764457679986, + -0.003674131390701732, + -0.04690113213006382, + -0.0792793475625917, + -0.10030587539834816, + -0.10965685219336109, + -0.1071925608575988, + -0.0929596340645572, + -0.06719031881389252, + -0.030298813745172293, + 0.017125263034309612, + 0.07432617259169426, + 0.1403939736354667, + 0.21427887284546565, + 0.29480778075311365, + 0.38070281207563206, + 0.470601438742555, + 0.5630779777900597, + 0.6566660752453266, + 0.7498818314174462, + 0.8412472028943041, + 0.9293133121829598, + 1.0126832973852162, + 1.0900343415578018, + 1.1601385343378003, + 1.2218822368354474, + 1.2742836443973986, + 1.3165082702654551, + 1.3478821059435813, + 1.3679022507279939, + 1.3762448427640115, + 1.3727701665539418, + 1.3575248563667859, + 1.3307411608009234, + 1.2928332800977607, + 1.2443908339696228, + 1.1861695629574351, + 1.1190794099639767, + 1.0441701699238919, + 0.9626149339233315, + 0.8756915888659558, + 0.7847626644459293, + 0.6912538452540549, + 0.5966314868931741, + 0.502379490687518, + 0.40997590168540154, + 0.320869599019744, + 0.2364574462307853, + 0.1580622619078384, + 0.08691195806258131, + 0.02412017523667906, + -0.029331280261397613, + -0.07260792001513901, + -0.10503573386751916, + -0.12611181945025135, + -0.1355123132411803, + -0.13309749807203108, + -0.11891400653813913, + -0.0931940855611381, + -0.05635193370262581, + -0.00897716899193382, + 0.0481744697160016, + 0.11419304120756259, + 0.18802875224008486, + 0.26850851342277837, + 0.35435443955039353, + 0.444204002630085, + 0.5366315197756788, + 0.6301706370916031, + 0.7233374549642075, + 0.8146539300587425, + 0.9026711849593257, + 0.9859923578452306, + 1.0632946318501684, + 1.1333500966881604, + 1.1950451135463311, + 1.2473978778482868, + 1.2895739029125792, + 1.3208991803200667, + 1.3408708094435897, + 1.3491649285050058, + 1.345641822083216, + 1.3303481245237196, + 1.3035160845012748, + 1.2655599023336774, + 1.2170691978093684, + 1.1587997115456807, + 1.0916613865214502, + 1.0167040177474687, + 0.9351006963858297, + 0.8481293094159574, + 0.7571523866080303, + 0.6635956126287332, + 0.5689253431565554, + 0.47462547959138546, + 0.3821740670572924, + 0.29301998476230273, + 0.20856009632250824, + 0.1301172204022304, + 0.05891926908882801, + -0.003920117000891343, + -0.057419131483348665, + -0.10074328586697572, + -0.13321856991970615, + -0.15434208119817563, + -0.1637899561054046, + -0.1614224773983086, + -0.14728627759747226, + -0.12161360354980567, + -0.08481865374231541, + -0.03749104612983539, + 0.019613480507191944, + 0.08558498502941624, + 0.15937367426874088, + 0.23980645890859498, + 0.32560545381784045, + 0.41540813107765884, + 0.5077888078758206, + 0.601281130391059, + 0.6944011990834548, + 0.7856709706922445, + 0.8736415678749614, + 0.956916128884727, + 1.0341718369287927, + 1.104180781794791, + 1.1658293247433686, + 1.2181356612715373, + 1.260265304770966, + 1.291544246895871, + 1.3114695870922315, + 1.3197174636550764, + 1.3161481612362715, + 1.3008083142542604, + 1.273930171456698, + 1.2359279332341793, + 1.1873912194479694, + 1.1290757707878811, + 1.061891530305409, + 0.986888293083712, + 0.9052391503575823, + 0.8182219891787588, + 0.7271993393896266, + 0.6335968857289931, + 0.5388809839473916, + 0.44453553551711344, + 0.35203858563404167, + 0.26283901357819, + 0.17833368303732494, + 0.09984541274761559, + 0.02860211486803034, + -0.034282569912877175, + -0.08782683514006494, + -0.13119619225050724, + -0.16371663094070948, + -0.18488524869612766, + -0.19437818184845407, + -0.19205571308346672, + -0.17796447485069405, + -0.15233671392602588, + -0.11558662872557873, + -0.0683038371332372, + -0.011244077858723264, + 0.054682708029232946, + 0.1284267274332026, + 0.20881489110707738, + 0.2945693139902519, + 0.38432746823437614, + 0.4766636710976245, + 0.5701115688286214, + 0.6631872619577661, + 0.754412707294208, + 0.8423390275658111, + 0.9255693610955196, + 1.0027808911603457, + 1.072745707617618, + 1.134350171797741, + 1.1866124792672461, + 1.2286981434874935, + 1.2599331561821892, + 1.2798146168664637, + 1.2880186639047406, + 1.28440558201811, + 1.269022005694154, + 1.242100183749562, + 1.2040543166438302, + 1.155474024307257, + 1.097115047498413, + 1.0298873293375967, + 0.9548406649765644, + 0.8731481457185422, + 0.786087658683895, + 0.6950217337835086, + 0.6013760558244531, + 0.5066169806256904, + 0.41222840972734454, + 0.31968838839348357, + 0.2304457959722238, + 0.1458974962193467, + 0.0673663079388556, + -0.0039198566425794334, + -0.06684735676877457, + -0.12043438591709481, + -0.1638464554567905, + -0.19640955501702304, + -0.21762078201587126, + -0.227156272717774, + -0.22487630974128814, + -0.2108275254687826, + -0.18524216660915102, + -0.1485344315115438, + -0.10129393799301116, + -0.04427642469645626, + 0.02160816737624273, + 0.09531004519418063, + 0.17565611957772156, + 0.2613685055327872, + 0.3510846752774102, + 0.4433789461358947, + 0.5367849644234202, + 0.6298188307365196, + 0.7210025019500526, + 0.8088871008580207, + 0.8920757658491802, + 0.9692456802664242, + 1.039168934032927, + 1.1007318885445705, + 1.1529527394333956, + 1.1949970002262864, + 1.2261906627122772, + 1.2460308264719333, + 1.2541936299347873, + 1.2505393578870736, + 1.2351146448814203, + 1.208151739799483, + 1.1700648431657095, + 1.121443574975054, + 1.0630436760507935, + 0.9957750895778951, + 0.9206876107727913, + 0.8389543310029666, + 0.7518531374532939, + 0.6607465600987884, + 0.5670602838106205, + 0.47226066447219994, + 0.37783160368751056, + 0.28525114678464, + 0.19596817317547144, + 0.11137954667947354, + 0.03280808616428221, + -0.03851829607955798, + -0.10148595923250002, + -0.15511309670839793, + -0.19856521981335828, + -0.23116831811320998, + -0.2524194889628312, + -0.2619948685635717, + -0.2597547394710251, + -0.2457457340046953, + -0.22020009881063596, + -0.18353203217512104, + -0.13633115185277522, + -0.07935319642386406, + -0.013508106827865352, + 0.060154323966752105, + 0.14046100684271817, + 0.2261340568682581, + 0.31581094632320694, + 0.40806599259404847, + 0.5014328420579025, + 0.594427595372989, + 0.6855722094763521, + 0.7734178072234148, + 0.8565675270644417, + 0.9336985524039072, + 1.0035829732263355, + 1.065107150989013, + 1.1172892813852964, + 1.1592948780030639, + 1.1904499326924607, + 1.2102515450950133, + 1.2183758537011284, + 1.2146831433578393, + 1.1992200486784568, + 1.17221881860523, + 1.1340936537231765, + 1.0854341740876599, + 1.0269961205823557, + 0.9596894364524363, + 0.884563916974427, + 0.8027926535757849, + 0.7156535335016645, + 0.6245090867868284, + 0.5307849983624171, + 0.43594762417121213, + 0.34148086587689974, + 0.24886276886718622, + 0.1595422126134755, + 0.07491606099450004, + -0.0036928670626459464, + -0.07505665920873812, + -0.1380616745649045, + -0.19172610648585903, + -0.23521546621893547, + -0.26785574327114037, + -0.2891440349386776, + -0.29875647736428945, + -0.2965533530450004, + -0.28258129424188966, + -0.2570725475426716, + -0.2204413111754414, + -0.17327720283653736, + -0.11633596104815076, + -0.05052752669183157, + 0.023098307321767625, + 0.10336845193322322, + 0.18900502226829916, + 0.2786454906647504, + 0.370864174566508, + 0.46419472040794424, + 0.5571532289047743, + 0.6482616570510269, + 0.7360711277594384, + 0.8191847795374023, + 0.896279795846402, + 0.9661282667275418, + 1.0276165536950237, + 1.07976285249884, + 1.121732676783543, + 1.1528520184556927, + 1.172617977213295, + 1.1807066916029583, + 1.1769784465279653, + 1.1614798766577576, + 1.1344432309906147, + 1.0962827101673918, + 1.0475879342993328, + 0.9891146443259013, + 0.9217727835478764, + 0.8466121472973334, + 0.7648058270573372, + 0.6776317101279419, + 0.5864523265996322, + 0.49269336145856657, + 0.39782117070260314, + 0.3033196560504916, + 0.21066686294473444, + 0.12131167091136416, + 0.03665094388398335, + -0.04199249915564644, + -0.11339074580387214, + -0.17643015512731416, + -0.23012892042663852, + -0.2736525528947509, + -0.3063270419846113, + -0.3276494849383351, + -0.3372960178447726, + -0.33512692314713083, + -0.3211888330527396, + -0.29571399409563537, + -0.25911660445042584, + -0.21198628175992681, + -0.15507876449312047, + -0.08930399347821802, + -0.015711761572645547, + 0.06452484221733229, + 0.15012793307015027, + 0.23973498337657245, + 0.33192031063321736, + 0.4252175613272172, + 0.5181428362270337, + 0.6092180923790058, + 0.6969944527481688, + 0.7800750558942864, + 0.8571370853308969, + 0.9269526311514789, + 0.9884080549221291, + 1.0405215524446723, + 1.0824586374154173, + 1.1135453017926777, + 1.1332786453260244, + 1.1413348066136795, + 1.1375740706102273, + 1.1220430720364436, + 1.0949740599418232, + 1.0567812350183718, + 1.0080542174283194, + 0.9495487481619926, + 0.8821747705708946, + 0.806982080038059, + 0.7251437680970544, + 0.6379377220986195, + 0.5467264721833418, + 0.4529357033877687, + 0.35803177176006523, + 0.26349857906919094, + 0.17081417080758804, + 0.08142742655129245, + -0.003264789716357533, + -0.08193965896400958, + -0.15336926873817047, + -0.21643997805605664, + -0.27016998016874894, + -0.3137247862199796, + -0.3464303856134064, + -0.36778387554210634, + -0.37746139204579177, + -0.37532321751878905, + -0.3614159841196011, + -0.33597193833356964, + -0.2994052782866595, + -0.25230562157301606, + -0.1954287066134083, + -0.12968447418763834, + -0.05612271710490783, + 0.024083475676489434, + 0.1096562193833876, + 0.1992329864541737, + 0.29138809443344954, + 0.38465518985589797, + 0.47755037353751617, + 0.5685956025724992, + 0.6563419999732114, + 0.7393927043466402, + 0.8164248992534693, + 0.8862106748343671, + 0.9476363927023934, + 0.9997202487063456, + 1.0416277565893817, + 1.072684908356516, + 1.0923888038038063, + 1.100415581576041, + 1.0966255266742315, + 1.0810652738654367, + 1.053967072245309, + 1.0157451225519665, + 0.966989044993672, + 0.9084545806066171, + 0.8410516727882197, + 0.7658301169669549, + 0.683963004722087, + 0.5967282234496738, + 0.5054883033359925, + 0.4116689294628, + 0.31673645792334665, + 0.22217479053157296, + 0.1294619728248086, + 0.04004688442428654, + -0.04467361064206577, + -0.12337669329817247, + -0.19483445104606478, + -0.25793324285861563, + -0.3116912619424352, + -0.3552740193969667, + -0.3880075045817829, + -0.40938881464590055, + -0.4190940855851732, + -0.4169835997500406, + -0.40310398925527746, + -0.3776875005426267, + -0.34114833169453024, + -0.29407610026182235, + -0.23722654462177895, + -0.17150960551095354, + -0.09797507569569022, + -0.01779604409117367, + 0.06774960457224047, + 0.1572993427758843, + 0.24942748810688067, + 0.3426676871427433, + 0.4355360407417737, + 0.5265545060404475, + 0.6142742060934016, + 0.697298279549871, + 0.7743039100127277, + 0.8440631876643718, + 0.9054624741598349, + 0.9575199653895359, + 0.9994011751383273, + 1.0304320954527038, + 1.0501098261702642, + 1.058110505977047, + 1.0542944199152622, + 1.0387082027930776, + 1.011584103747188, + 0.9733363235565917, + 0.9245544824702987, + 0.8659943215650977, + 0.7985657842791947, + 0.7233186660814429, + 0.6414260585915503, + 0.5541658492457604, + 0.46290056827034437, + 0.36905590078725964, + 0.27409820292978604, + 0.1795113765516183, + 0.08677346722997936, + -0.002666645374610574, + -0.08741209719461052, + -0.16614006911445361, + -0.2376226485967981, + -0.30074619457529517, + -0.3545289002176865, + -0.3981362765843113, + -0.43089431299591496, + -0.45230010656262637, + -0.46202979324170595, + -0.4599436553450481, + -0.4460883249489843, + -0.42069604845689346, + -0.3841810239129106, + -0.33713286882987586, + -0.2803073215469964, + -0.21461432276303632, + -0.14110366520629303, + -0.06094843775428759, + 0.024573474900143263, + 0.11409954527572952, + 0.20620409099704357, + 0.29942075867878193, + 0.3922656492164929, + 0.48326071978378904, + 0.570957093472321, + 0.6539579089678362, + 0.7309403499100335, + 0.8006765065180719, + 0.8620527404833656, + 0.9140872477329411, + 0.9559455420876923, + 0.986953615630405, + 1.0066085682347548, + 1.0145865386227495, + 1.0107478118724647, + 0.9951390228278105, + 0.9679924206611401, + 0.9297222061869816, + 0.8809179996897709, + 0.8223355422817281, + 0.754884777435992, + 0.6796155006567379, + 0.5977008035985324, + 0.5104185737327271, + 0.4191313413201365, + 0.32526479151754395, + 0.23028528049253255, + 0.13567671013341312, + 0.04291712605182958, + -0.04654459205755564, + -0.13131158009301017, + -0.21006101890504003, + -0.28156499592247364, + -0.3447098700452004, + -0.39851383440705057, + -0.4421424000349242, + -0.4749215562160526, + -0.49634840002733027, + -0.5060990673927079, + -0.5040338405909344, + -0.49019935166532846, + -0.4648278469863628, + -0.42833352456544993, + -0.381306001882651, + -0.32450101724439284, + -0.2588285113173174, + -0.18533827679721984, + -0.10520340252944942, + -0.01970177317463112, + 0.06980408381807958, + 0.1618884861052697, + 0.25508508033310523, + 0.34790996742899993, + 0.43888510459807306, + 0.5265616149635386, + 0.6095426372426654, + 0.6865053551062436, + 0.7562218588045084, + 0.8175785100599847, + 0.8695935048305352, + 0.9114323569680606, + 0.9424210585859653, + 0.962056709588477, + 0.970015448728074, + 0.96615756111324, + 0.9505296816181414, + 0.9233640594452599, + 0.8850748954390856, + 0.8362518099141147, + 0.7776505440123231, + 0.7101810412366171, + 0.634893097120635, + 0.552959803348555, + 0.46565904742079145, + 0.3743533596277958, + 0.2804684251553463, + 0.18547060020014194, + 0.09084378667932505, + -0.0019339697668187238, + -0.09141378941475697, + -0.17619880813409328, + -0.25496620674694453, + -0.32648807265377777, + -0.38965076472612964, + -0.44347247607001017, + -0.48711871768397236, + -0.5199154788274447, + -0.5413598565495208, + -0.5511279867464637, + -0.5490801516694599, + -0.5352629833343396, + -0.5099087280842082, + -0.47343158390328705, + -0.4264211682444882, + -0.36963321938733373, + -0.3039776779713613, + -0.2305043366655975, + -0.15038628428877798, + -0.06490140547504365, + 0.024587772352971632, + 0.11665556687802392, + 0.20983562477284246, + 0.30264404699087166, + 0.3936027907631446, + 0.4812629792386029, + 0.5642277511605336, + 0.6411742902252358, + 0.7108746867086388, + 0.772215302358734, + 0.8242143331584798, + 0.8660372929851052, + 0.89701017397709, + 0.9166300760636833, + 0.9245731380222437, + 0.9206996449859619, + 0.9050562318536712, + 0.8778751478523815, + 0.8395705938510767, + 0.7907321901884207, + 0.7321156780305784, + 0.6646310009045775, + 0.5893279543680868, + 0.5073796301290784, + 0.4200639157118641, + 0.3287433414302854, + 0.23484359249335626, + 0.139831025121762, + 0.04518954125567428, + -0.04760281344137167, + -0.13709715922287963, + -0.2218966319355931, + -0.3006784123788569, + -0.3722145879301421, + -0.43539151743853544, + -0.48922739398747406, + -0.5328877285533431, + -0.5656985103732286, + -0.5871568364740474, + -0.5969388427300233, + -0.5949048113704573, + -0.5811013743893991, + -0.5557607781082801, + -0.5192972204896622, + -0.472300318965097, + -0.41552581179273795, + -0.34988363959082913, + -0.27642359500747604, + -0.19631876684029875, + -0.11084703970239664, + -0.021370940995777066, + 0.0706838469828783, + 0.16385097092692016, + 0.25664653181013364, + 0.34759248688394795, + 0.43523995931773685, + 0.5181920878744679, + 0.5951260562705636, + 0.6648139548018068, + 0.7261421452358205, + 0.7781288235754096, + 0.8199395037172207, + 0.8509001778190772, + 0.8705079458294842, + 0.8784389465449982, + 0.8745534651178827, + 0.8588981364658614, + 0.8317052098347222, + 0.7933888861122401, + 0.7445387856556285, + 0.6859106496495793, + 0.6184144216394294, + 0.5430998972010221, + 0.4611401680603566, + 0.373813121760048, + 0.2824812886316934, + 0.1885703539022551, + 0.09354667380974355, + -0.0011058496880377681, + -0.09390917091003362, + -0.18341441009234613, + -0.2682247030646032, + -0.34701723060892653, + -0.41856408008609947, + -0.4817516103282577, + -0.5355980144019925, + -0.5792688032671528, + -0.6120899661442132, + -0.6335586000437805, + -0.6433508408238138, + -0.6413269706974098, + -0.6275336216425816, + -0.602203039964836, + -0.5657494236109629, + -0.5187623899967415, + -0.461997677364829, + -0.39636522631776905, + -0.3229148294886123, + -0.24281957565962647, + -0.15735734942887242, + -0.06789067818328226, + 0.024154755795525645, + 0.11731259921550846, + 0.21009895306501913, + 0.30103577461010933, + 0.38867418703442286, + 0.47161732911555077, + 0.548542384584082, + 0.61822144374959, + 0.6795408683938016, + 0.7315188545333644, + 0.7733209160786209, + 0.8042730452010516, + 0.8238723418626915, + 0.8317949448733954, + 0.8279011393987054, + 0.8122375603694945, + 0.7850364570446478, + 0.7467120303247107, + 0.6978539005798012, + 0.6392178090072052, + 0.5717136991649243, + 0.4963913666412027, + 0.4144239031745203, + 0.3270891963194113, + 0.2357497764196263, + 0.14183132871427745, + 0.046800209453067135, + -0.04785967939419491, + -0.1406702921349954, + -0.23018274899400618, + -0.31500018578951755, + -0.39379978329206644, + -0.46535362885142784, + -0.5285480812886402, + -0.5824013336594259, + -0.6260788969128892, + -0.6589067602587148, + -0.6803820206969029, + -0.6901808140749848, + -0.6881634225957259, + -0.6743764782268971, + -0.6490522272638539, + -0.6126048676434075, + -0.5656240167714983, + -0.5088654128809931, + -0.44323899656498167, + -0.3697945604465519, + -0.28970519329870714, + -0.2042487797104469, + -0.11478784705938187, + -0.022748077618153686, + 0.07040417533022353, + 0.16318501278301828, + 0.25411639201507374, + 0.34174943621829323, + 0.42468728417890866, + 0.5016071196357419, + 0.5712810329068893, + 0.6325953857821067, + 0.6845683742859883, + 0.7263655123367265, + 0.7573127921136295, + 0.7769073135863751, + 0.7848252155724007, + 0.7809267832446467, + 0.7652586515413156, + 0.7380530697283907, + 0.6997242387136321, + 0.6508617788740054, + 0.5922214314137215, + 0.5247131398973393, + 0.4493866999197964, + 0.3674152032261434, + 0.28007653737721905, + 0.18873323272310968, + 0.09481097450880697, + -0.00022388100962456893, + -0.09488743185682177, + -0.18770163233423154, + -0.2772176026609441, + -0.3620384786495556, + -0.4408414410654767, + -0.5123985772530727, + -0.5755962460281129, + -0.629452640441189, + -0.6731332714364429, + -0.7059641282188651, + -0.7274423077836412, + -0.7372439459736994, + -0.7352293249872806, + -0.721445076787808, + -0.6961234476664118, + -0.6596786355557445, + -0.6127002578576817, + -0.5559440528010994, + -0.4903199609755089, + -0.4168777750002287, + -0.336790583644868, + -0.25133627149469046, + -0.16187736592404545, + -0.06983954920245634, + 0.02331082539005955, + 0.11608985885381885, + 0.20701950846635114, + 0.29465089742262573, + 0.37758716451131996, + 0.4545054934738867, + 0.5241779746305146, + 0.585490969773321, + 0.6374626749291072, + 0.6792586040181338, + 0.7102047492216106, + 0.7297982105108924, + 0.7377151267051587, + 0.733815782978916, + 0.7181468142717955, + 0.6909404698510939, + 0.6526109506257572, + 0.6037478769738926, + 0.5451069901006542, + 0.47759823357151354, + 0.4022714029820971, + 0.320299590077912, + 0.23296068242043305, + 0.14161721036021024, + 0.047694859142597176, + -0.047340014976625086, + -0.14200351002163536, + -0.23481758029438946, + -0.3243333460137646, + -0.40915394299284774, + -0.487956551997491, + -0.5595132603725573, + -0.6227104269345644, + -0.6765662447349934, + -0.7202462247187662, + -0.7530763560918752, + -0.7745537358507055, + -0.7843544998394358, + -0.782338930257711, + -0.7685536590704354, + -0.7432309325703286, + -0.7067849486918178, + -0.6598053248386134, + -0.603047799241673, + -0.5374223124923831, + -0.4639786572122214, + -0.38388992217338225, + -0.29843399196344206, + -0.20897339395939052, + -0.11693381043334218, + -0.023781594668015472, + 0.06899935433408447, + 0.15993099384711962, + 0.24756444706308733, + 0.3305028527673346, + 0.4074233946980145, + 0.47709816317195325, + 0.5384135199775084, + 0.5903876611376992, + 0.6321861005690013, + 0.6631348304486148, + 0.6827309507439285, + 0.6906506002698543, + 0.6867540641965664, + 0.6710879774592724, + 0.6438845893207885, + 0.6055581006852842, + 0.5566981319261237, + 0.4980604242434454, + 0.43055492119790983, + 0.35523141837991135, + 0.2732630075297794, + 0.18592757620354416, + 0.09458765474618272, + 0.0006689283973480963, + -0.09436224659256462, + -0.18902196825374168, + -0.28183219089393374, + -0.37134403473843, + -0.456160635606414, + -0.5349591742699658, + -0.6065117380803087, + -0.6697046858605795, + -0.7235562106688782, + -0.7672318234569728, + -0.8000575134377701, + -0.8215303776146632, + -0.8313265518388737, + -0.8293063183173573, + -0.8155163090223736, + -0.7901887702541498, + -0.7537378999545934, + -0.7067533155352832, + -0.6499907552349514, + -0.5843601596529352, + -0.5109113214189196, + -0.4308173293129396, + -0.34535606793107043, + -0.25589006465880376, + -0.16384500177671363, + -0.07068723257617124, + 0.022099343931379, + 0.11303668501163555, + 0.2006759138472551, + 0.28362016921462385, + 0.3605466348424381, + 0.4302274010383861, + 0.49154882958122537, + 0.5435291164845515, + 0.5853337756550048, + 0.6162887992599446, + 0.6358912872568614, + 0.6438173784506114, + 0.6399273580012139, + 0.6242678608335772, + 0.597071136200014, + 0.5587513849943608, + 0.5098982275792174, + 0.45126740514410574, + 0.38376886123860493, + 0.3084523914421436, + 0.22649108748400756, + 0.1391628369090835, + 0.04783017005094152, + -0.04608122786205167, + -0.14110500059132713, + -0.23575724617902177, + -0.3285599189440911, + -0.4180641391240021, + -0.5028730425499053, + -0.5816638100061184, + -0.653208528856204, + -0.7163935579357171, + -0.7702370903150335, + -0.8139046369586653, + -0.846722187092235, + -0.8681868377320212, + -0.8779747247422376, + -0.8759461303428797, + -0.8621476865194184, + -0.8368116395854079, + -0.8003521874962681, + -0.7533589476769941, + -0.6965876583799839, + -0.630948260218406, + -0.5574905458359856, + -0.4773876040265864, + -0.3919173194005532, + -0.30244221935747395, + -0.21038798619219287, + -0.11722097321090227, + -0.02442507943947744, + 0.06652165237298713, + 0.15417034539448504, + 0.2371241383862973, + 0.3140602150622833, + 0.38375066571478644, + 0.4450818521072253, + 0.4970719702378054, + 0.5388865339977116, + 0.5698515355387012, + 0.5894640748024137, + 0.5974002905778713, + 0.5935204680090835, + 0.5778712420048695, + 0.550684861801414, + 0.5123755282759921, + 0.46353286177489217, + 0.4049126034711076, + 0.3374246968974931, + 0.26211893761675203, + 0.1801684173411924, + 0.09285102359859396, + 0.0015292867052849983, + -0.09237110812729968, + -0.18738380467812688, + -0.2820249010066532, + -0.3748163514497851, + -0.464309276262616, + -0.5491068112940485, + -0.62788613734628, + -0.6994193418010195, + -0.7625927835118995, + -0.8164246555678207, + -0.8600804689516198, + -0.8928862129074016, + -0.9143389844700531, + -0.924114919522624, + -0.922074300303953, + -0.9082637588185083, + -0.8829155413988838, + -0.8464438460198132, + -0.7994382901255876, + -0.7426546119881142, + -0.6770027522400779, + -0.6035325035448135, + -0.5234169547158791, + -0.43793399038382796, + -0.3484461379681266, + -0.25637907978392804, + -0.16319916915733823, + -0.07039030513468095, + 0.020569469514379976, + 0.10823127793715694, + 0.19119825887430536, + 0.26814759601878935, + 0.33785137964204254, + 0.3991959714867609, + 0.45119956752950585, + 0.4930276816403614, + 0.5240063059496656, + 0.5436325403776001, + 0.5515825236915233, + 0.5477165410137086, + 0.5320812272311145, + 0.5049088315579631, + 0.4666135548494772, + 0.41778501742974455, + 0.35917896044931813, + 0.29170532741871374, + 0.2164139138781624, + 0.13447781151726504, + 0.04717490784103374, + -0.04413226685691994, + -0.13801802738857127, + -0.2330160175556649, + -0.32764233544096455, + -0.4204189354047989, + -0.5098969377254642, + -0.5946794782755982, + -0.6734437378812186, + -0.7449618039476604, + -0.8081200353524135, + -0.8619366252084618, + -0.9055770845227422, + -0.938367402563655, + -0.9598046763904906, + -0.9695650419106661, + -0.9675087813876568, + -0.9536825268506239, + -0.9283185246570347, + -0.8918309728064558, + -0.8448094887682012, + -0.7880098108393717, + -0.722341879677974, + -0.6488554879726774, + -0.5687237245627641, + -0.4832244741038645, + -0.39372026404136656, + -0.3016367767165079, + -0.20844036548117625, + -0.11561492940783899, + -0.024638511292241285, + 0.06304001198673231, + 0.14602377914340103, + 0.22298997384392014, + 0.2927106863332555, + 0.35407227832726146, + 0.4060929457758926, + 0.44793820252217753, + 0.4789340406693391, + 0.4985775601103547, + 0.5065448995853195, + 0.5026963441891208, + 0.4870785287811846, + 0.45992370254806036, + 0.42164606631728985, + 0.37283524038502075, + 0.3142469658739866, + 0.2467911862665413, + 0.17151769707465173, + 0.08959958995951743, + 0.0023147523980292725, + -0.08897428534487405, + -0.18284183810971782, + -0.27782154972717366, + -0.37242951830870075, + -0.4651876982439353, + -0.5546472098398455, + -0.6394111889984364, + -0.7181568165749646, + -0.7896561800042798, + -0.8527956381934989, + -0.9065933842851271, + -0.9502149293158175, + -0.9829862625838865, + -1.0044044811785877, + -1.014145721037493, + -1.0120702644542163, + -0.9982247434882503, + -0.9728414045274882, + -0.9363344456020298, + -0.8892934842118907, + -0.832474258684885, + -0.7667867097097738, + -0.6932806300062926, + -0.6131291084448943, + -0.5276100297123516, + -0.4380859212855258, + -0.3459824655366638, + -0.25276601584952035, + -0.15992047132803042, + -0.06892387479986939, + 0.01877489682429897, + 0.10177898222667736, + 0.1787655650416326, + 0.24850673548184538, + 0.30988885523079407, + 0.36193012020595355, + 0.4037960442178681, + 0.434812619337166, + 0.45447694542410005, + 0.4624651611858828, + 0.45863755168439546, + 0.44304075174601754, + 0.41590701052414686, + 0.377650528813007, + 0.3288609268752485, + 0.2702939458001596, + 0.2028595290365205, + 0.12760747206252487, + 0.04571086650567376, + -0.041552400191387416, + -0.13281979779772482, + -0.22666564118796245, + -0.32162357422695786, + -0.4162096950606493, + -0.5089459581129273, + -0.5983834837259501, + -0.6831254078361728, + -0.7618489113334582, + -0.8333260816877448, + -0.8964432778411535, + -0.9502186929714009, + -0.9938178381504476, + -1.0265667027119785, + -1.0479623837806065, + -1.0576810173295628, + -1.0555828856881835, + -1.0417146209517492, + -1.016308469544037, + -0.9797786295311819, + -0.9327147184493767, + -0.8758724746626537, + -0.8101618388961777, + -0.736632603906102, + -0.6564578585992796, + -0.5709154876994513, + -0.4813680187198732, + -0.38924113407016253, + -0.29600118717074175, + -0.20313207716282428, + -0.11211184691104005, + -0.02438937336355395, + 0.05863848212433327, + 0.13564890314953815, + 0.20541397988703092, + 0.2668200739826625, + 0.31888538131599936, + 0.3607754156596411, + 0.3918161690460684, + 0.4115047412973943, + 0.41951727108253806, + 0.4157140434250215, + 0.40014169311266923, + 0.37303246926028, + 0.3348005726233909, + 0.2860356234259112, + 0.22749336271801765, + 0.16008373390953812, + 0.08485653243937662, + 0.002984849896061001, + -0.08425342631725519, + -0.17549576600901406, + -0.2693164840934874, + -0.36424922447530483, + -0.4588100853402647, + -0.5515210211518908, + -0.6409331522922618, + -0.7256496147380306, + -0.804347589419494, + -0.8757991638468057, + -0.9388906970024309, + -0.9926403821045682, + -1.0362137302658627, + -1.0689367308606932, + -1.0903064810546343, + -1.0999991168617904, + -1.097874920652548, + -1.0839805245633443, + -1.0585481750592596, + -1.0219920702477903, + -0.9749018277065586, + -0.9180331858410893, + -0.8522960854184478, + -0.7787403192364779, + -0.6985389762440126, + -0.6129699412066405, + -0.5233957416797911, + -0.43124206011521915, + -0.3379752499758233, + -0.24507921044515732, + -0.15403198443046273, + -0.06628244892243593, + 0.016772534681029974, + 0.09381014993385, + 0.1636024869679881, + 0.22503590738621493, + 0.2771286070252128, + 0.3190460996140747, + 0.35011437714209737, + 0.36983053938777555, + 0.37787072497652346, + 0.37409521888819075, + 0.35855065586685175, + 0.33146928498341277, + 0.29326530694936215, + 0.24452834194455336, + 0.18601413097502895, + 0.11863261740629474, + 0.0434335966329913, + -0.03840983980120633, + -0.12561980453746396, + -0.21683376742909183, + -0.31062604343500594, + -0.4055302765048279, + -0.5000625648692116, + -0.5927448630370531, + -0.6821282914358895, + -0.7668159860871299, + -0.8454851279667424, + -0.9169078046303565, + -0.9799703751061417, + -1.0336910326580797, + -1.0772352884446676, + -1.109929131886062, + -1.1312696601939696, + -1.1409330094286425, + -1.1387794620067218, + -1.1248556501109759, + -1.0993938202529323, + -1.062808170586669, + -1.0156883187364525, + -0.958790003154673, + -0.8930231646550467, + -0.8194375960824051, + -0.7392063864327003, + -0.6536074205187681, + -0.564003225943319, + -0.47181948520538497, + -0.37852255181525335, + -0.28559632500395765, + -0.1945188477267469, + -0.10673899702192609, + -0.023653634335324185, + 0.05341442383907799, + 0.12323726758523831, + 0.18470125845778754, + 0.2368245922448948, + 0.27877278262741045, + 0.30987182154610693, + 0.32961880873101096, + 0.33768988275879985, + 0.33394532856052644, + 0.31843178083139545, + 0.29138148859334767, + 0.25320865250882535, + 0.2045028927084956, + 0.1460199501490571, + 0.0786697681465496, + 0.003502142046377263, + -0.0783098366573917, + -0.165488280655754, + -0.2566706598516351, + -0.3504312892540805, + -0.4453038128625203, + -0.5398043289575892, + -0.6324547920984493, + -0.7218063227627429, + -0.8064620570226521, + -0.8850991759043021, + -0.956489767014024, + -1.0195201894305268, + -1.073208636468628, + -1.1167206193376167, + -1.149382127508777, + -1.170690258244793, + -1.1803211476570534, + -1.1781350782134705, + -1.164178682148177, + -1.138684206024171, + -1.1020658480470482, + -1.0549132258926412, + -0.9979820780652695, + -0.9321823454304163, + -0.8585638208849263, + -0.7782995934767349, + -0.6926675480707335, + -0.6030302123217731, + -0.5108132687815559, + -0.417483071012632, + -0.3245235182987378, + -0.23341265364740404, + -0.14559935414975084, + -0.062480481304518824, + 0.01462114834132755, + 0.08447762481880745, + 0.14597530962933633, + 0.1981323985080661, + 0.240114405082612, + 0.27124732124006057, + 0.29102824665707777, + 0.2991333198567402, + 0.2954228257164341, + 0.2799433988775668, + 0.25292728830813116, + 0.21478869461669273, + 0.16611723787980182, + 0.10766865900004964, + 0.04035290123916234, + -0.03478024011195244, + -0.11655767361356403, + -0.20370151201114373, + -0.2948492252623362, + -0.3885751284308381, + -0.48341286557100555, + -0.5778785350185758, + -0.6704940913875642, + -0.7598106552105809, + -0.8444313626152686, + -0.9230333946829772, + -0.9943888390753881, + -1.057384054926945, + -1.1110372356077676, + -1.1545138923829572, + -1.1871400147795779, + -1.208412700116189, + -1.2180080845601742, + -1.215786450635508, + -1.201794430632445, + -1.1762642711702829, + -1.1396101705109525, + -1.0924217463868255, + -1.0354547373585217, + -0.9696190843483442, + -0.8959645803097382, + -0.8156643143475899, + -0.7299961713836411, + -0.6403226791299899, + -0.548069520194774, + -0.45470304819822593, + -0.3617071624813663, + -0.2705599061090217, + -0.18271015622985387, + -0.09955477440007549, + -0.022416577224236886, + 0.0474765252709842, + 0.10901089452890446, + 0.16120472622688092, + 0.20322353393443737, + 0.2343933094807085, + 0.2542111524840733, + 0.26235320140928786, + 0.2586797410753412, + 0.24323740606518263, + 0.21625844528828647, + 0.1781570592944551, + 0.12952286810147573, + 0.07111161255312476, + 0.003833235852255798, + -0.07126246676923342, + -0.15300240393079817, + -0.2401086884371978, + -0.33121879030547485, + -0.4249070246583944, + -0.5197070356099521, + -0.6141349215553824, + -0.7067126371684502, + -0.7959913030416019, + -0.8805740553623929, + -0.9591380752718011, + -1.0304554504916923, + -1.0934125402165242, + -1.1470275378768449, + -1.1904659547979657, + -1.2230537805672905, + -1.244288112563828, + -1.25384508701557, + -1.2515849865071444, + -1.2375544433895946, + -1.2119857043429028, + -1.175292967690074, + -1.1280658512244424, + -1.071060093567787, + -1.0051856357034876, + -0.9314922706463917, + -0.8511530875624657, + -0.7654459714352622, + -0.6757334500382863, + -0.583441206041388, + -0.4900355931264412, + -0.397000510696104, + -0.30581400187726687, + -0.21792494388066475, + -0.1347301983244958, + -0.057552581875469785, + 0.012379995377360564, + 0.07395389481529042, + 0.12618731205300493, + 0.16824576059758123, + 0.1994552322155726, + 0.2193128264626032, + 0.22749468174071857, + 0.2238610828060471, + 0.20845866417854697, + 0.18151967470470282, + 0.14345831487118527, + 0.09486420463262193, + 0.03649308476946336, + -0.03074510157895137, + -0.10580055924407851, + -0.18750019690885383, + -0.2745661274417409, + -0.3656358209233367, + -0.45928359254054785, + -0.5540430864711938, + -0.6484304011743978, + -0.7409674913879118, + -0.8302054777684171, + -0.914747496567487, + -0.9932707289909557, + -1.0645472628248343, + -1.1274634573278917, + -1.1810375059953926, + -1.224434920217278, + -1.2569816896457495, + -1.2781749117246726, + -1.2876907227469214, + -1.2853894053621011, + -1.2713175919863429, + -1.245707529364914, + -1.2089734158859344, + -1.1617048694080734, + -1.1046576286185754, + -1.0387416345663865, + -0.9650066803318978, + -0.8846258551469062, + -0.7988770440604238, + -0.7091227749118569, + -0.6167887304371493, + -0.5233412643840137, + -0.43026427622145424, + -0.33903580914236786, + -0.2511047404236592, + -0.16786793174981074, + -0.09064819985425837, + -0.020673454892401397, + 0.04094266445040998, + 0.0932183537223059, + 0.13531912636351184, + 0.1665709740738705, + 0.18647099634193928, + 0.19469533150282445, + 0.19110426424557803, + 0.17574442902302023, + 0.14884807461431493, + 0.11082940143887628, + 0.06227802938385424, + 0.003949699162289613, + -0.06324564615394726, + -0.13825821146422124, + -0.2199149055191562, + -0.3069378412549633, + -0.3979644888200489, + -0.49156916346936946, + -0.5862855094487133, + -0.6806296252854311, + -0.773123465785573, + -0.8623181516741942, + -0.9468168192709198, + -1.0252966498502003, + -1.0965297312664735, + -1.159402422847376, + -1.2129329181567785, + -1.256286728653345, + -1.2887898440580958, + -1.309939361883881, + -1.3194114184925851, + -1.3170662966029356, + -1.3029506287002157, + -1.2772966615988894, + -1.2405185937564904, + -1.1932060431011227, + -1.136114748389475, + -1.0701546507400046, + -0.9963755433026531, + -0.9159505153792081, + -0.8301574520883619, + -0.7403588813394819, + -0.6479804859383871, + -0.5544886197026573, + -0.4613671821715773, + -0.37009421660832265, + -0.2821186003599847, + -0.19883719518153387, + -0.12157281787652881, + -0.05155337867096586, + 0.010107483679156884, + 0.06242796465125727, + 0.10457357761489686, + 0.1358703141990637, + 0.1558152738215353, + 0.1640845947464009, + 0.16053856159163893, + 0.14522380873898133, + 0.11837258489643578, + 0.08039909041209006, + 0.03189294510182296, + -0.026390110392940147, + -0.09354013307158034, + -0.16850732790512807, + -0.2501186037157748, + -0.3370960735115205, + -0.42807720751274003, + -0.521636321046107, + -0.6163070584292658, + -0.7106055182616742, + -0.8030536554214811, + -0.8922025907057527, + -0.9766554605067592, + -1.055089446170889, + -1.126276635625317, + -1.1891033882698152, + -1.2425878977408926, + -1.285895675569886, + -1.3183527115505695, + -1.3394561032684567, + -1.3488819871582787, + -1.3464906460116974, + -1.3323287123870002, + -1.3066284331716753, + -1.2698040068964151, + -1.2224450515624743, + -1.1653073059999084, + -1.0993007114004851, + -1.025475060987715, + -0.9450034441366127, + -0.859163746039485, + -0.769318494679422, + -0.6768933729360407, + -0.5833547347007997, + -0.49018647958650496, + -0.3988666509304274, + -0.31084412615350654, + -0.22751576708511295, + -0.15020439060278423, + -0.08013790700679772, + -0.01842995512736814, + 0.03393766043861578, + 0.07613045298628338, + 0.10747441406996446, + 0.12746664303295713, + 0.13578327806469337, + 0.13228460370847328, + 0.11701725427119154, + 0.09021347838600498, + 0.05228747632610993, + 0.0038288678323665087, + -0.054406606528748486, + -0.12150900383196582, + -0.19642852912342892, + -0.2779920913007531, + -0.36492180344699565, + -0.45585513585800264, + -0.5493664039360108, + -0.6439892520743116, + -0.7382397789480695, + -0.8306399395107834, + -0.9197408546354544, + -1.0041456607901074, + -1.0825315393971846, + -1.1536705784597419, + -1.216449137453654, + -1.2698854100914136, + -1.3131449079805888, + -1.34555362099117, + -1.3666086467850347, + -1.3759861218732805, + -1.3735463291239796, + -1.3593359011719415, + -1.3335870849812983, + -1.2967140791592537, + -1.2493065017839222, + -1.1921200917619168, + -1.126064790362105, + -1.0521903908848111, + -0.9716699827820341, + -0.8857814513232103, + -0.7958873245684641, + -0.7034132854744273, + -0.6098256880099666, + -0.5166084318652882, + -0.4252395604549618, + -0.3371679512775234, + -0.2537904662394623, + -0.1764299222962086, + -0.10631422982553838, + -0.044557027735509416, + 0.007859879299287775, + 0.05010200449607785, + 0.0814953393314184, + 0.1015369830706504, + 0.10990307382502586, + 0.10645389605981836, + 0.0912360840037852, + 0.06448188621184885, + 0.02660550287888297, + -0.021803446332683996, + -0.07998922093462478, + -0.14704187808022573, + -0.22191162289410513, + -0.30342536435255746, + -0.39030521561746545, + -0.48118864706327164, + -0.5746499741709273, + -0.6692228414126647, + -0.7634233475424091, + -0.8557734475929879, + -0.9448242625163628, + -1.0291789288595905, + -1.107514628124213, + -1.1786034483925536, + -1.241331749219853, + -1.2947177243980206, + -1.3379268856140607, + -1.3702852228172941, + -1.391289833749234, + -1.4006168550005933, + -1.3981265695191312, + -1.383865610019383, + -1.3580662235452132, + -1.3211426087837725, + -1.2736843838930691, + -1.2164472878598014, + -1.1503412620326656, + -1.0764160997921153, + -0.9958448906703692, + -0.9099055200171675, + -0.819960515972848, + -0.7274355615744672, + -0.633797010871213, + -0.5405287636336624, + -0.44910886335682804, + -0.36098618762016654, + -0.2775575984107078, + -0.2001459127644326, + -0.12997904114001818, + -0.06817062252615137, + -0.015702461678449978, + 0.026590954539346193, + 0.05803561752285148, + 0.07812862645631621, + 0.08654611936996943, + 0.08314838064784846, + 0.06798204443747381, + 0.041279359212506084, + 0.003454525086465987, + -0.04490283835952576, + -0.10303699071887441, + -0.17003798922637825, + -0.24485603908817102, + -0.3263180493620307, + -0.4131461332917454, + -0.5039777613333492, + -0.5973872490497616, + -0.691908240995168, + -0.7860568360050662, + -0.878354989194432, + -0.9673538215971791, + -1.051656469842535, + -1.1299401155142632, + -1.20097684677692, + -1.2636530232677536, + -1.3169868388611181, + -1.360143805326314, + -1.3924499126952425, + -1.4134022587918171, + -1.422676980289258, + -1.4201343602179142, + -1.405821031374977, + -1.3799692408870703, + -1.3429931875240415, + -1.295482489526529, + -1.2381928859643834, + -1.172034318269103, + -1.0980565799041817, + -1.0174327604848046, + -0.9314407454437061, + -0.8414430630042624, + -0.7488653962870451, + -0.6551740994243196, + -0.5618530722699604, + -0.4703803584024887, + -0.3822048354843465, + -0.29872336558627427, + -0.22125876582782866, + -0.1510389467511678, + -0.08917754742864586, + -0.03665637269946451, + 0.00569009048897845, + 0.037187833448433766, + 0.0573339552792998, + 0.06580459392800221, + 0.062460033694625355, + 0.04734690864273565, + 0.02069746716188431, + -0.017074090718384033, + -0.06537814550111753, + -0.12345895686390325, + -0.19040658212570388, + -0.265171226576997, + -0.34657979936004013, + -0.43335441380288225, + -0.524132540445902, + -0.6174884949365804, + -0.7119559219134708, + -0.8060509202970839, + -0.8982954452866905, + -0.9872406180010571, + -1.0714895751539821, + -1.1497194984140977, + -1.2207024760306178, + -1.283324867726165, + -1.3366048674596316, + -1.3797079870853344, + -1.4119602167202547, + -1.4328586542733783, + -1.44207943650308, + -1.439482846524885, + -1.4251155172211598, + -1.3992096958038531, + -1.362179581128121, + -1.3146147915200626, + -1.2572710661347806, + -1.1910583464892475, + -1.1170264261325251, + -1.036348394765432, + -0.9503021379062526, + -0.8602501838641803, + -0.7676182158451623, + -0.673872588067288, + -0.5804972004703967, + -0.4889700967186883, + -0.40074015456073814, + -0.31720423615305093, + -0.23968515870109464, + -0.1694108328330109, + -0.107494897707485, + -0.05491915824970528, + -0.012518101493262976, + 0.019034263787425107, + 0.03923503660652518, + 0.047760354824125925, + 0.04447050265394145, + 0.029412114073170265, + 0.002817437384984134, + -0.03489932746765047, + -0.08314856107431777, + -0.1411745231991393, + -0.20806727124763252, + -0.282777010596977, + -0.36413065047606186, + -0.45085030429974143, + -0.5415734426954457, + -0.6348743813970841, + -0.7292867651302439, + -0.8233266929022754, + -0.9155161199995832, + -1.004406167627774, + -1.088599972587938, + -1.166774716635626, + -1.2377024881071268, + -1.3002696468122572, + -1.3534943867972118, + -1.3965422200036286, + -1.4287391366356723, + -1.4495822346897287, + -1.4587476510115216, + -1.456095668804031, + -1.4416729210371335, + -1.4157116550102389, + -1.3786260696660297, + -1.3310057834182802, + -1.2736065355096353, + -1.2073382675449138, + -1.1332507731607975, + -1.052517142145788, + -0.9664152601058702, + -0.8763076554383946, + -0.783620011437034, + -0.689818682407884, + -0.5963875683786573, + -0.5048047131013861, + -0.41651899441285645, + -0.33292727455773197, + -0.255352370829514, + -0.18502219394462532, + -0.12305038314968729, + -0.07041874345821854, + -0.02796176199214151, + 0.0036465523857845683, + 0.02390329860141821, + 0.03248461442645481, + 0.029250783986217554, + 0.014248441169363149, + -0.012290165809380638, + -0.04995083709560408, + -0.09814395336742246, + -0.1561137744776099, + -0.22295035792039916, + -0.29760390916175716, + -0.3789013375190288, + -0.4655647564959665, + -0.5562316368086301, + -0.6494762942800995, + -0.7438323737247651, + -0.8378159742387993, + -0.929949051197471, + -1.018782725895457, + -1.1029201352227918, + -1.181038461024173, + -1.2519097917250996, + -1.3144204872243217, + -1.3675887416573038, + -1.4105800670547506, + -1.442720453710188, + -1.4635069997092152, + -1.4726158419869049, + -1.469907263835519, + -1.4554278983143325, + -1.4294099928121617, + -1.3922677463611735, + -1.3445907774644885, + -1.2871348254543942, + -1.2208098320252092, + -1.1466655909031895, + -1.0658751919664509, + -0.9797165209107803, + -0.8895521062228081, + -0.7968076312862372, + -0.7029494504967388, + -0.6094614639719744, + -0.5178217155538632, + -0.42947908316870087, + -0.3458304291511184, + -0.2681985708846139, + -0.19781141917560705, + -0.1357826133606208, + -0.08309395854321558, + -0.040579941935292935, + -0.00891457248964729, + 0.011399248629464745, + 0.0200376591035326, + 0.016860942967762707, + 0.0019157340206690937, + -0.024565719613302964, + -0.06216921817002061, + -0.11030514241785601, + -0.168217752299847, + -0.2349971054006051, + -0.3095934072763316, + -0.39083356733504737, + -0.4774396991708096, + -0.5680492735903107, + -0.661236606506796, + -0.7555353428252524, + -0.8494615817324935, + -0.9415372786944545, + -1.0303135550964946, + -1.1143935479189662, + -1.1924544390973981, + -1.2632683171479286, + -1.3257215420601045, + -1.3788323080602307, + -1.4217661272696875, + -1.453848990072772, + -1.4745779946459683, + -1.48362927801521, + -1.480863123563683, + -1.4663261644415373, + -1.4402506481285409, + -1.403050773747869, + -1.3553161598937298, + -1.2978025459892553, + -1.2314198738199016, + -1.1572179372028675, + -1.0763698261076466, + -0.9901534263210365, + -0.899931266420911, + -0.8071290298819939, + -0.7132130711913381, + -0.6196672905575031, + -0.5279697319140998, + -0.4395692732785456, + -0.35586277707685754, + -0.27817306078378723, + -0.2077280352970021, + -0.14564134004455748, + -0.09289478022148255, + -0.0503228431310548, + -0.01859953781753361, + 0.0017722344633085696, + 0.010468611301524475, + 0.007349876640735303, + -0.007537335812138071, + -0.033960778024190605, + -0.07150625032286856, + -0.11958413356820183, + -0.17743868779498823, + -0.24415997067944667, + -0.31869818786939896, + -0.39988024886464857, + -0.4864282673509178, + -0.5769797142268291, + -0.670108905497337, + -0.7643494861593301, + -0.8582175554912864, + -0.9502350690510846, + -1.0389531483158057, + -1.1229749303580268, + -1.2009775972051007, + -1.2717332374650339, + -1.3341282112192785, + -1.3871807127861115, + -1.430056254379106, + -1.4620808264744871, + -1.4827515273408132, + -1.4917444940960132, + -1.488920010215411, + -1.4743247089412868, + -1.4481908378455346, + -1.410932596143447, + -1.3631396025213214, + -1.3055675964946514, + -1.239126519941032, + -1.1648661667700282, + -1.0839596270431107, + -0.9976847866393889, + -0.9074041742291005, + -0.8145434733793593, + -0.7205690386694619, + -0.6269647704004788, + -0.535208712598038, + -0.4467497433721061, + -0.3629847252409477, + -0.2852364757720377, + -0.21473290595537597, + -0.1525876553113966, + -0.09978252912754314, + -0.05715201479957359, + -0.025370121464403247, + -0.004939750470236287, + 0.0038152356804442566, + 0.0007551208387081981, + -0.014073461381081884, + -0.04043826303864319, + -0.07792508455398019, + -0.12594430687975694, + -0.18374019014334958, + -0.2504027921136622, + -0.3248823185313334, + -0.4060056789886494, + -0.4924949872641746, + -0.5829877143489195, + -0.6760581763410571, + -0.7702400183298019, + -0.8640493396867264, + -0.956008096062305, + -1.0446674090263248, + -1.1286304157442453, + -1.2065742983361691, + -1.277271145503007, + -1.3396073174191132, + -1.3926010084956397, + -1.4354177310388305, + -1.4673834756179085, + -1.4879953405942983, + -1.4969294631789123, + -1.4940461269399403, + -1.4793919652125918, + -1.4531992256617319, + -1.4158821075956092, + -1.3680302297935902, + -1.3103993318640388, + -1.243899355777327, + -1.1695800955364393, + -1.0886146412957012, + -1.0022808790273383, + -0.9119413374945566, + -0.8190217003574415, + -0.7249883222882665, + -0.631325103681524, + -0.5395100886557641, + -0.4509921554141311, + -0.36716816656791995, + -0.2893609397775842, + -0.21879838612641428, + -0.1565941452280484, + -0.10373002246301492, + -0.06104050532030235, + -0.029199603029844617, + -0.00871021703310472, + 0.00010379007421437714, + -0.0028972979500093005, + -0.017666847584613996, + -0.043972610982521684, + -0.08140038865700402, + -0.12936056165404267, + -0.18709739019408708, + -0.2537009321393736, + -0.3281213933237324, + -0.409185683432861, + -0.4956159163384585, + -0.5860495631251453, + -0.6790609399839869, + -0.7731836920976594, + -0.8669339189309637, + -0.958833576227782, + -1.0474337856513851, + -1.1313376844603966, + -1.209222454868184, + -1.2798601856690843, + -1.3421372371308045, + -1.3950718037577687, + -1.4378293979498524, + -1.4697360103693802, + -1.4902887394712458, + -1.499163722559746, + -1.4962212432964697, + -1.4815079351100273, + -1.4552560457586363, + -1.4178797746439573, + -1.3699687406388252, + -1.3122786834449882, + -1.2457195451263625, + -1.171341119779052, + -1.0903164976510589, + -1.0039235648078981, + -0.9135248501063693, + -0.8205460372999254, + -0.726453481154457, + -0.6327310821575641, + -0.540856884521339, + -0.45227976654247065, + -0.3683965909258659, + -0.2905301754252061, + -0.21990843121739442, + -0.15764499800940382, + -0.10472168127521797, + -0.06197296859749338, + -0.030072869299537328, + -0.009524284916303652, + -0.0006510781369506446, + -0.0035929652970842912, + -0.018303312969087923, + -0.044549873399307285, + -0.08191844719452461, + -0.12981941549411688, + -0.18749703861220027, + -0.254041374504493, + -0.32840262909826395, + -0.40940771217263194, + -0.49577873769285397, + -0.5861531768368811, + -0.6791053458895192, + -0.773168890127208, + -0.8668599091076472, + -0.958700358668471, + -1.0472413605663702, + -1.1310860521535497, + -1.2089116157369477, + -1.2794901402044379, + -1.3417079859169645, + -1.3945833474725808, + -1.4372817373645823, + -1.4691291463489513, + -1.4896226729739899, + -1.4984384546374576, + -1.4954367750944295, + -1.4806642678670183, + -1.4543531808069508, + -1.416917713409367, + -1.3689474846404743, + -1.3111982342955655, + -1.2445799045321575, + -1.1701422895396565, + -1.089058479659586, + -1.002606361051009, + -0.9121484626638657, + -0.8191104683454726, + -0.7249587329550156, + -0.6311771570735463, + -0.5392437850066867, + -0.45060749514448384, + -0.36666515028498625, + -0.2887395682759196, + -0.2180586603872404, + -0.15573606641942334, + -0.10275359193996214, + -0.05994572462470722, + -0.027986473890556626, + -0.007378741365815469, + 0.001553610166912578, + -0.001329135721350072, + -0.015980345696319925, + -0.042167772097867706, + -0.07947721562608617, + -0.12731905751368552, + -0.18493755816818197, + -0.2514227756385905, + -0.3257249159455917, + -0.406670888961728, + -0.4929828087456978, + -0.5832981465684729, + -0.6761912188083408, + -0.770195670834892, + -0.8638276022994833, + -0.9556089691329688, + -1.0440908931852508, + -1.1278765119017482, + -1.2056430076827653, + -1.2761624695093308, + -1.3383212578359154, + -1.3911375673537376, + -1.4337769106492573, + -1.4655652785717654, + -1.4859997697627303, + -1.4947565217131982, + -1.4916958182714615, + -1.4768642930527855, + -1.4504941940021479, + -1.412999720707862, + -1.3649704922293624, + -1.3071622484550742, + -1.2404849316356121, + -1.165988336053433, + -1.0848455521434768, + -0.9983344661578021, + -0.907817607139634, + -0.814720659029066, + -0.7205099767784552, + -0.626669461062026, + -0.5346771562785602, + -0.445981940911082, + -0.3619806778509106, + -0.283996185038286, + -0.21325637383645138, + -0.15087488413908084, + -0.09783352160653667, + -0.054966774007693786, + -0.022948650852356575, + -0.002282053861854913, + 0.00670915408829989, + 0.003885256476130139, + -0.0107071134569839, + -0.0368357081438081, + -0.07408632837732895, + -0.12186935548326018, + -0.1794290499618708, + -0.24585546995514163, + -0.32009882157648606, + -0.4009860147913352, + -0.48723916375104914, + -0.5774957398197212, + -0.6703300594683645, + -0.764275768159179, + -0.8578489656364529, + -0.9495716079235366, + -1.03799481696324, + -1.1217217302937783, + -1.1994295304082128, + -1.2698903063799774, + -1.3319904187563611, + -1.3847480623212003, + -1.4273287497536515, + -1.4590584719956792, + -1.4794343277812894, + -1.488132454694105, + -1.4850131366750223, + -1.4701230074319038, + -1.4436943150022175, + -1.4061412590667783, + -1.3580534587775588, + -1.300186654115527, + -1.2334507874237377, + -1.1588956530773191, + -1.077694341603167, + -0.9911247393459418, + -0.9005493754415183, + -0.8073939339222259, + -0.7131247698328762, + -0.6192257839399569, + -0.5271750207344965, + -0.4384213587917617, + -0.35436166109568945, + -0.27631874567863596, + -0.2055205239962154, + -0.14308063603408622, + -0.08998088754492321, + -0.04705576638985534, + -0.014979282170900762, + 0.005745663298497294, + 0.01479520705068206, + 0.012029632471587295, + -0.0025044272895539815, + -0.028574724757551268, + -0.06576706081750712, + -0.11349181688705477, + -0.1709932535586007, + -0.23736142906601893, + -0.31154654961495687, + -0.39237552526247627, + -0.47857047025199717, + -0.5687688560395254, + -0.6615449991878798, + -0.7554325452513827, + -0.8489475940659157, + -0.9406121017467379, + -1.028977190328461, + -1.1126459974410823, + -1.1902957056692847, + -1.2606984041785796, + -1.3227404536076972, + -1.3754400488322727, + -1.4179627026230293, + -1.449634406013587, + -1.469952257829676, + -1.4785923957464595, + -1.475415103796373, + -1.4604670157788546, + -1.433980379822898, + -1.3963693957008587, + -1.3482236826561595, + -1.2902989807611691, + -1.223505232450278, + -1.1488922321902606, + -1.0676330705992743, + -0.9810056341134996, + -0.8903724519598221, + -0.7971592082619399, + -0.7028322581560278, + -0.6088755024999128, + -0.5167669858757642, + -0.427955586950207, + -0.34383816879802925, + -0.2657375495428996, + -0.19488164073143052, + -0.13238408244063987, + -0.07922668051417542, + -0.03624392290415379, + -0.004109819303574749, + 0.016672728383108487, + 0.02577985709720368, + 0.023071850133757704, + 0.008595340551116784, + -0.017417424266412337, + -0.054552245294862606, + -0.10221950404263956, + -0.1596634611928971, + -0.22597417507031586, + -0.3001018519711409, + -0.3808734020434153, + -0.4670109396211972, + -0.5571519362510682, + -0.6498707085863875, + -0.7437009022719829, + -0.8371586172346446, + -0.9287658096800007, + -1.0170736017333284, + -1.1006851311147803, + -1.1782775804996537, + -1.2486230391438196, + -1.3106078677765236, + -1.3632502613636501, + -1.405715732766386, + -1.4373302731085367, + -1.4575909813060868, + -1.4661739951244732, + -1.4629395986863667, + -1.4479344258813325, + -1.42139072492854, + -1.3837226956904134, + -1.335519957500518, + -1.277538250521249, + -1.210687517277143, + -1.1360175523247174, + -1.0547014463720499, + -0.9680170859455324, + -0.8773270003618032, + -0.7840568738345053, + -0.6896730615895523, + -0.5956594645744776, + -0.5034941274611326, + -0.414625929006203, + -0.3304517323740038, + -0.2522943557779293, + -0.18138171085414662, + -0.11882743776915157, + -0.06561334245628683, + -0.02257391295723933, + 0.00961684094555304, + 0.030456017258154014, + 0.039619752832519076, + 0.036968330874248403, + 0.02254838435232724, + -0.0034078394382379, + -0.04048614156268794, + -0.08809690361882562, + -0.14548438637895972, + -0.21173864825707694, + -0.28580989563832776, + -0.3665250387599771, + -0.45260619204507546, + -0.5426908271293214, + -0.6353532607551606, + -0.7291271386564795, + -0.8225285608486557, + -0.9140794836263808, + -1.0023310292036345, + -1.0858863353897115, + -1.1634225849485944, + -1.2337118672248275, + -1.2956405430363032, + -1.3482268074376504, + -1.3906361733786554, + -1.4221946320717809, + -1.4423992825215817, + -1.4509262625819952, + -1.4476358564641347, + -1.4325746981460665, + -1.4059750359353356, + -1.368251069782783, + -1.3199924191101493, + -1.2619548241683207, + -1.1950482275700138, + -1.120322423959962, + -1.0389505041345675, + -0.9522103547079914, + -0.8614645050851837, + -0.7681386395679323, + -0.6736991134700925, + -0.5796298278271756, + -0.4874088273991385, + -0.398484991030154, + -0.31425518197272384, + -0.23604221852791418, + -0.16507401241987338, + -0.10246420390263057, + -0.049194598997349, + -0.006099685833228938, + 0.026146525719558236, + 0.0470411335794924, + 0.0562602745110299, + 0.05366423163228565, + 0.03929963782480109, + 0.013398740296151498, + -0.02362426210638631, + -0.07117975106768468, + -0.12851198744750764, + -0.19471102974692117, + -0.268727084438514, + -0.34938706184667606, + -0.4354130764814992, + -0.5254426000656691, + -0.6180499494287377, + -0.7117687703914037, + -0.8051151630562484, + -0.8966110838051082, + -0.9848076549382294, + -1.0683080143519728, + -1.1457893448970249, + -1.2160237360047286, + -1.2778975485797206, + -1.33042897776328, + -1.3727835365915948, + -1.404287216363781, + -1.4244371161708835, + -1.4329093739533232, + -1.429564274008626, + -1.4144484504011985, + -1.3877941515249352, + -1.3500155774169484, + -1.3017023475853076, + -1.2436102023669147, + -1.1766490844606368, + -1.1018687885973626, + -1.020442405659696, + -0.9336478223475884, + -0.8428475681521035, + -0.7494673274607782, + -0.6549734556732423, + -0.5608498539111713, + -0.4685745670201218, + -0.3795964739300712, + -0.29531243797904116, + -0.21704527755387798, + -0.14602290446405097, + -0.08335895904946153, + -0.03003524741661799, + 0.013113742219794292, + 0.04541399990427407, + 0.06636262346997093, + 0.07563574959598464, + 0.07309366131518291, + 0.05878299142391784, + 0.032935987044613896, + -0.0040331530604387905, + -0.051534810661519326, + -0.1088132467030526, + -0.17495851977117552, + -0.24892083642338816, + -0.3295271070688587, + -0.41549944630256397, + -0.5054753259321155, + -0.5980290628716219, + -0.6916943030263555, + -0.7849871465835889, + -0.8764295500095567, + -0.9645726356894312, + -1.0480195416037035, + -1.1254474506876226, + -1.1956284524567455, + -1.2574489079000906, + -1.3099270122431124, + -1.3522282786063955, + -1.3836786983731308, + -1.4037753707184313, + -1.4121944336667624, + -1.4087961715996795, + -1.3936272186655527, + -1.3669198233421498, + -1.3290881857503598, + -1.2807219254821818, + -1.2225767829582017, + -1.1555627009610447, + -1.0807294743051776, + -0.9992501939567184, + -0.9124027466990506, + -0.8215496621070328, + -0.7281166246514783, + -0.633569989815558, + -0.5393936588039249, + -0.44706567654549256, + -0.35803492205353593, + -0.2736982587493183, + -0.1953785051027076, + -0.1243035730063438, + -0.061587102882922615, + -0.008210900921786626, + 0.03499054457913707, + 0.06734322358166886, + 0.08834423383617127, + 0.09766971193904299, + 0.09517994084047951, + 0.08092155325416762, + 0.05512679622002023, + 0.01820986841780846, + -0.029239612005105706, + -0.08646590607570932, + -0.15255907246246975, + -0.2264693178051148, + -0.30702355259496905, + -0.3929438915092387, + -0.48286780643757254, + -0.575369614376215, + -0.668982961312615, + -0.7622239475157406, + -0.8536145295338, + -0.9417058298337988, + -1.0251009864780036, + -1.102477182483311, + -1.1726065074471497, + -1.2343753224399863, + -1.2868018227687803, + -1.3290515216356678, + -1.3604504105052466, + -1.3804955886340426, + -1.3888631941278455, + -1.385413511449435, + -1.3701931748283878, + -1.3434344328236192, + -1.3055514856371766, + -1.2571339529419514, + -1.1989375752394926, + -1.1318722953933802, + -1.0569879082989984, + -0.9754575050031964, + -0.8885589723703335, + -0.7976548400553806, + -0.7041707926099824, + -0.6095731855981255, + -0.5153459203047852, + -0.42296704173938887, + -0.33388542899549933, + -0.24949794557460858, + -0.1711274100267865, + -0.10000173432514943, + -0.037234558972375, + 0.016192309762030038, + 0.05944438350033168, + 0.09184765212431596, + 0.11289921330441588, + 0.12227520355719591, + 0.11983590575311004, + 0.1056279525261779, + 0.0798835908366199, + 0.043017019284595726, + -0.00438214406197214, + -0.061558160309621496, + -0.1276010882060482, + -0.20146113447041222, + -0.28196520967338323, + -0.36783542857147744, + -0.45770926313317034, + -0.5501610304339462, + -0.6437243765401889, + -0.7369154017999944, + -0.8282560628403015, + -0.9162974822072665, + -0.9996427980415233, + -1.0769691934388383, + -1.1470487580752158, + -1.208767853099787, + -1.2611446738981056, + -1.3033447337506419, + -1.3346940242003524, + -1.3546896445821286, + -1.3630077330800208, + -1.3595085742350226, + -1.344238802354781, + -1.3174306660763313, + -1.2794983656797063, + -1.23103152091573, + -1.172785872363884, + -1.105671362965504, + -1.0307377876935777, + -0.9491582376727414, + -0.8622105998450476, + -0.7712574039429415, + -0.6777243345957189, + -0.5830777474443485, + -0.48880154385149566, + -0.3963737689036965, + -0.30724330177189674, + -0.2228070060346537, + -0.14438770031925008, + -0.07321329667553664, + -0.010397435683233966, + 0.04307807631121281, + 0.0863787508532003, + 0.11883057774780545, + 0.13993065458882065, + 0.14935511781620475, + 0.1469642502238282, + 0.13280468436924125, + 0.10710866713625718, + 0.07029039704873999, + 0.022939492098304495, + -0.03418830889790472, + -0.10018306476362808, + -0.17399498229403734, + -0.25445097213585516, + -0.34027314912137063, + -0.43009898529524204, + -0.5225027978086773, + -0.616018232803708, + -0.7091613907039986, + -0.8004542282121593, + -0.8884478679496381, + -0.9717454481330711, + -1.0490241519333416, + -1.1190560691015652, + -1.1807275608622558, + -1.2330568226761007, + -1.27520936789873, + -1.306511188148161, + -1.3264593828342324, + -1.334730090215806, + -1.3311835949087416, + -1.3158665312954874, + -1.289011148087695, + -1.2510316456399857, + -1.2025176437777478, + -1.1442248831549784, + -1.077063306787378, + -1.0020827097223268, + -0.9204561831586588, + -0.8334616141124429, + -0.7424615323904629, + -0.6488816226958917, + -0.5541882407439229, + -0.45986528797085724, + -0.3673908095372279, + -0.27821368468740354, + -0.19373077707402758, + -0.11526490539782872, + -0.0440439817821868, + 0.01881835311966358, + 0.07234029288798657, + 0.11568734899486435, + 0.14818551117203432, + 0.16933187694016724, + 0.17880258266612825, + 0.17645791107077563, + 0.16234449463868217, + 0.13669458018080882, + 0.09992236614816931, + 0.05261747045971801, + -0.004464368139970976, + -0.07041320854743426, + -0.14417925763031916, + -0.22458942610772872, + -0.3103658288842193, + -0.4001459380768048, + -0.4925040709088204, + -0.5859738735945117, + -0.6790714466296947, + -0.7703187467890427, + -0.8582668967656526, + -0.941519034847935, + -1.0187523442786297, + -1.0887389148807403, + -1.1503651079502961, + -1.2026491190194495, + -1.2447564615152482, + -1.2760131271271447, + -1.2959162153362533, + -1.3041418644727447, + -1.3005503592235814, + -1.2851883340422552, + -1.2582880377114658, + -1.2202636706567829, + -1.1717048527744178, + -1.1133673247890887, + -1.0461610297870942, + -0.9711357628866779, + -0.8894646153570978, + -0.8024254742849667, + -0.7113808695473806, + -0.6177564859176421, + -0.5230186791813469, + -0.42865135084503436, + -0.33613254613922317, + -0.24691114437844144, + -0.1623840092849259, + -0.08387395962934467, + -0.012608907604919783, + 0.05029750606537277, + 0.10386347489217408, + 0.14725451027822406, + 0.1797966018857128, + 0.20098684716596288, + 0.21050138241647365, + 0.20820049028894083, + 0.19413080319882042, + 0.16852456788799217, + 0.13179598273853865, + 0.08453466560040648, + 0.02749635514941029, + -0.03840900757966009, + -0.11213162952308035, + -0.19249842146858664, + -0.27823149838940786, + -0.36796833247074023, + -0.460283241004418, + -0.553709870272779, + -0.6467643208398921, + -0.7379685495483694, + -0.8258736791595798, + -0.9090828480300751, + -0.9862732394699164, + -1.0562169433701116, + -1.1178003210943321, + -1.170041568242409, + -1.2121061983089576, + -1.243320203050874, + -1.2631806820165257, + -1.2713637736034342, + -1.2677297625657804, + -1.2523252834241747, + -1.2253825850283147, + -1.1873158678707503, + -1.1387147519146064, + -1.0803349779513733, + -1.0130864891341884, + -0.9380190806476787, + -0.8563058438276911, + -0.7692246658273707, + -0.6781380765902782, + -0.5844717609560306, + -0.4896920747763473, + -0.395282919623818, + -0.302722340794935, + -0.21345921767052184, + -0.12889041403853707, + -0.05033874873551086, + 0.020967865979694397, + 0.08391578931852606, + 0.13752321472609902, + 0.18095565353948695, + 0.21353909535560978, + 0.2347706375604679, + 0.24432641638641522, + 0.24206671441996286, + 0.22803816401151927, + 0.20247301183801958, + 0.16578545621667018, + 0.11856511493266937, + 0.061567726597099956, + -0.004296767819937972, + -0.07797857531934765, + -0.15830460675305444, + -0.24399697715869306, + -0.333693158785904, + -0.4259674689905528, + -0.5193535541194263, + -0.6123675148001968, + -0.7035313079395785, + -0.7913960563627989, + -0.8745648984900283, + -0.9517150176953795, + -1.0216185039332268, + -1.0831617186306877, + -1.1353628574510843, + -1.177387433952372, + -1.2085614399546456, + -1.2283819750695666, + -1.2365251777576314, + -1.232851332836024, + -1.217407074888285, + -1.1904246528269025, + -1.152318267207192, + -1.1036775380548207, + -1.0452582062238782, + -0.977970214930045, + -0.9028633594202797, + -0.8211107310927956, + -0.7339902171628744, + -0.6428643476361078, + -0.5491588074140458, + -0.4543399524106927, + -0.35989168426031914, + -0.26729204832134923, + -0.1779899240359491, + -0.09338217525375592, + -0.014791620872888087, + 0.056553826786317346, + 0.11954052687405989, + 0.17318667277413108, + 0.21665777576262416, + 0.24927982537544502, + 0.2705499189374026, + 0.28014419262008416, + 0.27792292894921694, + 0.2639327602145164, + 0.2384059330322891, + 0.20175664565914386, + 0.1545745158199903, + 0.09761528206550962, + 0.031788885305613426, + -0.04185488152081504, + -0.12214292932592405, + -0.20779737320719688, + -0.297455685474079, + -0.38969218354231766, + -0.48304051381823565, + -0.5760167769894682, + -0.6671429300221743, + -0.7549700958009266, + -0.8381014128050991, + -0.9152140644682948, + -0.9850801408039067, + -1.0465860032982675, + -1.098749847673698, + -1.1407371875468537, + -1.1718740147967392, + -1.1916574290937103, + -1.199763568956917, + -1.1960527192620571, + -1.1805715146510654, + -1.1535522040948205, + -1.1154089882068832, + -1.0667314870711175, + -1.0082754415996633, + -0.9409507950660327, + -0.8658073427752475, + -0.7840181761831768, + -0.6968611825629429, + -0.6056988919776816, + -0.5119569893867082, + -0.41710183076076546, + -0.32261731779196867, + -0.229981495895971, + -0.14064324457199923, + -0.05599942772681511, + 0.022627135684595262, + 0.09400853328509189, + 0.15703112416813836, + 0.21071310166062274, + 0.2542199769821718, + 0.2868777396121559, + 0.3081834868191112, + 0.3178133547182471, + 0.31562762577907383, + 0.301672932235196, + 0.27618152064690865, + 0.23956758921497526, + 0.19242075560833108, + 0.13549675832192418, + 0.06970553821006666, + -0.003903111843837223, + -0.08415610280736871, + -0.16977554983344106, + -0.25939892528685, + -0.3516005466386037, + -0.44491406034976533, + -0.5378555671631136, + -0.6289470240996113, + -0.716739554098712, + -0.7998362956945567, + -0.8769144323754023, + -0.9467460542088684, + -1.0082175227358334, + -1.060347033732852, + -1.1023001008709847, + -1.133402716083275, + -1.1531519790940692, + -1.161224028476432, + -1.157479149159925, + -1.141963975840256, + -1.1149107575419204, + -1.0767336949318749, + -1.028022408147655, + -0.9695326381546641, + -0.9021743282797413, + -0.8269972738809361, + -0.7451745664673161, + -0.6579840933646659, + -0.5667883846893693, + -0.4730131254533662, + -0.3781246716801571, + -0.2836069251143445, + -0.1909379312239013, + -0.10156656956060393, + -0.016889704083582598, + 0.06176984620006987, + 0.13318416886112955, + 0.19623962294095454, + 0.24995440171480865, + 0.2934940163503119, + 0.326184456275182, + 0.34752281870636703, + 0.35718523970753135, + 0.3550320016968186, + 0.34110973685650564, + 0.31565069169565957, + 0.27906906436397827, + 0.2319544724793678, + 0.1750626544859151, + 0.10930355118707627, + 0.035726955415393044, + -0.044494043847211284, + -0.1300815618040891, + -0.21967307087052987, + -0.3118428885676911, + -0.40512466140719383, + -0.49803449018186385, + -0.5890943319625961, + -0.6768553097386851, + -0.7599205620941865, + -0.8369672725668755, + -0.9067675312744865, + -0.9682076998071808, + -1.0203059739907747, + -1.0622278675457844, + -1.0932993724544549, + -1.113017588490297, + -1.1210586542754188, + -1.1172828547882596, + -1.1017368247733685, + -1.0746528133039444, + -1.0364450210957328, + -0.9877030683345793, + -0.9291826960343369, + -0.8617938475702133, + -0.7865863183485566, + -0.7047331999264984, + -0.6175123796780116, + -0.5262863877670854, + -0.4324809092535438, + -0.337562300208785, + -0.24301446242485733, + -0.15031544141750475, + -0.06091411678575288, + 0.023792647464038516, + 0.1024820322776111, + 0.17392612517834083, + 0.23701128516072956, + 0.29075570545308355, + 0.33432489717630787, + 0.367044849711341, + 0.3884126602286062, + 0.3981044647451682, + 0.39598054563281265, + 0.3820875350275305, + 0.3566576793922071, + 0.32010517683035244, + 0.27301964491393127, + 0.21615682204119588, + 0.15042664896977181, + 0.07687891848666487, + -0.0033132804720615514, + -0.08887206315527318, + -0.1784349020233148, + -0.2705761146427732, + -0.3638293475704431, + -0.4567107016441304, + -0.5477421339797877, + -0.635474767611731, + -0.7185117411685992, + -0.7955302382327613, + -0.8653023489665687, + -0.9267144350045429, + -0.9787846922171103, + -1.0206786343688101, + -1.0517222534861115, + -1.071412649386493, + -1.0794259607360304, + -1.0756224725570114, + -1.060048819637693, + -1.0329372510948938, + -0.9947019676878011, + -0.9459325896457953, + -0.8873848580260488, + -0.819968716246926, + -0.7447339597578033, + -0.6628536801587164, + -0.5756057648668175, + -0.48435274408874496, + -0.39052030292709394, + -0.2955747974957471, + -0.20100012962906363, + -0.1082743448853237, + -0.018846322905896447, + 0.06588707226077715, + 0.144603021518255, + 0.21607361234824787, + 0.27918520370331223, + 0.33295598876996013, + 0.37655147862741245, + 0.4092976626151372, + 0.43069163786211717, + 0.44040954034415625, + 0.43831165239177416, + 0.4244446060998658, + 0.3990406478903158, + 0.36251397582578726, + 0.31545420743742414, + 0.2586170810827406, + 0.19291253747869727, + 0.11939036937206382, + 0.03922366565842813, + -0.04630968895117008, + -0.13584716695755367, + -0.2279630859672851, + -0.32119109257702094, + -0.41404728766431315, + -0.5050536283849247, + -0.5927612378127228, + -0.6757732546159492, + -0.7527668624165165, + -0.822514151415811, + -0.8839014832878465, + -0.9359470539418049, + -0.9778163771814277, + -1.0088354450719752, + -1.0285013574697834, + -1.036490253079507, + -1.0326624169620056, + -1.017064483944, + -0.989928703180675, + -0.951669275469393, + -0.9028758210777066, + -0.844304081100735, + -0.7768639989948638, + -0.7016053702472261, + -0.619701286495703, + -0.5324296351947488, + -0.44115294658853554, + -0.34729690581711825, + -0.2523278690317349, + -0.15772973810398314, + -0.06498055862885752, + 0.024470789715156538, + 0.10922744284293409, + 0.1879665816209951, + 0.2594602934945911, + 0.32259493737971723, + 0.37638870642654126, + 0.42000711167804006, + 0.452776142437481, + 0.4741928957976471, + 0.4839335076984582, + 0.481858260434575, + 0.46801378606513405, + 0.44263233097633886, + 0.4061280931953298, + 0.359090690217871, + 0.3022758603661275, + 0.23659354432198101, + 0.16309353479686206, + 0.08294892065147243, + -0.0025624134381844396, + -0.09207794000739447, + -0.1841719766974535, + -0.27737817013965094, + -0.3702126212460757, + -0.461197287206909, + -0.5488832911299061, + -0.6318737717175997, + -0.7088459126258421, + -0.7785718040901146, + -0.8399378078179722, + -0.8919621197525053, + -0.9338102537308639, + -0.9648082018518251, + -0.9844530640050525, + -0.9924209789284935, + -0.9885722317161068, + -0.9729534572276199, + -0.9457969046511538, + -0.9075167748169457, + -0.8587026880250479, + -0.8001103854033657, + -0.7326498104404822, + -0.6573707586561868, + -0.5754463217204977, + -0.48815438712000614, + -0.39685748513100394, + -0.30298130092537706, + -0.20799219068600383, + -0.11337405631635415, + -0.020604943443089305, + 0.06886626822390657, + 0.15364271456799783, + 0.23240157642482331, + 0.3039149412081862, + 0.36706916780317844, + 0.42088244932892666, + 0.46452029679765217, + 0.4973086994818815, + 0.5187447544439037, + 0.5285045975931374, + 0.5264485111938031, + 0.5126231272748147, + 0.48726069219226653, + 0.45077540394324656, + 0.403756879993548, + 0.34696085863544457, + 0.28129728052132286, + 0.20781593833292583, + 0.12768992090155884, + 0.04219711287378102, + -0.04729995831510904, + -0.1393756103353932, + -0.2325634898473129, + -0.3253796977919535, + -0.41634619138814627, + -0.5040140937726748, + -0.5869865436765569, + -0.6639407247840434, + -0.7336487273588472, + -0.7949969131369723, + -0.8470034780895359, + -0.8888339360818079, + -0.9198142792404755, + -0.9394416074828902, + -0.9473920595747469, + -0.9435259206376005, + -0.9278898255586422, + -0.9007160235533231, + -0.8624187154790526, + -0.8135875216631336, + -0.7549781832604414, + -0.6875006437865882, + -0.6122046987879006, + -0.5302634399611184, + -0.44295475481946367, + -0.3516411736657594, + -0.25774838169816294, + -0.16274273512585752, + -0.0681081358783426, + 0.024677370391803403, + 0.11416490394889249, + 0.19895760065018053, + 0.27773264130574316, + 0.34926211330397894, + 0.4124323755044129, + 0.46626162100105706, + 0.5099153607806685, + 0.5427195840907773, + 0.5641713879686985, + 0.5739469082989626, + 0.5719064273210663, + 0.558096577039251, + 0.5327496037850932, + 0.49627970553126477, + 0.4492764997192564, + 0.392495724617261, + 0.32684732085331886, + 0.2533810810854258, + 0.173270094120908, + 0.08779224458281804, + -0.0016899401173969854, + -0.09375077767337048, + -0.1869239147689848, + -0.279725452368442, + -0.37067734771364635, + -0.45833072396452335, + -0.5412887198749599, + -0.6182285191521081, + -0.6879222120824644, + -0.7492561604246525, + -0.8012485601720495, + -0.8430649252124194, + -0.8740312476946497, + -0.8936446275583527, + -0.9015812035911828, + -0.8977012609365834, + -0.8820514345035634, + -0.8548639735292579, + -0.8165530788927229, + -0.7677083709426358, + -0.709085590855003, + -0.6415946821670189, + -0.5662854404459847, + -0.48433095740970533, + -0.39700912059222276, + -0.30568246031704344, + -0.21177666180287968, + -0.11675808127979898, + -0.02211062069755111, + 0.07068767427097307, + 0.1601879238697255, + 0.244993263936289, + 0.3237808752605206, + 0.39532284521090283, + 0.45850553262730365, + 0.5123471305840195, + 0.556013150048499, + 0.5888295802487976, + 0.6102935182029117, + 0.6200810997762072, + 0.6180526071891727, + 0.6042546724271088, + 0.578919541802769, + 0.5424614132700427, + 0.4954699042519755, + 0.4387007529982324, + 0.37306390011855833, + 0.2996091382525915, + 0.21950955618966228, + 0.13404303853458638, + 0.04457211268106091, + -0.047477539082237674, + -0.14063956345685058, + -0.23343006142461192, + -0.32437099024503363, + -0.4120134730951009, + -0.4949606487460666, + -0.5718897009220116, + -0.6415727199264791, + -0.7028960675348017, + -0.7548779397575185, + -0.7966838504986689, + -0.8276397919236897, + -0.8472428639886198, + -0.8551692054973954, + -0.8512791016096412, + -0.8356191872503924, + -0.8084217116726602, + -0.7701008757714054, + -0.7212462999109668, + -0.6626137252830466, + -0.5951130954401003, + -0.5197942059647995, + -0.43783014859025343, + -0.3504988108656931, + -0.2591627231295686, + -0.16524757061564527, + -0.07021970956841908, + 0.02443695804761441, + 0.1172443865448618, + 0.20675369615301392, + 0.29156802269510707, + 0.3703645469469792, + 0.4419153562631019, + 0.5051068094694114, + 0.5589570996261404, + 0.6026317376871265, + 0.6354567128667983, + 0.6569291221696955, + 0.6667251014478122, + 0.6647049329083377, + 0.6509152485234411, + 0.6255882945928475, + 0.5891382690576197, + 0.5421547893278621, + 0.48539359364056484, + 0.419764622592957, + 0.34631766881229376, + 0.2662258210755263, + 0.18076696397533099, + 0.09130362489324016, + -0.0007385138943104379, + -0.09389309910031106, + -0.18667623171850828, + -0.2776098690199599, + -0.36524513419333815, + -0.4481851660211272, + -0.5251071482389829, + -0.5947831711612521, + -0.6560995965744574, + -0.7080746205000237, + -0.7498737568528804, + -0.7808229978091938, + -0.8004194433355135, + -0.808339232246222, + -0.804442649711322, + -0.7887763306660809, + -0.7615725243736733, + -0.7232454317389297, + -0.6743846731361743, + -0.6157459897668462, + -0.5482393251929769, + -0.47291447500696177, + -0.39094453095120263, + -0.30360738058407366, + -0.21226555425333468, + -0.11834473720191271, + -0.02331128568316629, + 0.07135089832950109, + 0.16416376913986586, + 0.25367844696919095, + 0.33849806763186596, + 0.41729981189529036, + 0.4888557671057773, + 0.5520522920810274, + 0.6059075798734932, + 0.6495871414290357, + 0.6824169659542537, + 0.7038941504460121, + 0.7136948307488014, + 0.7116792890624067, + 0.6978941573516657, + 0.6725716819090639, + 0.63612606066868, + 0.5891469110336356, + 0.5323899712341317, + 0.46676518186063554, + 0.3933223355337311, + 0.31323452102378063, + 0.22777962291739445, + 0.13832016858970705, + 0.0462818403111884, + -0.04686900863750029, + -0.13964847925593238, + -0.23057852882085686, + -0.31821028052652417, + -0.40114687316105924, + -0.4780654904654077, + -0.5477382227595192, + -0.6090514318350128, + -0.6610233137182853, + -0.7028193823293161, + -0.733765629849019, + -0.7533591562487484, + -0.7612761003475137, + -0.7573767473197598, + -0.7417077321051436, + -0.714501303971107, + -0.6761716638266526, + -0.6273084320500637, + -0.5686673498466486, + -0.5011583607823448, + -0.42583126045316766, + -0.3438591406050688, + -0.25651988879993726, + -0.16517603538878545, + -0.0712532656175553, + 0.023782064257050303, + 0.11844605225883409, + 0.21126065268855654, + 0.30077698576467105, + 0.3855981872992815, + 0.4644014380571937, + 0.5359588253822514, + 0.5991567080898511, + 0.6530132792303638, + 0.6966940497475893, + 0.7295250088462695, + 0.7510032535214943, + 0.7608049196160529, + 0.7587902893281416, + 0.7450059946211762, + 0.7196842817863944, + 0.6832393487565654, + 0.6362608129337098, + 0.5795044125471049, + 0.5138800881864163, + 0.4404376324714534, + 0.3603501341721137, + 0.2748954778742091, + 0.1854361909526369, + 0.09339795567743356, + 0.00024712532944510743, + -0.09253240109100329, + -0.18346258086066805, + -0.2710945371736761, + -0.3540314088178873, + -0.4309503795335078, + -0.5006235396400777, + -0.5619372509284942, + -0.6139097094244277, + -0.6557064290470107, + -0.6866534019760424, + -0.7062477281817021, + -0.7141655464817693, + -0.7102671420493326, + -0.6945991498225328, + -0.667393819067164, + -0.6290653506905137, + -0.5802033650690485, + -0.521563603406209, + -0.4540560092656233, + -0.3787303782412041, + -0.2967598020764346, + -0.20942216833105756, + -0.11808000735338914, + -0.02415900438678926, + 0.07087448431500876, + 0.16553655677853873, + 0.25834916730792223, + 0.347863436124339, + 0.43268249904331313, + 0.5114835368329674, + 0.5830386368407248, + 0.6462341578856898, + 0.700088293021839, + 0.7437665531967711, + 0.7765949276192492, + 0.7980705132884491, + 0.8078694460513456, + 0.8058520081104783, + 0.7920648314337004, + 0.7667401623167145, + 0.730292198697058, + 0.6833105579815528, + 0.6265509784043378, + 0.5609234005599864, + 0.4874776170735272, + 0.4073867167202028, + 0.3219285840911315, + 0.2324657465667789, + 0.14042388642262907, + 0.047269356945332686, + -0.04551394285903457, + -0.13644797026108993, + -0.22408384844897897, + -0.3070247162042178, + -0.38394775726100355, + -0.45362506193235863, + -0.5149429920025581, + -0.5669197434905637, + -0.6087208303087269, + -0.6396722446300902, + -0.6592710864177436, + -0.6671934944823419, + -0.6632997539896885, + -0.6476364998705928, + -0.6204359813833902, + -0.5821123994277562, + -0.5332553743724033, + -0.4746206474128427, + -0.4071181621049677, + -0.3317977140345316, + -0.24983239493697706, + -0.1625000923634578, + -0.07116333665392321, + 0.022752186956720863, + 0.11778012222330109, + 0.21243656718121273, + 0.30524347614329117, + 0.3947519693400582, + 0.4795651825959926, + 0.5583602966885886, + 0.629909398974335, + 0.6930988482819085, + 0.7469468376749315, + 0.7906188781107589, + 0.8234409588079643, + 0.8449101767755431, + 0.8547026678705989, + 0.8526787143058492, + 0.8388849480594078, + 0.8135536154374372, + 0.7770989143879139, + 0.7301104623283785, + 0.6733439975036954, + 0.607709460519372, + 0.5342566440113891, + 0.4541586367659239, + 0.3686933233854598, + 0.2792232312618848, + 0.18717404268222937, + 0.09401211094429902, + 0.001221335066277987, + -0.0897202422110687, + -0.1773637440635351, + -0.2603123092607749, + -0.3372431215248287, + -0.4069282711563846, + -0.46825411992740695, + -0.5202388638444422, + -0.5620480168070929, + -0.5930075709756427, + -0.6126146263003739, + -0.6205453215789664, + -0.6166599419641552, + -0.6010051223735273, + -0.5738131120520802, + -0.5354981118860901, + -0.48664974223070545, + -0.42802374426788387, + -0.3605300615395832, + -0.2852184896174208, + -0.2032621202232867, + -0.1159388408940066, + -0.02461118195537016, + 0.0692951713721674, + 0.16431386285800129, + 0.25896099055220445, + 0.35175850878199333, + 0.44125753779288135, + 0.5260612134242221, + 0.6048467164686528, + 0.6763861342979662, + 0.7395658257559883, + 0.7934039839216983, + 0.8370661197680345, + 0.8698782225291686, + 0.8913373892299639, + 0.9011197557433308, + 0.8990856042979627, + 0.8852815668881013, + 0.8599398898361121, + 0.8234747711063437, + 0.7764758281327243, + 0.7196987991766063, + 0.6540536248603851, + 0.5805900978367402, + 0.5004813069088481, + 0.4150051366961412, + 0.325524114607574, + 0.2334639229473417, + 0.14029091503096003, + 0.04748898989394208, + -0.043463809705177846, + -0.13111860692481203, + -0.21407854051667174, + -0.291020794184773, + -0.3607174582116649, + -0.4220548943511998, + -0.4740512985915884, + -0.515872184814083, + -0.546843545160514, + -0.5664624795623541, + -0.5744051267985905, + -0.5705317720030993, + -0.554889050074471, + -0.5277092102386196, + -0.4894064533625303, + -0.4405703997820388, + -0.3819567906597233, + -0.31447556951794114, + -0.23917653190875993, + -0.15723276953394388, + -0.06992216991068129, + 0.02139273665541981, + 0.11528626496387091, + 0.2102920588044041, + 0.3049262162472912, + 0.39771069164056655, + 0.4871966052502561, + 0.5719870929363302, + 0.6507593355121146, + 0.722285420370572, + 0.7854517063764372, + 0.8392763866299863, + 0.8829249721254457, + 0.9157234521182247, + 0.9371689236547932, + 0.9469375226296846, + 0.944889531293346, + 0.9310715816618694, + 0.9057159200795157, + 0.8692367445328255, + 0.8222236724778864, + 0.7654324421984675, + 0.6997729943391864, + 0.6262951215752822, + 0.5461719127326481, + 0.46068125245357094, + 0.37118566816980936, + 0.27911084220872895, + 0.18592312790870028, + 0.09310642432820146, + 0.0021387742497018837, + -0.08553094546201431, + -0.16850587353502683, + -0.24546319364974575, + -0.3151749960650036, + -0.3765276425107754, + -0.42853932895102215, + -0.47037556924299023, + -0.5013623555042039, + -0.5209967876419064, + -0.5289550044105411, + -0.5250972909193774, + -0.5094702820423206, + -0.4823062269804754, + -0.4440193265759331, + -0.39519920113948453, + -0.33660159180842475, + -0.2691364420799372, + -0.1938535474808526, + -0.11192599968724203, + -0.024631686190756737, + 0.06666686272862635, + 0.1605439618965878, + 0.2555332551283803, + 0.3501508405205028, + 0.442918672447159, + 0.5323878712005747, + 0.6171615726672094, + 0.6959169576871647, + 0.7674261136794553, + 0.8305753995359124, + 0.8843830083835783, + 0.9280144512435748, + 0.9607957173985588, + 0.9822239039220396, + 0.991975146735887, + 0.9899097281179308, + 0.9760742801118004, + 0.9507010490894814, + 0.9142042330650351, + 0.8671734495225368, + 0.8103644367737701, + 0.7446871354913853, + 0.6711913383788946, + 0.5910501342904282, + 0.505541407896607, + 0.41602768665762985, + 0.3239346529298235, + 0.23072866008015588, + 0.13789360719613855, + 0.04690753708887079, + -0.04078067334767832, + -0.12377416281230433, + -0.20075011495603728, + -0.27048062000835765, + -0.3318520396696111, + -0.3838825698743357, + -0.42573772444992847, + -0.45674349548398585, + -0.47639698285380944, + -0.4843743252837187, + -0.48053580785282624, + -0.46492806540470644, + -0.4377833471099801, + -0.3995158537803012, + -0.3507152056957721, + -0.29213714396299517, + -0.2246916120482309, + -0.14942840544726713, + -0.06752061580498749, + 0.019753869417862134, + 0.11103251997275523, + 0.2048896507166274, + 0.29985890549660665, + 0.3944563824407452, + 0.48720403595491824, + 0.5766529863631327, + 0.6614063695839025, + 0.7401413664892216, + 0.8116300645307817, + 0.8747588226324687, + 0.9285458339535922, + 0.9721566095479126, + 1.0049171387307068, + 1.0263245186082837, + 1.0360548851353282, + 1.0339685206226485, + 1.0201120571469424, + 0.9947177411133845, + 0.9581997705693686, + 0.9111477630323686, + 0.854317456847556, + 0.7886187927212991, + 0.7151015633909041, + 0.6349388577442983, + 0.5494085604860524, + 0.45987319911059354, + 0.3677584560080148, + 0.2745306845798875, + 0.18167378394795064, + 0.09066579695797618, + 0.0029556005385309655, + -0.08005994397454289, + -0.15705802019759035, + -0.2268107183249942, + -0.2882044000219952, + -0.34025726118805, + -0.3821348156152592, + -0.41316305535589004, + -0.4328390802517953, + -0.44083902899164784, + -0.43702318661885686, + -0.42143818794120946, + -0.3943162820934638, + -0.356071669851159, + -0.3072939714582496, + -0.24873892798513114, + -0.1813164828617821, + -0.10607643154748153, + -0.02419186565078163, + 0.06305932740477235, + 0.15431461740723626, + 0.24814831925017805, + 0.3430940768178812, + 0.4376679882754243, + 0.5303920080659783, + 0.6198172565509581, + 0.7045468696863681, + 0.7832580283814286, + 0.8547228201256354, + 0.917827603880522, + 0.9715905728434797, + 1.0151772381061535, + 1.0479135890218378, + 1.0692967227350059, + 1.0790027752386666, + 1.0768920288820363, + 1.0630111157803088, + 1.037592282377226, + 1.001049726758957, + 0.9539730664817285, + 0.8971180399297818, + 0.8313945878484371, + 0.7578525030140821, + 0.6776648743537903, + 0.592109586611792, + 0.502549167321833, + 0.41040929891365746, + 0.3171563348283517, + 0.22427417422751414, + 0.13324085999672475, + 0.045505269104717985, + -0.03753573707265453, + -0.11455934211145673, + -0.1843376361658443, + -0.2457569808607438, + -0.29783557205490285, + -0.339738923499894, + -0.37079302720716123, + -0.39049498297773666, + -0.3985209294594127, + -0.3947311516544951, + -0.37917228432958927, + -0.35207657657823055, + -0.31385822913456995, + -0.2651068622011403, + -0.20657821680672092, + -0.13918223633953952, + -0.06396871621699446, + 0.017889251993994826, + 0.10511378091201029, + 0.19634234036704115, + 0.29014924529520303, + 0.38506813962301534, + 0.47961512155789293, + 0.5723121455854494, + 0.6617103321098082, + 0.7464128171295661, + 0.8250967815970878, + 0.8965343130446504, + 0.9596117704769539, + 1.0133473471343002, + 1.0569065541516802, + 1.0896153809258051, + 1.1109709246446249, + 1.1206493213446909, + 1.1185108534188593, + 1.1046021530261225, + 1.0791554666541405, + 1.0425849924330464, + 0.9954803479630545, + 0.9385972716726751, + 0.8728457043515734, + 0.7992754388204912, + 0.7190595640511588, + 0.6334759648321087, + 0.5438871687418573, + 0.451718858255038, + 0.35843738685773696, + 0.2655266537566602, + 0.17446470188216404, + 0.08670040824837322, + 0.0036306342763232635, + -0.0734218035643208, + -0.14322899538233663, + -0.20467730275696733, + -0.25678492150133847, + -0.2987173653210813, + -0.32980062618183603, + -0.3495318038384285, + -0.35758703689256505, + -0.3538266103003247, + -0.3382971587819754, + -0.3112309313845324, + -0.2730421287956238, + -0.22432037117116432, + -0.1658213994931546, + -0.09845515710296136, + -0.023271439371159997, + 0.05855666218273322, + 0.14575126022426776, + 0.23694982463061892, + 0.33072667038533615, + 0.42561544146232827, + 0.520132236116662, + 0.6127990088817866, + 0.7021668802094274, + 0.7868389861459699, + 0.8654925076918376, + 0.9368995324273226, + 0.9999464194054127, + 1.0536513619146382, + 1.0971798711383944, + 1.1298579365217813, + 1.1511826553013789, + 1.1608301635624028, + 1.1586607437465213, + 1.1447210280615594, + 1.1192432630441538, + 1.082641646873552, + 1.0355057971992263, + 0.978591452498782, + 0.9128085536113463, + 0.839206893406994, + 0.7589595609073007, + 0.6733444409503516, + 0.5837240611645171, + 0.4915241040742304, + 0.3982109232154614, + 0.30526841784490055, + 0.21417463094342754, + 0.12637843957525852, + 0.043276705211950706, + -0.033807755626663286, + -0.10364703299870093, + -0.1651274884326625, + -0.21726731769085594, + -0.2592320344281143, + -0.29034763055905927, + -0.3101112057875788, + -0.31819889866414885, + -0.3144709940935724, + -0.29897412674477075, + -0.2719405456133409, + -0.23378445133534134, + -0.18509546401499843, + -0.12662932458247078, + -0.05929597632749187, + 0.015854785431400606, + 0.09764986922665954, + 0.18481138777604242, + 0.27597681100912647, + 0.36972045396164505, + 0.46457596065984474, + 0.5590594294114095, + 0.6516928148023287, + 0.7410272373371409, + 0.825665833115206, + 0.9042857831896938, + 0.9756591751938475, + 1.0386723682337387, + 1.0923435556513694, + 1.135838248683185, + 1.1684824368278501, + 1.189773217375339, + 1.1993867264644722, + 1.197183246590622, + 1.1832094100154213, + 1.1576974633293864, + 1.1210616047657043, + 1.0738914520277976, + 1.0169427436477567, + 0.9511254205187541, + 0.8774892755654164, + 0.7972073978634994, + 0.7115576723056889, + 0.6219026265750822, + 0.5296679432509346, + 0.4363199759239792, + 0.34334262390600445, + 0.2522139302326549, + 0.16438277202304682, + 0.08124601080451768, + 0.0041264631519650485, + -0.06574796093725926, + -0.12726362293622895, + -0.1794387185517044, + -0.2214387613828337, + -0.2525897432883023, + -0.27238876391619876, + -0.2805119617610323, + -0.2768196216715496, + -0.26135837826048325, + -0.23436048046717745, + -0.1962401288713697, + -0.14758694352082785, + -0.08915666528929038, + -0.021859237409646667, + 0.0532555448562609, + 0.13501459009764002, + 0.2221400110889996, + 0.3132692778171452, + 0.4069767053747453, + 0.5017959378454065, + 0.5962430735941753, + 0.6888400672640805, + 0.7781380394172956, + 0.8627401262106656, + 0.9413235087551013, + 1.0126602747416515, + 1.0756367833342593, + 1.129271227932625, + 1.172729119831342, + 1.2053364485871616, + 1.2265903115483172, + 1.236166844911918, + 1.2339263312316966, + 1.2199154028277703, + 1.1943663063492367, + 1.1576932400879516, + 1.1104858218062321, + 1.053499790094589, + 0.9876450859055608, + 0.9139715022226582, + 0.8336521281807648, + 0.7479648487318562, + 0.6582721916182536, + 0.5659998394784389, + 0.47261414596278756, + 0.37959901044275746, + 0.2884324760135706, + 0.20056341985425508, + 0.11738870355160048, + 0.04023114374075208, + -0.029681349521049172, + -0.09123513764662548, + -0.14344841628260596, + -0.18548669896777087, + -0.21667597750057543, + -0.23651335146856034, + -0.24467495930563557, + -0.24102108579990467, + -0.22559836550338247, + -0.19863904729457343, + -0.16055733169226777, + -0.1119428386831379, + -0.053551309079996, + 0.013707313945530791, + 0.08878323519281252, + 0.1705033633124846, + 0.25758981114058843, + 0.34868004872557634, + 0.4423483912214129, + 0.5371284827735894, + 0.6315364218087955, + 0.724094163032293, + 0.813352827068152, + 0.8979155501352021, + 0.9764595134064401, + 1.0477568046352486, + 1.110693783047795, + 1.164288642106392, + 1.2077068931682224, + 1.2402745258523413, + 1.2614886375698036, + 1.2710253645804916, + 1.26874498950101, + 1.2546941447144182, + 1.2291050769327787, + 1.1923919845111637, + 1.145144485275063, + 1.0881183178783855, + 1.0222234233368508, + 0.948509594697455, + 0.8681499211586949, + 0.7824222877362677, + 0.6926892222361458, + 0.6003764073607087, + 0.5069501968241468, + 0.413894490061722, + 0.32268733023290097, + 0.2347775945810217, + 0.15156214475686725, + 0.0743637974599947, + 0.004410462812112131, + -0.05718422053534711, + -0.10943844816413331, + -0.15151773354848713, + -0.18274806842211228, + -0.20262655230770515, + -0.21082932357428844, + -0.20721666694493507, + -0.1918352169065837, + -0.16491722227256822, + -0.12687688349641718, + -0.078303820499566, + -0.019953774029166607, + 0.0472633128084749, + 0.12229764487843596, + 0.20397613089689867, + 0.29102088376572144, + 0.3820693735989492, + 0.4756959156171424, + 0.5704341540313, + 0.6648001873341993, + 0.7573159702973645, + 0.8465326236110418, + 0.9310532835604919, + 1.0095551313852065, + 1.0808102549051122, + 1.1437050134127142, + 1.197257600437125, + 1.2406335274022104, + 1.2731587839940293, + 1.2943304676904677, + 1.3038247148183848, + 1.3015018080614658, + 1.2874083798699467, + 1.261776677023199, + 1.2250208979435186, + 1.1777306605237943, + 1.1206617034855213, + 1.0547239679118752, + 0.9809672469176995, + 0.9005646297691059, + 0.8147940015495222, + 0.7250178901327244, + 0.6326619782893932, + 0.5391926198016133, + 0.4460937141728702, + 0.3548433046307554, + 0.2668902684868263, + 0.18363146746018116, + 0.10638971831913349, + 0.03639293125377788, + -0.025245255015734006, + -0.07754303600268052, + -0.11966592511243374, + -0.15093991400979942, + -0.17086210214851305, + -0.17910862782861856, + -0.17553977570412596, + -0.16020218019275523, + -0.13332809003855106, + -0.09533170562580325, + -0.04680264680649378, + 0.011503345741649088, + 0.07867632898199953, + 0.15366650784916142, + 0.2353007911292441, + 0.32230129179378764, + 0.41330548002662415, + 0.5068876711182625, + 0.601581509349826, + 0.6959030932843734, + 0.7883743777633679, + 0.8775464835474919, + 0.9620225469921846, + 1.040479749407448, + 1.1116901786835878, + 1.174540194183943, + 1.2280479895081933, + 1.2713790761508812, + 1.303859443868832, + 1.3249861902108613, + 1.3344354515748127, + 1.3320675107154132, + 1.317929000153961, + 1.2922521667410676, + 1.2554512089702883, + 1.2081157448058983, + 1.1510015130407765, + 1.0850184548294668, + 1.0112163633584892, + 0.9307683279656735, + 0.844952233806108, + 0.7551306088255285, + 0.6627291358661624, + 0.5692141687821133, + 0.47606960714897767, + 0.38477349426653246, + 0.2967747075184167, + 0.21347010869619704, + 0.13618251463998327, + 0.06613983561252006, + 0.004455710406616076, + -0.04788805641860017, + -0.0900569781958534, + -0.12137704651730091, + -0.14134536076393767, + -0.1496380591629346, + -0.14611542629535645, + -0.13082409650596077, + -0.10399631846579746, + -0.06604629248592456, + -0.0175636383451057, + 0.040695903352178, + 0.10782238964258714, + 0.1827660255341996, + 0.26435371988654766, + 0.3513075857448029, + 0.4422650933666177, + 0.5358005581159689, + 0.6304476243479369, + 0.7247223906991862, + 0.8171468120853621, + 0.9062720093409862, + 0.9907011188958854, + 1.069111322133816, + 1.1402747070194628, + 1.2030776329904525, + 1.256538293720782, + 1.299822200779513, + 1.3322553439979647, + 1.3533348209994558, + 1.362736768256514, + 1.3603214685985767, + 1.3461355546217686, + 1.320411273251473, + 1.283562823056237, + 1.2361798220752727, + 1.1790180091766023, + 1.1129873255900036, + 1.0391375645769583, + 0.9586418155506085, + 0.872777963741455, + 0.7829085371707412, + 0.690459218756099, + 0.5968963624272763, + 0.503703867835404, + 0.41235977835586424, + 0.32431297144798943, + 0.24096030897942422, + 0.16362460786623473, + 0.0935337784470336, + 0.03180145959047889, + -0.020590544068099362, + -0.06280774578520057, + -0.0941761370767072, + -0.1141928172473495, + -0.1225339244479212, + -0.1190597431830721, + -0.10381690772102202, + -0.07703766665618961, + -0.039136220223069215, + 0.009297811876269393, + 0.067508689114161, + 0.13458646860417928, + 0.20948135543140695, + 0.2910202585320898, + 0.3779252910285752, + 0.4688339232555433, + 0.5623204706542377, + 0.6569185776571566, + 0.7511443429781051, + 0.8435197216100276, + 0.9325958344649714, + 1.0169758180501294, + 1.0953368538271424, + 1.166451029838235, + 1.2292047055986743, + 1.2826160748601758, + 1.3258506492696374, + 1.358234418736433, + 1.3792644809617627, + 1.388616972496191, + 1.386152176247224, + 1.371916724889171, + 1.3461428654256766, + 1.3092447965035245, + 1.2618121362403458, + 1.2046006235823914, + 1.1385201998381635, + 1.0646206583475915, + 0.9840750886025138, + 0.8981613759120327, + 0.8082420483759569, + 0.7157427889908776, + 0.6221299517654915, + 0.5288874364297764, + 0.43749328643810126, + 0.3493963793290088, + 0.2659935770489371, + 0.1886076965931546, + 0.11846664837980228, + 0.056684071356693566, + 0.004241770238560705, + -0.038025768151720624, + -0.06944453525060547, + -0.08951163028317674, + -0.09790319132061773, + -0.0944795027879289, + -0.07928719887361431, + -0.05255852809225425, + -0.014707690598519188, + 0.03367569398549848, + 0.09183588521202825, + 0.1588629402747193, + 0.23370706433861826, + 0.31519516642039835, + 0.4020493597225851, + 0.4929071146600632, + 0.5863427467543312, + 0.6808899005182849, + 0.7750646747462795, + 0.8673890245118643, + 0.9564140708077433, + 1.0407429502214245, + 1.1190528442954135, + 1.1901158411526374, + 1.2528183003892506, + 1.3061784158379017, + 1.3493616992264288, + 1.3816941405450391, + 1.4026728375760866, + 1.4119739269512357, + 1.409457691659197, + 1.3951707644554632, + 1.3693453924249677, + 1.332395774295874, + 1.2849115282672012, + 1.227648393366771, + 1.161516310984399, + 1.0875650745416814, + 1.0069677736119418, + 0.9210022935862656, + 0.8310311626461508, + 0.7384800638699143, + 0.6448153513480268, + 0.5515209248922962, + 0.46007482803941113, + 0.3719259384097734, + 0.2884711180319791, + 0.21103318398336482, + 0.14084004676413686, + 0.07900534540451373, + 0.026510884701592505, + -0.015808848439449907, + -0.04727984537261659, + -0.06739920524056743, + -0.07584306603194678, + -0.07247171208913286, + -0.05733177751798464, + -0.030655510750466658, + 0.007142888141653564, + 0.05547379961893559, + 0.1135814833166392, + 0.18055599651125664, + 0.2553475444507241, + 0.33678303623480244, + 0.4235845851490103, + 0.5143896616914447, + 0.6077725814668763, + 0.7022669890715301, + 0.7963889833827134, + 0.8886605195574924, + 0.9776327186718121, + 1.0619087173969604, + 1.1401656973588463, + 1.2111757467638808, + 1.2738252252917712, + 1.3271323268588953, + 1.3702625632767425, + 1.4025419246194208, + 1.4234675087531143, + 1.4327154523932129, + 1.4301460386124232, + 1.4158059002502346, + 1.3899272844756054, + 1.3529243901007435, + 1.30538683540872, + 1.2480703595117122, + 1.1818849038836903, + 1.1078802620305375, + 1.027229523610057, + 0.94121057409735, + 0.8511859417585678, + 0.758581309756595, + 0.6648630322663622, + 0.5715150091844314, + 0.480015284131785, + 0.3918127348136062, + 0.30830422334331, + 0.2308125668831586, + 0.1605656760179749, + 0.09867718986299098, + 0.04612891330011762, + 0.003755333319510862, + -0.02776954134764814, + -0.047942809759022265, + -0.05644060981812904, + -0.05312322578218094, + -0.03803729167181415, + -0.011415055833641968, + 0.026329281745794977, + 0.07460610161245557, + 0.13265966348696467, + 0.19958002473131828, + 0.27431739067911576, + 0.3556986705155556, + 0.44244597761168847, + 0.5331967825513324, + 0.6265254010249619, + 0.7209654777142951, + 0.8150331115832028, + 0.9072502578738261, + 0.9961680377482556, + 1.0803895879637122, + 1.1585920902320241, + 1.229547632845705, + 1.292142575570649, + 1.3453951124092107, + 1.388470755259012, + 1.4206954942804257, + 1.4415664274258573, + 1.4507596914970826, + 1.448135569653094, + 1.4337406948197646, + 1.4078073142525112, + 1.3707496268500199, + 1.3231572509819796, + 1.265785925846966, + 1.1995455930055738, + 1.1254860460504719, + 1.0447803747260298, + 0.9587064645943225, + 0.8686268440081443, + 0.7759671962171315, + 0.6821938754829973, + 0.5887907817895692, + 0.49723595884462435, + 0.4089782844404277, + 0.32541462077736283, + 0.24786778510470905, + 0.17756568809438583, + 0.11562196894905698, + 0.06301843263771889, + 0.02058956623785925, + -0.010990621432190262, + -0.031219229342672322, + -0.039772395309686556, + -0.03651040350301679, + -0.021479887855842372, + 0.005086903372680099, + 0.042775770283616635, + 0.09099709351070102, + 0.14899513286190677, + 0.215859945787019, + 0.29054173770728614, + 0.3718674178957284, + 0.45855909981127385, + 0.5492542541256804, + 0.6425271966169703, + 0.7369115720549442, + 0.830923479491263, + 0.9230848742564088, + 1.0119468776004192, + 1.0961126263685093, + 1.1742593023605492, + 1.2451589939572927, + 1.307698061012773, + 1.3608946976176572, + 1.4039144157579044, + 1.4360832056820998, + 1.4568981654309696, + 1.466035431894753, + 1.463355288320837, + 1.4489043677235842, + 1.4229149174468345, + 1.3858011364779157, + 1.3381526432750612, + 1.2807251771254617, + 1.2144286796784343, + 1.1403129446152818, + 1.0595510617689488, + 0.9734209167904159, + 0.8832850381213588, + 0.7905691091001784, + 0.696739484077636, + 0.603280063126126, + 0.5116688900424637, + 0.42335484270798607, + 0.33973478341217495, + 0.2621315294932852, + 0.19177299171250564, + 0.12977280936119193, + 0.07711278749773612, + 0.03462741328895298, + 0.0029906956423031983, + -0.017294464323175246, + -0.02590420433430747, + -0.022698808471536977, + -0.0077249105786183075, + 0.01878524117464475, + 0.05641744697881862, + 0.10458208755689527, + 0.16252342280664833, + 0.22933151026735935, + 0.30395655544979583, + 0.3852254677165168, + 0.4718603606161555, + 0.5624987049099808, + 0.6557148164660576, + 0.7500423401438516, + 0.8439973750846317, + 0.9361018767088568, + 1.024906966356159, + 1.1090157809617986, + 1.1871055024156272, + 1.257948219188376, + 1.3204302912237953, + 1.3735699127026884, + 1.4165325957010166, + 1.44864433055748, + 1.4694022154029232, + 1.4784823872176796, + 1.4757451293392734, + 1.46123707487228, + 1.4351904712508206, + 1.3980195175523784, + 1.3503138323254584, + 1.2928291549476036, + 1.2264754271585327, + 1.1523024427298798, + 1.0714832915851478, + 0.9852958594654501, + 0.8951026749029058, + 0.802329421326738, + 0.7084424531780702, + 0.6149256706198514, + 0.5232571175395577, + 0.43488567190905136, + 0.3512081961083, + 0.2735475075663976, + 0.20313151713529165, + 0.14107386419699447, + 0.0883563539007297, + 0.04581347350387617, + 0.014119232004880078, + -0.006223469386438751, + -0.014890768305996241, + -0.01174294874337066, + 0.0031733555485684573, + 0.029625896491017947, + 0.06720047436550393, + 0.11530746998611388, + 0.173191143341484, + 0.2399415520619581, + 0.31450890174944385, + 0.39572010185768136, + 0.4822972660265397, + 0.5728778651081335, + 0.6660362150618659, + 0.7603059608383338, + 0.8542032016701293, + 0.946249893069143, + 1.0349971564661284, + 1.119048128887579, + 1.1970799923147717, + 1.2678648353096824, + 1.330289017907708, + 1.3833707343809751, + 1.4262754968968285, + 1.4583292958853997, + 1.479029229569069, + 1.4880514350196812, + 1.48525619566632, + 1.4706901447050624, + 1.4445855296616665, + 1.4073565497052094, + 1.359592823475877, + 1.3020500904428287, + 1.235638292437402, + 1.1614072233228359, + 1.0805299731146283, + 0.9942844276455093, + 0.9040331155395372, + 0.8112017203173952, + 0.7172565965120952, + 0.6236816443785086, + 0.5319549078960568, + 0.4435252651283942, + 0.3597895785474656, + 0.2820706656741982, + 0.2115964374523652, + 0.1494805333561377, + 0.09670475862662276, + 0.054103600613334024, + 0.022351068406620336, + 0.0019500633084061775, + -0.006775552225202652, + -0.003686062091635009, + 0.011171900048321581, + 0.03756608620799555, + 0.07508229676102125, + 0.12313091261373746, + 0.1809561938469753, + 0.24764819818319578, + 0.32215713131658086, + 0.4033099027931189, + 0.4898286263447842, + 0.5803507729163764, + 0.673450658559285, + 0.7676619283165954, + 0.8615006815130722, + 0.9534888737528865, + 1.042177626559503, + 1.126170077051719, + 1.2041434073031345, + 1.2748697059680991, + 1.3372353331745317, + 1.3902584832869829, + 1.4331046685653392, + 1.4650998795322656, + 1.4857412145026407, + 1.4947048106407657, + 1.491850951468334, + 1.477226270274024, + 1.4510630146761248, + 1.41377538393629, + 1.3659529967873498, + 1.308351592791149, + 1.2418811138716384, + 1.167591353984863, + 1.0866554032387303, + 1.0003511475587943, + 0.9100411156616606, + 0.8171509911610635, + 0.7231471286826843, + 0.6295134285740636, + 0.5377279349073067, + 0.4492395258387845, + 0.3654450639335627, + 0.28766736680521976, + 0.21713434549041571, + 0.15495963955604242, + 0.10212505433612605, + 0.05946507727300858, + 0.02765371755000824, + 0.007193876561901541, + -0.001590583142291671, + 0.0014400546328909858, + 0.01623915631964623, + 0.042574474024244774, + 0.08003180821325093, + 0.1280215398858924, + 0.18578792921617054, + 0.25242103401946303, + 0.3268710600831031, + 0.40796491704583004, + 0.49442471873278093, + 0.5848879361817162, + 0.6779288855372494, + 0.7720812119353679, + 0.865861014794171, + 0.9577902498107467, + 1.0464200386015774, + 1.130353518378586, + 1.2082678713085833, + 1.2789351861391691, + 1.3412418230912095, + 1.3942059766225205, + 1.4369931590860503, + 1.4689293610976928, + 1.489511681065483, + 1.4984162562469892, + 1.4955033702570493, + 1.4808196564775524, + 1.4545973626200195, + 1.4172506880393743, + 1.3693692515616582, + 1.311708792841912, + 1.2451792538972497, + 1.1708304287772229, + 1.0898354076828984, + 1.0034720766331915, + 0.9131029644379178, + 0.8201537548039398, + 0.726090802450404, + 0.6323980078182498, + 0.5405534150728164, + 0.45200590246395567, + 0.3681523326497444, + 0.29031552333719784, + 0.21972338565639923, + 0.1574895592677033, + 0.10459584959831268, + 0.06187674418403846, + 0.030006252301483904, + 0.009487275438822176, + 0.0006436762385322037, + 0.0036151709894174516, + 0.018355126217048323, + 0.044631294121101936, + 0.08202947526157969, + 0.1299600507312007, + 0.18766728079721107, + 0.25424122336847793, + 0.32863208432562313, + 0.4096667734010867, + 0.4960674045133931, + 0.5864714487936646, + 0.6794532224798713, + 0.773546370801526, + 0.8672669932700936, + 0.9591370456762065, + 1.0477076497298852, + 1.1315819427365787, + 1.2094371069562517, + 1.2800452312300719, + 1.3422926758724991, + 1.3951976354347115, + 1.4379256223633012, + 1.4698026273674292, + 1.490325748948698, + 1.4991711244581585, + 1.4961990376041434, + 1.4814561218620068, + 1.455174625036753, + 1.4177687465768274, + 1.369828105401746, + 1.3121084412600426, + 1.245519696262452, + 1.1711116645517061, + 1.0900574364226183, + 1.0036348979874554, + 0.9132065781497677, + 0.8201981607096744, + 0.7260760004799847, + 0.6323239979948797, + 0.5404201975133712, + 0.4518134773788892, + 0.36790070034292277, + 0.2900046842060497, + 0.21935334019177183, + 0.1570603080538789, + 0.10410739331305442, + 0.061329083598786235, + 0.02939938828106904, + 0.008821208941592704, + -8.159168374986814e-05, + 0.002830702787390421, + 0.017511458974074648, + 0.04372842916944171, + 0.08106741402697944, + 0.12893879473279019, + 0.18658683164771261, + 0.25310158277431044, + 0.3274332540862669, + 0.40840875540965726, + 0.49475020075639065, + 0.5850950613512949, + 0.6780176535253858, + 0.7720516226022226, + 0.8657130681860447, + 0.9575239461616073, + 1.04603537833195, + 1.1298505020958154, + 1.2076464998070056, + 1.2781954603999497, + 1.340383744282549, + 1.393229546099389, + 1.4358983783904922, + 1.4677162319584343, + 1.4881802053982103, + 1.496966436154294, + 1.493935208028407, + 1.4791331545892512, + 1.452792523735361, + 1.415327515008331, + 1.3673277474213374, + 1.309548960815937, + 1.242901097396643, + 1.1684339513991358, + 1.087320613211671, + 1.0008389690403314, + 0.9103515478812259, + 0.817284033628443, + 0.7231027811876161, + 0.6292916911867488, + 0.537328807977903, + 0.4486630099977223, + 0.3646911600910797, + 0.2867360761518269, + 0.21602566949675361, + 0.1536735799728038, + 0.10066161319427343, + 0.057824256883437425, + 0.025835520503887294, + 0.0051983057303167934, + -0.003763524608018848, + -0.0009102540355966499, + 0.013711484159866519, + 0.03986944236462307, + 0.07714942132553236, + 0.12496180232160571, + 0.18255084580719605, + 0.2490066098776753, + 0.3232793006000918, + 0.4041958278935964, + 0.49047830586323615, + 0.5807642058267826, + 0.673627844208863, + 0.7676028664256296, + 0.8612053721747448, + 0.9529573174335293, + 1.0414098240984393, + 1.1251660296615675, + 1.2029031165694153, + 1.2733931738492037, + 1.3355225620023456, + 1.3883094757659973, + 1.4309194277734758, + 1.4626784089201827, + 1.4830835178942392, + 1.4918108922329167, + 1.4887208158309297, + 1.4738599223499433, + 1.4474604597813021, + 1.40993662775962, + 1.3618780453908301, + 1.304040452609639, + 1.2373337917130247, + 1.1628078570299818, + 1.0816357390413818, + 0.9950953240457906, + 0.9045491411325872, + 0.811422874288499, + 0.717182878511935, + 0.6233130545238339, + 0.531291446768499, + 0.4425669337756618, + 0.35853637848320696, + 0.2805225988770963, + 0.20975350636735707, + 0.1473427408932108, + 0.0942721081618348, + 0.05137609598788083, + 0.01932871392776761, + -0.0013671362511243623, + -0.01038759162710555, + -0.007592935632023068, + 0.006970198538967257, + 0.03306956336471298, + 0.07029095968444381, + 0.11804476886992983, + 0.17557525146768957, + 0.24197246566571462, + 0.3161866176238072, + 0.39704461735333263, + 0.48326857905142306, + 0.5734959741288843, + 0.6663011191020748, + 0.7602176594800186, + 0.8537616950525606, + 0.9454551818893551, + 1.033849241979325, + 1.1175470129063907, + 1.1952256772096708, + 1.2656573240088789, + 1.3277283138972726, + 1.3804568417044498, + 1.423008420155651, + 1.4547090402387868, + 1.4750558007338874, + 1.483724839270523, + 1.4805764398354757, + 1.4656572361825102, + 1.439199476395061, + 1.4016173601997814, + 1.353500506794743, + 1.295604656206398, + 1.2288397508238642, + 1.1542555850684133, + 1.073025249512325, + 0.9864266305466914, + 0.8958222573523414, + 0.8026378140080466, + 0.7083396556040864, + 0.6144116829530767, + 0.5223319405916517, + 0.43354930714099177, + 0.3494606456304695, + 0.2713887741382659, + 0.20056160416586538, + 0.13809277574457496, + 0.08496409467279545, + 0.042010048857307844, + 0.009904647945752812, + -0.010849206202727307, + -0.01992765057476073, + -0.017190968510675406, + -0.0026857931140784747, + 0.023355628185351113, + 0.060519096318499666, + 0.10821499274855802, + 0.16568757811324808, + 0.23202691069242032, + 0.3061831967367936, + 0.3869833463493364, + 0.47314947381887296, + 0.5633190506470752, + 0.6560663934419266, + 0.749925147803223, + 0.8434114136125677, + 0.9350471470306712, + 1.0233834701376594, + 1.1070235206084815, + 1.1846444810739742, + 1.255018440744137, + 1.317031760303865, + 1.3697026346736032, + 1.41219657666991, + 1.443839577371478, + 1.4641287356492922, + 1.4727401892240108, + 1.469534222173308, + 1.4545574683418567, + 1.4280421759039592, + 1.390402544677142, + 1.3422281939502003, + 1.2842748638406538, + 1.2174524968282476, + 1.14281088742469, + 1.0615231262933653, + 0.9748670999157598, + 0.884205337563831, + 0.790963523406502, + 0.6966080126248035, + 0.6026227061220895, + 0.5104856485250252, + 0.42164571854565325, + 0.337499779304118, + 0.2593706489685884, + 0.18848623913124518, + 0.12596018991341296, + 0.0727743072041438, + 0.029763079000667672, + -0.00239948495936243, + -0.02321048272631672, + -0.03234605119673535, + -0.02966647362068464, + -0.01521838301159728, + 0.01076597329104513, + 0.04787239630808565, + 0.09551126759285268, + 0.15292684787336908, + 0.21920919551920276, + 0.29330851687115145, + 0.37405172212230975, + 0.4601609256509528, + 0.5502735990491062, + 0.6429640590142899, + 0.7367659512366302, + 0.8301953756871852, + 0.9217742886160928, + 1.010053812193707, + 1.0936370841845056, + 1.1712012873089788, + 1.2415185108668887, + 1.3034751156323483, + 1.3560892966158262, + 1.3985265667230093, + 1.4301129171223148, + 1.4503454467742207, + 1.4589002934886834, + 1.4556377414327992, + 1.440604424540627, + 1.4140325910757694, + 1.3763364409450278, + 1.3281055935263586, + 1.2700957890268, + 1.2032169700148427, + 1.1285189310918375, + 1.0471747630098835, + 0.9604623523398306, + 0.8697442284422006, + 0.7764460755752226, + 0.6820342490092473, + 0.5879926497358805, + 0.49579932247135666, + 0.4069031460160702, + 0.32270098357915444, + 0.2445156534175612, + 0.17357506721209676, + 0.11099286517316659, + 0.05775085327820623, + 0.014683519612959745, + -0.01753512599607758, + -0.0384021815108066, + -0.04759378373922288, + -0.044970215842919506, + -0.030578110746880632, + -0.004649715702233118, + 0.032400770400394824, + 0.07998372920260727, + 0.13734342152046974, + 0.20356990581210815, + 0.2776133885064418, + 0.3583007798847263, + 0.4443541944135436, + 0.5344111037725401, + 0.6270458247479394, + 0.720792003117223, + 0.8141657389397667, + 0.9056889885539834, + 0.9939128742176242, + 1.0774405337833417, + 1.1549491500588691, + 1.2252108124324717, + 1.287111881765816, + 1.3396705531569175, + 1.3820523395989959, + 1.4135832323483748, + 1.4337603304528983, + 1.4422597718101824, + 1.4389418406747863, + 1.4238531710681868, + 1.3972260113413646, + 1.3594745614886588, + 1.3111884409752816, + 1.253123390095307, + 1.18618935150477, + 1.1114361198919789, + 1.0300367860966064, + 0.9432692367760435, + 0.8524960013784949, + 0.7591427642489164, + 0.6646758807444597, + 0.5705792519435046, + 0.47833092265003113, + 0.3893797717506135, + 0.30512266254136616, + 0.2268824133660105, + 0.1558869359919587, + 0.09324987071664945, + 0.03995302360371983, + -0.0031691171741294183, + -0.03544254170409976, + -0.05636434786149977, + -0.0656106723678832, + -0.06304179829841008, + -0.04870435849172912, + -0.022830600112555208, + 0.014165278034591305, + 0.06169365767770618, + 0.11899879971899209, + 0.1851707627027138, + 0.25915975314388473, + 0.339792681409823, + 0.42579166205294794, + 0.5157941668393433, + 0.6083745126408376, + 0.7020663453204259, + 0.7953857650239833, + 0.8868547281750199, + 0.9750243571175159, + 1.0584977897894872, + 1.135952209084745, + 1.206159704476809, + 1.268006636912673, + 1.3205112015761242, + 1.36283891154595, + 1.3943157581636183, + 1.4144388405624362, + 1.4228842967252215, + 1.4195124109918655, + 1.4043698174690507, + 1.37768876459294, + 1.3398834524428074, + 1.2915435005689928, + 1.2334246493508232, + 1.16643684152899, + 1.0916298718769517, + 1.0101768313188226, + 0.9233556065970594, + 0.8325287272449752, + 0.7391218776915787, + 0.6446014133793585, + 0.5504512354709608, + 0.45814938885459466, + 0.3691447525018492, + 0.28483418979298075, + 0.2065405191565714, + 0.13549165244406053, + 0.0728012300369934, + 0.019451058083618952, + -0.023724375159347166, + -0.05605105969473058, + -0.07702609331396312, + -0.08632561265445399, + -0.08380990070738079, + -0.06952559022740858, + -0.043704928295325435, + -0.0067621136319804265, + 0.04071323557460328, + 0.09796538031030788, + 0.1640843792030905, + 0.23802043885159796, + 0.3186004697067419, + 0.4045465864046212, + 0.4944962607943262, + 0.587023809831421, + 0.6806628794626239, + 0.7739295699166195, + 0.8653458377005216, + 0.953462805241026, + 1.0368836105599553, + 1.1142854366336115, + 1.1844403730188966, + 1.2462347807460135, + 1.2986868550814088, + 1.3409621091866355, + 1.372386534486246, + 1.3924572301962095, + 1.4008503343821674, + 1.3974261314665666, + 1.3822312556387972, + 1.3554979554174604, + 1.3176404309645344, + 1.269248301912739, + 1.2110773087235513, + 1.1440373942203013, + 1.0691783532584922, + 0.9876732768448823, + 0.9008000518038437, + 0.8099212077504616, + 0.7164624291962879, + 0.62189007166548, + 0.5276880364031467, + 0.4353343683788676, + 0.34627794664624223, + 0.26191563466745255, + 0.18357025095234802, + 0.11246970743436327, + 0.0497276445768504, + -0.0036741313907468626, + -0.04690113213003072, + -0.07927934756261622, + -0.10030587539836248, + -0.10965685219335876, + -0.1071925608576018, + -0.09295963406455388, + -0.06719031881389327, + -0.030298813745209888, + 0.017125263034313526, + 0.0743261725916943, + 0.1403939736354708, + 0.21427887284546704, + 0.2948077807531168, + 0.380702812075873, + 0.4706014387425574, + 0.5630779777901472, + 0.6566660752452445, + 0.7498818314175335, + 0.8412472028942248, + 0.9293133121828847, + 1.0126832973852924, + 1.0900343415577372, + 1.1601385343378623, + 1.221882236835496, + 1.2742836443975256, + 1.3165082702654596, + 1.3478821059435795, + 1.367902250727997, + 1.3762448427640082, + 1.3727701665539442, + 1.3575248563668048, + 1.3307411608008932, + 1.2928332800977618, + 1.2443908339695269, + 1.1861695629574347, + 1.1190794099639112, + 1.0441701699238912, + 0.9626149339234049, + 0.8756915888658733, + 0.7847626644460094, + 0.6912538452539672, + 0.5966314868932564, + 0.5023794906874306, + 0.4099759016853167, + 0.32086959901966455, + 0.23645744623078152, + 0.15806226190783818, + 0.08691195806257661, + 0.024120175236729602, + -0.02933128026139599, + -0.07260792001514296, + -0.10503573386751733, + -0.12611181945025512, + -0.13551231324118906, + -0.13309749807201196, + -0.11891400653815695, + -0.09319408556110821, + -0.05635193370266345, + -0.00897716899188461, + 0.04817446971594769, + 0.11419304120750101, + 0.18802875224015747, + 0.2685085134227055, + 0.3543544395504754, + 0.44420400263017157, + 0.5366315197757674, + 0.6301706370916056, + 0.7233374549642102, + 0.8146539300587462, + 0.9026711849593276, + 0.985992357845235, + 1.0632946318501029, + 1.1333500966881607, + 1.1950451135463354, + 1.2473978778483765, + 1.2895739029125468, + 1.3208991803200911, + 1.3408708094436033, + 1.3491649285050036, + 1.3456418220832078, + 1.3303481245237376, + 1.3035160845012452, + 1.2655599023337143, + 1.2170691978093142, + 1.1587997115456226, + 1.091661386521446, + 1.016704017747468, + 0.9351006963858259, + 0.8481293094158744, + 0.757152386608029, + 0.6635956126287295, + 0.5689253431565524, + 0.47462547959138396, + 0.3821740670572882, + 0.29301998476221935, + 0.20856009632228217, + 0.13011722040229506, + 0.05891926908876623, + -0.003920117000840342, + -0.05741913148339346, + -0.10074328586694291, + -0.13321856991968353, + -0.15434208119818887, + -0.16378995610540184, + -0.161422477398301, + -0.14728627759746848, + -0.12161360354977649, + -0.08481865374231633, + -0.03749104612983056, + 0.01961348050719157, + 0.08558498502942032, + 0.1593736742687419, + 0.23980645890852176, + 0.32560545381784467, + 0.4154081310776604, + 0.5077888078759922, + 0.6012811303909773, + 0.6944011990835415, + 0.7856709706923293, + 0.8736415678748861, + 0.9569161288848025, + 1.0341718369287283, + 1.1041807817948541, + 1.165829324743418, + 1.218135661271577, + 1.2602653047709689, + 1.2915442468958696, + 1.3114695870922357, + 1.319717463655074, + 1.3161481612362635, + 1.3008083142542612, + 1.2739301714566946, + 1.2359279332341813, + 1.1873912194479654, + 1.1290757707878805, + 1.0618915303053456, + 0.9868882930836386, + 0.9052391503576562, + 0.8182219891786761, + 0.7271993393897069, + 0.6335968857289058, + 0.538880983947303, + 0.4445355355171948, + 0.35203858563395707, + 0.26283901357811, + 0.1783336830372487, + 0.09984541274768079, + 0.028602114868030257, + -0.03428256991288055, + -0.08782683514006494, + -0.13119619225051074, + -0.1637166309407068, + -0.18488524869614179, + -0.1943781818484514, + -0.19205571308345387, + -0.17796447485069689, + -0.1523367139259955, + -0.11558662872561591, + -0.06830383713323325, + -0.011244077858665352, + 0.054682708029170954, + 0.1284267274332761, + 0.20881489110700416, + 0.2945693139903345, + 0.38432746823446295, + 0.4766636710977115, + 0.5701115688286246, + 0.6631872619577697, + 0.7544127072942107, + 0.8423390275658129, + 0.9255693610955957, + 1.00278089116035, + 1.0727457076176186, + 1.134350171797744, + 1.1866124792673358, + 1.2286981434874973, + 1.259933156182166, + 1.2798146168664775, + 1.2880186639047382, + 1.2844055820181013, + 1.2690220056941723, + 1.2421001837495322, + 1.2040543166437905, + 1.1554740243073038, + 1.0971150474983535, + 1.0298873293375266, + 0.9548406649765644, + 0.8731481457186152, + 0.7860876586838914, + 0.6950217337835065, + 0.6013760558244501, + 0.5066169806256879, + 0.4122284097273412, + 0.3196883883933991, + 0.23044579597222017, + 0.14589749621919532, + 0.06736630793892076, + -0.003919856642641675, + -0.06684735676872453, + -0.12043438591705226, + -0.16384645545682489, + -0.19640955501699991, + -0.21762078201588536, + -0.22715627271777175, + -0.22487630974125883, + -0.2108275254687632, + -0.18524216660914733, + -0.14853443151154466, + -0.10129393799300808, + -0.04427642469645618, + 0.02160816737618211, + 0.09531004519418416, + 0.17565611957772315, + 0.26136850553279095, + 0.35108467527741166, + 0.4433789461360667, + 0.536784964423678, + 0.6298188307364385, + 0.7210025019501378, + 0.808887100857945, + 0.8920757658492564, + 0.9692456802663592, + 1.039168934032927, + 1.1007318885446253, + 1.1529527394334353, + 1.1949970002263206, + 1.226190662712276, + 1.2460308264719462, + 1.2541936299347847, + 1.2505393578870716, + 1.2351146448814223, + 1.2081517397994794, + 1.1700648431657097, + 1.1214435749750502, + 1.0630436760507362, + 0.9957750895778943, + 0.9206876107726486, + 0.8389543310030395, + 0.7518531374532105, + 0.6607465600988692, + 0.5670602838107026, + 0.472260664472112, + 0.3778316036875924, + 0.285251146784555, + 0.19596817317539178, + 0.11137954667925382, + 0.03280808616427788, + -0.03851829607955798, + -0.10148595923250385, + -0.15511309670839693, + -0.19856521981336128, + -0.2311683181131879, + -0.25241948896282884, + -0.26199486856357335, + -0.25975473947102257, + -0.24574573400469815, + -0.2202000988105806, + -0.18353203217508135, + -0.1363311518528208, + -0.0793531964238056, + -0.013508106827926927, + 0.06015432396682467, + 0.14046100684264445, + 0.22613405686818133, + 0.3158109463232931, + 0.40806599259413534, + 0.5014328420579056, + 0.5944275953729906, + 0.6855722094764369, + 0.7734178072234198, + 0.856567527064442, + 0.9336985524039113, + 1.003582973226336, + 1.0651071509890173, + 1.1172892813852555, + 1.1592948780031707, + 1.1904499326924631, + 1.2102515450950277, + 1.2183758537011258, + 1.2146831433578313, + 1.1992200486784588, + 1.1722188186052573, + 1.134093653723137, + 1.0854341740877063, + 1.0269961205822966, + 0.9596894364523663, + 0.8845639169742088, + 0.8027926535757836, + 0.7156535335016618, + 0.6245090867868257, + 0.530784998362414, + 0.43594762417120925, + 0.3414808658769811, + 0.24886276886718486, + 0.1595422126134708, + 0.07491606099434858, + -0.0036928670626497767, + -0.07505665920880086, + -0.13806167456495833, + -0.191726106485817, + -0.23521546621897085, + -0.2678557432711167, + -0.28914403493869073, + -0.2987564773642867, + -0.29655335304500857, + -0.28258129424187184, + -0.25707254754263703, + -0.2204413111754412, + -0.17327720283653342, + -0.11633596104809231, + -0.05052752669183207, + 0.023098307321771663, + 0.10336845193322589, + 0.18900502226830243, + 0.27864549066475286, + 0.3708641745665943, + 0.46419472040811666, + 0.5571532289046937, + 0.6482616570511117, + 0.736071127759363, + 0.8191847795374788, + 0.8962797958464713, + 0.966128266727484, + 1.0276165536950779, + 1.0797628524987974, + 1.1217326767835778, + 1.1528520184557118, + 1.1726179772132928, + 1.1807066916029618, + 1.1769784465279614, + 1.1614798766577596, + 1.1344432309906125, + 1.096282710167352, + 1.0475879342993335, + 0.9891146443258966, + 0.9217727835478751, + 0.8466121472971917, + 0.7648058270574113, + 0.6776317101280194, + 0.5864523265995458, + 0.4926933614586481, + 0.3978211707025156, + 0.30331965605057304, + 0.21066686294464992, + 0.12131167091136112, + 0.03665094388390868, + -0.041992499155717095, + -0.11339074580387101, + -0.17643015512731847, + -0.23012892042659644, + -0.27365255289478574, + -0.3063270419846146, + -0.32764948493833224, + -0.3372960178447763, + -0.3351269231471277, + -0.3211888330527095, + -0.2957139940956121, + -0.25911660445035045, + -0.21198628175997286, + -0.1550787644930626, + -0.08930399347827901, + -0.01571176157257244, + 0.06452484221741102, + 0.15012793307007247, + 0.23973498337665805, + 0.33192031063330524, + 0.4252175613273055, + 0.5181428362269521, + 0.609218092379008, + 0.6969944527481716, + 0.7800750558942877, + 0.8571370853309022, + 0.926952631151478, + 0.9884080549221833, + 1.0405215524446776, + 1.0824586374154161, + 1.1135453017926809, + 1.1332786453260533, + 1.1413348066136764, + 1.1375740706102357, + 1.1220430720364252, + 1.0949740599418512, + 1.0567812350183319, + 1.008054217428365, + 0.9495487481619351, + 0.8821747705708286, + 0.806982080037982, + 0.7251437680970536, + 0.6379377220986151, + 0.5467264721833398, + 0.45293570338785183, + 0.35803177176006185, + 0.2634985790691878, + 0.17081417080758615, + 0.08142742655128885, + -0.00326478971635797, + -0.08193965896421825, + -0.15336926873817547, + -0.21643997805610996, + -0.2701699801687075, + -0.31372478622001443, + -0.34643038561338324, + -0.3677838755420939, + -0.3774613920457938, + -0.37532321751879605, + -0.3614159841195828, + -0.3359719383335351, + -0.29940527828653885, + -0.25230562157301645, + -0.19542870661340303, + -0.1296844741876378, + -0.056122717104903665, + 0.02408347567648983, + 0.10965621938331035, + 0.19923298645426107, + 0.2913880944334518, + 0.3846551898560703, + 0.47755037353751845, + 0.5685956025725835, + 0.656341999973216, + 0.7393927043465696, + 0.816424899253539, + 0.8862106748343097, + 0.9476363927024469, + 0.9997202487063039, + 1.0416277565894798, + 1.072684908356539, + 1.0923888038038145, + 1.1004155815760437, + 1.0966255266742286, + 1.0810652738654394, + 1.0539670722453356, + 1.0157451225519631, + 0.966989044993674, + 0.9084545806066133, + 0.8410516727882194, + 0.765830116966812, + 0.6839630047218581, + 0.5967282234497521, + 0.5054883033359073, + 0.411668929462882, + 0.3167364579232581, + 0.22217479053165376, + 0.12946197282488836, + 0.04004688442420579, + -0.044673610641994765, + -0.12337669329824258, + -0.19483445104612496, + -0.2579332428586695, + -0.3116912619424377, + -0.35527401939696585, + -0.3880075045817861, + -0.40938881464589827, + -0.4190940855851758, + -0.4169835997500476, + -0.40310398925527513, + -0.37768750054262923, + -0.3411483316944538, + -0.2940761002618689, + -0.23722654462172044, + -0.1715096055108872, + -0.09797507569575874, + -0.017796044091094358, + 0.06774960457216322, + 0.15729934277597052, + 0.2494274881067995, + 0.34266768714291473, + 0.4355360407418603, + 0.526554506040451, + 0.6142742060934049, + 0.6972982795498723, + 0.7743039100127973, + 0.8440631876643139, + 0.905462474159836, + 0.9575199653895388, + 0.999401175138326, + 1.0304320954527075, + 1.050109826170293, + 1.0581105059770601, + 1.0542944199152702, + 1.038708202793058, + 1.0115841037472166, + 0.9733363235565523, + 0.9245544824703453, + 0.8659943215651523, + 0.798565784279128, + 0.7233186660813666, + 0.641426058591472, + 0.5541658492457568, + 0.4629005682702591, + 0.3690559007872559, + 0.2740982029297833, + 0.17951137655161636, + 0.08677346722997682, + -0.0026666453746141752, + -0.08741209719453952, + -0.16614006911445411, + -0.2376226485968025, + -0.30074619457540464, + -0.35452890021764444, + -0.3981362765843455, + -0.43089431299593994, + -0.4523001065626133, + -0.46202979324170856, + -0.4599436553450563, + -0.44608832494896433, + -0.42069604845685893, + -0.3841810239128669, + -0.3371328688298756, + -0.28030732154699345, + -0.21461432276303574, + -0.14110366520628764, + -0.06094843775420886, + 0.024573474900145303, + 0.11409954527573193, + 0.2062040909970464, + 0.29942075867878626, + 0.39226564921649576, + 0.48326071978387414, + 0.5709570934724014, + 0.653957908967765, + 0.7309403499101041, + 0.8006765065180138, + 0.8620527404834197, + 0.9140872477329867, + 0.9559455420876591, + 0.9869536156304285, + 1.0066085682347632, + 1.014586538622752, + 1.0107478118724724, + 0.9951390228278075, + 0.9679924206611419, + 0.9297222061869788, + 0.8809179996897705, + 0.8223355422817245, + 0.7548847774359273, + 0.6796155006568062, + 0.597700803598378, + 0.510418573732724, + 0.41913134132005003, + 0.32526479151762666, + 0.2302852804925305, + 0.13567671013332622, + 0.042917126051908124, + -0.04654459205763701, + -0.13131158009293853, + -0.21006101890524093, + -0.28156499592253326, + -0.34470987004525067, + -0.39851383440705546, + -0.4421424000349228, + -0.4749215562160545, + -0.49634840002732855, + -0.5060990673927106, + -0.5040338405909366, + -0.490199351665325, + -0.4648278469863635, + -0.42833352456537466, + -0.3813060018826527, + -0.32450101724444647, + -0.2588285113172517, + -0.18533827679728776, + -0.10520340252937069, + -0.019701773174708975, + 0.06980408381816641, + 0.16188848610535767, + 0.2550850803330232, + 0.34790996742908653, + 0.4388851045981545, + 0.5265616149635426, + 0.609542637242596, + 0.6865053551062438, + 0.7562218588045125, + 0.8175785100599845, + 0.8695935048305393, + 0.9114323569680607, + 0.9424210585859887, + 0.9620567095884791, + 0.9700154487280824, + 0.9661575611132474, + 0.950529681618123, + 0.9233640594452879, + 0.8850748954391225, + 0.836251809914066, + 0.7776505440123784, + 0.710181041236551, + 0.6348930971207032, + 0.5529598033483204, + 0.46565904742070796, + 0.3743533596277938, + 0.2804684251553438, + 0.1854706002001399, + 0.09084378667932061, + -0.001933969766739558, + -0.09141378941475717, + -0.17619880813409763, + -0.25496620674694503, + -0.3264880726537828, + -0.38965076472623905, + -0.44347247607005424, + -0.48711871768393944, + -0.5199154788274691, + -0.5413598565495071, + -0.5511279867464669, + -0.5490801516694674, + -0.5352629833343362, + -0.5099087280841788, + -0.4734315839032427, + -0.42642116824443915, + -0.3696332193873296, + -0.30397767797136, + -0.2305043366656666, + -0.15038628428877399, + -0.06490140547504034, + 0.024587772352975264, + 0.11665556687802678, + 0.2098356247728442, + 0.3026440469911268, + 0.39360279076314836, + 0.4812629792387626, + 0.564227751160463, + 0.6411742902253048, + 0.7108746867085801, + 0.7722153023586844, + 0.8242143331585249, + 0.8660372929850728, + 0.8970101739771155, + 0.91663007606369, + 0.9245731380222455, + 0.9206996449859658, + 0.9050562318536676, + 0.8778751478523832, + 0.8395705938510729, + 0.7907321901884214, + 0.7321156780306337, + 0.6646310009045723, + 0.589327954368086, + 0.507379630129076, + 0.4200639157118604, + 0.32874334143011563, + 0.23484359249326864, + 0.13983102512184373, + 0.04518954125558804, + -0.047602813441292455, + -0.13709715922296034, + -0.22189663193552273, + -0.30067841237879234, + -0.37221458793020495, + -0.43539151743858506, + -0.4892273939874783, + -0.5328877285533415, + -0.5656985103732545, + -0.5871568364740503, + -0.5969388427300192, + -0.5949048113704608, + -0.5811013743893956, + -0.5557607781082814, + -0.5192972204896995, + -0.4723003189649565, + -0.41552581179273906, + -0.3498836395907635, + -0.27642359500754327, + -0.19631876684022065, + -0.1108470397023946, + -0.02137094099585718, + 0.07068384698296562, + 0.16385097092683876, + 0.25664653181021957, + 0.34759248688403005, + 0.4352399593178186, + 0.5181920878744706, + 0.5951260562705645, + 0.6648139548018124, + 0.7261421452358197, + 0.7781288235754136, + 0.8199395037171882, + 0.8509001778190758, + 0.8705079458294889, + 0.8784389465450052, + 0.8745534651178839, + 0.8588981364658431, + 0.8317052098346918, + 0.7933888861122782, + 0.744538785655579, + 0.6859106496496332, + 0.6184144216393641, + 0.543099897201091, + 0.46114016806027447, + 0.37381312175996523, + 0.2824812886316044, + 0.18857035390225263, + 0.09354667380974219, + -0.001105849688124657, + -0.09390917091003635, + -0.18341441009234893, + -0.268224703064607, + -0.34701723060892564, + -0.4185640800861039, + -0.48175161032831715, + -0.5355980144020842, + -0.5792688032671206, + -0.6120899661442369, + -0.6335586000437674, + -0.6433508408238164, + -0.6413269706974007, + -0.6275336216426001, + -0.602203039964806, + -0.5657494236110001, + -0.5187623899966938, + -0.46199767736476716, + -0.3963652263177649, + -0.32291482948861117, + -0.24281957565962176, + -0.15735734942887172, + -0.0678906781832786, + 0.02415475579561492, + 0.11731259921551165, + 0.2100989530650218, + 0.3010357746101117, + 0.3886741870345819, + 0.4716173291154808, + 0.5485423845840178, + 0.6182214437496525, + 0.6795408683937507, + 0.7315188545334088, + 0.773320916078589, + 0.8042730452010765, + 0.8238723418626948, + 0.8317949448733923, + 0.8279011393986953, + 0.8122375603694915, + 0.7850364570446507, + 0.7467120303247475, + 0.6978539005797517, + 0.6392178090072055, + 0.5717136991649205, + 0.4963913666412026, + 0.4144239031745154, + 0.3270891963192497, + 0.23574977641954156, + 0.14183132871410326, + 0.04680020945314954, + -0.047859679394281804, + -0.14067029213491686, + -0.23018274899408625, + -0.3150001857895933, + -0.3937997832920012, + -0.4653536288514906, + -0.5285480812886918, + -0.5824013336594713, + -0.626078896912855, + -0.6589067602587135, + -0.680382020696906, + -0.6901808140749832, + -0.6881634225957283, + -0.6743764782268924, + -0.6490522272638253, + -0.6126048676434083, + -0.5656240167714943, + -0.5088654128809942, + -0.4432389965648538, + -0.3697945604466197, + -0.28970519329878097, + -0.20424877971036312, + -0.11478784705946266, + -0.022748077618065736, + 0.07040417533014147, + 0.16318501278310488, + 0.2541163920151579, + 0.34174943621837095, + 0.42468728417891277, + 0.5016071196357437, + 0.5712810329068921, + 0.6325953857820565, + 0.684568374285989, + 0.7263655123367297, + 0.757312792113628, + 0.7769073135863783, + 0.7848252155723984, + 0.7809267832446278, + 0.7652586515413005, + 0.738053069728361, + 0.6997242387136703, + 0.6508617788739554, + 0.5922214314137767, + 0.5247131398973355, + 0.449386699919723, + 0.3674152032262175, + 0.28007653737713556, + 0.18873323272302134, + 0.09481097450872071, + -0.00022388100954348102, + -0.0948874318568241, + -0.1877016323342336, + -0.2772176026609456, + -0.36203847864955857, + -0.4408414410654785, + -0.5123985772531348, + -0.5755962460281152, + -0.62945264044128, + -0.6731332714364477, + -0.7059641282188893, + -0.7274423077836287, + -0.7372439459736959, + -0.7352293249872721, + -0.7214450767878259, + -0.6961234476663811, + -0.6596786355557822, + -0.612700257857533, + -0.5559440528010409, + -0.490319960975441, + -0.4168777750002276, + -0.33679058364486403, + -0.2513362714946884, + -0.16187736592412488, + -0.0698395492024543, + 0.023310825390062764, + 0.11608985885382289, + 0.20701950846635492, + 0.29465089742278483, + 0.37758716451154406, + 0.4545054934738212, + 0.5241779746305779, + 0.5854909697732713, + 0.6374626749291523, + 0.6792586040181006, + 0.7102047492215873, + 0.729798210510907, + 0.7377151267051564, + 0.7338157829789067, + 0.7181468142717705, + 0.6909404698510628, + 0.6526109506257585, + 0.6037478769738904, + 0.5451069901006538, + 0.47759823357150977, + 0.40227140298209635, + 0.3202995900779855, + 0.23296068242043022, + 0.1416172103602068, + 0.04769485914242366, + -0.047340014976542, + -0.14200351002172296, + -0.23481758029447397, + -0.3243333460136889, + -0.4091539429929242, + -0.48795655199742516, + -0.5595132603726194, + -0.6227104269345137, + -0.6765662447350753, + -0.7202462247188031, + -0.7530763560918732, + -0.7745537358507072, + -0.7843544998394338, + -0.7823389302577024, + -0.7685536590704545, + -0.7432309325703249, + -0.7067849486918174, + -0.6598053248386108, + -0.6030477992416742, + -0.5374223124922559, + -0.4639786572121489, + -0.3838899221734547, + -0.2984339919633589, + -0.20897339395947132, + -0.11693381043325356, + -0.023781594668098184, + 0.0689993543340034, + 0.15993099384720444, + 0.2475644470631643, + 0.3305028527674099, + 0.40742339469801536, + 0.4770981631720157, + 0.5384135199775131, + 0.5903876611376973, + 0.632186100569005, + 0.6631348304486144, + 0.6827309507439312, + 0.6906506002698519, + 0.6867540641965516, + 0.6710879774592732, + 0.6438845893207323, + 0.6055581006853217, + 0.5566981319260744, + 0.4980604242433879, + 0.43055492119797106, + 0.35523141837983935, + 0.2732630075298529, + 0.18592757620346073, + 0.09458765474609501, + 0.000668928397259334, + -0.09436224659256745, + -0.18902196825374268, + -0.2818321908939384, + -0.37134403473843136, + -0.45616063560648845, + -0.5349591742699695, + -0.606511738080308, + -0.6697046858605846, + -0.7235562106688772, + -0.7672318234569762, + -0.8000575134378003, + -0.8215303776146768, + -0.831326551838871, + -0.8293063183173495, + -0.8155163090223907, + -0.7901887702541198, + -0.7537378999545532, + -0.7067533155353285, + -0.6499907552348949, + -0.5843601596528667, + -0.5109113214189172, + -0.4308173293130134, + -0.34535606793106655, + -0.25589006465880126, + -0.16384500177671024, + -0.07068723257616735, + 0.02209934393138034, + 0.11303668501172039, + 0.20067591384718111, + 0.2836201692147733, + 0.36054663484244087, + 0.4302274010384486, + 0.4915488295811745, + 0.5435291164845515, + 0.5853337756550405, + 0.6162887992599219, + 0.6358912872568747, + 0.6438173784506083, + 0.6399273580011838, + 0.624267860833553, + 0.5970711362000105, + 0.558751384994362, + 0.5098982275792124, + 0.451267405144106, + 0.38376886123860243, + 0.30845239144207015, + 0.22649108748400634, + 0.13916283690908, + 0.04783017005093941, + -0.04608122786222451, + -0.1411050005913313, + -0.23575724617894034, + -0.3285599189441749, + -0.418064139123927, + -0.502873042549981, + -0.5816638100060532, + -0.6532085288562668, + -0.7163935579357703, + -0.7702370903150749, + -0.8139046369587013, + -0.8467221870922549, + -0.8681868377320252, + -0.8779747247422349, + -0.8759461303428752, + -0.8621476865194209, + -0.8368116395854043, + -0.8003521874962704, + -0.75335894767699, + -0.6965876583799241, + -0.6309482602184068, + -0.5574905458358447, + -0.47738760402666025, + -0.39191731940047064, + -0.3024422193575534, + -0.21038798619227458, + -0.11722097321081461, + -0.024425079439557865, + 0.06652165237307132, + 0.15417034539440969, + 0.23712413838651736, + 0.3140602150624169, + 0.3837506657147868, + 0.4450818521072294, + 0.4970719702378049, + 0.538886533997716, + 0.5698515355386772, + 0.5894640748024277, + 0.5974002905778755, + 0.5935204680090802, + 0.5778712420048704, + 0.5506848618013567, + 0.5123755282759926, + 0.46353286177493935, + 0.4049126034710495, + 0.337424696897555, + 0.2621189376166799, + 0.18016841734126526, + 0.09285102359851183, + 0.0015292867051991503, + -0.09237110812738973, + -0.18738380467821547, + -0.28202490100665545, + -0.3748163514497884, + -0.46430927626253904, + -0.5491068112940509, + -0.6278861373462838, + -0.6994193418010184, + -0.7625927835119033, + -0.8164246555678196, + -0.8600804689517285, + -0.892886212907406, + -0.9143389844700829, + -0.9241149195226206, + -0.9220743003039447, + -0.9082637588185267, + -0.8829155413989123, + -0.8464438460197722, + -0.7994382901256336, + -0.7426546119880557, + -0.6770027522400086, + -0.6035325035445983, + -0.5234169547158776, + -0.43793399038382286, + -0.34844613796812485, + -0.25637907978392466, + -0.16319916915733507, + -0.07039030513476202, + 0.02056946951438287, + 0.10823127793715957, + 0.19119825887445485, + 0.26814759601879357, + 0.33785137964216594, + 0.39919597148681507, + 0.4511995675294641, + 0.493027681640396, + 0.5240063059496434, + 0.5436325403776147, + 0.5515825236915208, + 0.5477165410137159, + 0.5320812272310934, + 0.5049088315579277, + 0.46661355484947975, + 0.41778501742974083, + 0.35917896044925995, + 0.29170532741871213, + 0.21641391387815861, + 0.13447781151726507, + 0.047174907841029595, + -0.044132266856922064, + -0.13801802738848923, + -0.2330160175559246, + -0.3276423354409684, + -0.4204189354048834, + -0.5098969377253886, + -0.5946794782756734, + -0.673443737881223, + -0.7449618039476023, + -0.8081200353524668, + -0.8619366252084198, + -0.9055770845227783, + -0.9383674025636755, + -0.9598046763905044, + -0.9695650419106687, + -0.9675087813876537, + -0.9536825268506257, + -0.928318524657031, + -0.8918309728064567, + -0.8448094887682474, + -0.7880098108393675, + -0.7223418796779734, + -0.6488554879725367, + -0.5687237245627625, + -0.4832244741037814, + -0.39372026404128035, + -0.30163677671658967, + -0.20844036548108796, + -0.11561492940792006, + -0.024638511292156426, + 0.06304001198665696, + 0.14602377914347311, + 0.22298997384398872, + 0.2927106863333142, + 0.3540722783272655, + 0.40609294577589194, + 0.4479382025222127, + 0.47893404066934264, + 0.49857756011035265, + 0.5065448995853223, + 0.5026963441891181, + 0.4870785287811867, + 0.45992370254803444, + 0.42164606631721246, + 0.3728352403850672, + 0.3142469658739284, + 0.24679118626660324, + 0.17151769707457898, + 0.08959958995943908, + 0.0023147523981068563, + -0.08897428534495991, + -0.18284183810963572, + -0.2778215497272616, + -0.3724295183087881, + -0.46518769824393724, + -0.554647209839849, + -0.6394111889984373, + -0.7181568165749683, + -0.7896561800042798, + -0.8527956381935526, + -0.9065933842851307, + -0.9502149293158162, + -0.9829862625838911, + -1.0044044811786175, + -1.0141457210374902, + -1.012070264454224, + -0.998224743488231, + -0.972841404527516, + -0.9363344456019896, + -0.8892934842119368, + -0.8324742586848266, + -0.7667867097097733, + -0.6932806300062178, + -0.6131291084448168, + -0.5276100297123478, + -0.43808592128552337, + -0.3459824655367455, + -0.25276601584943204, + -0.1599204713280269, + -0.06892387479986714, + 0.018774896824302903, + 0.1017789822266787, + 0.17876556504163674, + 0.2485067354819104, + 0.30988885523084836, + 0.3619301202059118, + 0.40379604421790316, + 0.4348126193371432, + 0.454476945424114, + 0.46246516118588576, + 0.45863755168440334, + 0.44304075174599855, + 0.41590701052411205, + 0.3776505288129659, + 0.32886092687529483, + 0.27029394580015575, + 0.20285952903652021, + 0.12760747206252104, + 0.045710866505672514, + -0.04155240019139091, + -0.1328197977978107, + -0.22666564118796498, + -0.32162357422713234, + -0.41620969506065364, + -0.5089459581130956, + -0.5983834837258745, + -0.6831254078361017, + -0.7618489113335276, + -0.8333260816876863, + -0.8964432778412073, + -0.950218692971359, + -0.9938178381504823, + -1.0265667027120042, + -1.0479623837806158, + -1.0576810173295654, + -1.0555828856881804, + -1.041714620951751, + -1.0163084695440645, + -0.9797786295311779, + -0.9327147184493771, + -0.8758724746626497, + -0.810161838896177, + -0.736632603906098, + -0.6564578585990526, + -0.5709154876993714, + -0.48136801871978696, + -0.3892411340702443, + -0.2960011871706534, + -0.20313207716290538, + -0.11211184691103782, + -0.02438937336347289, + 0.0586384821242626, + 0.13564890314960676, + 0.20541397988708848, + 0.2668200739827167, + 0.3188853813159576, + 0.36077541565964, + 0.39181616904607197, + 0.4115047412973923, + 0.419517271082541, + 0.4157140434250187, + 0.40014169311265013, + 0.37303246926028166, + 0.33480057262331353, + 0.28603562342591193, + 0.2274933627179595, + 0.16008373390959996, + 0.08485653243944485, + 0.0029848498959826053, + -0.08425342631717761, + -0.17549576600909994, + -0.26931648409340525, + -0.3642492244755642, + -0.4588100853403527, + -0.5515210211518927, + -0.6409331522922654, + -0.7256496147380315, + -0.8043475894194978, + -0.8757991638467475, + -0.9388906970024304, + -0.9926403821045718, + -1.0362137302658612, + -1.0689367308606963, + -1.0903064810546652, + -1.099999116861805, + -1.0978749206525558, + -1.0839805245633252, + -1.0585481750592876, + -1.02199207024775, + -0.9749018277066048, + -0.9180331858411436, + -0.8522960854183816, + -0.7787403192364029, + -0.6985389762439339, + -0.6129699412065567, + -0.5233957416797048, + -0.4312420601152163, + -0.3379752499758203, + -0.24507921044515385, + -0.15403198443046048, + -0.06628244892243201, + 0.0167725346809593, + 0.09381014993385087, + 0.16360248696799107, + 0.22503590738632345, + 0.27712860702517106, + 0.3190460996141099, + 0.3501143771421221, + 0.3698305393877629, + 0.3778707249765264, + 0.37409521888819863, + 0.3585506558668327, + 0.33146928498344075, + 0.29326530694927533, + 0.24452834194450393, + 0.18601413097502512, + 0.1186326174062945, + 0.043433596632987514, + -0.03840983980128473, + -0.1256198045373864, + -0.2168337674290951, + -0.31062604343500844, + -0.40553027650483064, + -0.5000625648692147, + -0.5927448630372213, + -0.6821282914359701, + -0.7668159860870589, + -0.8454851279668119, + -0.9169078046302983, + -0.9799703751061956, + -1.0336910326580377, + -1.0772352884446346, + -1.1099291318860864, + -1.1312696601939778, + -1.1409330094286463, + -1.1387794620067186, + -1.1248556501109566, + -1.0993938202529336, + -1.0628081705866652, + -1.0156883187364532, + -0.9587900031546689, + -0.8930231646550463, + -0.8194375960824729, + -0.7392063864325479, + -0.6536074205187672, + -0.5640032259432327, + -0.47181948520546674, + -0.37852255181516514, + -0.2855963250038704, + -0.19451884772682573, + -0.10673899702184503, + -0.0236536343353949, + 0.05341442383914777, + 0.12323726758529589, + 0.18470125845783641, + 0.2368245922448987, + 0.27877278262740934, + 0.3098718215461105, + 0.32961880873100896, + 0.33768988275880274, + 0.33394532856052894, + 0.31843178083139234, + 0.2913814885933494, + 0.25320865250874913, + 0.20450289270849514, + 0.14601995014900188, + 0.07866976814648362, + 0.0035021420464454167, + -0.07830983665747013, + -0.16548828065567645, + -0.256670659851721, + -0.35043128925408307, + -0.4453038128624379, + -0.5398043289576773, + -0.6324547920985335, + -0.7218063227627466, + -0.806462057022581, + -0.8850991759043716, + -0.9564897670140278, + -1.0195201894305264, + -1.0732086364686315, + -1.1167206193376151, + -1.1493821275087803, + -1.1706902582447798, + -1.1803211476570625, + -1.178135078213474, + -1.1641786821481577, + -1.138684206024199, + -1.1020658480470082, + -1.0549132258925913, + -0.9979820780653238, + -0.93218234543035, + -0.8585638208849944, + -0.7782995934766573, + -0.6926675480706497, + -0.6030302123217695, + -0.510813268781553, + -0.41748307101262894, + -0.3245235182987343, + -0.23341265364740174, + -0.14559935414966976, + -0.06248048130451483, + 0.014621148341328424, + 0.08447762481881158, + 0.14597530962944377, + 0.19813239850806902, + 0.24011440508257947, + 0.2712473212400853, + 0.291028246657065, + 0.29913331985674296, + 0.29542282571644185, + 0.27994339887754777, + 0.2529272883081014, + 0.214788694616647, + 0.1661172378797513, + 0.1076686589999864, + 0.04035290123916209, + -0.03478024011188424, + -0.1165576736135677, + -0.20370151201114545, + -0.29484922526233953, + -0.38857512843084063, + -0.4834128655710083, + -0.5778785350186627, + -0.6704940913875688, + -0.7598106552107409, + -0.8444313626151978, + -0.9230333946830467, + -0.9943888390753299, + -1.0573840549268942, + -1.1110372356078122, + -1.1545138923829241, + -1.1871400147796023, + -1.208412700116176, + -1.2180080845601782, + -1.215786450635489, + -1.2017944306324417, + -1.1762642711702842, + -1.1396101705109487, + -1.0924217463868258, + -1.035454737358576, + -0.9696190843482779, + -0.8959645803097372, + -0.8156643143475859, + -0.7299961713836403, + -0.6403226791298222, + -0.5480695201947712, + -0.45470304819830804, + -0.3617071624812791, + -0.2705599061091006, + -0.18271015622977277, + -0.09955477440014614, + -0.022416577224167067, + 0.04747652527104665, + 0.10901089452895446, + 0.1612047262269249, + 0.2032235339344362, + 0.23439330948071202, + 0.2542111524840605, + 0.2623532014092854, + 0.25867974107534375, + 0.24323740606517952, + 0.21625844528828814, + 0.17815705929445147, + 0.129522868101334, + 0.07111161255312488, + 0.003833235852189809, + -0.07126246676916523, + -0.1530024039308766, + -0.2401086884371202, + -0.33121879030539436, + -0.42490702465848207, + -0.5197070356098697, + -0.6141349215554692, + -0.7067126371685344, + -0.7959913030418381, + -0.8805740553623967, + -0.9591380752718015, + -1.0304554504916958, + -1.093412540216524, + -1.1470275378768486, + -1.190465954797933, + -1.2230537805672885, + -1.2442881125638308, + -1.253845087015578, + -1.2515849865071478, + -1.23755444338956, + -1.2119857043428728, + -1.175292967690111, + -1.1280658512243926, + -1.0710600935678412, + -1.005185635703421, + -0.9314922706464597, + -0.8511530875625389, + -0.7654459714351791, + -0.6757334500382, + -0.5834412060413853, + -0.49003559312643824, + -0.39700051069601683, + -0.30581400187726315, + -0.217924943880663, + -0.1347301983244917, + -0.057552581875469036, + 0.012379995377364686, + 0.07395389481524009, + 0.12618731205314027, + 0.168245760597584, + 0.19945523221559736, + 0.21931282646259048, + 0.22749468174072154, + 0.2238610828060496, + 0.20845866417856507, + 0.18151967470467312, + 0.14345831487122268, + 0.09486420463257156, + 0.036493084769400205, + -0.03074510157901736, + -0.10580055924407934, + -0.18750019690885752, + -0.2745661274417427, + -0.36563582092334007, + -0.4592835925405504, + -0.5540430864711114, + -0.6484304011744002, + -0.7409674913879153, + -0.8302054777685781, + -0.9147474965674915, + -0.9932707289910252, + -1.0645472628248966, + -1.127463457327841, + -1.1810375059954372, + -1.224434920217245, + -1.2569816896457742, + -1.2781749117246595, + -1.2876907227469196, + -1.2853894053620938, + -1.2713175919863393, + -1.2457075293649154, + -1.2089734158859304, + -1.1617048694080239, + -1.1046576286185754, + -1.0387416345663825, + -0.965006680331897, + -0.8846258551469022, + -0.7988770440604218, + -0.7091227749117728, + -0.6167887304369777, + -0.5233412643840959, + -0.430264276221367, + -0.3390358091424468, + -0.25110474042357817, + -0.1678679317497347, + -0.09064819985432328, + -0.020673454892338947, + 0.04094266445045894, + 0.09321835372234995, + 0.1353191263635421, + 0.1665709740738689, + 0.18647099634194253, + 0.19469533150282203, + 0.19110426424558058, + 0.17574442902301715, + 0.14884807461428518, + 0.11082940143891375, + 0.06227802938385045, + 0.003949699162288947, + -0.06324564615407637, + -0.13825821146415307, + -0.21991490551916, + -0.3069378412550461, + -0.39796448881996843, + -0.4915691634694571, + -0.5862855094486309, + -0.6806296252855182, + -0.7731234657854938, + -0.8623181516742728, + -0.9468168192709965, + -1.025296649850201, + -1.0965297312664775, + -1.1594024228473756, + -1.2129329181568234, + -1.2562867286533486, + -1.288789844058094, + -1.309939361883884, + -1.3194114184925823, + -1.3170662966029387, + -1.3029506287002013, + -1.2772966615988595, + -1.2405185937565277, + -1.193206043101073, + -1.1361147483895293, + -1.0701546507399384, + -0.99637554330258, + -0.9159505153792813, + -0.8301574520882788, + -0.7403588813393954, + -0.6479804859382992, + -0.5544886197027394, + -0.4613671821715747, + -0.3700942166083189, + -0.28211860035998293, + -0.19883719518152979, + -0.12157281787652802, + -0.05155337867090333, + 0.010107483679160922, + 0.06242796465134795, + 0.10457357761489977, + 0.1358703141990884, + 0.15581527382152263, + 0.16408459474639842, + 0.16053856159163074, + 0.14522380873899937, + 0.11837258489640601, + 0.08039909041212757, + 0.03189294510177346, + -0.02639011039299835, + -0.0935401330716507, + -0.16850732790512887, + -0.25011860371577854, + -0.3370960735115222, + -0.42807720751265965, + -0.5216363210461101, + -0.6163070584292688, + -0.7106055182616766, + -0.8030536554214847, + -0.8922025907059138, + -0.9766554605069846, + -1.0550894461709626, + -1.1262766356253793, + -1.1891033882697646, + -1.2425878977409375, + -1.2858956755698534, + -1.3183527115505675, + -1.3394561032684702, + -1.348881987158276, + -1.3464906460116897, + -1.3323287123869765, + -1.3066284331716453, + -1.2698040068964525, + -1.2224450515624703, + -1.1653073059999084, + -1.099300711400481, + -1.0254750609877141, + -0.9450034441366088, + -0.8591637460394019, + -0.7693184946794196, + -0.6768933729358689, + -0.5833547347007972, + -0.49018647958641776, + -0.39886665093050633, + -0.31084412615358187, + -0.22751576708503696, + -0.15020439060284912, + -0.08013790700673527, + -0.018429955127418393, + 0.033937660438742176, + 0.07613045298631776, + 0.10747441406996275, + 0.12746664303296035, + 0.13578327806469093, + 0.13228460370847578, + 0.11701725427120957, + 0.09021347838600156, + 0.052287476326111054, + 0.00382886783236272, + -0.05440660652874832, + -0.12150900383209484, + -0.19642852912364042, + -0.2779920913006797, + -0.3649218034470785, + -0.45585513585792226, + -0.5493664039360984, + -0.6439892520742293, + -0.738239778947988, + -0.8306399395108679, + -0.9197408546355338, + -1.0041456607901837, + -1.082531539397251, + -1.153670578459804, + -1.2164491374536577, + -1.2698854100914125, + -1.3131449079805924, + -1.345553620991168, + -1.3666086467850374, + -1.3759861218732776, + -1.3735463291239765, + -1.3593359011719444, + -1.3335870849812428, + -1.2967140791592908, + -1.2493065017838725, + -1.1921200917618584, + -1.1260647903621668, + -1.052190390884738, + -0.9716699827821074, + -0.8857814513231272, + -0.7958873245683775, + -0.7034132854742545, + -0.6098256880098791, + -0.5166084318652856, + -0.4252395604549582, + -0.33716795127752164, + -0.2537904662393863, + -0.17642992229627347, + -0.10631422982553805, + -0.04455702773550538, + 0.007859879299287026, + 0.05010200449608085, + 0.08149533933146941, + 0.10153698307066435, + 0.10990307382502336, + 0.10645389605981016, + 0.09123608400380319, + 0.06448188621181908, + 0.02660550287892048, + -0.0218034463326377, + -0.07998922093468294, + -0.14704187808029595, + -0.22191162289417793, + -0.3034253643525612, + -0.39030521561754833, + -0.48118864706327386, + -0.5746499741709303, + -0.6692228414126676, + -0.7634233475424115, + -0.8557734475929915, + -0.944824262516287, + -1.0291789288597417, + -1.1075146281242176, + -1.1786034483926158, + -1.2413317492198024, + -1.2947177243980654, + -1.3379268856140958, + -1.3702852228172713, + -1.3912898337492479, + -1.4006168550005906, + -1.3981265695191225, + -1.3838656100193583, + -1.3580662235451788, + -1.3211426087837734, + -1.2736843838930652, + -1.2164472878598014, + -1.1503412620326616, + -1.0764160997920422, + -0.9958448906703676, + -0.9099055200171637, + -0.8199605159728458, + -0.7274355615742955, + -0.6337970108712099, + -0.5405287636335749, + -0.44910886335674327, + -0.36098618762024204, + -0.2775575984106319, + -0.20014591276449756, + -0.12997904113995576, + -0.06817062252614738, + -0.015702461678491736, + 0.026590954539380665, + 0.05803561752287034, + 0.07812862645631942, + 0.08654611936996694, + 0.0831483806478403, + 0.06798204443747585, + 0.04127935921250275, + 0.003454525086467111, + -0.044902838359529504, + -0.10303699071887429, + -0.1700379892263164, + -0.24485603908831338, + -0.3263180493620326, + -0.41314613329182825, + -0.5039777613332687, + -0.5973872490498493, + -0.691908240995256, + -0.7860568360049848, + -0.8783549891945166, + -0.9673538215971034, + -1.051656469842611, + -1.12994011551433, + -1.20097684677692, + -1.2636530232677574, + -1.3169868388611172, + -1.3601438053263173, + -1.392449912695241, + -1.4134022587918307, + -1.4226769802892605, + -1.420134360217911, + -1.405821031374979, + -1.3799692408870146, + -1.3429931875240433, + -1.295482489526575, + -1.238192885964325, + -1.1720343182691646, + -1.0980565799041089, + -1.0174327604848776, + -0.9314407454436231, + -0.8414430630041762, + -0.7488653962869574, + -0.6551740994242319, + -0.561853072269958, + -0.47038035840248504, + -0.38220483548442197, + -0.29872336558627305, + -0.22125876582782464, + -0.15103894675116755, + -0.08917754742864187, + -0.036656372699465256, + 0.005690090489013547, + 0.03718783344843664, + 0.05733395527932915, + 0.06580459392799971, + 0.06246003369461711, + 0.04734690864275368, + 0.020697467161912245, + -0.017074090718424, + -0.0653781455010712, + -0.1234589568639615, + -0.19040658212577405, + -0.2651712265772143, + -0.34657979936019634, + -0.43335441380288586, + -0.5241325404459041, + -0.6174884949365835, + -0.7119559219134737, + -0.8060509202970026, + -0.8982954452867753, + -0.9872406180010607, + -1.0714895751539835, + -1.1497194984141021, + -1.220702476030743, + -1.2833248677261688, + -1.3366048674595894, + -1.3797079870853692, + -1.4119602167202319, + -1.432858654273392, + -1.4420794365030773, + -1.4394828465248768, + -1.4251155172211405, + -1.3992096958038185, + -1.3621795811280808, + -1.3146147915200586, + -1.2572710661347806, + -1.1910583464893092, + -1.1170264261325211, + -1.0363483947654304, + -0.950302137906249, + -0.860250183864178, + -0.767618215845159, + -0.6738725880670298, + -0.5804972004703938, + -0.4889700967186035, + -0.4007401545608136, + -0.317204236152975, + -0.23968515870115958, + -0.16941083283306899, + -0.10749489770743095, + -0.05491915824974708, + -0.012518101493227962, + 0.019034263787444133, + 0.039235036606559984, + 0.047760354824128715, + 0.04447050265393854, + 0.029412114073172305, + 0.00281743738498072, + -0.0348993274676493, + -0.08314856107427147, + -0.1411745231991432, + -0.20806727124763288, + -0.28277701059711935, + -0.3641306504760632, + -0.4508503042998243, + -0.5415734426955316, + -0.6348743813970021, + -0.7292867651303321, + -0.8233266929021941, + -0.9155161199996676, + -1.0044061676276985, + -1.088599972587939, + -1.1667747166356959, + -1.2377024881071854, + -1.3002696468122612, + -1.3534943867972107, + -1.3965422200036635, + -1.4287391366356492, + -1.4495822346897262, + -1.4587476510115245, + -1.4560956688040279, + -1.4416729210371355, + -1.4157116550101827, + -1.3786260696659176, + -1.3310057834182811, + -1.2736065355095771, + -1.2073382675449755, + -1.1332507731607242, + -1.0525171421458615, + -0.9664152601059475, + -0.8763076554383087, + -0.7836200114371157, + -0.6898186824077959, + -0.5963875683785713, + -0.5048047131013014, + -0.4165189944128526, + -0.33292727455773063, + -0.25535237082951, + -0.1850221939446251, + -0.12305038314968333, + -0.07041874345826038, + -0.027961761992142717, + 0.0036465523857879822, + 0.02390329860144802, + 0.032484614426457184, + 0.02925078398620931, + 0.014248441169343998, + -0.012290165809352702, + -0.04995083709564417, + -0.09814395336737616, + -0.1561137744776681, + -0.22295035792033746, + -0.2976039091618333, + -0.3789013375191076, + -0.46556475649597007, + -0.5562316368086323, + -0.6494762942801026, + -0.7438323737248531, + -0.8378159742388025, + -0.9299490511974731, + -1.0187827258954607, + -1.1029201352227926, + -1.181038461024177, + -1.251909791725166, + -1.3144204872244307, + -1.3675887416572619, + -1.4105800670547857, + -1.442720453710165, + -1.4635069997092292, + -1.4726158419869075, + -1.4699072638355268, + -1.4554278983143134, + -1.4294099928121269, + -1.3922677463611337, + -1.3445907774645347, + -1.2871348254543904, + -1.2208098320252088, + -1.1466655909031858, + -1.0658751919664493, + -0.9797165209107767, + -0.8895521062227221, + -0.796807631286319, + -0.7029494504967359, + -0.6094614639719714, + -0.5178217155536963, + -0.4294790831687764, + -0.3458304291511171, + -0.26819857088454424, + -0.19781141917566517, + -0.13578261336056677, + -0.08309395854325738, + -0.04057994193525784, + -0.00891457248962814, + 0.011399248629472988, + 0.020037659103535096, + 0.016860942967759793, + 0.0019157340206711337, + -0.02456571961330646, + -0.06216921817006066, + -0.11030514241785538, + -0.16821775229985092, + -0.2349971054006055, + -0.30959340727633555, + -0.39083356733504904, + -0.477439699170891, + -0.5680492735903967, + -0.6612366065067141, + -0.7555353428253404, + -0.8494615817324123, + -0.9415372786945391, + -1.0303135550965759, + -1.1143935479188953, + -1.1924544390974676, + -1.2632683171479875, + -1.325721542060159, + -1.3788323080601887, + -1.4217661272696862, + -1.4538489900727756, + -1.474577994645966, + -1.4836292780152125, + -1.4808631235636802, + -1.4663261644415178, + -1.4402506481285422, + -1.4030507737477929, + -1.3553161598937302, + -1.297802545989197, + -1.2314198738199633, + -1.1572179372029354, + -1.076369826107568, + -0.9901534263211138, + -0.8999312664208248, + -0.8071290298820757, + -0.7132130711912499, + -0.6196672905574162, + -0.5279697319140165, + -0.43956927327854184, + -0.3558627770768564, + -0.27817306078378323, + -0.2077280352970603, + -0.14564134004455775, + -0.09289478022147872, + -0.05032284313105609, + -0.018599537817530196, + 0.0017722344633380877, + 0.010468611301537797, + 0.007349876640732431, + -0.007537335812157264, + -0.03396077802416267, + -0.07150625032290857, + -0.11958413356815557, + -0.1774386877949921, + -0.24415997067951278, + -0.3186981878693309, + -0.399880248864727, + -0.48642826735100275, + -0.5769797142269151, + -0.6701089054972551, + -0.7643494861593327, + -0.8582175554912896, + -0.9502350690510865, + -1.0389531483158096, + -1.1229749303580276, + -1.2009775972051704, + -1.271733237465038, + -1.3341282112193866, + -1.3871807127861158, + -1.430056254379141, + -1.4620808264744642, + -1.4827515273408003, + -1.4917444940960158, + -1.4889200102154188, + -1.4743247089412674, + -1.4481908378455624, + -1.4109325961433248, + -1.3631396025212719, + -1.3055675964946474, + -1.2391265199410315, + -1.1648661667700242, + -1.083959627043109, + -0.9976847866394662, + -0.9074041742290969, + -0.8145434733793566, + -0.720569038669459, + -0.6269647704004754, + -0.5352087125978708, + -0.4467497433718668, + -0.36298472524101855, + -0.2852364757719681, + -0.2147329059554342, + -0.15258765531134247, + -0.09978252912758506, + -0.05715201479960627, + -0.025370121464378642, + -0.004939750470227711, + 0.0038152356804468796, + 0.0007551208387052838, + -0.014073461381101077, + -0.04043826303864165, + -0.07792508455398389, + -0.12594430687975638, + -0.18374019014335352, + -0.2504027921136627, + -0.32488231853126537, + -0.40600567898872797, + -0.49249498726417656, + -0.5829877143490882, + -0.6760581763409752, + -0.77024001832989, + -0.8640493396867298, + -0.9560080960622259, + -1.0446674090264059, + -1.1286304157441744, + -1.2065742983362386, + -1.2772711455030659, + -1.3396073174192673, + -1.3926010084956846, + -1.4354177310388292, + -1.4673834756179118, + -1.487995340594296, + -1.4969294631789152, + -1.4940461269399479, + -1.4793919652125886, + -1.4531992256617334, + -1.4158821075956052, + -1.368030229793591, + -1.3103993318639262, + -1.2438993557772609, + -1.1695800955365072, + -1.0886146412956226, + -1.002280879027416, + -0.9119413374944706, + -0.8190217003575234, + -0.7249883222883488, + -0.6313251036814369, + -0.539510088655681, + -0.45099215541405024, + -0.3671681665679188, + -0.28936093977751454, + -0.21879838612641034, + -0.15659414522804876, + -0.10373002246301113, + -0.0610405053203036, + -0.029199603029841203, + -0.008710217033117543, + 0.00010379007422241238, + -0.002897297950006969, + -0.017666847584633147, + -0.04397261098249379, + -0.08140038865704399, + -0.1293605616540922, + -0.1870973901940327, + -0.25370093213943967, + -0.3281213933236643, + -0.40918568343293954, + -0.4956159163385433, + -0.5860495631252326, + -0.6790609399839895, + -0.7731836920976624, + -0.8669339189309669, + -0.958833576227784, + -1.047433785651466, + -1.1313376844604002, + -1.2092224548681847, + -1.2798601856690883, + -1.3421372371309128, + -1.3950718037577725, + -1.43782939794982, + -1.4697360103694048, + -1.490288739471233, + -1.4991637225597487, + -1.4962212432964774, + -1.4815079351100082, + -1.4552560457586379, + -1.4178797746439948, + -1.3699687406387757, + -1.312278683444926, + -1.2457195451263623, + -1.17134111977912, + -1.0903164976509805, + -1.0039235648078964, + -0.9135248501063657, + -0.8205460372999226, + -0.7264534811544542, + -0.6327310821575607, + -0.5408568845212528, + -0.4522797665423104, + -0.36839659092586197, + -0.2905301754251364, + -0.21990843121745263, + -0.15764499800934983, + -0.10472168127517305, + -0.06197296859752606, + -0.030072869299512764, + -0.009524284916316517, + -0.0006510781369478552, + -0.0035929652970979886, + -0.01830331296909117, + -0.044549873399305745, + -0.08191844719452832, + -0.12981941549411635, + -0.18749703861220426, + -0.2540413745045591, + -0.3284026290982649, + -0.40940771217263583, + -0.49577873769285596, + -0.5861531768370496, + -0.679105345889522, + -0.7731688901271259, + -0.8668599091077343, + -0.9587003586683921, + -1.047241360566451, + -1.131086052153479, + -1.2089116157370174, + -1.2794901402045002, + -1.3417079859170142, + -1.3945833474726257, + -1.4372817373645814, + -1.4691291463489546, + -1.489622672973977, + -1.498438454637455, + -1.495436775094432, + -1.4806642678670152, + -1.4543531808069523, + -1.4169177134093633, + -1.3689474846404246, + -1.3111982342955655, + -1.2445799045320292, + -1.1701422895397244, + -1.0890584796595075, + -1.0026063610510865, + -0.9121484626639461, + -0.8191104683453849, + -0.7249587329550977, + -0.6311771570734592, + -0.5392437850066034, + -0.4506074951442486, + -0.36666515028498237, + -0.288739568275919, + -0.2180586603872364, + -0.15573606641942367, + -0.1027535919399584, + -0.059945724624739904, + -0.027986473890532063, + -0.007378741365812347, + 0.0015536101669099966, + -0.0013291357213475324, + -0.015980345696355022, + -0.04216777209786621, + -0.07947721562604883, + -0.12731905751373515, + -0.1849375581681276, + -0.2514227756386566, + -0.32572491594552366, + -0.40667088896180653, + -0.4929828087457807, + -0.58329814656856, + -0.6761912188084285, + -0.7701956708348947, + -0.8638276022994869, + -0.9556089691328897, + -1.0440908931852526, + -1.127876511901752, + -1.205643007682766, + -1.2761624695093348, + -1.338321257835915, + -1.3911375673538737, + -1.4337769106492608, + -1.4655652785717903, + -1.4859997697627176, + -1.494756521713201, + -1.4916958182714692, + -1.4768642930528033, + -1.4504941940021183, + -1.4129997207078993, + -1.3649704922293129, + -1.3071622484550118, + -1.2404849316354145, + -1.1659883360534322, + -1.0848455521434728, + -0.9983344661578003, + -0.9078176071396304, + -0.8147206590290634, + -0.7205099767785375, + -0.6266694610620236, + -0.5346771562785566, + -0.4459819409109217, + -0.36198067785090665, + -0.28399618503821633, + -0.21325637383638907, + -0.1508748841391313, + -0.09783352160649184, + -0.05496677400772647, + -0.022948650852332053, + -0.0022820538618678193, + 0.006709154088297267, + 0.0038852564761220204, + -0.01070711345700813, + -0.0368357081438066, + -0.07408632837733266, + -0.12186935548330972, + -0.17942904996181638, + -0.24585546995514562, + -0.32009882157648706, + -0.4009860147913391, + -0.48723916375105103, + -0.5774957398198898, + -0.6703300594686216, + -0.7642757681591817, + -0.85784896563654, + -0.9495716079234577, + -1.0379948169633209, + -1.1217217302937075, + -1.199429530408148, + -1.2698903063800397, + -1.3319904187563107, + -1.3847480623212454, + -1.4273287497536815, + -1.4590584719957038, + -1.4794343277812927, + -1.4881324546941024, + -1.4850131366750245, + -1.4701230074319007, + -1.443694315002219, + -1.4061412590668159, + -1.358053458777555, + -1.3001866541155267, + -1.2334507874236091, + -1.1588956530773182, + -1.0776943416030884, + -0.991124739345859, + -0.9005493754415985, + -0.8073939339221381, + -0.7131247698329584, + -0.6192257839398698, + -0.5271750207345756, + -0.4384213587916829, + -0.3543616610956134, + -0.27631874567863535, + -0.20552052399621135, + -0.1430806360340865, + -0.08998088754487837, + -0.04705576638985172, + -0.014979282170902594, + 0.005745663298500375, + 0.01479520705067948, + 0.012029632471589627, + -0.0025044272895680536, + -0.028574724757607223, + -0.06576706081746977, + -0.11349181688710444, + -0.17099325355854633, + -0.2373614290660851, + -0.3115465496150298, + -0.39237552526240294, + -0.4785704702520801, + -0.5687688560396124, + -0.6615449991879676, + -0.7554325452513007, + -0.8489475940659182, + -0.9406121017467415, + -1.0289771903284626, + -1.1126459974410863, + -1.1902957056692853, + -1.260698404178642, + -1.3227404536076466, + -1.3754400488322718, + -1.4179627026230328, + -1.4496344060136377, + -1.469952257829663, + -1.478592395746457, + -1.4754151037963645, + -1.4604670157788724, + -1.433980379822868, + -1.396369395700896, + -1.3482236826561098, + -1.2902989807611067, + -1.223505232450208, + -1.1488922321901875, + -1.0676330705992703, + -0.981005634113498, + -0.8903724519598186, + -0.797159208261852, + -0.7028322581560248, + -0.6088755024999104, + -0.5167669858757606, + -0.4279555869502054, + -0.3438381687980251, + -0.26573754954282636, + -0.19488164073136816, + -0.13238408244069028, + -0.07922668051413054, + -0.03624392290418656, + -0.004109819303550227, + 0.016672728383122185, + 0.025779857097201014, + 0.02307185013374942, + 0.008595340551092595, + -0.017417424266441855, + -0.0545522452948253, + -0.10221950404264347, + -0.1596634611928971, + -0.22597417507031992, + -0.3001018519711419, + -0.38087340204341924, + -0.46701093962128026, + -0.5571519362510705, + -0.6498707085865596, + -0.7437009022719858, + -0.8371586172347316, + -0.9287658096799217, + -1.017073601733253, + -1.1006851311148562, + -1.1782775804995889, + -1.2486230391438822, + -1.3106078677764734, + -1.363250261363695, + -1.4057157327664522, + -1.437330273108556, + -1.4575909813060899, + -1.4661739951244708, + -1.4629395986863691, + -1.4479344258813502, + -1.4213907249285103, + -1.3837226956904145, + -1.3355199575005143, + -1.2775382505212491, + -1.2106875172770144, + -1.136017552324578, + -1.0547014463721232, + -0.9680170859454496, + -0.8773270003618836, + -0.7840568738344176, + -0.6896730615896346, + -0.5956594645743907, + -0.503494127461048, + -0.41462592900627854, + -0.33045173237392755, + -0.2522943557778629, + -0.18138171085414267, + -0.11882743776920207, + -0.06561334245628775, + -0.022573912957235792, + 0.00961684094555125, + 0.030456017258157053, + 0.03961975283251645, + 0.036968330874240035, + 0.022548384352329615, + -0.0034078394382937305, + -0.040486141562686984, + -0.08809690361887529, + -0.14548438637890537, + -0.21173864825701533, + -0.28580989563840076, + -0.36652503875990394, + -0.4526061920451585, + -0.5426908271292411, + -0.6353532607554182, + -0.7291271386565673, + -0.8225285608486581, + -0.9140794836263844, + -1.0023310292036363, + -1.0858863353897155, + -1.1634225849485298, + -1.2337118672248275, + -1.2956405430363074, + -1.3482268074376496, + -1.3906361733786592, + -1.4221946320718317, + -1.442399282521627, + -1.450926262581993, + -1.4476358564641267, + -1.4325746981460843, + -1.4059750359353058, + -1.3682510697828203, + -1.3199924191101955, + -1.2619548241682625, + -1.1950482275699439, + -1.1203224239598892, + -1.0389505041345637, + -0.9522103547079086, + -0.8614645050851815, + -0.7681386395679292, + -0.6736991134700896, + -0.5796298278271732, + -0.48740882739913494, + -0.3984849910302296, + -0.314255181972648, + -0.2360422185279098, + -0.1650740124197484, + -0.10246420390268107, + -0.049194598997304245, + -0.006099685833225316, + 0.026146525719535213, + 0.047041133579506136, + 0.05626027451102723, + 0.05366423163227724, + 0.039299637824776565, + 0.01339874029605928, + -0.023624262106385352, + -0.07117975106768859, + -0.12851198744750772, + -0.19471102974692525, + -0.268727084438515, + -0.3493870618466028, + -0.43541307648150296, + -0.5254426000656715, + -0.6180499494287408, + -0.7117687703914068, + -0.8051151630564195, + -0.896611083805193, + -0.984807654938154, + -1.068308014352049, + -1.1457893448969598, + -1.2160237360047912, + -1.2778975485796704, + -1.3304289777632383, + -1.3727835365916292, + -1.4042872163637998, + -1.424437116170897, + -1.4329093739533207, + -1.4295642740086179, + -1.4144484504012005, + -1.387794151524932, + -1.3500155774169496, + -1.3017023475853038, + -1.2436102023669149, + -1.1766490844606983, + -1.1018687885972205, + -1.0204424056596941, + -0.9336478223475055, + -0.8428475681521839, + -0.7494673274606904, + -0.6549734556731541, + -0.5608498539112525, + -0.4685745670200372, + -0.3795964739301468, + -0.2953124379789654, + -0.21704527755381114, + -0.14602290446399194, + -0.0833589590494577, + -0.030035247416618907, + 0.013113742219797872, + 0.045413999904272195, + 0.06636262346998463, + 0.0756357495959873, + 0.07309366131517987, + 0.05878299142391975, + 0.03293598704455819, + -0.00403315306043725, + -0.05153481066147311, + -0.10881324670311097, + -0.1749585197711139, + -0.2489208364234612, + -0.32952710706878546, + -0.415499446302647, + -0.5054753259321179, + -0.5980290628715401, + -0.6916943030264431, + -0.7849871465836746, + -0.8764295500095602, + -0.9645726356893558, + -1.0480195416037794, + -1.1254474506876266, + -1.1956284524567455, + -1.2574489079000946, + -1.3099270122431115, + -1.3522282786063993, + -1.38367869837316, + -1.4037753707184608, + -1.4121944336667598, + -1.4087961715996713, + -1.3936272186655705, + -1.36691982334212, + -1.3290881857503198, + -1.280721925482228, + -1.2225767829581433, + -1.1555627009611067, + -1.0807294743051044, + -0.9992501939566368, + -0.9124027466990471, + -0.8215496621070306, + -0.7281166246514751, + -0.633569989815555, + -0.5393936588039225, + -0.44706567654540796, + -0.3580349220535322, + -0.27369825874931714, + -0.19537850510270305, + -0.12430357300621865, + -0.06158710288291812, + -0.008210900921828634, + 0.034990544579172, + 0.06734322358164588, + 0.088344233836185, + 0.09766971193904032, + 0.09517994084047114, + 0.08092155325414827, + 0.05512679621998584, + 0.018209868417768282, + -0.02923961200510966, + -0.08646590607570932, + -0.1525590724624081, + -0.22646931780511884, + -0.3070235525949706, + -0.39294389150924247, + -0.482867806437575, + -0.5753696143762183, + -0.6689829613127032, + -0.762223947515828, + -0.8536145295339674, + -0.9417058298337235, + -1.0251009864780796, + -1.1024771824832462, + -1.1726065074471497, + -1.2343753224400404, + -1.2868018227687386, + -1.3290515216357028, + -1.360450410505266, + -1.3804955886340775, + -1.3888631941278433, + -1.3854135114494321, + -1.37019317482839, + -1.3434344328236159, + -1.3055514856371777, + -1.2571339529419476, + -1.1989375752394344, + -1.1318722953933797, + -1.0569879082989946, + -0.9754575050031951, + -0.8885589723701706, + -0.7976548400554611, + -0.7041707926100644, + -0.6095731855980373, + -0.5153459203048667, + -0.42296704173930433, + -0.333885428995575, + -0.2494979455745328, + -0.17112741002671622, + -0.10000173432509098, + -0.037234558972320295, + 0.016192309762029122, + 0.05944438350033518, + 0.09184765212429281, + 0.11289921330441355, + 0.12227520355719862, + 0.11983590575310704, + 0.10562795252617978, + 0.07988359083661624, + 0.04301701928448373, + -0.004382144061970933, + -0.06155816030967991, + -0.12760108820598665, + -0.2014611344704853, + -0.28196520967331007, + -0.3678354285714001, + -0.4577092631332565, + -0.5501610304338642, + -0.6437243765402771, + -0.7369154018000799, + -0.8282560628405476, + -0.9162974822072704, + -0.9996427980415246, + -1.0769691934388421, + -1.1470487580752162, + -1.2087678530997912, + -1.2611446738980638, + -1.3033447337506407, + -1.3346940242003558, + -1.3546896445821583, + -1.3630077330800225, + -1.3595085742350144, + -1.344238802354762, + -1.317430666076359, + -1.2794983656796663, + -1.2310315209157765, + -1.172785872363826, + -1.1056713629655655, + -1.0307377876935737, + -0.9491582376726623, + -0.8622105998449621, + -0.7712574039429392, + -0.6777243345957158, + -0.5830777474442606, + -0.488801543851577, + -0.3963737689036945, + -0.3072433017718931, + -0.22280700603465264, + -0.14438770031924625, + -0.0732132966754114, + -0.010397435683070513, + 0.043078076311170846, + 0.08637875085323524, + 0.11883057774778243, + 0.13993065458883433, + 0.1493551178162021, + 0.14696425022383586, + 0.13280468436922183, + 0.1071086671362849, + 0.0702903970487006, + 0.022939492098251246, + -0.03418830889796318, + -0.10018306476362862, + -0.17399498229404134, + -0.25445097213585666, + -0.3402731491213745, + -0.4300989852952445, + -0.5225027978085953, + -0.616018232803711, + -0.7091613907040013, + -0.8004542282123259, + -0.8884478679496411, + -0.971745448133147, + -1.0490241519334118, + -1.1190560691015072, + -1.18072756086231, + -1.2330568226760592, + -1.275209367898765, + -1.3065111881481384, + -1.3264593828342401, + -1.3347300902158088, + -1.331183594908739, + -1.3158665312954894, + -1.2890111480876918, + -1.251031645639946, + -1.2025176437777483, + -1.1442248831549746, + -1.0770633067873778, + -1.0020827097223228, + -0.9204561831586575, + -0.833461614112361, + -0.7424615323902943, + -0.6488816226959737, + -0.5541882407438349, + -0.4598652879709386, + -0.3673908095371433, + -0.27821368468732277, + -0.1937307770740985, + -0.11526490539775919, + -0.04404398178212755, + 0.01881835311971833, + 0.07234029288794461, + 0.11568734899486298, + 0.14818551117203754, + 0.16933187694016494, + 0.17880258266613083, + 0.1764579110707726, + 0.1623444946386627, + 0.13669458018083655, + 0.09992236614816548, + 0.05261747045971847, + -0.004464368140082886, + -0.0704132085473726, + -0.14417925763032333, + -0.2245894261078074, + -0.31036582888414205, + -0.4001459380768909, + -0.4925040709087387, + -0.5859738735945998, + -0.6790714466297803, + -0.7703187467891259, + -0.8582668967656566, + -0.9415190348479363, + -1.018752344278634, + -1.0887389148807407, + -1.1503651079503503, + -1.2026491190194535, + -1.244756461515247, + -1.2760131271271484, + -1.2959162153362511, + -1.3041418644727467, + -1.3005503592235783, + -1.2851883340422363, + -1.2582880377114938, + -1.2202636706567431, + -1.1717048527744642, + -1.1133673247890303, + -1.0461610297870285, + -0.971135762886746, + -0.8894646153570194, + -0.8024254742848811, + -0.7113808695472936, + -0.6177564859177243, + -0.5230186791813441, + -0.42865135084503125, + -0.33613254613922117, + -0.24691114437843775, + -0.16238400928492483, + -0.0838739596292751, + -0.012608907604915953, + 0.050297506065481015, + 0.10386347489217866, + 0.1472545102782589, + 0.17979660188568974, + 0.2009868471659499, + 0.21050138241647626, + 0.2082004902889485, + 0.1941308031988011, + 0.1685245678880199, + 0.13179598273849844, + 0.08453466560030769, + 0.027496355149348714, + -0.03840900757966072, + -0.11213162952308443, + -0.1924984214685882, + -0.2782314983893306, + -0.3679683324708264, + -0.46028324100442086, + -0.5537098702727818, + -0.6467643208398955, + -0.737968549548536, + -0.8258736791597412, + -0.9090828480300045, + -0.9862732394699862, + -1.0562169433700537, + -1.1178003210943865, + -1.1700415682423673, + -1.2121061983089927, + -1.243320203050899, + -1.263180682016513, + -1.271363773603436, + -1.2677297625657657, + -1.252325283424177, + -1.2253825850283429, + -1.187315867870747, + -1.1387147519146072, + -1.0803349779513696, + -1.0130864891341882, + -0.9380190806476747, + -0.8563058438276127, + -0.769224665827368, + -0.6781380765901088, + -0.5844717609561125, + -0.4896920747762594, + -0.3952829196238994, + -0.30272234079501414, + -0.21345921767044101, + -0.12889041403860796, + -0.050338748735441335, + 0.02096786597963611, + 0.08391578931868118, + 0.1375232147261447, + 0.1809556535394855, + 0.21353909535561308, + 0.2347706375604656, + 0.2443264163864179, + 0.24206671441997046, + 0.2280381640115159, + 0.20247301183802097, + 0.1657854562166663, + 0.11856511493267075, + 0.06156772659698813, + -0.0042967678201285275, + -0.07797857531927971, + -0.15830460675313313, + -0.2439969771586158, + -0.33369315878599015, + -0.42596746899047105, + -0.5193535541193441, + -0.612367514800284, + -0.7035313079396608, + -0.7913960563628789, + -0.8745648984900296, + -0.9517150176954493, + -1.0216185039332313, + -1.0831617186306874, + -1.1353628574510886, + -1.1773874339523709, + -1.2085614399546492, + -1.228381975069554, + -1.2365251777576343, + -1.2328513328360255, + -1.217407074888249, + -1.1904246528269304, + -1.1523182672071521, + -1.1036775380548216, + -1.0452582062239326, + -0.9779702149299789, + -0.9028633594203481, + -0.8211107310927173, + -0.7339902171627888, + -0.6428643476358542, + -0.5491588074140432, + -0.4543399524106899, + -0.359891684260316, + -0.2672920483213473, + -0.1779899240359455, + -0.09338217525382685, + -0.014791620872887545, + 0.056553826786321176, + 0.11954052687405947, + 0.1731866727741358, + 0.2166577757626953, + 0.2492798253754695, + 0.27054991893738956, + 0.2801441926200868, + 0.2779229289492245, + 0.263932760214497, + 0.23840593303231683, + 0.2017566456591811, + 0.15457451581994167, + 0.09761528206544821, + 0.03178888530554819, + -0.04185488152081908, + -0.12214292932600274, + -0.20779737320719888, + -0.29745568547408263, + -0.3896921835423205, + -0.48304051381823865, + -0.5760167769894715, + -0.6671429300220955, + -0.7549700958010868, + -0.838101412805102, + -0.9152140644683646, + -0.9850801408038486, + -1.0465860032983216, + -1.0987498476737432, + -1.140737187546821, + -1.1718740147967641, + -1.1916574290936977, + -1.1997635689569188, + -1.1960527192620436, + -1.18057151465104, + -1.153552204094822, + -1.1154089882068798, + -1.0667314870711184, + -1.0082754415996593, + -0.9409507950659667, + -0.8658073427753157, + -0.7840181761831732, + -0.6968611825629412, + -0.605698891977512, + -0.5119569893867046, + -0.4171018307607627, + -0.32261731779188174, + -0.22998149589605016, + -0.14064324457191846, + -0.05599942772688608, + 0.02262713568466479, + 0.0940085332850336, + 0.15703112416808776, + 0.21071310166066853, + 0.25421997698220283, + 0.28687773961215923, + 0.3081834868191088, + 0.31781335471824973, + 0.31562762577907605, + 0.3016729322351925, + 0.27618152064691, + 0.2395675892149714, + 0.19242075560833144, + 0.13549675832186972, + 0.0697055382099393, + -0.003903111843769319, + -0.08415610280744734, + -0.16977554983336382, + -0.25939892528693625, + -0.3516005466386916, + -0.4449140603496832, + -0.5378555671632007, + -0.6289470240995325, + -0.7167395540987921, + -0.7998362956946289, + -0.8769144323754032, + -0.9467460542088724, + -1.0082175227358332, + -1.0603470337328558, + -1.1023001008709836, + -1.1334027160832996, + -1.1531519790940723, + -1.1612240284764295, + -1.1574791491599266, + -1.1419639758402198, + -1.114910757541921, + -1.0767336949319124, + -1.0280224081476055, + -0.9695326381547185, + -0.9021743282796754, + -0.8269972738810043, + -0.7451745664672377, + -0.6579840933645831, + -0.5667883846892812, + -0.47301312545327756, + -0.3781246716801545, + -0.2836069251143413, + -0.1909379312239805, + -0.10156656956060245, + -0.01688970408357887, + 0.06176984620007041, + 0.13318416886113332, + 0.19623962294095404, + 0.2499544017148534, + 0.29349401635035277, + 0.32618445627523396, + 0.347522818706354, + 0.3571852397075339, + 0.35503200169682614, + 0.34110973685650225, + 0.31565069169562954, + 0.2790690643640156, + 0.2319544724793181, + 0.17506265448585379, + 0.1093035511868786, + 0.03572695541546095, + -0.04449404384721524, + -0.1300815618040911, + -0.2196730708705335, + -0.31184288856769393, + -0.40512466140719683, + -0.4980344901819511, + -0.5890943319625999, + -0.6768553097386869, + -0.7599205620941892, + -0.8369672725670144, + -0.9067675312744283, + -0.9682076998071306, + -1.0203059739908198, + -1.0622278675457517, + -1.0932993724544795, + -1.1130175884902842, + -1.1210586542754215, + -1.1172828547882503, + -1.101736824773343, + -1.074652813303946, + -1.0364450210957292, + -0.9877030683345802, + -0.9291826960343914, + -0.8617938475702096, + -0.7865863183485559, + -0.7047331999264947, + -0.61751237967801, + -0.526286387767082, + -0.432480909253287, + -0.337562300208781, + -0.2430144624247704, + -0.1503154414175839, + -0.06091411678567213, + 0.023792647463967552, + 0.10248203227754593, + 0.173926125178403, + 0.237011285160679, + 0.29075570545312945, + 0.33432489717633773, + 0.36704484971140905, + 0.3884126602286091, + 0.3981044647451655, + 0.39598054563281493, + 0.3820875350275271, + 0.3566576793922085, + 0.32010517683038964, + 0.2730196449139273, + 0.2161568220411958, + 0.15042664896964453, + 0.07687891848666378, + -0.0033132804721402592, + -0.08887206315535631, + -0.17843490202323464, + -0.27057611464286113, + -0.363829347570361, + -0.4567107016442177, + -0.5477421339797088, + -0.6354747676117328, + -0.7185117411686741, + -0.7955302382328265, + -0.8653023489665728, + -0.9267144350045426, + -0.9787846922171554, + -1.0206786343687777, + -1.0517222534861101, + -1.0714126493864962, + -1.079425960736028, + -1.0756224725570136, + -1.0600488196376578, + -1.0329372510948103, + -0.9947019676878385, + -0.9459325896457458, + -0.8873848580261035, + -0.81996871624686, + -0.7447339597578715, + -0.6628536801587899, + -0.5756057648667346, + -0.48435274408882545, + -0.3905203029270051, + -0.29557479749565807, + -0.20100012962897673, + -0.10827434488532031, + -0.01884632290589497, + 0.06588707226078086, + 0.1446030215182555, + 0.21607361234825165, + 0.2791852037032616, + 0.33295598876995924, + 0.3765514786274171, + 0.4092976626151892, + 0.4306916378621042, + 0.4404095403441589, + 0.43831165239176567, + 0.42444460609988355, + 0.39904064789028576, + 0.36251397582582445, + 0.3154542074373744, + 0.25861708108279485, + 0.19291253747862866, + 0.11939036937199196, + 0.03922366565842413, + -0.0463096889511721, + -0.1358471669575573, + -0.22796308596737302, + -0.32119109257702416, + -0.41404728766431587, + -0.5050536283849285, + -0.5927612378127246, + -0.6757732546159521, + -0.7527668624165884, + -0.8225141514159967, + -0.8839014832877963, + -0.93594705394185, + -0.977816377181395, + -1.0088354450719998, + -1.0285013574697868, + -1.0364902530795046, + -1.0326624169619973, + -1.0170644839439746, + -0.9899287031806441, + -0.9516692754694305, + -0.9028758210776571, + -0.8443040811007351, + -0.77686399899486, + -0.7016053702472254, + -0.6197012864956993, + -0.5324296351947472, + -0.44115294658861604, + -0.3472969058171152, + -0.2523278690317308, + -0.15772973810381163, + -0.06498055862893673, + 0.024470789715237286, + 0.10922744284300978, + 0.18796658162092994, + 0.25946029349465327, + 0.3225949373796666, + 0.37638870642658606, + 0.42000711167807125, + 0.4527761424375016, + 0.47419289579765, + 0.48393350769845545, + 0.48185826043457725, + 0.46801378606513067, + 0.44263233097630883, + 0.4061280931953307, + 0.3590906902178669, + 0.3022758603661274, + 0.23659354432197685, + 0.1630935347968622, + 0.08294892065139736, + -0.0025624134382675606, + -0.09207794000731433, + -0.18417197669754143, + -0.27737817013956884, + -0.37021262124616294, + -0.4611972872069939, + -0.5488832911298307, + -0.6318737717176746, + -0.7088459126259086, + -0.7785718040901187, + -0.839937807817922, + -0.8919621197525046, + -0.9338102537308678, + -0.9648082018518236, + -0.9844530640050558, + -0.9924209789284909, + -0.9885722317160986, + -0.9729534572276222, + -0.9457969046510966, + -0.9075167748169468, + -0.8587026880249984, + -0.8001103854034202, + -0.732649810440544, + -0.6573707586561142, + -0.5754463217205712, + -0.4881543871199233, + -0.39685748513108443, + -0.302981300925118, + -0.20799219068582953, + -0.11337405631626685, + -0.020604943443085902, + 0.06886626822390803, + 0.1536427145680015, + 0.23240157642475812, + 0.30391494120824836, + 0.3670691678031821, + 0.4208824493289257, + 0.46452029679765555, + 0.4973086994819323, + 0.5187447544439399, + 0.5285045975931346, + 0.5264485111937947, + 0.5126231272748326, + 0.48726069219223644, + 0.4507754039432837, + 0.40375687999349824, + 0.34696085863538606, + 0.28129728052138436, + 0.20781593833285272, + 0.12768992090147896, + 0.04219711287377896, + -0.04729995831502893, + -0.13937561033539658, + -0.23256348984731612, + -0.3253796977919562, + -0.41634619138815, + -0.5040140937726767, + -0.5869865436766328, + -0.6639407247840462, + -0.7336487273589705, + -0.7949969131369221, + -0.8470034780895808, + -0.8888339360817754, + -0.9198142792404527, + -0.9394416074829042, + -0.9473920595747444, + -0.9435259206375923, + -0.9278898255586603, + -0.9007160235532294, + -0.8624187154790115, + -0.8135875216631301, + -0.7549781832604416, + -0.6875006437865843, + -0.6122046987878998, + -0.5302634399611919, + -0.4429547548194602, + -0.35164117366575726, + -0.25774838169816, + -0.1627427351258547, + -0.0681081358781698, + 0.02467737039205436, + 0.1141649039488168, + 0.19895760065025622, + 0.277732641305678, + 0.34926211330404117, + 0.4124323755043623, + 0.466261621001015, + 0.5099153607807032, + 0.5427195840907979, + 0.5641713879687132, + 0.5739469082989598, + 0.5719064273210579, + 0.5580965770392528, + 0.5327496037850894, + 0.4962797055312656, + 0.4492764997192523, + 0.39249572461726095, + 0.32684732085338036, + 0.2533810810853527, + 0.17327009412090771, + 0.0877922445826569, + -0.001689940117316862, + -0.09375077767345844, + -0.18692391476898795, + -0.2797254523683609, + -0.3706773477137312, + -0.458330723964448, + -0.541288719875036, + -0.6182285191521735, + -0.6879222120826424, + -0.7492561604246567, + -0.8012485601720489, + -0.8430649252124234, + -0.8740312476946481, + -0.8936446275583559, + -0.9015812035911803, + -0.8977012609365806, + -0.8820514345035655, + -0.8548639735292545, + -0.8165530788927229, + -0.7677083709425394, + -0.7090855908549449, + -0.6415946821670807, + -0.5662854404459121, + -0.4843309574097787, + -0.39700912059214, + -0.3056824603171239, + -0.21177666180296179, + -0.11675808127970971, + -0.022110620697463744, + 0.07068767427097648, + 0.16018792386972694, + 0.2449932639363647, + 0.32378087526052435, + 0.3953228452109029, + 0.4585055326273073, + 0.5123471305840185, + 0.5560131500485024, + 0.5888295802487745, + 0.6102935182029428, + 0.6200810997762097, + 0.6180526071891642, + 0.6042546724271267, + 0.5789195418027391, + 0.5424614132700025, + 0.49546990425202164, + 0.43870075299817396, + 0.3730639001186199, + 0.2996091382525198, + 0.2195095561895824, + 0.13404303853442037, + 0.04457211268105844, + -0.04747753908224103, + -0.14063956345685377, + -0.2334300614246146, + -0.32437099024511845, + -0.4120134730950255, + -0.49496064874606793, + -0.5718897009220159, + -0.6415727199266038, + -0.7028960675348045, + -0.754877939757518, + -0.7966838504987039, + -0.8276397919236669, + -0.8472428639886338, + -0.8551692054973928, + -0.851279101609633, + -0.8356191872504104, + -0.8084217116726882, + -0.7701008757713655, + -0.7212462999109117, + -0.6626137252830469, + -0.5951130954400965, + -0.5197942059647268, + -0.43783014859025216, + -0.3504988108656896, + -0.25916272312956656, + -0.16524757061564227, + -0.07021970956841624, + 0.02443695804770347, + 0.11724438654502889, + 0.2067536961529382, + 0.2915680226951827, + 0.370364546946914, + 0.44191535626316414, + 0.5051068094694653, + 0.5589570996260982, + 0.6026317376871614, + 0.6354567128667753, + 0.6569291221697104, + 0.6667251014478108, + 0.6647049329083345, + 0.6509152485234428, + 0.6255882945928437, + 0.5891382690576206, + 0.5421547893278581, + 0.4853935936405064, + 0.4197646225929564, + 0.34631766881228954, + 0.26622582107552467, + 0.1807669639751699, + 0.09130362489332028, + -0.0007385138942287012, + -0.09389309910039936, + -0.18667623171842718, + -0.2776098690200447, + -0.36524513419326277, + -0.4481851660212033, + -0.5251071482390527, + -0.594783171161311, + -0.6560995965745102, + -0.708074620500023, + -0.7498737568528842, + -0.780822997809171, + -0.8004194433355115, + -0.808339232246225, + -0.8044426497113193, + -0.7887763306660829, + -0.76157252437367, + -0.723245431738816, + -0.674384673136128, + -0.6157459897667323, + -0.5482393251930389, + -0.47291447500688905, + -0.3909445309512761, + -0.3036073805840701, + -0.21226555425324883, + -0.11834473720199482, + -0.023311285683078345, + 0.07135089832958848, + 0.16416376914011385, + 0.25367844696911523, + 0.33849806763186696, + 0.41729981189529414, + 0.48885576710577733, + 0.552052292081031, + 0.6059075798734923, + 0.6495871414290706, + 0.6824169659542569, + 0.7038941504460098, + 0.7136948307488051, + 0.7116792890623942, + 0.6978941573516835, + 0.6725716819090917, + 0.6361260606686399, + 0.5891469110336816, + 0.5323899712340733, + 0.466765181860697, + 0.39332233553365803, + 0.3132345210237032, + 0.2277796229173108, + 0.13832016858970458, + 0.04628184031118505, + -0.0468690086375035, + -0.1396484792558513, + -0.2305785288208591, + -0.3182102805265281, + -0.4011468731610607, + -0.4780654904654119, + -0.5477382227595196, + -0.6090514318351743, + -0.6610233137182893, + -0.7028193823293513, + -0.7337656298489963, + -0.7533591562487624, + -0.7612761003475113, + -0.7573767473197679, + -0.7417077321051245, + -0.714501303971135, + -0.6761716638266115, + -0.6273084320500086, + -0.5686673498465906, + -0.5011583607823445, + -0.425831260453164, + -0.3438591406050675, + -0.2565198887999338, + -0.16517603538878334, + -0.07125326561763741, + ] + results = DownSampling(self.sets)._do_decimation_polyphase_order_one(self.input) + np.testing.assert_almost_equal(results, np.array(check), decimal=10) + def test_polyphase_one_size(self): check = int((self.input.size - 1) / 2) results = DownSampling(self.sets)._do_decimation_polyphase_order_one(self.input) @@ -53,6 +20078,12 @@ def test_polyphase_one_type(self): results = DownSampling(self.sets)._do_decimation_polyphase_order_one(self.input) self.assertEqual(type(results), np.ndarray) + def test_polyphase_two(self): + # output[0] = input[1] + 2*input[0] + last_even_prev(=0) + # input[0]=0 (t=0: both sines are 0), so output[0] = input[1] + results = DownSampling(self.sets)._do_decimation_polyphase_order_two(self.input) + self.assertAlmostEqual(results[0], self.input[1], places=10) + def test_polyphase_two_size(self): check = int((self.input.size - 1) / 2) results = DownSampling(self.sets)._do_decimation_polyphase_order_two(self.input) @@ -62,89 +20093,29 @@ def test_polyphase_two_type(self): results = DownSampling(self.sets)._do_decimation_polyphase_order_two(self.input) self.assertEqual(type(results), np.ndarray) - def test_do_subsampling_without_augmentation_returns_offset_zero_only(self): - self.sets.dsr = 3 - data = np.array( - [ - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], - [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], - ] - ) - - results = DownSampling(self.sets).do_subsampling(data, augment=False) - - np.testing.assert_array_equal( - results, - np.array( - [ - [0, 3, 6, 9], - [10, 13, 16, 19], - ] - ), - ) - - def test_do_subsampling_generates_offset_samples_without_labels(self): - self.sets.dsr = 3 - data = np.array( - [ - [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], - [10, 11, 12, 13, 14, 15, 16, 17, 18, 19], - ] - ) - - results = DownSampling(self.sets).do_subsampling(data, augment=True) - - np.testing.assert_array_equal( - results, - np.array( - [ - [0, 3, 6, 9], - [10, 13, 16, 19], - [1, 4, 7, 0], - [11, 14, 17, 0], - [2, 5, 8, 0], - [12, 15, 18, 0], - ] - ), - ) - - def test_do_subsampling_preserves_leading_dimensions(self): + def test_polyphase_dsr2_matches_order_two(self): + self.sets.dsr = 2 + ds = DownSampling(self.sets) + result = ds.do_decimation_polyphase(self.input, take_first_order=False) + expected = ds._do_decimation_polyphase_order_two(self.input) + np.testing.assert_array_equal(result, expected) + + def test_polyphase_dsr2_matches_order_one(self): self.sets.dsr = 2 - data = np.array( - [ - [[0, 1, 2, 3, 4], [10, 11, 12, 13, 14]], - [[20, 21, 22, 23, 24], [30, 31, 32, 33, 34]], - ] - ) - - results = DownSampling(self.sets).do_subsampling(data, augment=True) - - np.testing.assert_array_equal( - results, - np.array( - [ - [[0, 2, 4], [10, 12, 14]], - [[20, 22, 24], [30, 32, 34]], - [[1, 3, 0], [11, 13, 0]], - [[21, 23, 0], [31, 33, 0]], - ] - ), - ) - - def test_do_subsampling_factor_one_returns_input_unchanged(self): - self.sets.dsr = 1 - data = np.array([[1, 2, 3], [4, 5, 6]]) - - results = DownSampling(self.sets).do_subsampling(data, augment=False) - - np.testing.assert_array_equal(results, data) - - def test_do_subsampling_rejects_invalid_downsampling_ratio(self): - self.sets.dsr = 0 - data = np.array([[1, 2, 3]]) - - with self.assertRaisesRegex(ValueError, "dsr must be >= 1"): - DownSampling(self.sets).do_subsampling(data) + ds = DownSampling(self.sets) + result = ds.do_decimation_polyphase(self.input, take_first_order=True) + expected = ds._do_decimation_polyphase_order_one(self.input) + np.testing.assert_array_equal(result, expected) + + def test_polyphase_dsr4_size(self): + self.sets.dsr = 4 + result = DownSampling(self.sets).do_decimation_polyphase(self.input, take_first_order=True) + self.assertEqual(result.size, self.input.size // 4) + + def test_polyphase_invalid_dsr_raises(self): + self.sets.dsr = 3 + ds = DownSampling(self.sets) + self.assertRaises(ValueError, ds.do_decimation_polyphase, self.input, True) if __name__ == "__main__": diff --git a/plugins_c/adc/adc.c b/plugins_c/adc/adc.c new file mode 100644 index 0000000..2c6bfa5 --- /dev/null +++ b/plugins_c/adc/adc.c @@ -0,0 +1,293 @@ +#include "adc.h" + +#include +#include + +/* ------------------------------------------------------------------------- + * Default settings + * ---------------------------------------------------------------------- */ +const SettingsADC DefaultSettingsADC = { + .total_bits = 12, + .frac_bits = 0, + .is_signed = 1, + .srate_orig = 1000.0f, + .srate_new = 1000.0f, + .vneg = -1.0f, + .vpos = 1.0f, +}; + +/* ------------------------------------------------------------------------- + * Internal helpers + * ---------------------------------------------------------------------- */ + +/* Smallest and largest representable integer values for this settings. */ +static int64_t min_int(const SettingsADC *s) +{ + return s->is_signed ? -((int64_t)1 << (s->total_bits - 1)) : 0; +} + +static int64_t max_int(const SettingsADC *s) +{ + return s->is_signed + ? (((int64_t)1 << (s->total_bits - 1)) - 1) + : (((int64_t)1 << s->total_bits) - 1); +} + +static float clampf(float v, float lo, float hi) +{ + return v < lo ? lo : (v > hi ? hi : v); +} + +static int64_t clampi(int64_t v, int64_t lo, int64_t hi) +{ + return v < lo ? lo : (v > hi ? hi : v); +} + +/* ------------------------------------------------------------------------- + * Computed properties + * ---------------------------------------------------------------------- */ + +float adc_vcm(const SettingsADC *s) +{ + return (s->vpos + s->vneg) * 0.5f; +} + +float adc_lsb(const SettingsADC *s) +{ + return (s->vpos - s->vneg) / (float)((int64_t)1 << s->total_bits); +} + +float adc_min_step(const SettingsADC *s) +{ + return 1.0f / (float)((int64_t)1 << s->frac_bits); +} + +/* ------------------------------------------------------------------------- + * Clamping + * ---------------------------------------------------------------------- */ + +float adc_clamp_analog(const SettingsADC *s, float v) +{ + return clampf(v, s->vneg, s->vpos); +} + +int64_t adc_clamp_int(const SettingsADC *s, int64_t v) +{ + return clampi(v, min_int(s), max_int(s)); +} + +float adc_clamp_fxp(const SettingsADC *s, float v) +{ + float step = adc_min_step(s); + return clampf(v, (float)min_int(s) * step, (float)max_int(s) * step); +} + +/* ------------------------------------------------------------------------- + * Single-sample quantization + * + * Core formula (mirrors _quantize_voltage in adc.py): + * step_count = round((clamp(v, vneg, vpos) - vneg) / lsb) + * int_val = clamp(step_count + min_int, min_int, max_int) + * fxp_val = int_val * min_step + * ---------------------------------------------------------------------- */ + +int64_t adc_voltage_to_int(const SettingsADC *s, float v) +{ + float lsb = adc_lsb(s); + float clamped = adc_clamp_analog(s, v); + int64_t steps = (int64_t)roundf((clamped - s->vneg) / lsb); + return clampi(steps + min_int(s), min_int(s), max_int(s)); +} + +float adc_voltage_to_fxp(const SettingsADC *s, float v) +{ + return (float)adc_voltage_to_int(s, v) * adc_min_step(s); +} + +/* Re-quantize a fixed-point rational value. + * Mirrors _quantize_digital(..., is_int_input=False). */ +int64_t adc_fxp_to_int(const SettingsADC *s, float v) +{ + float step = adc_min_step(s); + float clamped = adc_clamp_fxp(s, v); + return (int64_t)roundf(clamped / step); +} + +float adc_fxp_to_fxp(const SettingsADC *s, float v) +{ + return (float)adc_fxp_to_int(s, v) * adc_min_step(s); +} + +/* Re-quantize an integer value. + * Mirrors _quantize_digital(..., is_int_input=True). */ +int64_t adc_int_to_int(const SettingsADC *s, int64_t v) +{ + return clampi(v, min_int(s), max_int(s)); +} + +float adc_int_to_fxp(const SettingsADC *s, int64_t v) +{ + return (float)adc_int_to_int(s, v) * adc_min_step(s); +} + +/* ------------------------------------------------------------------------- + * Resampling + * + * Python uses scipy.signal.resample_poly, which applies a polyphase FIR + * anti-aliasing filter. Here we use linear interpolation — simpler and + * sufficient for slow biological signals on MCU. + * + * Like the Python version, the DC offset (first sample) is removed before + * interpolation and added back afterwards, preventing filter edge effects. + * ---------------------------------------------------------------------- */ + +size_t adc_resample_out_len(const SettingsADC *s, size_t in_len) +{ + if (s->srate_new == 0.0f || s->srate_orig == 0.0f) + return in_len; + return (size_t)((float)in_len * s->srate_new / s->srate_orig); +} + +size_t adc_resample(const SettingsADC *s, + const float *in, size_t in_len, + float *out, size_t out_max) +{ + /* No resampling needed */ + if (s->srate_new == 0.0f || in_len <= 1 || + s->srate_new == s->srate_orig) { + size_t n = in_len < out_max ? in_len : out_max; + for (size_t i = 0; i < n; i++) + out[i] = in[i]; + return n; + } + + float ratio = s->srate_orig / s->srate_new; /* input samples per output sample */ + size_t out_len = adc_resample_out_len(s, in_len); + if (out_len > out_max) out_len = out_max; + + float xoff = in[0]; /* DC offset removal — matches Python _do_resample */ + + for (size_t i = 0; i < out_len; i++) { + float pos = (float)i * ratio; + size_t j = (size_t)pos; + float frc = pos - (float)j; + + float a = in[j] - xoff; + float b = (j + 1 < in_len) ? (in[j + 1] - xoff) : a; + + out[i] = a + frc * (b - a) + xoff; + } + return out_len; +} + +/* ------------------------------------------------------------------------- + * Time-range cutting + * ---------------------------------------------------------------------- */ + +size_t adc_cut_transient(const SettingsADC *s, + const float *in, size_t in_len, + float t_start, float t_stop, int use_srate_orig, + const float **out_start) +{ + /* No cut: return full array */ + if (t_start >= t_stop) { + *out_start = in; + return in_len; + } + + float srate = use_srate_orig ? s->srate_orig : s->srate_new; + + size_t idx0 = (size_t)(t_start * srate); + size_t idx1 = (size_t)(t_stop * srate); + + if (idx0 >= in_len) idx0 = in_len; + if (idx1 >= in_len) idx1 = in_len; + + *out_start = in + idx0; + return idx1 - idx0; +} + +size_t adc_cut_labels(const SettingsADC *s, + const size_t *label_pos, size_t n_labels, + float t_start, float t_stop, int use_srate_orig, + size_t *out_offset) +{ + /* No cut: return all labels */ + if (t_start >= t_stop) { + *out_offset = 0; + return n_labels; + } + + float srate = use_srate_orig ? s->srate_orig : s->srate_new; + + /* Keep thresholds as float to match Python's time-domain comparison: + * first label whose label_pos/srate >= t_start/t_stop. + * Integer truncation of t*srate would give a different boundary when + * t*srate is not an integer (e.g. 0.3*5 = 1.5 truncates to 1, but the + * correct threshold is 1.5, skipping label_pos=1 which is at time 0.2). */ + float fpos0 = t_start * srate; + float fpos1 = t_stop * srate; + + /* Find first label at or after t_start */ + size_t i0 = 0; + while (i0 < n_labels && (float)label_pos[i0] < fpos0) + i0++; + + /* Find first label at or after t_stop */ + size_t i1 = i0; + while (i1 < n_labels && (float)label_pos[i1] < fpos1) + i1++; + + *out_offset = i0; + return i1 - i0; +} + +/* ------------------------------------------------------------------------- + * Full pipeline: resample + quantize + * + * All three variants resample into the caller-provided tmp[] buffer, then + * quantize element by element into out[]. The function returns the number + * of output samples. + * ---------------------------------------------------------------------- */ + +size_t adc_redefine_from_voltage(const SettingsADC *s, + const float *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out) +{ + size_t n = adc_resample(s, in, in_len, tmp, tmp_max); + for (size_t i = 0; i < n; i++) + out[i] = adc_voltage_to_int(s, tmp[i]); + return n; +} + +size_t adc_redefine_from_fxp(const SettingsADC *s, + const float *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out) +{ + size_t n = adc_resample(s, in, in_len, tmp, tmp_max); + for (size_t i = 0; i < n; i++) + out[i] = adc_fxp_to_int(s, tmp[i]); + return n; +} + +size_t adc_redefine_from_int(const SettingsADC *s, + const int64_t *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out) +{ + /* Convert int → float, resample as float, then re-quantize. */ + float step = adc_min_step(s); + size_t n_in = in_len < tmp_max ? in_len : tmp_max; + for (size_t i = 0; i < n_in; i++) + tmp[i] = (float)in[i] * step; + + float *resampled = tmp + n_in; /* use second half of tmp as resampled buffer */ + size_t resampled_max = tmp_max - n_in; + size_t n = adc_resample(s, tmp, n_in, resampled, resampled_max); + + for (size_t i = 0; i < n; i++) + out[i] = adc_fxp_to_int(s, resampled[i]); + return n; +} diff --git a/plugins_c/adc/adc.h b/plugins_c/adc/adc.h new file mode 100644 index 0000000..dbfd822 --- /dev/null +++ b/plugins_c/adc/adc.h @@ -0,0 +1,125 @@ +#ifndef ADC_H +#define ADC_H + +#include +#include + +typedef struct { + int total_bits; /* Total bitwidth (e.g. 12 for a 12-bit ADC) */ + int frac_bits; /* Fractional bits (0 = pure integer output) */ + int is_signed; /* 1 = signed output, 0 = unsigned output */ + float srate_orig; /* Input sampling rate [Hz] */ + float srate_new; /* Target sampling rate [Hz] */ + float vneg; /* Minimum measurable voltage [V] */ + float vpos; /* Maximum measurable voltage [V] */ +} SettingsADC; + +extern const SettingsADC DefaultSettingsADC; + +/* ------------------------------------------------------------------------- + * Computed properties (mirror of Python @property) + * ---------------------------------------------------------------------- */ + +/* vcm: midpoint of the voltage range = (vpos + vneg) / 2 */ +float adc_vcm(const SettingsADC *s); + +/* lsb: voltage represented by one bit = (vpos - vneg) / 2^total_bits */ +float adc_lsb(const SettingsADC *s); + +/* min_step: smallest representable fixed-point step = 2^(-frac_bits) */ +float adc_min_step(const SettingsADC *s); + +/* ------------------------------------------------------------------------- + * Clamping + * ---------------------------------------------------------------------- */ + +/* Clamp a voltage to [vneg, vpos]. */ +float adc_clamp_analog(const SettingsADC *s, float v); + +/* Clamp an integer sample to the representable integer range. */ +int64_t adc_clamp_int(const SettingsADC *s, int64_t v); + +/* Clamp a fixed-point rational to the representable rational range. */ +float adc_clamp_fxp(const SettingsADC *s, float v); + +/* ------------------------------------------------------------------------- + * Single-sample quantization + * + * adc_voltage_to_*: the core ADC conversion — voltage [V] → digital value. + * adc_fxp_to_*: re-quantize a fixed-point rational to a new representation. + * adc_int_to_*: re-quantize an integer sample to a new representation. + * ---------------------------------------------------------------------- */ + +int64_t adc_voltage_to_int(const SettingsADC *s, float v); +float adc_voltage_to_fxp(const SettingsADC *s, float v); + +int64_t adc_fxp_to_int(const SettingsADC *s, float v); +float adc_fxp_to_fxp(const SettingsADC *s, float v); + +int64_t adc_int_to_int(const SettingsADC *s, int64_t v); +float adc_int_to_fxp(const SettingsADC *s, int64_t v); + +/* ------------------------------------------------------------------------- + * Resampling + * + * Uses linear interpolation with DC-offset removal (see _do_resample in + * adc.py). scipy's polyphase FIR approach is more accurate but not + * practical on MCU — the difference is negligible for slow biological signals. + * + * adc_resample_out_len: expected number of output samples (allocate before call). + * adc_resample: writes into caller-provided out[0..out_max-1]. + * Returns number of samples actually written. + * ---------------------------------------------------------------------- */ +size_t adc_resample_out_len(const SettingsADC *s, size_t in_len); + +size_t adc_resample(const SettingsADC *s, + const float *in, size_t in_len, + float *out, size_t out_max); + +/* ------------------------------------------------------------------------- + * Time-range cutting + * + * adc_cut_transient: sets *out_start to point into in[] and returns the + * number of samples in [t_start, t_stop). No data is copied. + * use_srate_orig=1 → convert time using srate_orig; 0 → srate_new. + * Pass t_start >= t_stop (or both 0) to return the full array unchanged. + * + * adc_cut_labels: finds the first label position at or after t_start and + * the first at or after t_stop. Sets *out_offset to the start index and + * returns the count. The caller reads label_id[*out_offset .. +count-1] + * and label_pos[*out_offset .. +count-1]. + * ---------------------------------------------------------------------- */ +size_t adc_cut_transient(const SettingsADC *s, + const float *in, size_t in_len, + float t_start, float t_stop, int use_srate_orig, + const float **out_start); + +size_t adc_cut_labels(const SettingsADC *s, + const size_t *label_pos, size_t n_labels, + float t_start, float t_stop, int use_srate_orig, + size_t *out_offset); + +/* ------------------------------------------------------------------------- + * Full pipeline: resample + quantize + * + * The caller must provide a scratch buffer tmp[0..tmp_max-1] for the + * resampled float data (size >= adc_resample_out_len(s, in_len)). + * The integer results are written to out[]. + * Returns the number of samples written to out[]. + * ---------------------------------------------------------------------- */ +size_t adc_redefine_from_voltage(const SettingsADC *s, + const float *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out); + +size_t adc_redefine_from_fxp(const SettingsADC *s, + const float *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out); + +size_t adc_redefine_from_int(const SettingsADC *s, + const int64_t *in, size_t in_len, + float *tmp, size_t tmp_max, + int64_t *out); + +#endif /* ADC_H */ diff --git a/plugins_c/adc/adc_test.c b/plugins_c/adc/adc_test.c new file mode 100644 index 0000000..1c8a417 --- /dev/null +++ b/plugins_c/adc/adc_test.c @@ -0,0 +1,573 @@ +/* adc_test.c – mirrors Python elasticai/preprocessor/adc/adc_test.py + * + * Compile: + * gcc -std=c11 -Wall -Wextra -o adc_test adc_test.c adc.c -lm + * Run: + * ./adc_test + */ +#include "adc.h" + +#include +#include +#include + +/* ─── minimal test harness (same style as downsampling_test.c) ─────────── */ + +static int g_run = 0; +static int g_pass = 0; +static int g_fail = 0; + +#define CHECK(cond, msg) do { \ + g_run++; \ + printf("%d. check:\t", g_run); \ + if (cond) { \ + g_pass++; \ + printf("%s passed.\n", (msg)); \ + } else { \ + g_fail++; \ + fprintf(stderr, "FAIL %-52s (%s:%d)\n", \ + (msg), __FILE__, __LINE__); \ + } \ +} while (0) + +#define CHECK_FEQ(a, b, eps, msg) \ + CHECK(fabsf((float)(a) - (float)(b)) <= (float)(eps), (msg)) + +#define CHECK_IEQ(a, b, msg) \ + CHECK((int64_t)(a) == (int64_t)(b), (msg)) + +/* ─── shared settings (mirrors Python adc_sets fixture) ────────────────── */ + +static SettingsADC g_sets; + +static void setup(void) +{ + g_sets.total_bits = 8; + g_sets.frac_bits = 4; + g_sets.is_signed = 0; /* unsigned */ + g_sets.srate_orig = 100.0f; + g_sets.srate_new = 100.0f; + g_sets.vneg = 0.0f; + g_sets.vpos = 0.0f; +} + +/* ─── test_adc_settings_vcm ────────────────────────────────────────────── */ + +static void test_vcm(void) +{ + /* (vss=0.0, vdd=1.0, expected=0.5) */ + SettingsADC s = g_sets; + s.vneg = 0.0f; s.vpos = 1.0f; + CHECK_FEQ(adc_vcm(&s), 0.5f, 1e-6f, "vcm: 0..1 => 0.5"); + + /* (vss=-3.3, vdd=+3.3, expected=0.0) */ + s.vneg = -3.3f; s.vpos = 3.3f; + CHECK_FEQ(adc_vcm(&s), 0.0f, 1e-6f, "vcm: -3.3..+3.3 => 0.0"); +} + +/* ─── test_adc_settings_lsb ────────────────────────────────────────────── */ + +static void test_lsb(void) +{ + /* (bitwidth=4, vss=0.0, vdd=1.0, expected=0.0625) */ + SettingsADC s = g_sets; + s.total_bits = 4; s.vneg = 0.0f; s.vpos = 1.0f; + CHECK_FEQ(adc_lsb(&s), 0.0625f, 1e-7f, "lsb: 4-bit 0..1 => 0.0625"); + + /* (bitwidth=8, vss=-3.3, vdd=+3.3, expected=0.02578125) */ + s.total_bits = 8; s.vneg = -3.3f; s.vpos = 3.3f; + CHECK_FEQ(adc_lsb(&s), 0.02578125f, 1e-7f, "lsb: 8-bit -3.3..+3.3 => 0.02578125"); +} + +/* ─── test_adc_clamp_voltage ────────────────────────────────────────────── */ + +static void test_clamp_analog(void) +{ + /* (vpos=2.0, vneg=-2.0, ...) */ + SettingsADC s = g_sets; + s.vneg = -2.0f; s.vpos = 2.0f; + CHECK_FEQ(adc_clamp_analog(&s, -2.5f), -2.0f, 1e-7f, "clamp_analog: -2.5 => -2.0"); + CHECK_FEQ(adc_clamp_analog(&s, -2.0f), -2.0f, 1e-7f, "clamp_analog: -2.0 => -2.0"); + CHECK_FEQ(adc_clamp_analog(&s, -0.25f),-0.25f,1e-7f, "clamp_analog: -0.25 unchanged"); + CHECK_FEQ(adc_clamp_analog(&s, 1.5f), 1.5f, 1e-7f, "clamp_analog: 1.5 unchanged"); + CHECK_FEQ(adc_clamp_analog(&s, 2.0f), 2.0f, 1e-7f, "clamp_analog: 2.0 => 2.0"); + + /* (vpos=1.0, vneg=-1.0, ...) */ + s.vneg = -1.0f; s.vpos = 1.0f; + CHECK_FEQ(adc_clamp_analog(&s, 2.0f), 1.0f, 1e-7f, "clamp_analog: 2.0 => vpos 1.0"); + CHECK_FEQ(adc_clamp_analog(&s, 3.75f), 1.0f, 1e-7f, "clamp_analog: 3.75 => vpos 1.0"); +} + +/* ─── test_adc_clamp_integer ────────────────────────────────────────────── */ + +static void test_clamp_int(void) +{ + /* (bitwidth=8, fracwidth=0, is_signed=True, ...) */ + SettingsADC s = g_sets; + s.total_bits = 8; s.frac_bits = 0; s.is_signed = 1; + CHECK_IEQ(adc_clamp_int(&s, -512), -128, "clamp_int signed: -512 => -128"); + CHECK_IEQ(adc_clamp_int(&s, -126), -126, "clamp_int signed: -126 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 0), 0, "clamp_int signed: 0 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 64), 64, "clamp_int signed: 64 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 128), 127, "clamp_int signed: 128 => 127"); + CHECK_IEQ(adc_clamp_int(&s, 130), 127, "clamp_int signed: 130 => 127"); + CHECK_IEQ(adc_clamp_int(&s, 300), 127, "clamp_int signed: 300 => 127"); + + /* (bitwidth=8, fracwidth=0, is_signed=False, ...) */ + s.is_signed = 0; + CHECK_IEQ(adc_clamp_int(&s, -512), 0, "clamp_int unsigned: -512 => 0"); + CHECK_IEQ(adc_clamp_int(&s, -126), 0, "clamp_int unsigned: -126 => 0"); + CHECK_IEQ(adc_clamp_int(&s, 0), 0, "clamp_int unsigned: 0 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 64), 64, "clamp_int unsigned: 64 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 128), 128, "clamp_int unsigned: 128 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 130), 130, "clamp_int unsigned: 130 unchanged"); + CHECK_IEQ(adc_clamp_int(&s, 300), 255, "clamp_int unsigned: 300 => 255"); +} + +/* ─── test_adc_clamp_fxp ────────────────────────────────────────────────── */ + +static void test_clamp_fxp(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=4, fracwidth=2, is_signed=True, ...) min=-2.0, max=1.75 */ + s.total_bits = 4; s.frac_bits = 2; s.is_signed = 1; + CHECK_FEQ(adc_clamp_fxp(&s, -2.5f), -2.0f, 1e-6f, "clamp_fxp signed: -2.5 => -2.0"); + CHECK_FEQ(adc_clamp_fxp(&s, -2.0f), -2.0f, 1e-6f, "clamp_fxp signed: -2.0 => -2.0"); + CHECK_FEQ(adc_clamp_fxp(&s,-0.25f), -0.25f,1e-6f, "clamp_fxp signed: -0.25 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 1.5f), 1.5f, 1e-6f, "clamp_fxp signed: 1.5 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 2.0f), 1.75f,1e-6f, "clamp_fxp signed: 2.0 => 1.75"); + + /* (bitwidth=4, fracwidth=2, is_signed=False, ...) min=0.0, max=3.75 */ + s.is_signed = 0; + CHECK_FEQ(adc_clamp_fxp(&s, -1.0f), 0.0f, 1e-6f, "clamp_fxp unsigned: -1.0 => 0.0"); + CHECK_FEQ(adc_clamp_fxp(&s, 1.0f), 1.0f, 1e-6f, "clamp_fxp unsigned: 1.0 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 2.0f), 2.0f, 1e-6f, "clamp_fxp unsigned: 2.0 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 3.75f), 3.75f,1e-6f, "clamp_fxp unsigned: 3.75 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 4.0f), 3.75f,1e-6f, "clamp_fxp unsigned: 4.0 => 3.75"); + + /* (bitwidth=4, fracwidth=4, is_signed=True, ...) min=-0.5, max=0.4375 */ + s.total_bits = 4; s.frac_bits = 4; s.is_signed = 1; + CHECK_FEQ(adc_clamp_fxp(&s, -0.6f), -0.5f, 1e-6f, "clamp_fxp 4b4f s: -0.6 => -0.5"); + CHECK_FEQ(adc_clamp_fxp(&s, -0.5f), -0.5f, 1e-6f, "clamp_fxp 4b4f s: -0.5 => -0.5"); + CHECK_FEQ(adc_clamp_fxp(&s, -0.25f), -0.25f, 1e-6f, "clamp_fxp 4b4f s: -0.25 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, -0.05f), -0.05f, 1e-6f, "clamp_fxp 4b4f s: -0.05 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 0.45f), 0.4375f,1e-6f, "clamp_fxp 4b4f s: 0.45 => 0.4375"); + CHECK_FEQ(adc_clamp_fxp(&s, 0.6f), 0.4375f,1e-6f, "clamp_fxp 4b4f s: 0.6 => 0.4375"); + + /* (bitwidth=4, fracwidth=4, is_signed=False, ...) min=0.0, max=0.9375 */ + s.is_signed = 0; + CHECK_FEQ(adc_clamp_fxp(&s, -0.5f), 0.0f, 1e-6f, "clamp_fxp 4b4f u: -0.5 => 0.0"); + CHECK_FEQ(adc_clamp_fxp(&s, -0.25f), 0.0f, 1e-6f, "clamp_fxp 4b4f u: -0.25 => 0.0"); + CHECK_FEQ(adc_clamp_fxp(&s, -0.05f), 0.0f, 1e-6f, "clamp_fxp 4b4f u: -0.05 => 0.0"); + CHECK_FEQ(adc_clamp_fxp(&s, 0.4375f), 0.4375f,1e-6f, "clamp_fxp 4b4f u: 0.4375 unchanged"); + CHECK_FEQ(adc_clamp_fxp(&s, 1.4375f), 0.9375f,1e-6f, "clamp_fxp 4b4f u: 1.4375 => 0.9375"); +} + +/* ─── test_adc_quantize_float (fxp_to_int) ─────────────────────────────── */ + +static void test_fxp_to_int(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=6, fracwidth=2, is_signed=True, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +10.0], + * expected=[-5, 2, 0, -32, 31]) */ + s.total_bits = 6; s.frac_bits = 2; s.is_signed = 1; + CHECK_IEQ(adc_fxp_to_int(&s, -1.2343f), -5, "fxp_to_int 6b s2: -1.2343 => -5"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.4434f), 2, "fxp_to_int 6b s2: 0.4434 => 2"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.0032f), 0, "fxp_to_int 6b s2: 0.0032 => 0"); + CHECK_IEQ(adc_fxp_to_int(&s, -10.0f), -32, "fxp_to_int 6b s2: -10.0 => -32 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 10.0f), 31, "fxp_to_int 6b s2: +10.0 => 31 (clamped)"); + + /* (bitwidth=6, fracwidth=2, is_signed=False, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +20.0], + * expected=[0, 2, 0, 0, 63]) */ + s.is_signed = 0; + CHECK_IEQ(adc_fxp_to_int(&s, -1.2343f), 0, "fxp_to_int 6b u2: -1.2343 => 0 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.4434f), 2, "fxp_to_int 6b u2: 0.4434 => 2"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.0032f), 0, "fxp_to_int 6b u2: 0.0032 => 0"); + CHECK_IEQ(adc_fxp_to_int(&s, -10.0f), 0, "fxp_to_int 6b u2: -10.0 => 0 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 20.0f), 63, "fxp_to_int 6b u2: +20.0 => 63 (clamped)"); + + /* (bitwidth=8, fracwidth=4, is_signed=True, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +10.0], + * expected=[-20, 7, 0, -128, 127]) */ + s.total_bits = 8; s.frac_bits = 4; s.is_signed = 1; + CHECK_IEQ(adc_fxp_to_int(&s, -1.2343f), -20, "fxp_to_int 8b s4: -1.2343 => -20"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.4434f), 7, "fxp_to_int 8b s4: 0.4434 => 7"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.0032f), 0, "fxp_to_int 8b s4: 0.0032 => 0"); + CHECK_IEQ(adc_fxp_to_int(&s, -10.0f), -128, "fxp_to_int 8b s4: -10.0 => -128 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 10.0f), 127, "fxp_to_int 8b s4: +10.0 => 127 (clamped)"); + + /* (bitwidth=8, fracwidth=4, is_signed=False, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +20.0], + * expected=[0, 7, 0, 0, 255]) */ + s.is_signed = 0; + CHECK_IEQ(adc_fxp_to_int(&s, -1.2343f), 0, "fxp_to_int 8b u4: -1.2343 => 0 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.4434f), 7, "fxp_to_int 8b u4: 0.4434 => 7"); + CHECK_IEQ(adc_fxp_to_int(&s, 0.0032f), 0, "fxp_to_int 8b u4: 0.0032 => 0"); + CHECK_IEQ(adc_fxp_to_int(&s, -10.0f), 0, "fxp_to_int 8b u4: -10.0 => 0 (clamped)"); + CHECK_IEQ(adc_fxp_to_int(&s, 20.0f), 255, "fxp_to_int 8b u4: +20.0 => 255 (clamped)"); +} + +/* ─── fxp_to_fxp ────────────────────────────────────────────────────────── */ + +static void test_fxp_to_fxp(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=6, fracwidth=2, is_signed=True, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +10.0], + * expected=[-1.25, 0.5, 0.0, -8.0, 7.75]) */ + s.total_bits = 6; s.frac_bits = 2; s.is_signed = 1; + CHECK_FEQ(adc_fxp_to_fxp(&s, -1.2343f), -1.25f, 1e-5f, "fxp_to_fxp: -1.2343 => -1.25"); + CHECK_FEQ(adc_fxp_to_fxp(&s, 0.4434f), 0.5f, 1e-5f, "fxp_to_fxp: 0.4434 => 0.5"); + CHECK_FEQ(adc_fxp_to_fxp(&s, 0.0032f), 0.0f, 1e-5f, "fxp_to_fxp: 0.0032 => 0.0"); + CHECK_FEQ(adc_fxp_to_fxp(&s, -10.0f), -8.0f, 1e-5f, "fxp_to_fxp: -10.0 => -8.0"); + CHECK_FEQ(adc_fxp_to_fxp(&s, 10.0f), 7.75f, 1e-5f, "fxp_to_fxp: +10.0 => 7.75"); +} + +/* ─── test_adc_quantize_integer (int_to_int) ───────────────────────────── */ + +static void test_int_to_int(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=6, fracwidth=2, is_signed=True, + * input=[-5, 2, 0, -40, 32], expected=[-5, 2, 0, -32, 31]) */ + s.total_bits = 6; s.frac_bits = 2; s.is_signed = 1; + CHECK_IEQ(adc_int_to_int(&s, -5), -5, "int_to_int 6b s: -5 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 2), 2, "int_to_int 6b s: 2 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 0), 0, "int_to_int 6b s: 0 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, -40), -32, "int_to_int 6b s: -40 => -32"); + CHECK_IEQ(adc_int_to_int(&s, 32), 31, "int_to_int 6b s: 32 => 31"); + + /* (bitwidth=6, fracwidth=2, is_signed=False, + * input=[0, 2, 0, 0, 63], expected=[0, 2, 0, 0, 63]) */ + s.is_signed = 0; + CHECK_IEQ(adc_int_to_int(&s, 0), 0, "int_to_int 6b u: 0 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 2), 2, "int_to_int 6b u: 2 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 63), 63, "int_to_int 6b u: 63 unchanged"); + + /* (bitwidth=8, fracwidth=4, is_signed=True, + * input=[-20, 7, 0, -140, 227], expected=[-20, 7, 0, -128, 127]) */ + s.total_bits = 8; s.frac_bits = 4; s.is_signed = 1; + CHECK_IEQ(adc_int_to_int(&s, -20), -20, "int_to_int 8b s: -20 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 7), 7, "int_to_int 8b s: 7 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 0), 0, "int_to_int 8b s: 0 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, -140), -128, "int_to_int 8b s: -140 => -128"); + CHECK_IEQ(adc_int_to_int(&s, 227), 127, "int_to_int 8b s: 227 => 127"); + + /* (bitwidth=8, fracwidth=4, is_signed=False, + * input=[0, 7, 0, -1, 355], expected=[0, 7, 0, 0, 255]) */ + s.is_signed = 0; + CHECK_IEQ(adc_int_to_int(&s, 0), 0, "int_to_int 8b u: 0 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, 7), 7, "int_to_int 8b u: 7 unchanged"); + CHECK_IEQ(adc_int_to_int(&s, -1), 0, "int_to_int 8b u: -1 => 0"); + CHECK_IEQ(adc_int_to_int(&s, 355), 255, "int_to_int 8b u: 355 => 255"); +} + +/* ─── test_adc_rescaling_voltage_fxp (voltage_to_fxp) ──────────────────── */ + +static void test_voltage_to_fxp(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=6, fracwidth=4, is_signed=True, vpos=0.5, vneg=-0.5) + * expected: [-2.0, -1.75, -0.5, 0.0, 0.875, 1.8125, 2.0] + * for input: [-0.55(→clamp), -0.434, -0.12, 0.0, 0.22, 0.45, 0.55(→clamp)] */ + s.total_bits = 6; s.frac_bits = 4; s.is_signed = 1; + s.vneg = -0.5f; s.vpos = 0.5f; + + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.55f), -2.0f, 1e-4f, "v_to_fxp: -0.55 => -2.0"); + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.434f),-1.75f, 1e-4f, "v_to_fxp: -0.434 => -1.75"); + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.12f), -0.5f, 1e-4f, "v_to_fxp: -0.12 => -0.5"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.0f), 0.0f, 1e-4f, "v_to_fxp: 0.0 => 0.0"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.22f), 0.875f, 1e-4f, "v_to_fxp: 0.22 => 0.875"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.45f), 1.8125f,1e-4f, "v_to_fxp: 0.45 => 1.8125"); + /* 0.55 → clamped to 0.5 → steps=64 → int=32, clamped to max_int=31 → fxp=31*0.0625=1.9375 */ + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.55f), 1.9375f,1e-4f, "v_to_fxp: 0.55 => 1.9375 (clamped)"); + + /* (bitwidth=8, fracwidth=7, is_signed=False, vpos=0.5, vneg=-0.5) + * expected: [0.0, 0.1328125, 0.7578125, 1.0, 1.4375, 1.8984375, 2.0] */ + s.total_bits = 8; s.frac_bits = 7; s.is_signed = 0; + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.55f), 0.0f, 1e-5f, "v_to_fxp u: -0.55 => 0.0"); + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.434f), 0.1328125f, 1e-5f, "v_to_fxp u: -0.434 => 0.1328125"); + CHECK_FEQ(adc_voltage_to_fxp(&s, -0.12f), 0.7578125f, 1e-5f, "v_to_fxp u: -0.12 => 0.7578125"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.0f), 1.0f, 1e-5f, "v_to_fxp u: 0.0 => 1.0"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.22f), 1.4375f, 1e-5f, "v_to_fxp u: 0.22 => 1.4375"); + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.45f), 1.8984375f, 1e-5f, "v_to_fxp u: 0.45 => 1.8984375"); + /* 0.55 → clamped to 0.5 → steps=256 → int=256, clamped to max_int=255 → fxp=255/128=1.9921875 */ + CHECK_FEQ(adc_voltage_to_fxp(&s, 0.55f), 1.9921875f, 1e-6f, "v_to_fxp u: 0.55 => 1.9921875 (clamped)"); +} + +/* ─── test_adc_quantize_from_voltage_to_int (voltage_to_int) ───────────── */ + +static void test_voltage_to_int(void) +{ + SettingsADC s = g_sets; + + /* (bitwidth=6, fracwidth=4, is_signed=True, vpos=0.5, vneg=-0.5) + * expected: [-32, -28, -8, 0, 14, 29, 32] for + * input: [-0.55(clamp), -0.434, -0.12, 0.0, 0.22, 0.45, 0.55(clamp)] */ + s.total_bits = 6; s.frac_bits = 4; s.is_signed = 1; + s.vneg = -0.5f; s.vpos = 0.5f; + CHECK_IEQ(adc_voltage_to_int(&s, -0.55f), -32, "v_to_int: -0.55 => -32"); + CHECK_IEQ(adc_voltage_to_int(&s, -0.12f), -8, "v_to_int: -0.12 => -8"); + CHECK_IEQ(adc_voltage_to_int(&s, 0.0f), 0, "v_to_int: 0.0 => 0"); + CHECK_IEQ(adc_voltage_to_int(&s, 0.22f), 14, "v_to_int: 0.22 => 14"); + CHECK_IEQ(adc_voltage_to_int(&s, 0.55f), 31, "v_to_int: 0.55 => 31 (clamped)"); + + /* Sanity: symmetric range, 8-bit signed → 0V maps to 0 */ + s.total_bits = 8; s.frac_bits = 0; s.is_signed = 1; + s.vneg = -1.0f; s.vpos = 1.0f; + CHECK_IEQ(adc_voltage_to_int(&s, -1.0f), -128, "v_to_int 8b: -1.0 => -128"); + CHECK_IEQ(adc_voltage_to_int(&s, 0.0f), 0, "v_to_int 8b: 0.0 => 0"); +} + +/* ─── test_adc_resampling ───────────────────────────────────────────────── */ + +static void test_resample_no_op(void) +{ + SettingsADC s = g_sets; + s.srate_orig = 1.0f; s.srate_new = 1.0f; + + float in[4] = { 1.0f, 2.0f, 3.0f, 4.0f }; + float out[8] = { 0 }; + + /* same rate → passthrough */ + size_t n = adc_resample(&s, in, 4, out, 8); + CHECK(n == 4, "resample no-op: length unchanged"); + CHECK_FEQ(out[0], 1.0f, 1e-6f, "resample no-op: out[0] == in[0]"); + CHECK_FEQ(out[3], 4.0f, 1e-6f, "resample no-op: out[3] == in[3]"); + + /* srate_new=0 → passthrough */ + s.srate_new = 0.0f; + n = adc_resample(&s, in, 4, out, 8); + CHECK(n == 4, "resample srate_new=0: length unchanged"); +} + +static void test_resample_downsample_constant(void) +{ + /* constant input: any resampling method must return the same constant */ + SettingsADC s = g_sets; + s.srate_orig = 100.0f; s.srate_new = 50.0f; + + float in[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; + float out[4] = { 0 }; + + size_t n = adc_resample(&s, in, 4, out, 4); + CHECK(n == 2, "resample 2x down: length halved"); + CHECK_FEQ(out[0], 1.0f, 1e-5f, "resample 2x down constant: out[0] == 1.0"); + CHECK_FEQ(out[1], 1.0f, 1e-5f, "resample 2x down constant: out[1] == 1.0"); +} + +static void test_resample_upsample_constant(void) +{ + SettingsADC s = g_sets; + s.srate_orig = 100.0f; s.srate_new = 200.0f; + + float in[4] = { 3.0f, 3.0f, 3.0f, 3.0f }; + float out[8] = { 0 }; + + size_t n = adc_resample(&s, in, 4, out, 8); + CHECK(n == 8, "resample 2x up: length doubled"); + for (size_t i = 0; i < n; i++) + if (fabsf(out[i] - 3.0f) > 1e-5f) { + CHECK(0, "resample 2x up constant: value != 3.0"); + return; + } + CHECK(1, "resample 2x up constant: all values == 3.0"); +} + +static void test_resample_linear_interp(void) +{ + /* Linear ramp: input [0.0, 1.0, 2.0, 3.0] at 100 Hz → downsample to 50 Hz. + * ratio=2, out[0] at pos=0 → in[0]=0.0, out[1] at pos=2 → in[2]=2.0. */ + SettingsADC s = g_sets; + s.srate_orig = 100.0f; s.srate_new = 50.0f; + s.vneg = 0.0f; s.vpos = 0.0f; + + float in[4] = { 0.0f, 1.0f, 2.0f, 3.0f }; + float out[4] = { 0 }; + + adc_resample(&s, in, 4, out, 4); + /* DC offset = in[0] = 0.0, so no DC effect here. + * out[0]: pos=0.0 → in[0] = 0.0 + * out[1]: pos=2.0 → in[2] = 2.0 */ + CHECK_FEQ(out[0], 0.0f, 1e-5f, "resample linear: out[0] == 0.0"); + CHECK_FEQ(out[1], 2.0f, 1e-5f, "resample linear: out[1] == 2.0"); +} + +static void test_resample_out_len(void) +{ + SettingsADC s = g_sets; + s.srate_orig = 100.0f; s.srate_new = 50.0f; + CHECK(adc_resample_out_len(&s, 100) == 50, "resample_out_len: 100 -> 50"); + + s.srate_new = 200.0f; + CHECK(adc_resample_out_len(&s, 100) == 200, "resample_out_len: 100 -> 200"); + + s.srate_new = s.srate_orig; + CHECK(adc_resample_out_len(&s, 100) == 100, "resample_out_len: same rate"); +} + +/* ─── test_adc_cutting_input_data ──────────────────────────────────────── */ + +static void test_cut_transient(void) +{ + SettingsADC s = g_sets; + s.srate_orig = 5.0f; s.srate_new = 10.0f; + + float data[5] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f }; + const float *ptr = NULL; + size_t n; + + /* no cut: t_start >= t_stop → full array */ + n = adc_cut_transient(&s, data, 5, 0.0f, 0.0f, 1, &ptr); + CHECK(n == 5 && ptr == data, "cut_transient: no cut => full array"); + + /* (srate_orig=5, t=[0.0, 0.3]) → idx0=0, idx1=1 → 1 element */ + n = adc_cut_transient(&s, data, 5, 0.0f, 0.3f, 1, &ptr); + CHECK(n == 1, "cut_transient orig: [0.0,0.3] => 1 element"); + CHECK(ptr == data, "cut_transient orig: pointer at start"); + + /* (srate_orig=5, t=[0.2, 0.8]) → idx0=1, idx1=4 → 3 elements */ + n = adc_cut_transient(&s, data, 5, 0.2f, 0.8f, 1, &ptr); + CHECK(n == 3, "cut_transient orig: [0.2,0.8] => 3 elements"); + CHECK(ptr == data + 1, "cut_transient orig: pointer offset=1"); + + /* use_srate_orig=0: (srate_new=10, t=[0.0, 0.3]) → idx0=0, idx1=3 → 3 elements */ + n = adc_cut_transient(&s, data, 5, 0.0f, 0.3f, 0, &ptr); + CHECK(n == 3, "cut_transient new: [0.0,0.3] => 3 elements"); +} + +/* ─── test_adc_cutting_input_labels ────────────────────────────────────── */ + +static void test_cut_labels(void) +{ + SettingsADC s = g_sets; + s.srate_orig = 5.0f; s.srate_new = 10.0f; + + /* label_pos = [1,2,3,4,5] (times: 0.2, 0.4, 0.6, 0.8, 1.0 at srate=5) */ + size_t lpos[5] = { 1, 2, 3, 4, 5 }; + size_t offset; + size_t n; + + /* no cut */ + n = adc_cut_labels(&s, lpos, 5, 0.0f, 0.0f, 1, &offset); + CHECK(n == 5 && offset == 0, "cut_labels: no cut => all labels"); + + /* (srate_orig=5, t=[0.0, 0.3]) → first time >= 0.3 is 0.4 (pos=2) → [pos=1] → 1 label */ + n = adc_cut_labels(&s, lpos, 5, 0.0f, 0.3f, 1, &offset); + CHECK(n == 1 && offset == 0, "cut_labels orig: [0.0,0.3] => 1 label at offset 0"); + + /* (srate_orig=5, t=[0.3, 0.6]) → first >= 0.3 is pos=2(t=0.4); first >= 0.6 is pos=3(t=0.6) */ + n = adc_cut_labels(&s, lpos, 5, 0.3f, 0.6f, 1, &offset); + CHECK(n == 1 && offset == 1, "cut_labels orig: [0.3,0.6] => 1 label at offset 1"); + CHECK(lpos[offset] == 2, "cut_labels orig: label_pos == 2"); + + /* use_srate_orig=0: (srate_new=10, t=[0.0, 0.3]) → fpos1=3.0 → pos<3: 1,2 → 2 labels */ + n = adc_cut_labels(&s, lpos, 5, 0.0f, 0.3f, 0, &offset); + CHECK(n == 2 && offset == 0, "cut_labels new: [0.0,0.3] => 2 labels"); +} + +/* ─── full pipeline: redefine_from_voltage (no resampling) ─────────────── */ + +static void test_redefine_from_voltage(void) +{ + /* same rate → resampling is a no-op; tests only the quantization path */ + SettingsADC s = g_sets; + s.total_bits = 6; s.frac_bits = 4; s.is_signed = 1; + s.srate_orig = 100.0f; s.srate_new = 100.0f; + s.vneg = -0.5f; s.vpos = 0.5f; + + float in[3] = { -0.55f, 0.0f, 0.55f }; + float tmp[6] = { 0 }; + int64_t out[3] = { 0 }; + + size_t n = adc_redefine_from_voltage(&s, in, 3, tmp, 6, out); + CHECK(n == 3, "redefine_from_voltage: length correct"); + CHECK_IEQ(out[0], -32, "redefine_from_voltage: -0.55V => -32"); + CHECK_IEQ(out[1], 0, "redefine_from_voltage: 0.0V => 0"); + CHECK_IEQ(out[2], 31, "redefine_from_voltage: +0.55V => 31 (clamped)"); +} + +/* ─── full pipeline: redefine_from_fxp (no resampling) ─────────────────── */ + +static void test_redefine_from_fxp(void) +{ + SettingsADC s = g_sets; + s.total_bits = 6; s.frac_bits = 2; s.is_signed = 1; + s.srate_orig = 100.0f; s.srate_new = 100.0f; + + /* (bitwidth=6, fracwidth=2, is_signed=True, + * input=[-1.2343, 0.4434, 0.0032, -10.0, +10.0], + * expected=[-5, 2, 0, -32, 31]) */ + float in[5] = { -1.2343f, 0.4434f, 0.0032f, -10.0f, 10.0f }; + float tmp[10] = { 0 }; + int64_t out[5] = { 0 }; + + size_t n = adc_redefine_from_fxp(&s, in, 5, tmp, 10, out); + CHECK(n == 5, "redefine_from_fxp: length correct"); + CHECK_IEQ(out[0], -5, "redefine_from_fxp: -1.2343 => -5"); + CHECK_IEQ(out[1], 2, "redefine_from_fxp: 0.4434 => 2"); + CHECK_IEQ(out[2], 0, "redefine_from_fxp: 0.0032 => 0"); + CHECK_IEQ(out[3],-32, "redefine_from_fxp: -10.0 => -32"); + CHECK_IEQ(out[4], 31, "redefine_from_fxp: +10.0 => 31"); +} + +/* ─── full pipeline: redefine_from_int (no resampling) ─────────────────── */ + +static void test_redefine_from_int(void) +{ + SettingsADC s = g_sets; + s.total_bits = 6; s.frac_bits = 2; s.is_signed = 1; + s.srate_orig = 100.0f; s.srate_new = 100.0f; + + /* (bitwidth=6, fracwidth=2, is_signed=True, + * input=[-5, 2, 0, -40, 32], expected=[-5, 2, 0, -32, 31]) */ + int64_t in[5] = { -5, 2, 0, -40, 32 }; + /* tmp must hold float(in) + resampled: 5 + 5 = 10 elements */ + float tmp[10] = { 0 }; + int64_t out[5] = { 0 }; + + size_t n = adc_redefine_from_int(&s, in, 5, tmp, 10, out); + CHECK(n == 5, "redefine_from_int: length correct"); + CHECK_IEQ(out[0], -5, "redefine_from_int: -5 => -5"); + CHECK_IEQ(out[1], 2, "redefine_from_int: 2 => 2"); + CHECK_IEQ(out[2], 0, "redefine_from_int: 0 => 0"); + CHECK_IEQ(out[3],-32, "redefine_from_int: -40 => -32 (clamped)"); + CHECK_IEQ(out[4], 31, "redefine_from_int: 32 => 31 (clamped)"); +} + +/* ─── main ──────────────────────────────────────────────────────────────── */ + +int main(void) +{ + setup(); test_vcm(); + setup(); test_lsb(); + setup(); test_clamp_analog(); + setup(); test_clamp_int(); + setup(); test_clamp_fxp(); + setup(); test_fxp_to_int(); + setup(); test_fxp_to_fxp(); + setup(); test_int_to_int(); + setup(); test_voltage_to_fxp(); + setup(); test_voltage_to_int(); + setup(); test_resample_no_op(); + setup(); test_resample_downsample_constant(); + setup(); test_resample_upsample_constant(); + setup(); test_resample_linear_interp(); + setup(); test_resample_out_len(); + setup(); test_cut_transient(); + setup(); test_cut_labels(); + setup(); test_redefine_from_voltage(); + setup(); test_redefine_from_fxp(); + setup(); test_redefine_from_int(); + + printf("\n%d tests run: %d passed, %d failed\n", + g_run, g_pass, g_fail); + return g_fail > 0 ? 1 : 0; +} diff --git a/plugins_c/downsampling/downsampling.c b/plugins_c/downsampling/downsampling.c new file mode 100644 index 0000000..212b039 --- /dev/null +++ b/plugins_c/downsampling/downsampling.c @@ -0,0 +1,213 @@ +#include "downsampling.h" + +#include +#include +#include + +/* ------------------------------------------------------------------------- + * default-setting + * ---------------------------------------------------------------------- */ +const SettingsDownSampling DefaultSettingsDownSampling = { + .sampling_rate = 1000.0f, + .dsr = 10, +}; + +/* ------------------------------------------------------------------------- + * helpers + * ---------------------------------------------------------------------- */ +static int is_power_of_two(int n) +{ + return n >= 2 && (n & (n - 1)) == 0; +} + +float sampling_rate_out(const SettingsDownSampling *s) +{ + return s->sampling_rate / (float)s->dsr; +} + +/* ------------------------------------------------------------------------- + * do_simple: average every dsr input samples into one output sample. + * ---------------------------------------------------------------------- */ + +void do_simple( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + float *uout) +{ + size_t dsr = s->dsr; + size_t sz = uin_len / (size_t)dsr; + + for (size_t i = 0; i < sz; i++) { + float sum = 0.0f; + for (size_t j = 0; j < dsr; j++) { + sum += uin[i * dsr + j]; + } + uout[i] = (sum / (float)dsr); + } +} + +/* ------------------------------------------------------------------------- + * do_cic: CIC-filter downsampling (Cascaded Integrator-Comb) + * with helpers + * + * Internally uses int64_t fixed-point to avoid float accumulation drift. + * The scale factor Q (a power of 2) is chosen so that the integrator state + * never exceeds INT64_MAX: Q = 2^(62 - ceil(N * log2(dsr))). + * ---------------------------------------------------------------------- */ +typedef struct { int64_t yn; int64_t ynm; } Integrator; +typedef struct { int64_t xn; int64_t xnm; } Comb; + +static int64_t integrator_update(Integrator *inte, int64_t inp) +{ + inte->ynm = inte->yn; + inte->yn = inte->ynm + inp; + return inte->yn; +} + +static int64_t comb_update(Comb *c, int64_t inp) +{ + c->xnm = c->xn; + c->xn = inp; + return c->xn - c->xnm; +} + + +void do_cic( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int num_stages, + float *uout) +{ + size_t dsr = (size_t)s->dsr; + + /* bits consumed by CIC growth: integrators accumulate up to input * dsr^N */ + int growth_bits = (int)ceilf((float)num_stages * log2f((float)dsr)); + int frac_bits = 62 - growth_bits; + if (frac_bits < 1) frac_bits = 1; + int64_t Q = (int64_t)1 << frac_bits; + + /* exact integer gain = dsr^num_stages */ + int64_t gain = 1; + for (int i = 0; i < num_stages; i++) gain *= (int64_t)dsr; + + Integrator *intes = calloc((size_t)num_stages, sizeof(Integrator)); + Comb *combs = calloc((size_t)num_stages, sizeof(Comb)); + if (!intes || !combs) { free(intes); free(combs); return; } + + size_t out_idx = 0; + for (size_t idx = 0; idx < uin_len; idx++) { + int64_t z = (int64_t)(uin[idx] * (float)Q); + for (int i = 0; i < num_stages; i++) + z = integrator_update(&intes[i], z); + + if (idx % dsr == 0) { + for (int c = 0; c < num_stages; c++) + z = comb_update(&combs[c], z); + uout[out_idx++] = (float)z / ((float)Q * (float)gain); + } + } + free(intes); + free(combs); +} + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase_order_one: First-order polyphase decimation by factor 2. + * FIR coefficients: [1, 1] + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase_order_one( + const float *uin, + size_t uin_len, + float *uout) +{ + float last_hs = 0.0f; + size_t out_idx = 0; + + for (size_t idx = 0; idx < uin_len; idx++) { + float val = uin[idx]; + if (idx % 2 == 1) { + uout[out_idx++] = val + last_hs; + } + last_hs = val; + } +} + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase_order_two + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase_order_two( + const float *uin, + size_t uin_len, + float *uout) +{ + float last_hs = 0.0f; + float last_ls = 0.0f; + size_t out_idx = 0; + + for (size_t idx = 0; idx < uin_len; idx++) { + float val = uin[idx]; + if (idx % 2 == 1) { + uout[out_idx++] = val + last_ls + 2.0f * last_hs; + last_ls = val; + } + last_hs = val; + } +} + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int take_first_order, + float *uout) +{ + if (!is_power_of_two(s->dsr)) return; + + int steps = 0; + int n = s->dsr; + while (n > 1) { n >>= 1; steps++; } + if (steps == 0) return; + + /* Einzelstufe: direkt in den vom Aufrufer bereitgestellten Puffer schreiben */ + if (steps == 1) { + if (take_first_order) + do_decimation_polyphase_order_one(uin, uin_len, uout); + else + do_decimation_polyphase_order_two(uin, uin_len, uout); + return; + } + + /* Mehrstufig: zwei Ping-Pong-Puffer für interne Zwischenergebnisse. + * Größe uin_len/2 reicht für alle Zwischenschritte, da jede Stufe + * die Datenmenge halbiert. */ + float *bufs[2] = { + malloc((uin_len / 2) * sizeof(float)), + malloc((uin_len / 2) * sizeof(float)) + }; + if (!bufs[0] || !bufs[1]) { free(bufs[0]); free(bufs[1]); return; } + + const float *src = uin; + size_t src_size = uin_len; + int cur = 0; + + for (int i = 0; i < steps; i++) { + /* Letzter Schritt schreibt direkt in den Aufrufer-Puffer */ + float *dst = (i == steps - 1) ? uout : bufs[cur]; + + if (take_first_order) + do_decimation_polyphase_order_one(src, src_size, dst); + else + do_decimation_polyphase_order_two(src, src_size, dst); + + src = dst; + src_size = src_size / 2; + cur ^= 1; + } + + free(bufs[0]); + free(bufs[1]); +} diff --git a/plugins_c/downsampling/downsampling.h b/plugins_c/downsampling/downsampling.h new file mode 100644 index 0000000..56244d2 --- /dev/null +++ b/plugins_c/downsampling/downsampling.h @@ -0,0 +1,65 @@ +#ifndef DOWNSAMPLING_H +#define DOWNSAMPLING_H + +#include + +typedef struct { + float sampling_rate; /* Input sampling rate [Hz] */ + int dsr; /* Downsampling ratio */ +} SettingsDownSampling; + +extern const SettingsDownSampling DefaultSettingsDownSampling; + +/* Returns the output sampling rate: SR_in / dsr. */ +float sampling_rate_out(const SettingsDownSampling *s); + +/* ------------------------------------------------------------------------- + * do_simple: average every dsr input samples into one output sample. + * ---------------------------------------------------------------------- */ +void do_simple( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + float *uout); + +/* ------------------------------------------------------------------------- + * do_cic: CIC-filter downsampling (Cascaded Integrator-Comb) + * with helpers + * ---------------------------------------------------------------------- */ +void do_cic( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int num_stages, + float *uout); + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase_order_one: First-order polyphase decimation by factor 2. + * FIR coefficients: [1, 1] + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase_order_one( + const float *uin, + size_t uin_len, + float *uout); + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase_order_two: Second-order polyphase decimation by factor 2. + * FIR coefficients: [1, 2, 1] + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase_order_two( + const float *uin, + size_t uin_len, + float *uout); + +/* ------------------------------------------------------------------------- + * do_decimation_polyphase: Iterative polyphase decimation for any power-of-2 dsr. + * Applies order_one or order_two log2(dsr) times in sequence. + * ---------------------------------------------------------------------- */ +void do_decimation_polyphase( + const SettingsDownSampling *s, + const float *uin, + size_t uin_len, + int take_first_order, + float *uout); + +#endif /* DOWNSAMPLING_H */ diff --git a/plugins_c/downsampling/downsampling_test.c b/plugins_c/downsampling/downsampling_test.c new file mode 100644 index 0000000..2a85550 --- /dev/null +++ b/plugins_c/downsampling/downsampling_test.c @@ -0,0 +1,316 @@ +/* downsampling_test.c – mirrors Python downsampling_test.py + * + * Compile: + * gcc -std=c99 -Wall -Wextra -o downsampling_test \ + * downsampling_test.c downsampling.c -lm + * Run: + * ./downsampling_test + */ +#include "downsampling.h" + +#include +#include +#include + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ─── minimal test harness ─────────────────────────────────────────────── */ + +static int g_run = 0; +static int g_pass = 0; +static int g_fail = 0; + +#define CHECK(cond, msg) do { \ + g_run++; \ + printf("%d. check:\t",g_run); \ + if (cond) { \ + g_pass++; \ + printf("%s passed.",msg); \ + } else { \ + g_fail++; \ + fprintf(stderr, "FAIL %-52s (%s:%d)\n", \ + (msg), __FILE__, __LINE__); \ + } \ + printf("\n"); \ +} while (0) + +#define CHECK_FEQ(a, b, eps, msg) \ + CHECK(fabsf((float)(a) - (float)(b)) <= (float)(eps), msg) + +/* ─── signal parameters (mirrors Python setUp) ────────────────────────── */ + +#define FS 40000.0f +#define DSR 10 +#define N_SAMPLES 40001 /* linspace(0, 1, 40001, endpoint=True) */ +#define SENTINEL 1e38f /* value that cannot appear in filter output */ +#define CIC_STAGES 5 + +static SettingsDownSampling g_sets; +static float s_input[N_SAMPLES]; +static float s_uout [N_SAMPLES + 1]; /* +1: room for sentinel boundary check */ +static float s_ref [N_SAMPLES]; /* reference buffer for equivalence tests */ + +/* ─── FIR-equivalent CIC reference ─────────────────────────────────────── */ + +/* Impulse response of a 5-stage CIC filter with DSR=10: + * = 5-fold convolution of the boxcar [1,1,...,1] (length 10), divided by 10^5. + * Length = (DSR-1)*CIC_STAGES + 1 = 46. + * Computed with Python/numpy (float64) and embedded here as the drift-free + * mathematical ground truth. The do_cic() int64 implementation must match + * this reference within float32 output precision (~1e-6). */ +static const double s_cic_h[46] = { + 1.0000000000000001e-05, 5.0000000000000002e-05, 1.4999999999999999e-04, + 3.5000000000000000e-04, 6.9999999999999999e-04, 1.2600000000000001e-03, + 2.0999999999999999e-03, 3.3000000000000000e-03, 4.9500000000000004e-03, + 7.1500000000000001e-03, 9.9600000000000001e-03, 1.3400000000000000e-02, + 1.7450000000000000e-02, 2.2050000000000000e-02, 2.7100000000000000e-02, + 3.2460000000000003e-02, 3.7950000000000000e-02, 4.3350000000000000e-02, + 4.8399999999999999e-02, 5.2800000000000000e-02, 5.6309999999999999e-02, + 5.8749999999999997e-02, 6.0000000000000000e-02, 6.0000000000000000e-02, + 5.8749999999999997e-02, 5.6309999999999999e-02, 5.2800000000000000e-02, + 4.8399999999999999e-02, 4.3350000000000000e-02, 3.7950000000000000e-02, + 3.2460000000000003e-02, 2.7100000000000000e-02, 2.2050000000000000e-02, + 1.7450000000000000e-02, 1.3400000000000000e-02, 9.9600000000000001e-03, + 7.1500000000000001e-03, 4.9500000000000004e-03, 3.3000000000000000e-03, + 2.0999999999999999e-03, 1.2600000000000001e-03, 6.9999999999999999e-04, + 3.5000000000000000e-04, 1.4999999999999999e-04, 5.0000000000000002e-05, + 1.0000000000000001e-05 +}; +#define CIC_H_LEN 46 + +/* Compute the FIR-equivalent CIC output for output index out_idx. + * Negative input indices are treated as 0 (zero initial state). */ +static double fir_cic_ref(size_t out_idx, const float *inp) +{ + double acc = 0.0; + for (int j = 0; j < CIC_H_LEN; j++) { + int src = (int)(out_idx * (size_t)DSR) - j; + if (src >= 0) acc += s_cic_h[j] * (double)inp[src]; + } + return acc; +} + +/* mirrors Python: inp_samp(time) */ +static void generate_input(void) +{ + const float freqs[2] = { 4.0f, 400.0f }; + for (size_t i = 0; i < N_SAMPLES; i++) { + float t = (float)i / (float)(N_SAMPLES - 1); /* linspace(0,1,40001) */ + float z = 0.0f; + for (int f = 0; f < 2; f++) + z += sinf(2.0f * (float)M_PI * freqs[f] * t); + s_input[i] = 0.75f * z / 2.0f; + } +} + +/* mirrors Python: setUp() – called from main() before every test */ +static void setup(void) +{ + g_sets.sampling_rate = FS; + g_sets.dsr = DSR; + generate_input(); + for (size_t i = 0; i < N_SAMPLES + 1; i++) s_uout[i] = SENTINEL; +} + +/* ─── tests ─────────────────────────────────────────────────────────────── */ + +/* mirrors test_output_sampling_rate */ +static void test_output_sampling_rate(void) +{ + SettingsDownSampling s = { .sampling_rate = 10000.0f, .dsr = 4 }; + CHECK_FEQ(sampling_rate_out(&s), 2500.0f, 1e-3f, + "sampling_rate_out: 10000 / 4 == 2500"); +} + +/* mirrors test_do_simple (size check via sentinel boundary) */ +static void test_do_simple_size(void) +{ + /* n = (40001 / 10) * 10 = 40000 → n_blocks = 4000 */ + const size_t expected = N_SAMPLES / (size_t)g_sets.dsr; /* 4000 */ + do_simple(&g_sets, s_input, N_SAMPLES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "do_simple: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "do_simple: no write past expected size"); + CHECK(expected == 4000u, "do_simple: output count is 4000"); +} + +/* mirrors test_cic (spot-check of output[0], derivable analytically) */ +static void test_cic_first_value(void) +{ + /* input[0] = 0.0 (t=0: both sines are 0) + * CIC fires at sample 0 (0 % DSR == 0); all integrators and combs + * start at 0 → z = 0 → output[0] = 0.0 / gain = 0.0 */ + do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK_FEQ(s_uout[0], 0.0f, 1e-7f, "cic: output[0] == 0.0"); +} + +/* mirrors test_cic_size */ +static void test_cic_size(void) +{ + /* Fires at 0, DSR, 2*DSR, … → count = (N_SAMPLES-1)/DSR + 1 = 4001 */ + const size_t expected = (N_SAMPLES - 1) / (size_t)g_sets.dsr + 1; /* 4001 */ + do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "cic: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "cic: no write past expected size"); + CHECK(expected == 4001u, "cic: output count is 4001"); +} + +/* compares every CIC output value against the FIR-equivalent reference. + * The FIR convolution uses double arithmetic and avoids the accumulation + * drift of float64 CIC integrators. Tolerance 1e-5 (actual max diff ~7e-8). */ +static void test_cic_all_values(void) +{ + do_cic(&g_sets, s_input, N_SAMPLES, CIC_STAGES, s_uout); + const size_t n_out = (N_SAMPLES - 1) / (size_t)g_sets.dsr + 1; + int ok = 1; + size_t fail_idx = 0; + double fail_diff = 0.0; + for (size_t i = 0; i < n_out; i++) { + double ref = fir_cic_ref(i, s_input); + double diff = fabs(ref - (double)s_uout[i]); + if (diff > 1e-5) { ok = 0; fail_idx = i; fail_diff = diff; break; } + } + if (!ok) + printf(" (first failure at index %zu, diff=%.3e)\n", + fail_idx, fail_diff); + CHECK(ok, "cic: all output values match FIR reference (tol 1e-5)"); +} + +/* mirrors test_polyphase_one (spot-check of output[0]) */ +static void test_polyphase_one_first_value(void) +{ + /* idx=1 (first odd index): + * output[0] = input[1] + last_hs where last_hs initialises to 0 + * = input[1] + 0.0 = input[1] + * Python golden value[0]: 0.023782064257008607 */ + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + CHECK_FEQ(s_uout[0], s_input[1], 1e-6f, + "polyphase_one: output[0] == input[1] (last_hs init = 0)"); + CHECK_FEQ(s_uout[0], 0.023782f, 1e-4f, + "polyphase_one: output[0] matches Python golden value"); +} + +/* mirrors test_polyphase_one_size */ +static void test_polyphase_one_size(void) +{ + /* Odd indices in [0..40000]: count = 40001 / 2 = 20000 (integer div) */ + const size_t expected = N_SAMPLES / 2; /* 20000 */ + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase_one: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase_one: no write past expected size"); + CHECK(expected == 20000u, "polyphase_one: output count is 20000"); +} + +/* mirrors test_polyphase_one_type */ +static void test_polyphase_one_finite(void) +{ + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_uout); + const size_t n = N_SAMPLES / 2; + int ok = 1; + for (size_t i = 0; i < n; i++) + if (!isfinite(s_uout[i])) { ok = 0; break; } + CHECK(ok, "polyphase_one: all output values are finite (not NaN / Inf)"); +} + +/* mirrors test_polyphase_two (spot-check of output[0]) */ +static void test_polyphase_two_first_value(void) +{ + /* idx=1: + * output[0] = input[1] + last_ls(=0) + 2*last_hs(=0) = input[1] + * Both extra terms vanish because the states initialise to 0. + * Same first element as polyphase_one (confirmed by Python golden). */ + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + CHECK_FEQ(s_uout[0], s_input[1], 1e-6f, + "polyphase_two: output[0] == input[1] (states init = 0)"); + CHECK_FEQ(s_uout[0], 0.023782f, 1e-4f, + "polyphase_two: output[0] matches Python golden value"); +} + +/* mirrors test_polyphase_two_size */ +static void test_polyphase_two_size(void) +{ + const size_t expected = N_SAMPLES / 2; /* 20000 */ + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase_two: last expected element is written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase_two: no write past expected size"); + CHECK(expected == 20000u, "polyphase_two: output count is 20000"); +} + +/* mirrors test_polyphase_two_type */ +static void test_polyphase_two_finite(void) +{ + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_uout); + const size_t n = N_SAMPLES / 2; + int ok = 1; + for (size_t i = 0; i < n; i++) + if (!isfinite(s_uout[i])) { ok = 0; break; } + CHECK(ok, "polyphase_two: all output values are finite (not NaN / Inf)"); +} + +/* is_power_of_two is static — tested indirectly via do_decimation_polyphase */ + +/* dsr=3 (not a power of two): function must return without writing output */ +static void test_polyphase_invalid_dsr(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 3 }; + do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK(s_uout[0] == SENTINEL, "polyphase dsr=3: no output written (not power of two)"); +} + +/* dsr=2, order_two: one pass — output must equal direct order_two call */ +static void test_polyphase_dsr2_order_two(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 2 }; + do_decimation_polyphase_order_two(s_input, N_SAMPLES, s_ref); + do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK_FEQ(s_uout[0], s_ref[0], 1e-6f, "polyphase dsr=2 order_two: output[0] matches"); + CHECK_FEQ(s_uout[100], s_ref[100], 1e-6f, "polyphase dsr=2 order_two: output[100] matches"); + CHECK_FEQ(s_uout[999], s_ref[999], 1e-6f, "polyphase dsr=2 order_two: output[999] matches"); +} + +/* dsr=2, order_one: one pass — output must equal direct order_one call */ +static void test_polyphase_dsr2_order_one(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 2 }; + do_decimation_polyphase_order_one(s_input, N_SAMPLES, s_ref); + do_decimation_polyphase(&s, s_input, N_SAMPLES, 1, s_uout); + CHECK_FEQ(s_uout[0], s_ref[0], 1e-6f, "polyphase dsr=2 order_one: output[0] matches"); + CHECK_FEQ(s_uout[100], s_ref[100], 1e-6f, "polyphase dsr=2 order_one: output[100] matches"); + CHECK_FEQ(s_uout[999], s_ref[999], 1e-6f, "polyphase dsr=2 order_one: output[999] matches"); +} + +/* dsr=4: two passes → output size = N_SAMPLES / 4 = 10000 */ +static void test_polyphase_dsr4_size(void) +{ + SettingsDownSampling s = { .sampling_rate = FS, .dsr = 4 }; + const size_t expected = N_SAMPLES / 4; /* 10000 */ + do_decimation_polyphase(&s, s_input, N_SAMPLES, 0, s_uout); + CHECK(s_uout[expected - 1] != SENTINEL, "polyphase dsr=4: last expected element written"); + CHECK(s_uout[expected] == SENTINEL, "polyphase dsr=4: no write past expected size"); +} + +/* ─── main ──────────────────────────────────────────────────────────────── */ + +int main(void) +{ + setup(); test_output_sampling_rate(); + setup(); test_do_simple_size(); + setup(); test_cic_first_value(); + setup(); test_cic_size(); + setup(); test_cic_all_values(); + setup(); test_polyphase_one_first_value(); + setup(); test_polyphase_one_size(); + setup(); test_polyphase_one_finite(); + setup(); test_polyphase_two_first_value(); + setup(); test_polyphase_two_size(); + setup(); test_polyphase_two_finite(); + setup(); test_polyphase_invalid_dsr(); + setup(); test_polyphase_dsr2_order_two(); + setup(); test_polyphase_dsr2_order_one(); + setup(); test_polyphase_dsr4_size(); + + printf("\n%d tests run: %d passed, %d failed\n", + g_run, g_pass, g_fail); + return g_fail > 0 ? 1 : 0; +}