Message ID | 20221018024901.3381469-5-goldstein.w.n@gmail.com |
---|---|
State | New |
Headers | show |
Series | [v1,1/7] x86: Optimize memchr-evex.S and implement with VMM headers | expand |
On Mon, Oct 17, 2022 at 7:49 PM Noah Goldstein <goldstein.w.n@gmail.com> wrote: > > Optimization is: > 1. Cache latest result in "fast path" loop with `vmovdqu` instead of > `kunpckdq`. This helps if there are more than one matches. > > Code Size Changes: > strrchr-evex.S : +30 bytes (Same number of cache lines) > > Net perf changes: > > Reported as geometric mean of all improvements / regressions from N=10 > runs of the benchtests. Value as New Time / Old Time so < 1.0 is > improvement and 1.0 is regression. > > strrchr-evex.S : 0.932 (From cases with higher match frequency) > > Full results attached in email. > > Full check passes on x86-64. > --- > sysdeps/x86_64/multiarch/strrchr-evex.S | 371 +++++++++++++----------- > 1 file changed, 200 insertions(+), 171 deletions(-) > > diff --git a/sysdeps/x86_64/multiarch/strrchr-evex.S b/sysdeps/x86_64/multiarch/strrchr-evex.S > index 992b45fb47..45487dc87a 100644 > --- a/sysdeps/x86_64/multiarch/strrchr-evex.S > +++ b/sysdeps/x86_64/multiarch/strrchr-evex.S > @@ -26,25 +26,30 @@ > # define STRRCHR __strrchr_evex > # endif > > -# define VMOVU vmovdqu64 > -# define VMOVA vmovdqa64 > +# include "x86-evex256-vecs.h" > > # ifdef USE_AS_WCSRCHR > -# define SHIFT_REG esi > - > -# define kunpck kunpckbw > +# define RCX_M cl > +# define SHIFT_REG rcx > +# define VPCOMPRESS vpcompressd > +# define kunpck_2x kunpckbw > # define kmov_2x kmovd > # define maskz_2x ecx > # define maskm_2x eax > # define CHAR_SIZE 4 > # define VPMIN vpminud > # define VPTESTN vptestnmd > +# define VPTEST vptestmd > # define VPBROADCAST vpbroadcastd > +# define VPCMPEQ vpcmpeqd > # define VPCMP vpcmpd > -# else > -# define SHIFT_REG edi > > -# define kunpck kunpckdq > +# define USE_WIDE_CHAR > +# else > +# define RCX_M ecx > +# define SHIFT_REG rdi > +# define VPCOMPRESS vpcompressb > +# define kunpck_2x kunpckdq > # define kmov_2x kmovq > # define maskz_2x rcx > # define maskm_2x rax > @@ -52,58 +57,48 @@ > # define CHAR_SIZE 1 > # define VPMIN vpminub > # define VPTESTN vptestnmb > +# define VPTEST vptestmb > # define VPBROADCAST vpbroadcastb > +# define VPCMPEQ vpcmpeqb > # define VPCMP vpcmpb > # endif > > -# define XMMZERO xmm16 > -# define YMMZERO ymm16 > -# define YMMMATCH ymm17 > -# define YMMSAVE ymm18 > +# include "reg-macros.h" > > -# define YMM1 ymm19 > -# define YMM2 ymm20 > -# define YMM3 ymm21 > -# define YMM4 ymm22 > -# define YMM5 ymm23 > -# define YMM6 ymm24 > -# define YMM7 ymm25 > -# define YMM8 ymm26 > - > - > -# define VEC_SIZE 32 > +# define VMATCH VMM(0) > +# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE) > # define PAGE_SIZE 4096 > - .section .text.evex, "ax", @progbits > -ENTRY(STRRCHR) > + > + .section SECTION(.text), "ax", @progbits > +ENTRY_P2ALIGN(STRRCHR, 6) > movl %edi, %eax > - /* Broadcast CHAR to YMMMATCH. */ > - VPBROADCAST %esi, %YMMMATCH > + /* Broadcast CHAR to VMATCH. */ > + VPBROADCAST %esi, %VMATCH > > andl $(PAGE_SIZE - 1), %eax > cmpl $(PAGE_SIZE - VEC_SIZE), %eax > jg L(cross_page_boundary) > > -L(page_cross_continue): > - VMOVU (%rdi), %YMM1 > - /* k0 has a 1 for each zero CHAR in YMM1. */ > - VPTESTN %YMM1, %YMM1, %k0 > - kmovd %k0, %ecx > - testl %ecx, %ecx > + VMOVU (%rdi), %VMM(1) > + /* k0 has a 1 for each zero CHAR in VEC(1). */ > + VPTESTN %VMM(1), %VMM(1), %k0 > + KMOV %k0, %VRSI > + test %VRSI, %VRSI > jz L(aligned_more) > /* fallthrough: zero CHAR in first VEC. */ > - > - /* K1 has a 1 for each search CHAR match in YMM1. */ > - VPCMP $0, %YMMMATCH, %YMM1, %k1 > - kmovd %k1, %eax > +L(page_cross_return): > + /* K1 has a 1 for each search CHAR match in VEC(1). */ > + VPCMPEQ %VMATCH, %VMM(1), %k1 > + KMOV %k1, %VRAX > /* Build mask up until first zero CHAR (used to mask of > potential search CHAR matches past the end of the string). > */ > - blsmskl %ecx, %ecx > - andl %ecx, %eax > + blsmsk %VRSI, %VRSI > + and %VRSI, %VRAX > jz L(ret0) > - /* Get last match (the `andl` removed any out of bounds > - matches). */ > - bsrl %eax, %eax > + /* Get last match (the `and` removed any out of bounds matches). > + */ > + bsr %VRAX, %VRAX > # ifdef USE_AS_WCSRCHR > leaq (%rdi, %rax, CHAR_SIZE), %rax > # else > @@ -116,22 +111,22 @@ L(ret0): > search path for earlier matches. */ > .p2align 4,, 6 > L(first_vec_x1): > - VPCMP $0, %YMMMATCH, %YMM2, %k1 > - kmovd %k1, %eax > - blsmskl %ecx, %ecx > + VPCMPEQ %VMATCH, %VMM(2), %k1 > + KMOV %k1, %VRAX > + blsmsk %VRCX, %VRCX > /* eax non-zero if search CHAR in range. */ > - andl %ecx, %eax > + and %VRCX, %VRAX > jnz L(first_vec_x1_return) > > - /* fallthrough: no match in YMM2 then need to check for earlier > - matches (in YMM1). */ > + /* fallthrough: no match in VEC(2) then need to check for > + earlier matches (in VEC(1)). */ > .p2align 4,, 4 > L(first_vec_x0_test): > - VPCMP $0, %YMMMATCH, %YMM1, %k1 > - kmovd %k1, %eax > - testl %eax, %eax > + VPCMPEQ %VMATCH, %VMM(1), %k1 > + KMOV %k1, %VRAX > + test %VRAX, %VRAX > jz L(ret1) > - bsrl %eax, %eax > + bsr %VRAX, %VRAX > # ifdef USE_AS_WCSRCHR > leaq (%rsi, %rax, CHAR_SIZE), %rax > # else > @@ -142,129 +137,144 @@ L(ret1): > > .p2align 4,, 10 > L(first_vec_x1_or_x2): > - VPCMP $0, %YMM3, %YMMMATCH, %k3 > - VPCMP $0, %YMM2, %YMMMATCH, %k2 > + VPCMPEQ %VMM(3), %VMATCH, %k3 > + VPCMPEQ %VMM(2), %VMATCH, %k2 > /* K2 and K3 have 1 for any search CHAR match. Test if any > - matches between either of them. Otherwise check YMM1. */ > - kortestd %k2, %k3 > + matches between either of them. Otherwise check VEC(1). */ > + KORTEST %k2, %k3 > jz L(first_vec_x0_test) > > - /* Guranteed that YMM2 and YMM3 are within range so merge the > - two bitmasks then get last result. */ > - kunpck %k2, %k3, %k3 > - kmovq %k3, %rax > - bsrq %rax, %rax > - leaq (VEC_SIZE)(%r8, %rax, CHAR_SIZE), %rax > + /* Guranteed that VEC(2) and VEC(3) are within range so merge > + the two bitmasks then get last result. */ > + kunpck_2x %k2, %k3, %k3 > + kmov_2x %k3, %maskm_2x > + bsr %maskm_2x, %maskm_2x > + leaq (VEC_SIZE * 1)(%r8, %rax, CHAR_SIZE), %rax > ret > > - .p2align 4,, 6 > + .p2align 4,, 7 > L(first_vec_x3): > - VPCMP $0, %YMMMATCH, %YMM4, %k1 > - kmovd %k1, %eax > - blsmskl %ecx, %ecx > - /* If no search CHAR match in range check YMM1/YMM2/YMM3. */ > - andl %ecx, %eax > + VPCMPEQ %VMATCH, %VMM(4), %k1 > + KMOV %k1, %VRAX > + blsmsk %VRCX, %VRCX > + /* If no search CHAR match in range check VEC(1)/VEC(2)/VEC(3). > + */ > + and %VRCX, %VRAX > jz L(first_vec_x1_or_x2) > - bsrl %eax, %eax > + bsr %VRAX, %VRAX > leaq (VEC_SIZE * 3)(%rdi, %rax, CHAR_SIZE), %rax > ret > > + > .p2align 4,, 6 > L(first_vec_x0_x1_test): > - VPCMP $0, %YMMMATCH, %YMM2, %k1 > - kmovd %k1, %eax > - /* Check YMM2 for last match first. If no match try YMM1. */ > - testl %eax, %eax > + VPCMPEQ %VMATCH, %VMM(2), %k1 > + KMOV %k1, %VRAX > + /* Check VEC(2) for last match first. If no match try VEC(1). > + */ > + test %VRAX, %VRAX > jz L(first_vec_x0_test) > .p2align 4,, 4 > L(first_vec_x1_return): > - bsrl %eax, %eax > + bsr %VRAX, %VRAX > leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax > ret > > + > .p2align 4,, 10 > L(first_vec_x2): > - VPCMP $0, %YMMMATCH, %YMM3, %k1 > - kmovd %k1, %eax > - blsmskl %ecx, %ecx > - /* Check YMM3 for last match first. If no match try YMM2/YMM1. > - */ > - andl %ecx, %eax > + VPCMPEQ %VMATCH, %VMM(3), %k1 > + KMOV %k1, %VRAX > + blsmsk %VRCX, %VRCX > + /* Check VEC(3) for last match first. If no match try > + VEC(2)/VEC(1). */ > + and %VRCX, %VRAX > jz L(first_vec_x0_x1_test) > - bsrl %eax, %eax > + bsr %VRAX, %VRAX > leaq (VEC_SIZE * 2)(%rdi, %rax, CHAR_SIZE), %rax > ret > > > - .p2align 4 > + .p2align 4,, 12 > L(aligned_more): > - /* Need to keep original pointer incase YMM1 has last match. */ > +L(page_cross_continue): > + /* Need to keep original pointer incase VEC(1) has last match. > + */ > movq %rdi, %rsi > andq $-VEC_SIZE, %rdi > - VMOVU VEC_SIZE(%rdi), %YMM2 > - VPTESTN %YMM2, %YMM2, %k0 > - kmovd %k0, %ecx > - testl %ecx, %ecx > + > + VMOVU VEC_SIZE(%rdi), %VMM(2) > + VPTESTN %VMM(2), %VMM(2), %k0 > + KMOV %k0, %VRCX > + > + test %VRCX, %VRCX > jnz L(first_vec_x1) > > - VMOVU (VEC_SIZE * 2)(%rdi), %YMM3 > - VPTESTN %YMM3, %YMM3, %k0 > - kmovd %k0, %ecx > - testl %ecx, %ecx > + VMOVU (VEC_SIZE * 2)(%rdi), %VMM(3) > + VPTESTN %VMM(3), %VMM(3), %k0 > + KMOV %k0, %VRCX > + > + test %VRCX, %VRCX > jnz L(first_vec_x2) > > - VMOVU (VEC_SIZE * 3)(%rdi), %YMM4 > - VPTESTN %YMM4, %YMM4, %k0 > - kmovd %k0, %ecx > + VMOVU (VEC_SIZE * 3)(%rdi), %VMM(4) > + VPTESTN %VMM(4), %VMM(4), %k0 > + KMOV %k0, %VRCX > movq %rdi, %r8 > - testl %ecx, %ecx > + test %VRCX, %VRCX > jnz L(first_vec_x3) > > andq $-(VEC_SIZE * 2), %rdi > - .p2align 4 > + .p2align 4,, 10 > L(first_aligned_loop): > - /* Preserve YMM1, YMM2, YMM3, and YMM4 until we can gurantee > - they don't store a match. */ > - VMOVA (VEC_SIZE * 4)(%rdi), %YMM5 > - VMOVA (VEC_SIZE * 5)(%rdi), %YMM6 > + /* Preserve VEC(1), VEC(2), VEC(3), and VEC(4) until we can > + gurantee they don't store a match. */ > + VMOVA (VEC_SIZE * 4)(%rdi), %VMM(5) > + VMOVA (VEC_SIZE * 5)(%rdi), %VMM(6) > > - VPCMP $0, %YMM5, %YMMMATCH, %k2 > - vpxord %YMM6, %YMMMATCH, %YMM7 > + VPCMPEQ %VMM(5), %VMATCH, %k2 > + vpxord %VMM(6), %VMATCH, %VMM(7) > > - VPMIN %YMM5, %YMM6, %YMM8 > - VPMIN %YMM8, %YMM7, %YMM7 > + VPMIN %VMM(5), %VMM(6), %VMM(8) > + VPMIN %VMM(8), %VMM(7), %VMM(7) > > - VPTESTN %YMM7, %YMM7, %k1 > + VPTESTN %VMM(7), %VMM(7), %k1 > subq $(VEC_SIZE * -2), %rdi > - kortestd %k1, %k2 > + KORTEST %k1, %k2 > jz L(first_aligned_loop) > > - VPCMP $0, %YMM6, %YMMMATCH, %k3 > - VPTESTN %YMM8, %YMM8, %k1 > - ktestd %k1, %k1 > + VPCMPEQ %VMM(6), %VMATCH, %k3 > + VPTESTN %VMM(8), %VMM(8), %k1 > + > + /* If k1 is zero, then we found a CHAR match but no null-term. > + We can now safely throw out VEC1-4. */ > + KTEST %k1, %k1 > jz L(second_aligned_loop_prep) > > - kortestd %k2, %k3 > + KORTEST %k2, %k3 > jnz L(return_first_aligned_loop) > > + > .p2align 4,, 6 > L(first_vec_x1_or_x2_or_x3): > - VPCMP $0, %YMM4, %YMMMATCH, %k4 > - kmovd %k4, %eax > - testl %eax, %eax > + VPCMPEQ %VMM(4), %VMATCH, %k4 > + KMOV %k4, %VRAX > + bsr %VRAX, %VRAX > jz L(first_vec_x1_or_x2) > - bsrl %eax, %eax > leaq (VEC_SIZE * 3)(%r8, %rax, CHAR_SIZE), %rax > ret > > + > .p2align 4,, 8 > L(return_first_aligned_loop): > - VPTESTN %YMM5, %YMM5, %k0 > - kunpck %k0, %k1, %k0 > + VPTESTN %VMM(5), %VMM(5), %k0 > + > + /* Combined results from VEC5/6. */ > + kunpck_2x %k0, %k1, %k0 > kmov_2x %k0, %maskz_2x > > blsmsk %maskz_2x, %maskz_2x > - kunpck %k2, %k3, %k3 > + kunpck_2x %k2, %k3, %k3 > kmov_2x %k3, %maskm_2x > and %maskz_2x, %maskm_2x > jz L(first_vec_x1_or_x2_or_x3) > @@ -280,47 +290,62 @@ L(return_first_aligned_loop): > L(second_aligned_loop_prep): > L(second_aligned_loop_set_furthest_match): > movq %rdi, %rsi > - kunpck %k2, %k3, %k4 > - > + /* Ideally we would safe k2/k3 but `kmov/kunpck` take uops on > + port0 and have noticable overhead in the loop. */ > + VMOVA %VMM(5), %VMM(7) > + VMOVA %VMM(6), %VMM(8) > .p2align 4 > L(second_aligned_loop): > - VMOVU (VEC_SIZE * 4)(%rdi), %YMM1 > - VMOVU (VEC_SIZE * 5)(%rdi), %YMM2 > - > - VPCMP $0, %YMM1, %YMMMATCH, %k2 > - vpxord %YMM2, %YMMMATCH, %YMM3 > + VMOVU (VEC_SIZE * 4)(%rdi), %VMM(5) > + VMOVU (VEC_SIZE * 5)(%rdi), %VMM(6) > + VPCMPEQ %VMM(5), %VMATCH, %k2 > + vpxord %VMM(6), %VMATCH, %VMM(3) > > - VPMIN %YMM1, %YMM2, %YMM4 > - VPMIN %YMM3, %YMM4, %YMM3 > + VPMIN %VMM(5), %VMM(6), %VMM(4) > + VPMIN %VMM(3), %VMM(4), %VMM(3) > > - VPTESTN %YMM3, %YMM3, %k1 > + VPTESTN %VMM(3), %VMM(3), %k1 > subq $(VEC_SIZE * -2), %rdi > - kortestd %k1, %k2 > + KORTEST %k1, %k2 > jz L(second_aligned_loop) > - > - VPCMP $0, %YMM2, %YMMMATCH, %k3 > - VPTESTN %YMM4, %YMM4, %k1 > - ktestd %k1, %k1 > + VPCMPEQ %VMM(6), %VMATCH, %k3 > + VPTESTN %VMM(4), %VMM(4), %k1 > + KTEST %k1, %k1 > jz L(second_aligned_loop_set_furthest_match) > > - kortestd %k2, %k3 > - /* branch here because there is a significant advantage interms > - of output dependency chance in using edx. */ > + /* branch here because we know we have a match in VEC7/8 but > + might not in VEC5/6 so the latter is expected to be less > + likely. */ > + KORTEST %k2, %k3 > jnz L(return_new_match) > + > L(return_old_match): > - kmovq %k4, %rax > - bsrq %rax, %rax > - leaq (VEC_SIZE * 2)(%rsi, %rax, CHAR_SIZE), %rax > + VPCMPEQ %VMM(8), %VMATCH, %k0 > + KMOV %k0, %VRCX > + bsr %VRCX, %VRCX > + jnz L(return_old_match_ret) > + > + VPCMPEQ %VMM(7), %VMATCH, %k0 > + KMOV %k0, %VRCX > + bsr %VRCX, %VRCX > + subq $VEC_SIZE, %rsi > +L(return_old_match_ret): > + leaq (VEC_SIZE * 3)(%rsi, %rcx, CHAR_SIZE), %rax > ret > > + .p2align 4,, 10 > L(return_new_match): > - VPTESTN %YMM1, %YMM1, %k0 > - kunpck %k0, %k1, %k0 > + VPTESTN %VMM(5), %VMM(5), %k0 > + > + /* Combined results from VEC5/6. */ > + kunpck_2x %k0, %k1, %k0 > kmov_2x %k0, %maskz_2x > > blsmsk %maskz_2x, %maskz_2x > - kunpck %k2, %k3, %k3 > + kunpck_2x %k2, %k3, %k3 > kmov_2x %k3, %maskm_2x > + > + /* Match at end was out-of-bounds so use last known match. */ > and %maskz_2x, %maskm_2x > jz L(return_old_match) > > @@ -328,49 +353,53 @@ L(return_new_match): > leaq (VEC_SIZE * 2)(%rdi, %rax, CHAR_SIZE), %rax > ret > > + .p2align 4,, 4 > L(cross_page_boundary): > - /* eax contains all the page offset bits of src (rdi). `xor rdi, > - rax` sets pointer will all page offset bits cleared so > - offset of (PAGE_SIZE - VEC_SIZE) will get last aligned VEC > - before page cross (guranteed to be safe to read). Doing this > - as opposed to `movq %rdi, %rax; andq $-VEC_SIZE, %rax` saves > - a bit of code size. */ > xorq %rdi, %rax > - VMOVU (PAGE_SIZE - VEC_SIZE)(%rax), %YMM1 > - VPTESTN %YMM1, %YMM1, %k0 > - kmovd %k0, %ecx > + mov $-1, %VRDX > + VMOVU (PAGE_SIZE - VEC_SIZE)(%rax), %VMM(6) > + VPTESTN %VMM(6), %VMM(6), %k0 > + KMOV %k0, %VRSI > + > +# ifdef USE_AS_WCSRCHR > + movl %edi, %ecx > + and $(VEC_SIZE - 1), %ecx > + shrl $2, %ecx > +# endif > + shlx %VGPR(SHIFT_REG), %VRDX, %VRDX > > - /* Shift out zero CHAR matches that are before the begining of > - src (rdi). */ > # ifdef USE_AS_WCSRCHR > - movl %edi, %esi > - andl $(VEC_SIZE - 1), %esi > - shrl $2, %esi > + kmovb %edx, %k1 > +# else > + KMOV %VRDX, %k1 > # endif > - shrxl %SHIFT_REG, %ecx, %ecx > > - testl %ecx, %ecx > + /* Need to adjust result to VEC(1) so it can be re-used by > + L(return_vec_x0_test). The alternative is to collect VEC(1) > + will a page cross load which is far more expensive. */ > + VPCOMPRESS %VMM(6), %VMM(1){%k1}{z} > + > + /* We could technically just jmp back after the vpcompress but > + it doesn't save any 16-byte blocks. */ > + shrx %VGPR(SHIFT_REG), %VRSI, %VRSI > + test %VRSI, %VRSI > jz L(page_cross_continue) > > - /* Found zero CHAR so need to test for search CHAR. */ > - VPCMP $0, %YMMMATCH, %YMM1, %k1 > - kmovd %k1, %eax > - /* Shift out search CHAR matches that are before the begining of > - src (rdi). */ > - shrxl %SHIFT_REG, %eax, %eax > - > - /* Check if any search CHAR match in range. */ > - blsmskl %ecx, %ecx > - andl %ecx, %eax > - jz L(ret3) > - bsrl %eax, %eax > + /* Duplicate of return logic from ENTRY. Doesn't cause spill to > + next cache line so might as well copy it here. */ > + VPCMPEQ %VMATCH, %VMM(1), %k1 > + KMOV %k1, %VRAX > + blsmsk %VRSI, %VRSI > + and %VRSI, %VRAX > + jz L(ret_page_cross) > + bsr %VRAX, %VRAX > # ifdef USE_AS_WCSRCHR > leaq (%rdi, %rax, CHAR_SIZE), %rax > # else > addq %rdi, %rax > # endif > -L(ret3): > +L(ret_page_cross): > ret > - > + /* 1 byte till next cache line. */ > END(STRRCHR) > #endif > -- > 2.34.1 > Results For: strrchr align,freq ,len ,max_char ,pos ,seek ,__strrchr_evex ,__strrchr_evex_orig 0 ,1 ,1 ,127 ,0 ,0 ,3.544 ,3.517 ,1.007 0 ,1 ,1 ,127 ,0 ,23 ,3.516 ,3.443 ,1.021 0 ,1 ,10 ,127 ,9 ,0 ,3.696 ,3.703 ,0.998 0 ,1 ,10 ,127 ,9 ,23 ,3.686 ,3.694 ,0.998 0 ,1 ,1024 ,127 ,0 ,0 ,3.541 ,3.424 ,1.034 0 ,1 ,1024 ,127 ,0 ,23 ,33.578 ,34.335 ,0.978 0 ,1 ,1024 ,127 ,1024 ,0 ,32.236 ,33.703 ,0.956 0 ,1 ,1024 ,127 ,1024 ,23 ,32.255 ,33.207 ,0.971 0 ,1 ,1024 ,127 ,144 ,0 ,9.681 ,10.761 ,0.9 0 ,1 ,1024 ,127 ,144 ,23 ,32.131 ,33.112 ,0.97 0 ,1 ,1024 ,127 ,192 ,0 ,11.173 ,12.72 ,0.878 0 ,1 ,1024 ,127 ,192 ,23 ,32.363 ,33.122 ,0.977 0 ,1 ,1024 ,127 ,240 ,0 ,11.068 ,12.692 ,0.872 0 ,1 ,1024 ,127 ,240 ,23 ,33.127 ,34.004 ,0.974 0 ,1 ,1024 ,127 ,288 ,0 ,12.579 ,14.452 ,0.87 0 ,1 ,1024 ,127 ,288 ,23 ,32.186 ,33.59 ,0.958 0 ,1 ,1024 ,127 ,48 ,0 ,4.728 ,5.669 ,0.834 0 ,1 ,1024 ,127 ,48 ,23 ,33.103 ,35.064 ,0.944 0 ,1 ,1024 ,127 ,736 ,0 ,23.846 ,25.818 ,0.924 0 ,1 ,1024 ,127 ,736 ,23 ,32.278 ,34.687 ,0.931 0 ,1 ,1024 ,127 ,784 ,0 ,25.566 ,27.51 ,0.929 0 ,1 ,1024 ,127 ,784 ,23 ,34.801 ,35.27 ,0.987 0 ,1 ,1024 ,127 ,832 ,0 ,27.218 ,29.017 ,0.938 0 ,1 ,1024 ,127 ,832 ,23 ,35.255 ,36.369 ,0.969 0 ,1 ,1024 ,127 ,880 ,0 ,27.413 ,29.169 ,0.94 0 ,1 ,1024 ,127 ,880 ,23 ,35.739 ,38.252 ,0.934 0 ,1 ,1024 ,127 ,928 ,0 ,29.056 ,30.715 ,0.946 0 ,1 ,1024 ,127 ,928 ,23 ,34.646 ,36.301 ,0.954 0 ,1 ,1024 ,127 ,96 ,0 ,5.923 ,7.163 ,0.827 0 ,1 ,1024 ,127 ,96 ,23 ,31.587 ,33.085 ,0.955 0 ,1 ,1024 ,127 ,976 ,0 ,30.784 ,32.313 ,0.953 0 ,1 ,1024 ,127 ,976 ,23 ,35.76 ,36.116 ,0.99 0 ,1 ,1072 ,127 ,1024 ,0 ,32.421 ,33.863 ,0.957 0 ,1 ,1072 ,127 ,1024 ,23 ,35.049 ,37.781 ,0.928 0 ,1 ,11 ,127 ,10 ,0 ,3.7 ,3.705 ,0.999 0 ,1 ,11 ,127 ,10 ,23 ,3.697 ,3.699 ,0.999 0 ,1 ,112 ,127 ,144 ,0 ,5.914 ,7.112 ,0.832 0 ,1 ,112 ,127 ,144 ,23 ,6.616 ,8.659 ,0.764 0 ,1 ,112 ,127 ,16 ,0 ,3.565 ,3.576 ,0.997 0 ,1 ,112 ,127 ,16 ,23 ,7.888 ,8.337 ,0.946 0 ,1 ,112 ,127 ,256 ,0 ,5.916 ,6.985 ,0.847 0 ,1 ,112 ,127 ,256 ,23 ,6.581 ,8.642 ,0.762 0 ,1 ,112 ,127 ,64 ,0 ,5.352 ,6.955 ,0.77 0 ,1 ,112 ,127 ,64 ,23 ,7.401 ,8.403 ,0.881 0 ,1 ,112 ,127 ,96 ,0 ,7.084 ,7.239 ,0.979 0 ,1 ,112 ,127 ,96 ,23 ,6.146 ,7.451 ,0.825 0 ,1 ,1120 ,127 ,1024 ,0 ,32.469 ,34.045 ,0.954 0 ,1 ,1120 ,127 ,1024 ,23 ,37.041 ,37.475 ,0.988 0 ,1 ,1168 ,127 ,1024 ,0 ,32.342 ,34.027 ,0.95 0 ,1 ,1168 ,127 ,1024 ,23 ,41.858 ,42.644 ,0.982 0 ,1 ,12 ,127 ,11 ,0 ,3.723 ,3.729 ,0.998 0 ,1 ,12 ,127 ,11 ,23 ,3.729 ,3.714 ,1.004 0 ,1 ,1216 ,127 ,1024 ,0 ,32.631 ,34.11 ,0.957 0 ,1 ,1216 ,127 ,1024 ,23 ,39.96 ,40.846 ,0.978 0 ,1 ,1264 ,127 ,1024 ,0 ,32.411 ,33.803 ,0.959 0 ,1 ,1264 ,127 ,1024 ,23 ,40.231 ,41.592 ,0.967 0 ,1 ,128 ,127 ,0 ,0 ,3.492 ,3.474 ,1.005 0 ,1 ,128 ,127 ,0 ,23 ,9.893 ,11.676 ,0.847 0 ,1 ,128 ,127 ,112 ,0 ,5.956 ,6.956 ,0.856 0 ,1 ,128 ,127 ,112 ,23 ,10.68 ,12.006 ,0.89 0 ,1 ,128 ,127 ,128 ,0 ,9.81 ,10.775 ,0.91 0 ,1 ,128 ,127 ,128 ,23 ,8.669 ,9.809 ,0.884 0 ,1 ,128 ,127 ,144 ,0 ,10.021 ,10.81 ,0.927 0 ,1 ,128 ,127 ,144 ,23 ,9.02 ,10.357 ,0.871 0 ,1 ,128 ,127 ,192 ,0 ,9.76 ,10.873 ,0.898 0 ,1 ,128 ,127 ,192 ,23 ,8.848 ,10.049 ,0.88 0 ,1 ,128 ,127 ,240 ,0 ,9.979 ,10.941 ,0.912 0 ,1 ,128 ,127 ,240 ,23 ,8.658 ,10.027 ,0.863 0 ,1 ,128 ,127 ,288 ,0 ,10.064 ,11.29 ,0.891 0 ,1 ,128 ,127 ,288 ,23 ,8.632 ,9.855 ,0.876 0 ,1 ,128 ,127 ,32 ,0 ,4.695 ,5.663 ,0.829 0 ,1 ,128 ,127 ,32 ,23 ,9.803 ,11.638 ,0.842 0 ,1 ,128 ,127 ,48 ,0 ,4.642 ,5.951 ,0.78 0 ,1 ,128 ,127 ,48 ,23 ,9.872 ,11.125 ,0.887 0 ,1 ,128 ,127 ,80 ,0 ,5.074 ,6.474 ,0.784 0 ,1 ,128 ,127 ,80 ,23 ,9.745 ,11.426 ,0.853 0 ,1 ,128 ,127 ,96 ,0 ,6.501 ,7.481 ,0.869 0 ,1 ,128 ,127 ,96 ,23 ,8.717 ,10.366 ,0.841 0 ,1 ,13 ,127 ,12 ,0 ,3.737 ,3.739 ,1.0 0 ,1 ,13 ,127 ,12 ,23 ,3.715 ,3.723 ,0.998 0 ,1 ,1312 ,127 ,1024 ,0 ,32.427 ,34.083 ,0.951 0 ,1 ,1312 ,127 ,1024 ,23 ,43.614 ,44.317 ,0.984 0 ,1 ,14 ,127 ,13 ,0 ,3.739 ,3.748 ,0.997 0 ,1 ,14 ,127 ,13 ,23 ,3.721 ,3.723 ,0.999 0 ,1 ,144 ,127 ,128 ,0 ,10.539 ,10.65 ,0.99 0 ,1 ,144 ,127 ,128 ,23 ,9.751 ,11.0 ,0.886 0 ,1 ,15 ,127 ,14 ,0 ,3.727 ,3.723 ,1.001 0 ,1 ,15 ,127 ,14 ,23 ,3.746 ,3.761 ,0.996 0 ,1 ,16 ,127 ,0 ,0 ,3.416 ,3.418 ,0.999 0 ,1 ,16 ,127 ,0 ,23 ,3.436 ,3.446 ,0.997 0 ,1 ,16 ,127 ,144 ,0 ,3.619 ,3.628 ,0.997 0 ,1 ,16 ,127 ,144 ,23 ,4.019 ,4.016 ,1.001 0 ,1 ,16 ,127 ,15 ,0 ,3.727 ,3.728 ,1.0 0 ,1 ,16 ,127 ,15 ,23 ,3.733 ,3.737 ,0.999 0 ,1 ,16 ,127 ,16 ,0 ,3.42 ,3.416 ,1.001 0 ,1 ,16 ,127 ,16 ,23 ,3.974 ,3.956 ,1.005 0 ,1 ,16 ,127 ,192 ,0 ,3.592 ,3.595 ,0.999 0 ,1 ,16 ,127 ,192 ,23 ,3.981 ,3.992 ,0.997 0 ,1 ,16 ,127 ,240 ,0 ,3.562 ,3.58 ,0.995 0 ,1 ,16 ,127 ,240 ,23 ,3.973 ,3.91 ,1.016 0 ,1 ,16 ,127 ,256 ,0 ,3.529 ,3.523 ,1.002 0 ,1 ,16 ,127 ,256 ,23 ,4.114 ,4.057 ,1.014 0 ,1 ,16 ,127 ,288 ,0 ,3.634 ,3.672 ,0.99 0 ,1 ,16 ,127 ,288 ,23 ,4.061 ,4.511 ,0.9 0 ,1 ,16 ,127 ,48 ,0 ,3.539 ,3.546 ,0.998 0 ,1 ,16 ,127 ,48 ,23 ,4.021 ,4.002 ,1.005 0 ,1 ,16 ,127 ,64 ,0 ,3.514 ,3.512 ,1.001 0 ,1 ,16 ,127 ,64 ,23 ,3.973 ,3.968 ,1.001 0 ,1 ,16 ,127 ,96 ,0 ,3.523 ,3.528 ,0.998 0 ,1 ,16 ,127 ,96 ,23 ,4.019 ,4.016 ,1.001 0 ,1 ,160 ,127 ,144 ,0 ,9.98 ,10.889 ,0.917 0 ,1 ,160 ,127 ,144 ,23 ,9.568 ,11.164 ,0.857 0 ,1 ,160 ,127 ,16 ,0 ,3.6 ,3.606 ,0.998 0 ,1 ,160 ,127 ,16 ,23 ,12.466 ,13.468 ,0.926 0 ,1 ,160 ,127 ,256 ,0 ,9.782 ,10.864 ,0.9 0 ,1 ,160 ,127 ,256 ,23 ,8.74 ,10.167 ,0.86 0 ,1 ,160 ,127 ,64 ,0 ,5.308 ,6.514 ,0.815 0 ,1 ,160 ,127 ,64 ,23 ,10.168 ,11.726 ,0.867 0 ,1 ,160 ,127 ,96 ,0 ,6.254 ,7.071 ,0.885 0 ,1 ,160 ,127 ,96 ,23 ,8.791 ,10.18 ,0.864 0 ,1 ,17 ,127 ,16 ,0 ,3.755 ,3.747 ,1.002 0 ,1 ,17 ,127 ,16 ,23 ,3.749 ,3.742 ,1.002 0 ,1 ,176 ,127 ,128 ,0 ,10.071 ,10.816 ,0.931 0 ,1 ,176 ,127 ,128 ,23 ,9.842 ,10.987 ,0.896 0 ,1 ,176 ,127 ,160 ,0 ,9.943 ,10.917 ,0.911 0 ,1 ,176 ,127 ,160 ,23 ,9.401 ,10.855 ,0.866 0 ,1 ,176 ,127 ,32 ,0 ,4.799 ,5.122 ,0.937 0 ,1 ,176 ,127 ,32 ,23 ,9.912 ,11.536 ,0.859 0 ,1 ,1760 ,127 ,2048 ,0 ,72.585 ,67.02 ,1.083 0 ,1 ,1760 ,127 ,2048 ,23 ,72.354 ,70.53 ,1.026 0 ,1 ,1760 ,127 ,288 ,0 ,13.012 ,14.359 ,0.906 0 ,1 ,1760 ,127 ,288 ,23 ,53.579 ,75.066 ,0.714 0 ,1 ,18 ,127 ,17 ,0 ,3.723 ,3.734 ,0.997 0 ,1 ,18 ,127 ,17 ,23 ,3.719 ,3.723 ,0.999 0 ,1 ,1808 ,127 ,2048 ,0 ,74.738 ,72.933 ,1.025 0 ,1 ,1808 ,127 ,2048 ,23 ,73.708 ,69.817 ,1.056 0 ,1 ,1808 ,127 ,240 ,0 ,11.466 ,12.936 ,0.886 0 ,1 ,1808 ,127 ,240 ,23 ,52.31 ,74.244 ,0.705 0 ,1 ,1856 ,127 ,192 ,0 ,11.493 ,12.777 ,0.9 0 ,1 ,1856 ,127 ,192 ,23 ,56.637 ,75.554 ,0.75 0 ,1 ,1856 ,127 ,2048 ,0 ,76.752 ,75.005 ,1.023 0 ,1 ,1856 ,127 ,2048 ,23 ,75.763 ,75.647 ,1.002 0 ,1 ,19 ,127 ,18 ,0 ,3.733 ,3.737 ,0.999 0 ,1 ,19 ,127 ,18 ,23 ,3.709 ,3.721 ,0.997 0 ,1 ,1904 ,127 ,144 ,0 ,9.908 ,10.968 ,0.903 0 ,1 ,1904 ,127 ,144 ,23 ,54.074 ,73.718 ,0.734 0 ,1 ,1904 ,127 ,2048 ,0 ,76.284 ,74.221 ,1.028 0 ,1 ,1904 ,127 ,2048 ,23 ,76.677 ,75.992 ,1.009 0 ,1 ,192 ,127 ,176 ,0 ,9.472 ,10.994 ,0.862 0 ,1 ,192 ,127 ,176 ,23 ,11.123 ,12.382 ,0.898 0 ,1 ,1952 ,127 ,2048 ,0 ,78.545 ,76.143 ,1.032 0 ,1 ,1952 ,127 ,2048 ,23 ,77.067 ,79.001 ,0.976 0 ,1 ,1952 ,127 ,96 ,0 ,5.921 ,7.117 ,0.832 0 ,1 ,1952 ,127 ,96 ,23 ,78.832 ,77.729 ,1.014 0 ,1 ,2 ,127 ,1 ,0 ,3.567 ,3.564 ,1.001 0 ,1 ,2 ,127 ,1 ,23 ,3.474 ,3.479 ,0.999 0 ,1 ,20 ,127 ,19 ,0 ,3.735 ,3.735 ,1.0 0 ,1 ,20 ,127 ,19 ,23 ,3.724 ,3.732 ,0.998 0 ,1 ,2000 ,127 ,2048 ,0 ,79.702 ,75.814 ,1.051 0 ,1 ,2000 ,127 ,2048 ,23 ,82.662 ,80.546 ,1.026 0 ,1 ,2000 ,127 ,48 ,0 ,4.641 ,5.922 ,0.784 0 ,1 ,2000 ,127 ,48 ,23 ,78.879 ,80.783 ,0.976 0 ,1 ,2048 ,127 ,0 ,0 ,3.782 ,3.626 ,1.043 0 ,1 ,2048 ,127 ,0 ,23 ,88.244 ,81.961 ,1.077 0 ,1 ,2048 ,127 ,1024 ,0 ,32.647 ,34.351 ,0.95 0 ,1 ,2048 ,127 ,1024 ,23 ,63.059 ,63.135 ,0.999 0 ,1 ,2048 ,127 ,128 ,0 ,10.048 ,10.918 ,0.92 0 ,1 ,2048 ,127 ,128 ,23 ,59.186 ,76.42 ,0.774 0 ,1 ,2048 ,127 ,144 ,0 ,9.887 ,10.926 ,0.905 0 ,1 ,2048 ,127 ,144 ,23 ,58.821 ,78.417 ,0.75 0 ,1 ,2048 ,127 ,1760 ,0 ,72.29 ,65.89 ,1.097 0 ,1 ,2048 ,127 ,1760 ,23 ,67.317 ,70.046 ,0.961 0 ,1 ,2048 ,127 ,1808 ,0 ,74.84 ,72.362 ,1.034 0 ,1 ,2048 ,127 ,1808 ,23 ,66.716 ,67.123 ,0.994 0 ,1 ,2048 ,127 ,1856 ,0 ,76.885 ,73.468 ,1.047 0 ,1 ,2048 ,127 ,1856 ,23 ,65.625 ,65.874 ,0.996 0 ,1 ,2048 ,127 ,1904 ,0 ,76.289 ,73.484 ,1.038 0 ,1 ,2048 ,127 ,1904 ,23 ,68.284 ,72.223 ,0.945 0 ,1 ,2048 ,127 ,192 ,0 ,11.595 ,12.834 ,0.903 0 ,1 ,2048 ,127 ,192 ,23 ,83.689 ,78.987 ,1.06 0 ,1 ,2048 ,127 ,1952 ,0 ,77.785 ,75.969 ,1.024 0 ,1 ,2048 ,127 ,1952 ,23 ,66.755 ,70.554 ,0.946 0 ,1 ,2048 ,127 ,2000 ,0 ,78.418 ,75.695 ,1.036 0 ,1 ,2048 ,127 ,2000 ,23 ,71.465 ,70.069 ,1.02 0 ,1 ,2048 ,127 ,2048 ,0 ,77.747 ,79.151 ,0.982 0 ,1 ,2048 ,127 ,2048 ,23 ,79.178 ,75.595 ,1.047 0 ,1 ,2048 ,127 ,240 ,0 ,11.527 ,12.989 ,0.887 0 ,1 ,2048 ,127 ,240 ,23 ,69.117 ,80.272 ,0.861 0 ,1 ,2048 ,127 ,256 ,0 ,13.007 ,14.606 ,0.891 0 ,1 ,2048 ,127 ,256 ,23 ,83.298 ,73.27 ,1.137 0 ,1 ,2048 ,127 ,288 ,0 ,12.933 ,14.597 ,0.886 0 ,1 ,2048 ,127 ,288 ,23 ,82.111 ,83.34 ,0.985 0 ,1 ,2048 ,127 ,32 ,0 ,4.737 ,4.775 ,0.992 0 ,1 ,2048 ,127 ,32 ,23 ,78.505 ,82.154 ,0.956 0 ,1 ,2048 ,127 ,4096 ,0 ,81.364 ,81.725 ,0.996 0 ,1 ,2048 ,127 ,4096 ,23 ,80.334 ,74.208 ,1.083 0 ,1 ,2048 ,127 ,48 ,0 ,4.651 ,5.776 ,0.805 0 ,1 ,2048 ,127 ,48 ,23 ,85.128 ,83.639 ,1.018 0 ,1 ,2048 ,127 ,512 ,0 ,19.777 ,20.435 ,0.968 0 ,1 ,2048 ,127 ,512 ,23 ,72.706 ,76.171 ,0.955 0 ,1 ,2048 ,127 ,64 ,0 ,7.221 ,8.125 ,0.889 0 ,1 ,2048 ,127 ,64 ,23 ,78.534 ,81.715 ,0.961 0 ,1 ,2048 ,127 ,96 ,0 ,6.214 ,7.207 ,0.862 0 ,1 ,2048 ,127 ,96 ,23 ,82.681 ,82.298 ,1.005 0 ,1 ,208 ,127 ,16 ,0 ,3.591 ,3.628 ,0.99 0 ,1 ,208 ,127 ,16 ,23 ,11.938 ,13.415 ,0.89 0 ,1 ,208 ,127 ,192 ,0 ,11.149 ,12.75 ,0.874 0 ,1 ,208 ,127 ,192 ,23 ,11.712 ,13.415 ,0.873 0 ,1 ,208 ,127 ,256 ,0 ,11.173 ,12.8 ,0.873 0 ,1 ,208 ,127 ,256 ,23 ,10.529 ,12.765 ,0.825 0 ,1 ,208 ,127 ,48 ,0 ,4.648 ,5.711 ,0.814 0 ,1 ,208 ,127 ,48 ,23 ,11.612 ,13.052 ,0.89 0 ,1 ,208 ,127 ,64 ,0 ,5.235 ,6.257 ,0.837 0 ,1 ,208 ,127 ,64 ,23 ,11.809 ,13.386 ,0.882 0 ,1 ,2096 ,127 ,2048 ,0 ,80.173 ,79.245 ,1.012 0 ,1 ,2096 ,127 ,2048 ,23 ,71.71 ,74.296 ,0.965 0 ,1 ,21 ,127 ,20 ,0 ,3.705 ,3.715 ,0.997 0 ,1 ,21 ,127 ,20 ,23 ,3.699 ,3.703 ,0.999 0 ,1 ,2144 ,127 ,2048 ,0 ,81.623 ,79.436 ,1.028 0 ,1 ,2144 ,127 ,2048 ,23 ,69.342 ,69.534 ,0.997 0 ,1 ,2192 ,127 ,2048 ,0 ,79.678 ,81.904 ,0.973 0 ,1 ,2192 ,127 ,2048 ,23 ,70.794 ,72.831 ,0.972 0 ,1 ,22 ,127 ,21 ,0 ,3.69 ,3.695 ,0.999 0 ,1 ,22 ,127 ,21 ,23 ,3.691 ,3.7 ,0.997 0 ,1 ,224 ,127 ,128 ,0 ,10.675 ,10.772 ,0.991 0 ,1 ,224 ,127 ,128 ,23 ,12.065 ,12.436 ,0.97 0 ,1 ,224 ,127 ,208 ,0 ,11.13 ,12.897 ,0.863 0 ,1 ,224 ,127 ,208 ,23 ,11.075 ,12.8 ,0.865 0 ,1 ,224 ,127 ,288 ,0 ,11.031 ,12.636 ,0.873 0 ,1 ,224 ,127 ,288 ,23 ,10.654 ,12.748 ,0.836 0 ,1 ,224 ,127 ,32 ,0 ,4.819 ,4.812 ,1.001 0 ,1 ,224 ,127 ,32 ,23 ,11.908 ,13.53 ,0.88 0 ,1 ,224 ,127 ,512 ,0 ,11.124 ,12.704 ,0.876 0 ,1 ,224 ,127 ,512 ,23 ,10.477 ,12.634 ,0.829 0 ,1 ,2240 ,127 ,2048 ,0 ,80.648 ,76.87 ,1.049 0 ,1 ,2240 ,127 ,2048 ,23 ,71.957 ,72.525 ,0.992 0 ,1 ,2288 ,127 ,2048 ,0 ,80.434 ,76.598 ,1.05 0 ,1 ,2288 ,127 ,2048 ,23 ,72.331 ,73.156 ,0.989 0 ,1 ,23 ,127 ,22 ,0 ,3.704 ,3.709 ,0.999 0 ,1 ,23 ,127 ,22 ,23 ,3.733 ,3.727 ,1.002 0 ,1 ,2336 ,127 ,2048 ,0 ,79.963 ,74.387 ,1.075 0 ,1 ,2336 ,127 ,2048 ,23 ,72.296 ,72.702 ,0.994 0 ,1 ,24 ,127 ,23 ,0 ,3.71 ,3.719 ,0.998 0 ,1 ,24 ,127 ,23 ,23 ,3.704 ,3.759 ,0.985 0 ,1 ,240 ,127 ,224 ,0 ,11.049 ,12.695 ,0.87 0 ,1 ,240 ,127 ,224 ,23 ,11.624 ,13.28 ,0.875 0 ,1 ,25 ,127 ,24 ,0 ,3.733 ,3.749 ,0.996 0 ,1 ,25 ,127 ,24 ,23 ,3.698 ,3.695 ,1.001 0 ,1 ,256 ,127 ,0 ,0 ,3.37 ,3.366 ,1.001 0 ,1 ,256 ,127 ,0 ,23 ,13.22 ,14.761 ,0.896 0 ,1 ,256 ,127 ,112 ,0 ,6.14 ,7.417 ,0.828 0 ,1 ,256 ,127 ,112 ,23 ,11.638 ,13.641 ,0.853 0 ,1 ,256 ,127 ,144 ,0 ,9.767 ,10.759 ,0.908 0 ,1 ,256 ,127 ,144 ,23 ,13.663 ,14.306 ,0.955 0 ,1 ,256 ,127 ,16 ,0 ,3.506 ,3.647 ,0.961 0 ,1 ,256 ,127 ,16 ,23 ,14.096 ,16.019 ,0.88 0 ,1 ,256 ,127 ,160 ,0 ,9.716 ,10.87 ,0.894 0 ,1 ,256 ,127 ,160 ,23 ,12.678 ,14.429 ,0.879 0 ,1 ,256 ,127 ,192 ,0 ,11.156 ,12.571 ,0.887 0 ,1 ,256 ,127 ,192 ,23 ,13.887 ,14.705 ,0.944 0 ,1 ,256 ,127 ,208 ,0 ,11.074 ,12.458 ,0.889 0 ,1 ,256 ,127 ,208 ,23 ,13.711 ,14.331 ,0.957 0 ,1 ,256 ,127 ,240 ,0 ,11.224 ,12.857 ,0.873 0 ,1 ,256 ,127 ,240 ,23 ,13.125 ,14.22 ,0.923 0 ,1 ,256 ,127 ,256 ,0 ,12.597 ,14.283 ,0.882 0 ,1 ,256 ,127 ,256 ,23 ,12.154 ,14.09 ,0.863 0 ,1 ,256 ,127 ,288 ,0 ,12.885 ,14.712 ,0.876 0 ,1 ,256 ,127 ,288 ,23 ,12.466 ,14.646 ,0.851 0 ,1 ,256 ,127 ,48 ,0 ,4.674 ,5.7 ,0.82 0 ,1 ,256 ,127 ,48 ,23 ,13.01 ,14.715 ,0.884 0 ,1 ,256 ,127 ,64 ,0 ,5.267 ,6.387 ,0.825 0 ,1 ,256 ,127 ,64 ,23 ,13.105 ,15.062 ,0.87 0 ,1 ,256 ,127 ,96 ,0 ,6.543 ,6.909 ,0.947 0 ,1 ,256 ,127 ,96 ,23 ,11.623 ,13.606 ,0.854 0 ,1 ,26 ,127 ,25 ,0 ,3.7 ,3.709 ,0.998 0 ,1 ,26 ,127 ,25 ,23 ,3.766 ,4.352 ,0.865 0 ,1 ,27 ,127 ,26 ,0 ,3.681 ,3.947 ,0.933 0 ,1 ,27 ,127 ,26 ,23 ,3.668 ,4.398 ,0.834 0 ,1 ,272 ,127 ,128 ,0 ,10.053 ,10.934 ,0.919 0 ,1 ,272 ,127 ,128 ,23 ,13.747 ,14.33 ,0.959 0 ,1 ,272 ,127 ,240 ,0 ,11.105 ,12.569 ,0.884 0 ,1 ,272 ,127 ,240 ,23 ,13.305 ,14.284 ,0.931 0 ,1 ,272 ,127 ,256 ,0 ,12.583 ,14.344 ,0.877 0 ,1 ,272 ,127 ,256 ,23 ,12.561 ,14.402 ,0.872 0 ,1 ,272 ,127 ,32 ,0 ,4.822 ,4.83 ,0.998 0 ,1 ,272 ,127 ,32 ,23 ,13.325 ,14.978 ,0.89 0 ,1 ,272 ,127 ,512 ,0 ,12.503 ,14.272 ,0.876 0 ,1 ,272 ,127 ,512 ,23 ,12.508 ,14.244 ,0.878 0 ,1 ,28 ,127 ,27 ,0 ,3.672 ,4.37 ,0.84 0 ,1 ,28 ,127 ,27 ,23 ,3.659 ,4.465 ,0.82 0 ,1 ,288 ,127 ,272 ,0 ,12.534 ,14.043 ,0.893 0 ,1 ,288 ,127 ,272 ,23 ,13.204 ,15.618 ,0.845 0 ,1 ,29 ,127 ,28 ,0 ,3.635 ,4.457 ,0.816 0 ,1 ,29 ,127 ,28 ,23 ,3.67 ,4.827 ,0.76 0 ,1 ,3 ,127 ,2 ,0 ,3.584 ,3.592 ,0.998 0 ,1 ,3 ,127 ,2 ,23 ,3.577 ,3.569 ,1.002 0 ,1 ,30 ,127 ,29 ,0 ,3.596 ,4.365 ,0.824 0 ,1 ,30 ,127 ,29 ,23 ,3.62 ,4.661 ,0.777 0 ,1 ,304 ,127 ,16 ,0 ,3.653 ,3.666 ,0.996 0 ,1 ,304 ,127 ,16 ,23 ,13.304 ,15.457 ,0.861 0 ,1 ,304 ,127 ,256 ,0 ,12.587 ,14.097 ,0.893 0 ,1 ,304 ,127 ,256 ,23 ,12.562 ,14.481 ,0.867 0 ,1 ,304 ,127 ,64 ,0 ,5.279 ,6.555 ,0.805 0 ,1 ,304 ,127 ,64 ,23 ,13.121 ,14.861 ,0.883 0 ,1 ,31 ,127 ,30 ,0 ,3.586 ,4.467 ,0.803 0 ,1 ,31 ,127 ,30 ,23 ,3.568 ,4.776 ,0.747 0 ,1 ,32 ,127 ,0 ,0 ,3.645 ,3.648 ,0.999 0 ,1 ,32 ,127 ,0 ,23 ,4.841 ,5.816 ,0.832 0 ,1 ,32 ,127 ,128 ,0 ,4.627 ,5.595 ,0.827 0 ,1 ,32 ,127 ,128 ,23 ,4.649 ,5.333 ,0.872 0 ,1 ,32 ,127 ,144 ,0 ,4.776 ,5.245 ,0.911 0 ,1 ,32 ,127 ,144 ,23 ,4.805 ,5.254 ,0.915 0 ,1 ,32 ,127 ,16 ,0 ,3.53 ,3.534 ,0.999 0 ,1 ,32 ,127 ,16 ,23 ,4.931 ,5.879 ,0.839 0 ,1 ,32 ,127 ,192 ,0 ,4.807 ,5.028 ,0.956 0 ,1 ,32 ,127 ,192 ,23 ,4.66 ,5.322 ,0.876 0 ,1 ,32 ,127 ,240 ,0 ,4.811 ,4.83 ,0.996 0 ,1 ,32 ,127 ,240 ,23 ,4.627 ,5.454 ,0.848 0 ,1 ,32 ,127 ,288 ,0 ,4.822 ,4.831 ,0.998 0 ,1 ,32 ,127 ,288 ,23 ,4.566 ,4.729 ,0.966 0 ,1 ,32 ,127 ,31 ,0 ,3.564 ,4.746 ,0.751 0 ,1 ,32 ,127 ,31 ,23 ,4.92 ,6.186 ,0.795 0 ,1 ,32 ,127 ,32 ,0 ,4.869 ,5.902 ,0.825 0 ,1 ,32 ,127 ,32 ,23 ,4.656 ,5.193 ,0.897 0 ,1 ,32 ,127 ,48 ,0 ,4.859 ,6.062 ,0.802 0 ,1 ,32 ,127 ,48 ,23 ,4.69 ,5.338 ,0.879 0 ,1 ,32 ,127 ,96 ,0 ,4.681 ,5.639 ,0.83 0 ,1 ,32 ,127 ,96 ,23 ,4.766 ,5.533 ,0.861 0 ,1 ,320 ,127 ,128 ,0 ,9.939 ,10.727 ,0.927 0 ,1 ,320 ,127 ,128 ,23 ,15.298 ,15.876 ,0.964 0 ,1 ,320 ,127 ,192 ,0 ,11.04 ,12.492 ,0.884 0 ,1 ,320 ,127 ,192 ,23 ,16.42 ,17.013 ,0.965 0 ,1 ,320 ,127 ,32 ,0 ,4.835 ,4.834 ,1.0 0 ,1 ,320 ,127 ,32 ,23 ,14.782 ,16.742 ,0.883 0 ,1 ,320 ,127 ,512 ,0 ,14.196 ,15.898 ,0.893 0 ,1 ,320 ,127 ,512 ,23 ,14.053 ,15.998 ,0.878 0 ,1 ,352 ,127 ,256 ,0 ,12.7 ,14.27 ,0.89 0 ,1 ,352 ,127 ,256 ,23 ,15.426 ,15.609 ,0.988 0 ,1 ,352 ,127 ,64 ,0 ,5.422 ,6.416 ,0.845 0 ,1 ,352 ,127 ,64 ,23 ,14.687 ,16.523 ,0.889 0 ,1 ,368 ,127 ,128 ,0 ,9.913 ,10.831 ,0.915 0 ,1 ,368 ,127 ,128 ,23 ,15.186 ,15.821 ,0.96 0 ,1 ,368 ,127 ,144 ,0 ,9.51 ,11.059 ,0.86 0 ,1 ,368 ,127 ,144 ,23 ,15.085 ,15.558 ,0.97 0 ,1 ,368 ,127 ,512 ,0 ,14.234 ,15.896 ,0.895 0 ,1 ,368 ,127 ,512 ,23 ,13.945 ,15.618 ,0.893 0 ,1 ,4 ,127 ,3 ,0 ,3.632 ,3.617 ,1.004 0 ,1 ,4 ,127 ,3 ,23 ,3.637 ,3.643 ,0.999 0 ,1 ,400 ,127 ,256 ,0 ,12.559 ,14.284 ,0.879 0 ,1 ,400 ,127 ,256 ,23 ,16.876 ,17.411 ,0.969 0 ,1 ,416 ,127 ,128 ,0 ,9.837 ,10.848 ,0.907 0 ,1 ,416 ,127 ,128 ,23 ,16.675 ,17.163 ,0.972 0 ,1 ,416 ,127 ,512 ,0 ,16.474 ,17.564 ,0.938 0 ,1 ,416 ,127 ,512 ,23 ,15.701 ,17.825 ,0.881 0 ,1 ,416 ,127 ,96 ,0 ,5.938 ,7.292 ,0.814 0 ,1 ,416 ,127 ,96 ,23 ,15.155 ,17.112 ,0.886 0 ,1 ,448 ,127 ,256 ,0 ,12.521 ,14.474 ,0.865 0 ,1 ,448 ,127 ,256 ,23 ,18.264 ,19.268 ,0.948 0 ,1 ,464 ,127 ,48 ,0 ,4.874 ,5.896 ,0.827 0 ,1 ,464 ,127 ,48 ,23 ,17.857 ,19.505 ,0.916 0 ,1 ,464 ,127 ,512 ,0 ,17.821 ,19.223 ,0.927 0 ,1 ,464 ,127 ,512 ,23 ,17.551 ,19.683 ,0.892 0 ,1 ,48 ,127 ,32 ,0 ,4.791 ,5.543 ,0.864 0 ,1 ,48 ,127 ,32 ,23 ,4.744 ,5.872 ,0.808 0 ,1 ,496 ,127 ,256 ,0 ,12.58 ,14.438 ,0.871 0 ,1 ,496 ,127 ,256 ,23 ,18.256 ,19.055 ,0.958 0 ,1 ,5 ,127 ,4 ,0 ,3.653 ,3.663 ,0.997 0 ,1 ,5 ,127 ,4 ,23 ,3.622 ,3.608 ,1.004 0 ,1 ,512 ,127 ,0 ,0 ,3.573 ,3.4 ,1.051 0 ,1 ,512 ,127 ,0 ,23 ,20.054 ,21.502 ,0.933 0 ,1 ,512 ,127 ,144 ,0 ,9.761 ,10.997 ,0.888 0 ,1 ,512 ,127 ,144 ,23 ,19.22 ,20.417 ,0.941 0 ,1 ,512 ,127 ,192 ,0 ,11.159 ,12.818 ,0.871 0 ,1 ,512 ,127 ,192 ,23 ,19.607 ,20.825 ,0.941 0 ,1 ,512 ,127 ,224 ,0 ,11.047 ,12.752 ,0.866 0 ,1 ,512 ,127 ,224 ,23 ,19.094 ,20.966 ,0.911 0 ,1 ,512 ,127 ,240 ,0 ,11.033 ,12.452 ,0.886 0 ,1 ,512 ,127 ,240 ,23 ,19.086 ,20.511 ,0.931 0 ,1 ,512 ,127 ,272 ,0 ,12.532 ,13.969 ,0.897 0 ,1 ,512 ,127 ,272 ,23 ,19.826 ,20.773 ,0.954 0 ,1 ,512 ,127 ,288 ,0 ,12.496 ,14.261 ,0.876 0 ,1 ,512 ,127 ,288 ,23 ,19.445 ,20.762 ,0.937 0 ,1 ,512 ,127 ,320 ,0 ,14.078 ,16.046 ,0.877 0 ,1 ,512 ,127 ,320 ,23 ,20.954 ,21.579 ,0.971 0 ,1 ,512 ,127 ,368 ,0 ,14.253 ,15.703 ,0.908 0 ,1 ,512 ,127 ,368 ,23 ,19.604 ,20.677 ,0.948 0 ,1 ,512 ,127 ,416 ,0 ,16.554 ,17.606 ,0.94 0 ,1 ,512 ,127 ,416 ,23 ,19.012 ,21.311 ,0.892 0 ,1 ,512 ,127 ,464 ,0 ,17.839 ,19.299 ,0.924 0 ,1 ,512 ,127 ,464 ,23 ,22.135 ,22.763 ,0.972 0 ,1 ,512 ,127 ,48 ,0 ,4.661 ,6.264 ,0.744 0 ,1 ,512 ,127 ,48 ,23 ,19.491 ,21.405 ,0.911 0 ,1 ,512 ,127 ,512 ,0 ,19.234 ,20.714 ,0.929 0 ,1 ,512 ,127 ,512 ,23 ,19.288 ,20.435 ,0.944 0 ,1 ,512 ,127 ,96 ,0 ,5.952 ,6.848 ,0.869 0 ,1 ,512 ,127 ,96 ,23 ,18.592 ,20.281 ,0.917 0 ,1 ,544 ,127 ,256 ,0 ,12.612 ,14.768 ,0.854 0 ,1 ,544 ,127 ,256 ,23 ,20.733 ,21.594 ,0.96 0 ,1 ,560 ,127 ,512 ,0 ,19.59 ,20.681 ,0.947 0 ,1 ,560 ,127 ,512 ,23 ,19.847 ,21.351 ,0.93 0 ,1 ,6 ,127 ,5 ,0 ,3.671 ,3.658 ,1.003 0 ,1 ,6 ,127 ,5 ,23 ,3.663 ,3.665 ,1.0 0 ,1 ,608 ,127 ,512 ,0 ,19.259 ,20.855 ,0.923 0 ,1 ,608 ,127 ,512 ,23 ,21.831 ,22.177 ,0.984 0 ,1 ,64 ,127 ,0 ,0 ,3.591 ,3.584 ,1.002 0 ,1 ,64 ,127 ,0 ,23 ,6.11 ,7.48 ,0.817 0 ,1 ,64 ,127 ,144 ,0 ,5.299 ,6.624 ,0.8 0 ,1 ,64 ,127 ,144 ,23 ,6.103 ,7.954 ,0.767 0 ,1 ,64 ,127 ,16 ,0 ,3.547 ,3.54 ,1.002 0 ,1 ,64 ,127 ,16 ,23 ,6.239 ,7.433 ,0.839 0 ,1 ,64 ,127 ,192 ,0 ,5.228 ,6.494 ,0.805 0 ,1 ,64 ,127 ,192 ,23 ,6.089 ,7.405 ,0.822 0 ,1 ,64 ,127 ,240 ,0 ,5.337 ,6.325 ,0.844 0 ,1 ,64 ,127 ,240 ,23 ,5.933 ,7.424 ,0.799 0 ,1 ,64 ,127 ,256 ,0 ,5.153 ,6.461 ,0.798 0 ,1 ,64 ,127 ,256 ,23 ,6.065 ,7.338 ,0.827 0 ,1 ,64 ,127 ,288 ,0 ,5.255 ,6.329 ,0.83 0 ,1 ,64 ,127 ,288 ,23 ,6.204 ,7.661 ,0.81 0 ,1 ,64 ,127 ,48 ,0 ,4.77 ,6.012 ,0.793 0 ,1 ,64 ,127 ,48 ,23 ,6.232 ,6.901 ,0.903 0 ,1 ,64 ,127 ,64 ,0 ,5.194 ,6.384 ,0.814 0 ,1 ,64 ,127 ,64 ,23 ,6.168 ,7.698 ,0.801 0 ,1 ,64 ,127 ,96 ,0 ,5.355 ,6.648 ,0.805 0 ,1 ,64 ,127 ,96 ,23 ,6.225 ,7.239 ,0.86 0 ,1 ,656 ,127 ,512 ,0 ,19.237 ,20.849 ,0.923 0 ,1 ,656 ,127 ,512 ,23 ,25.157 ,25.417 ,0.99 0 ,1 ,7 ,127 ,6 ,0 ,3.682 ,3.676 ,1.002 0 ,1 ,7 ,127 ,6 ,23 ,3.681 ,3.686 ,0.999 0 ,1 ,704 ,127 ,512 ,0 ,19.416 ,20.861 ,0.931 0 ,1 ,704 ,127 ,512 ,23 ,26.922 ,27.455 ,0.981 0 ,1 ,736 ,127 ,1024 ,0 ,23.724 ,25.647 ,0.925 0 ,1 ,736 ,127 ,1024 ,23 ,24.28 ,25.158 ,0.965 0 ,1 ,736 ,127 ,288 ,0 ,12.557 ,14.263 ,0.88 0 ,1 ,736 ,127 ,288 ,23 ,24.1 ,25.359 ,0.95 0 ,1 ,752 ,127 ,512 ,0 ,19.288 ,20.77 ,0.929 0 ,1 ,752 ,127 ,512 ,23 ,24.721 ,25.492 ,0.97 0 ,1 ,784 ,127 ,1024 ,0 ,25.562 ,27.595 ,0.926 0 ,1 ,784 ,127 ,1024 ,23 ,25.672 ,26.564 ,0.966 0 ,1 ,784 ,127 ,240 ,0 ,11.077 ,12.808 ,0.865 0 ,1 ,784 ,127 ,240 ,23 ,25.631 ,27.289 ,0.939 0 ,1 ,8 ,127 ,7 ,0 ,3.672 ,3.684 ,0.997 0 ,1 ,8 ,127 ,7 ,23 ,3.673 ,3.677 ,0.999 0 ,1 ,80 ,127 ,128 ,0 ,5.302 ,6.554 ,0.809 0 ,1 ,80 ,127 ,128 ,23 ,6.077 ,7.276 ,0.835 0 ,1 ,80 ,127 ,32 ,0 ,4.847 ,5.65 ,0.858 0 ,1 ,80 ,127 ,32 ,23 ,5.625 ,7.083 ,0.794 0 ,1 ,80 ,127 ,48 ,0 ,4.631 ,6.016 ,0.77 0 ,1 ,80 ,127 ,48 ,23 ,5.831 ,7.136 ,0.817 0 ,1 ,80 ,127 ,64 ,0 ,5.316 ,6.333 ,0.84 0 ,1 ,80 ,127 ,64 ,23 ,5.267 ,6.441 ,0.818 0 ,1 ,800 ,127 ,512 ,0 ,19.236 ,20.914 ,0.92 0 ,1 ,800 ,127 ,512 ,23 ,27.817 ,28.042 ,0.992 0 ,1 ,832 ,127 ,1024 ,0 ,27.381 ,28.889 ,0.948 0 ,1 ,832 ,127 ,1024 ,23 ,27.413 ,28.736 ,0.954 0 ,1 ,832 ,127 ,192 ,0 ,11.178 ,12.692 ,0.881 0 ,1 ,832 ,127 ,192 ,23 ,27.812 ,28.661 ,0.97 0 ,1 ,880 ,127 ,1024 ,0 ,27.289 ,29.033 ,0.94 0 ,1 ,880 ,127 ,1024 ,23 ,27.349 ,28.569 ,0.957 0 ,1 ,880 ,127 ,144 ,0 ,9.651 ,10.911 ,0.885 0 ,1 ,880 ,127 ,144 ,23 ,27.463 ,28.561 ,0.962 0 ,1 ,9 ,127 ,8 ,0 ,3.673 ,3.681 ,0.998 0 ,1 ,9 ,127 ,8 ,23 ,3.677 ,3.681 ,0.999 0 ,1 ,928 ,127 ,1024 ,0 ,29.345 ,30.681 ,0.956 0 ,1 ,928 ,127 ,1024 ,23 ,28.9 ,30.428 ,0.95 0 ,1 ,928 ,127 ,96 ,0 ,5.816 ,7.183 ,0.81 0 ,1 ,928 ,127 ,96 ,23 ,28.379 ,30.276 ,0.937 0 ,1 ,96 ,127 ,80 ,0 ,5.241 ,6.312 ,0.83 0 ,1 ,96 ,127 ,80 ,23 ,6.822 ,8.131 ,0.839 0 ,1 ,976 ,127 ,1024 ,0 ,30.829 ,32.366 ,0.953 0 ,1 ,976 ,127 ,1024 ,23 ,30.546 ,32.039 ,0.953 0 ,1 ,976 ,127 ,48 ,0 ,4.598 ,5.709 ,0.805 0 ,1 ,976 ,127 ,48 ,23 ,31.183 ,32.569 ,0.957 0 ,16 ,1 ,127 ,0 ,23 ,3.423 ,3.476 ,0.985 0 ,16 ,10 ,127 ,9 ,23 ,3.672 ,3.68 ,0.998 0 ,16 ,1024 ,127 ,0 ,23 ,35.156 ,35.625 ,0.987 0 ,16 ,1024 ,127 ,1024 ,23 ,46.115 ,51.936 ,0.888 0 ,16 ,1024 ,127 ,144 ,23 ,32.346 ,33.068 ,0.978 0 ,16 ,1024 ,127 ,192 ,23 ,33.999 ,34.024 ,0.999 0 ,16 ,1024 ,127 ,240 ,23 ,33.276 ,33.903 ,0.981 0 ,16 ,1024 ,127 ,288 ,23 ,34.194 ,35.141 ,0.973 0 ,16 ,1024 ,127 ,48 ,23 ,33.991 ,35.283 ,0.963 0 ,16 ,1024 ,127 ,736 ,23 ,39.45 ,43.531 ,0.906 0 ,16 ,1024 ,127 ,784 ,23 ,41.73 ,44.826 ,0.931 0 ,16 ,1024 ,127 ,832 ,23 ,42.524 ,46.58 ,0.913 0 ,16 ,1024 ,127 ,880 ,23 ,41.334 ,46.709 ,0.885 0 ,16 ,1024 ,127 ,928 ,23 ,43.223 ,48.508 ,0.891 0 ,16 ,1024 ,127 ,96 ,23 ,31.878 ,32.982 ,0.967 0 ,16 ,1024 ,127 ,976 ,23 ,45.181 ,50.271 ,0.899 0 ,16 ,1072 ,127 ,1024 ,23 ,44.743 ,52.252 ,0.856 0 ,16 ,11 ,127 ,10 ,23 ,3.676 ,3.681 ,0.999 0 ,16 ,112 ,127 ,144 ,23 ,6.145 ,7.762 ,0.792 0 ,16 ,112 ,127 ,16 ,23 ,7.397 ,8.975 ,0.824 0 ,16 ,112 ,127 ,256 ,23 ,6.223 ,7.516 ,0.828 0 ,16 ,112 ,127 ,64 ,23 ,6.857 ,8.175 ,0.839 0 ,16 ,112 ,127 ,96 ,23 ,6.036 ,8.011 ,0.753 0 ,16 ,1120 ,127 ,1024 ,23 ,47.607 ,53.044 ,0.898 0 ,16 ,1168 ,127 ,1024 ,23 ,49.148 ,54.622 ,0.9 0 ,16 ,12 ,127 ,11 ,23 ,3.724 ,3.714 ,1.003 0 ,16 ,1216 ,127 ,1024 ,23 ,50.295 ,56.053 ,0.897 0 ,16 ,1264 ,127 ,1024 ,23 ,50.214 ,56.184 ,0.894 0 ,16 ,128 ,127 ,0 ,23 ,10.092 ,11.285 ,0.894 0 ,16 ,128 ,127 ,112 ,23 ,10.241 ,12.219 ,0.838 0 ,16 ,128 ,127 ,128 ,23 ,8.506 ,9.882 ,0.861 0 ,16 ,128 ,127 ,144 ,23 ,8.673 ,10.425 ,0.832 0 ,16 ,128 ,127 ,192 ,23 ,8.597 ,10.005 ,0.859 0 ,16 ,128 ,127 ,240 ,23 ,8.82 ,9.903 ,0.891 0 ,16 ,128 ,127 ,288 ,23 ,9.115 ,9.831 ,0.927 0 ,16 ,128 ,127 ,32 ,23 ,9.89 ,11.123 ,0.889 0 ,16 ,128 ,127 ,48 ,23 ,9.811 ,10.943 ,0.897 0 ,16 ,128 ,127 ,80 ,23 ,9.694 ,11.279 ,0.859 0 ,16 ,128 ,127 ,96 ,23 ,8.558 ,10.178 ,0.841 0 ,16 ,13 ,127 ,12 ,23 ,3.717 ,3.723 ,0.998 0 ,16 ,1312 ,127 ,1024 ,23 ,51.791 ,56.858 ,0.911 0 ,16 ,14 ,127 ,13 ,23 ,3.727 ,3.742 ,0.996 0 ,16 ,144 ,127 ,128 ,23 ,9.626 ,11.354 ,0.848 0 ,16 ,15 ,127 ,14 ,23 ,3.757 ,3.761 ,0.999 0 ,16 ,16 ,127 ,0 ,23 ,3.44 ,3.463 ,0.994 0 ,16 ,16 ,127 ,144 ,23 ,3.494 ,3.485 ,1.002 0 ,16 ,16 ,127 ,15 ,23 ,3.759 ,3.737 ,1.006 0 ,16 ,16 ,127 ,16 ,23 ,3.443 ,3.436 ,1.002 0 ,16 ,16 ,127 ,192 ,23 ,3.441 ,3.446 ,0.998 0 ,16 ,16 ,127 ,240 ,23 ,3.507 ,3.437 ,1.02 0 ,16 ,16 ,127 ,256 ,23 ,4.063 ,4.208 ,0.965 0 ,16 ,16 ,127 ,288 ,23 ,3.942 ,5.13 ,0.768 0 ,16 ,16 ,127 ,48 ,23 ,3.506 ,3.49 ,1.004 0 ,16 ,16 ,127 ,64 ,23 ,3.463 ,3.45 ,1.004 0 ,16 ,16 ,127 ,96 ,23 ,3.556 ,3.59 ,0.991 0 ,16 ,160 ,127 ,144 ,23 ,9.543 ,10.925 ,0.873 0 ,16 ,160 ,127 ,16 ,23 ,11.937 ,13.496 ,0.884 0 ,16 ,160 ,127 ,256 ,23 ,9.598 ,10.946 ,0.877 0 ,16 ,160 ,127 ,64 ,23 ,9.934 ,11.743 ,0.846 0 ,16 ,160 ,127 ,96 ,23 ,8.443 ,10.136 ,0.833 0 ,16 ,17 ,127 ,16 ,23 ,3.727 ,3.732 ,0.999 0 ,16 ,176 ,127 ,128 ,23 ,9.582 ,11.262 ,0.851 0 ,16 ,176 ,127 ,160 ,23 ,9.554 ,11.055 ,0.864 0 ,16 ,176 ,127 ,32 ,23 ,9.86 ,11.081 ,0.89 0 ,16 ,1760 ,127 ,2048 ,23 ,63.084 ,66.584 ,0.947 0 ,16 ,1760 ,127 ,288 ,23 ,53.245 ,69.121 ,0.77 0 ,16 ,18 ,127 ,17 ,23 ,3.742 ,3.752 ,0.997 0 ,16 ,1808 ,127 ,2048 ,23 ,68.785 ,84.159 ,0.817 0 ,16 ,1808 ,127 ,240 ,23 ,54.581 ,72.741 ,0.75 0 ,16 ,1856 ,127 ,192 ,23 ,56.278 ,75.587 ,0.745 0 ,16 ,1856 ,127 ,2048 ,23 ,73.053 ,80.743 ,0.905 0 ,16 ,19 ,127 ,18 ,23 ,3.737 ,3.733 ,1.001 0 ,16 ,1904 ,127 ,144 ,23 ,54.328 ,73.507 ,0.739 0 ,16 ,1904 ,127 ,2048 ,23 ,74.909 ,92.431 ,0.81 0 ,16 ,192 ,127 ,176 ,23 ,11.059 ,12.261 ,0.902 0 ,16 ,1952 ,127 ,2048 ,23 ,78.504 ,90.135 ,0.871 0 ,16 ,1952 ,127 ,96 ,23 ,79.378 ,74.225 ,1.069 0 ,16 ,2 ,127 ,1 ,23 ,3.537 ,3.558 ,0.994 0 ,16 ,20 ,127 ,19 ,23 ,3.709 ,3.708 ,1.0 0 ,16 ,2000 ,127 ,2048 ,23 ,99.918 ,98.989 ,1.009 0 ,16 ,2000 ,127 ,48 ,23 ,76.753 ,80.542 ,0.953 0 ,16 ,2048 ,127 ,0 ,23 ,87.485 ,82.133 ,1.065 0 ,16 ,2048 ,127 ,1024 ,23 ,72.783 ,76.22 ,0.955 0 ,16 ,2048 ,127 ,128 ,23 ,59.247 ,78.764 ,0.752 0 ,16 ,2048 ,127 ,144 ,23 ,59.192 ,79.441 ,0.745 0 ,16 ,2048 ,127 ,1760 ,23 ,73.833 ,77.765 ,0.949 0 ,16 ,2048 ,127 ,1808 ,23 ,74.339 ,77.085 ,0.964 0 ,16 ,2048 ,127 ,1856 ,23 ,77.191 ,81.074 ,0.952 0 ,16 ,2048 ,127 ,1904 ,23 ,76.824 ,82.066 ,0.936 0 ,16 ,2048 ,127 ,192 ,23 ,86.203 ,80.613 ,1.069 0 ,16 ,2048 ,127 ,1952 ,23 ,77.058 ,82.31 ,0.936 0 ,16 ,2048 ,127 ,2000 ,23 ,77.78 ,81.103 ,0.959 0 ,16 ,2048 ,127 ,2048 ,23 ,89.228 ,98.592 ,0.905 0 ,16 ,2048 ,127 ,240 ,23 ,89.15 ,80.75 ,1.104 0 ,16 ,2048 ,127 ,256 ,23 ,76.621 ,80.8 ,0.948 0 ,16 ,2048 ,127 ,288 ,23 ,76.627 ,81.19 ,0.944 0 ,16 ,2048 ,127 ,32 ,23 ,83.681 ,83.687 ,1.0 0 ,16 ,2048 ,127 ,4096 ,23 ,66.343 ,66.725 ,0.994 0 ,16 ,2048 ,127 ,48 ,23 ,85.866 ,82.182 ,1.045 0 ,16 ,2048 ,127 ,512 ,23 ,66.063 ,86.839 ,0.761 0 ,16 ,2048 ,127 ,64 ,23 ,81.378 ,82.892 ,0.982 0 ,16 ,2048 ,127 ,96 ,23 ,83.878 ,82.449 ,1.017 0 ,16 ,208 ,127 ,16 ,23 ,13.435 ,15.442 ,0.87 0 ,16 ,208 ,127 ,192 ,23 ,11.717 ,13.484 ,0.869 0 ,16 ,208 ,127 ,256 ,23 ,11.884 ,13.591 ,0.874 0 ,16 ,208 ,127 ,48 ,23 ,11.524 ,12.662 ,0.91 0 ,16 ,208 ,127 ,64 ,23 ,11.472 ,13.313 ,0.862 0 ,16 ,2096 ,127 ,2048 ,23 ,93.442 ,101.974 ,0.916 0 ,16 ,21 ,127 ,20 ,23 ,3.709 ,3.718 ,0.998 0 ,16 ,2144 ,127 ,2048 ,23 ,80.888 ,84.367 ,0.959 0 ,16 ,2192 ,127 ,2048 ,23 ,82.046 ,86.499 ,0.949 0 ,16 ,22 ,127 ,21 ,23 ,3.733 ,3.746 ,0.997 0 ,16 ,224 ,127 ,128 ,23 ,12.25 ,12.453 ,0.984 0 ,16 ,224 ,127 ,208 ,23 ,11.703 ,13.484 ,0.868 0 ,16 ,224 ,127 ,288 ,23 ,11.943 ,13.419 ,0.89 0 ,16 ,224 ,127 ,32 ,23 ,11.735 ,13.127 ,0.894 0 ,16 ,224 ,127 ,512 ,23 ,11.823 ,13.665 ,0.865 0 ,16 ,2240 ,127 ,2048 ,23 ,82.929 ,86.557 ,0.958 0 ,16 ,2288 ,127 ,2048 ,23 ,84.119 ,88.351 ,0.952 0 ,16 ,23 ,127 ,22 ,23 ,3.697 ,3.701 ,0.999 0 ,16 ,2336 ,127 ,2048 ,23 ,86.203 ,91.177 ,0.945 0 ,16 ,24 ,127 ,23 ,23 ,3.708 ,3.727 ,0.995 0 ,16 ,240 ,127 ,224 ,23 ,11.697 ,13.366 ,0.875 0 ,16 ,25 ,127 ,24 ,23 ,3.686 ,3.691 ,0.998 0 ,16 ,256 ,127 ,0 ,23 ,13.148 ,14.87 ,0.884 0 ,16 ,256 ,127 ,112 ,23 ,11.602 ,13.654 ,0.85 0 ,16 ,256 ,127 ,144 ,23 ,13.744 ,14.255 ,0.964 0 ,16 ,256 ,127 ,16 ,23 ,14.073 ,15.819 ,0.89 0 ,16 ,256 ,127 ,160 ,23 ,13.033 ,13.983 ,0.932 0 ,16 ,256 ,127 ,192 ,23 ,15.173 ,15.751 ,0.963 0 ,16 ,256 ,127 ,208 ,23 ,15.162 ,15.174 ,0.999 0 ,16 ,256 ,127 ,240 ,23 ,14.087 ,15.432 ,0.913 0 ,16 ,256 ,127 ,256 ,23 ,13.781 ,14.937 ,0.923 0 ,16 ,256 ,127 ,288 ,23 ,14.053 ,15.58 ,0.902 0 ,16 ,256 ,127 ,48 ,23 ,12.989 ,14.678 ,0.885 0 ,16 ,256 ,127 ,64 ,23 ,13.104 ,14.815 ,0.885 0 ,16 ,256 ,127 ,96 ,23 ,12.296 ,13.633 ,0.902 0 ,16 ,26 ,127 ,25 ,23 ,3.694 ,4.014 ,0.92 0 ,16 ,27 ,127 ,26 ,23 ,3.667 ,4.435 ,0.827 0 ,16 ,272 ,127 ,128 ,23 ,14.104 ,14.31 ,0.986 0 ,16 ,272 ,127 ,240 ,23 ,13.943 ,15.081 ,0.925 0 ,16 ,272 ,127 ,256 ,23 ,14.874 ,16.778 ,0.886 0 ,16 ,272 ,127 ,32 ,23 ,13.353 ,14.858 ,0.899 0 ,16 ,272 ,127 ,512 ,23 ,15.361 ,16.809 ,0.914 0 ,16 ,28 ,127 ,27 ,23 ,3.61 ,4.249 ,0.85 0 ,16 ,288 ,127 ,272 ,23 ,14.759 ,16.717 ,0.883 0 ,16 ,29 ,127 ,28 ,23 ,3.586 ,4.717 ,0.76 0 ,16 ,3 ,127 ,2 ,23 ,3.55 ,3.552 ,1.0 0 ,16 ,30 ,127 ,29 ,23 ,3.556 ,4.517 ,0.787 0 ,16 ,304 ,127 ,16 ,23 ,13.226 ,15.267 ,0.866 0 ,16 ,304 ,127 ,256 ,23 ,14.781 ,16.331 ,0.905 0 ,16 ,304 ,127 ,64 ,23 ,13.231 ,14.884 ,0.889 0 ,16 ,31 ,127 ,30 ,23 ,3.557 ,4.682 ,0.76 0 ,16 ,32 ,127 ,0 ,23 ,4.746 ,5.742 ,0.827 0 ,16 ,32 ,127 ,128 ,23 ,4.737 ,5.81 ,0.815 0 ,16 ,32 ,127 ,144 ,23 ,4.794 ,5.435 ,0.882 0 ,16 ,32 ,127 ,16 ,23 ,5.018 ,5.978 ,0.839 0 ,16 ,32 ,127 ,192 ,23 ,4.794 ,5.239 ,0.915 0 ,16 ,32 ,127 ,240 ,23 ,4.836 ,5.23 ,0.925 0 ,16 ,32 ,127 ,288 ,23 ,4.991 ,5.088 ,0.981 0 ,16 ,32 ,127 ,31 ,23 ,4.977 ,6.171 ,0.807 0 ,16 ,32 ,127 ,32 ,23 ,4.722 ,5.156 ,0.916 0 ,16 ,32 ,127 ,48 ,23 ,4.839 ,5.381 ,0.899 0 ,16 ,32 ,127 ,96 ,23 ,4.767 ,5.31 ,0.898 0 ,16 ,320 ,127 ,128 ,23 ,15.782 ,15.903 ,0.992 0 ,16 ,320 ,127 ,192 ,23 ,16.323 ,16.866 ,0.968 0 ,16 ,320 ,127 ,32 ,23 ,14.879 ,16.277 ,0.914 0 ,16 ,320 ,127 ,512 ,23 ,16.451 ,17.92 ,0.918 0 ,16 ,352 ,127 ,256 ,23 ,17.511 ,17.819 ,0.983 0 ,16 ,352 ,127 ,64 ,23 ,14.815 ,16.341 ,0.907 0 ,16 ,368 ,127 ,128 ,23 ,15.423 ,15.674 ,0.984 0 ,16 ,368 ,127 ,144 ,23 ,15.187 ,15.589 ,0.974 0 ,16 ,368 ,127 ,512 ,23 ,17.211 ,18.847 ,0.913 0 ,16 ,4 ,127 ,3 ,23 ,3.626 ,3.626 ,1.0 0 ,16 ,400 ,127 ,256 ,23 ,18.667 ,19.108 ,0.977 0 ,16 ,416 ,127 ,128 ,23 ,17.039 ,17.143 ,0.994 0 ,16 ,416 ,127 ,512 ,23 ,19.609 ,22.131 ,0.886 0 ,16 ,416 ,127 ,96 ,23 ,15.149 ,16.801 ,0.902 0 ,16 ,448 ,127 ,256 ,23 ,20.406 ,20.88 ,0.977 0 ,16 ,464 ,127 ,48 ,23 ,17.838 ,19.562 ,0.912 0 ,16 ,464 ,127 ,512 ,23 ,21.966 ,24.893 ,0.882 0 ,16 ,48 ,127 ,32 ,23 ,4.756 ,5.976 ,0.796 0 ,16 ,496 ,127 ,256 ,23 ,20.015 ,20.996 ,0.953 0 ,16 ,5 ,127 ,4 ,23 ,3.64 ,3.645 ,0.999 0 ,16 ,512 ,127 ,0 ,23 ,20.138 ,21.422 ,0.94 0 ,16 ,512 ,127 ,144 ,23 ,19.299 ,20.491 ,0.942 0 ,16 ,512 ,127 ,192 ,23 ,20.641 ,21.228 ,0.972 0 ,16 ,512 ,127 ,224 ,23 ,19.919 ,21.418 ,0.93 0 ,16 ,512 ,127 ,240 ,23 ,19.886 ,21.227 ,0.937 0 ,16 ,512 ,127 ,272 ,23 ,21.673 ,22.245 ,0.974 0 ,16 ,512 ,127 ,288 ,23 ,20.776 ,22.48 ,0.924 0 ,16 ,512 ,127 ,320 ,23 ,22.71 ,23.222 ,0.978 0 ,16 ,512 ,127 ,368 ,23 ,21.441 ,23.129 ,0.927 0 ,16 ,512 ,127 ,416 ,23 ,22.708 ,24.682 ,0.92 0 ,16 ,512 ,127 ,464 ,23 ,24.446 ,26.164 ,0.934 0 ,16 ,512 ,127 ,48 ,23 ,19.545 ,21.413 ,0.913 0 ,16 ,512 ,127 ,512 ,23 ,23.411 ,25.834 ,0.906 0 ,16 ,512 ,127 ,96 ,23 ,18.371 ,20.211 ,0.909 0 ,16 ,544 ,127 ,256 ,23 ,21.697 ,22.356 ,0.971 0 ,16 ,560 ,127 ,512 ,23 ,23.957 ,27.865 ,0.86 0 ,16 ,6 ,127 ,5 ,23 ,3.632 ,3.631 ,1.0 0 ,16 ,608 ,127 ,512 ,23 ,27.142 ,28.995 ,0.936 0 ,16 ,64 ,127 ,0 ,23 ,5.987 ,7.428 ,0.806 0 ,16 ,64 ,127 ,144 ,23 ,5.619 ,7.135 ,0.787 0 ,16 ,64 ,127 ,16 ,23 ,6.311 ,7.747 ,0.815 0 ,16 ,64 ,127 ,192 ,23 ,5.832 ,6.837 ,0.853 0 ,16 ,64 ,127 ,240 ,23 ,5.56 ,6.734 ,0.826 0 ,16 ,64 ,127 ,256 ,23 ,5.577 ,7.227 ,0.772 0 ,16 ,64 ,127 ,288 ,23 ,5.588 ,6.94 ,0.805 0 ,16 ,64 ,127 ,48 ,23 ,6.014 ,6.969 ,0.863 0 ,16 ,64 ,127 ,64 ,23 ,5.462 ,6.745 ,0.81 0 ,16 ,64 ,127 ,96 ,23 ,5.712 ,6.962 ,0.82 0 ,16 ,656 ,127 ,512 ,23 ,28.971 ,30.462 ,0.951 0 ,16 ,7 ,127 ,6 ,23 ,3.667 ,3.676 ,0.998 0 ,16 ,704 ,127 ,512 ,23 ,30.073 ,32.169 ,0.935 0 ,16 ,736 ,127 ,1024 ,23 ,32.012 ,37.302 ,0.858 0 ,16 ,736 ,127 ,288 ,23 ,25.764 ,26.994 ,0.954 0 ,16 ,752 ,127 ,512 ,23 ,29.962 ,31.965 ,0.937 0 ,16 ,784 ,127 ,1024 ,23 ,35.242 ,39.835 ,0.885 0 ,16 ,784 ,127 ,240 ,23 ,26.927 ,27.763 ,0.97 0 ,16 ,8 ,127 ,7 ,23 ,3.673 ,3.675 ,0.999 0 ,16 ,80 ,127 ,128 ,23 ,5.101 ,6.469 ,0.789 0 ,16 ,80 ,127 ,32 ,23 ,5.631 ,6.966 ,0.808 0 ,16 ,80 ,127 ,48 ,23 ,5.592 ,7.347 ,0.761 0 ,16 ,80 ,127 ,64 ,23 ,5.51 ,6.519 ,0.845 0 ,16 ,800 ,127 ,512 ,23 ,31.451 ,33.341 ,0.943 0 ,16 ,832 ,127 ,1024 ,23 ,37.751 ,41.145 ,0.918 0 ,16 ,832 ,127 ,192 ,23 ,29.179 ,29.61 ,0.985 0 ,16 ,880 ,127 ,1024 ,23 ,36.699 ,43.216 ,0.849 0 ,16 ,880 ,127 ,144 ,23 ,27.501 ,28.428 ,0.967 0 ,16 ,9 ,127 ,8 ,23 ,3.697 ,3.69 ,1.002 0 ,16 ,928 ,127 ,1024 ,23 ,39.492 ,45.945 ,0.86 0 ,16 ,928 ,127 ,96 ,23 ,28.492 ,29.903 ,0.953 0 ,16 ,96 ,127 ,80 ,23 ,6.925 ,8.89 ,0.779 0 ,16 ,976 ,127 ,1024 ,23 ,42.324 ,49.155 ,0.861 0 ,16 ,976 ,127 ,48 ,23 ,30.692 ,33.073 ,0.928 0 ,256 ,1 ,127 ,0 ,23 ,3.411 ,3.412 ,1.0 0 ,256 ,10 ,127 ,9 ,23 ,3.686 ,3.684 ,1.0 0 ,256 ,1024 ,127 ,0 ,23 ,34.709 ,35.556 ,0.976 0 ,256 ,1024 ,127 ,1024 ,23 ,45.274 ,52.188 ,0.868 0 ,256 ,1024 ,127 ,144 ,23 ,32.07 ,33.091 ,0.969 0 ,256 ,1024 ,127 ,192 ,23 ,33.703 ,33.832 ,0.996 0 ,256 ,1024 ,127 ,240 ,23 ,33.109 ,33.946 ,0.975 0 ,256 ,1024 ,127 ,288 ,23 ,34.084 ,34.92 ,0.976 0 ,256 ,1024 ,127 ,48 ,23 ,34.475 ,35.329 ,0.976 0 ,256 ,1024 ,127 ,736 ,23 ,39.61 ,43.488 ,0.911 0 ,256 ,1024 ,127 ,784 ,23 ,41.782 ,45.546 ,0.917 0 ,256 ,1024 ,127 ,832 ,23 ,43.057 ,47.044 ,0.915 0 ,256 ,1024 ,127 ,880 ,23 ,41.487 ,46.535 ,0.892 0 ,256 ,1024 ,127 ,928 ,23 ,43.168 ,48.525 ,0.89 0 ,256 ,1024 ,127 ,96 ,23 ,33.652 ,34.474 ,0.976 0 ,256 ,1024 ,127 ,976 ,23 ,46.616 ,52.153 ,0.894 0 ,256 ,1072 ,127 ,1024 ,23 ,44.604 ,52.102 ,0.856 0 ,256 ,11 ,127 ,10 ,23 ,3.676 ,3.693 ,0.995 0 ,256 ,112 ,127 ,144 ,23 ,5.759 ,8.036 ,0.717 0 ,256 ,112 ,127 ,16 ,23 ,7.152 ,8.592 ,0.832 0 ,256 ,112 ,127 ,256 ,23 ,6.546 ,7.122 ,0.919 0 ,256 ,112 ,127 ,64 ,23 ,7.357 ,8.239 ,0.893 0 ,256 ,112 ,127 ,96 ,23 ,6.03 ,7.705 ,0.783 0 ,256 ,1120 ,127 ,1024 ,23 ,48.567 ,55.012 ,0.883 0 ,256 ,1168 ,127 ,1024 ,23 ,50.174 ,56.468 ,0.889 0 ,256 ,12 ,127 ,11 ,23 ,3.694 ,3.7 ,0.999 0 ,256 ,1216 ,127 ,1024 ,23 ,52.104 ,62.223 ,0.837 0 ,256 ,1264 ,127 ,1024 ,23 ,51.973 ,61.665 ,0.843 0 ,256 ,128 ,127 ,0 ,23 ,10.291 ,11.387 ,0.904 0 ,256 ,128 ,127 ,112 ,23 ,10.013 ,12.404 ,0.807 0 ,256 ,128 ,127 ,128 ,23 ,8.508 ,9.901 ,0.859 0 ,256 ,128 ,127 ,144 ,23 ,8.673 ,10.408 ,0.833 0 ,256 ,128 ,127 ,192 ,23 ,9.455 ,10.24 ,0.923 0 ,256 ,128 ,127 ,240 ,23 ,9.477 ,9.951 ,0.952 0 ,256 ,128 ,127 ,288 ,23 ,8.708 ,10.013 ,0.87 0 ,256 ,128 ,127 ,32 ,23 ,10.207 ,11.374 ,0.897 0 ,256 ,128 ,127 ,48 ,23 ,9.979 ,11.239 ,0.888 0 ,256 ,128 ,127 ,80 ,23 ,9.717 ,11.026 ,0.881 0 ,256 ,128 ,127 ,96 ,23 ,8.574 ,10.069 ,0.852 0 ,256 ,13 ,127 ,12 ,23 ,3.728 ,3.724 ,1.001 0 ,256 ,1312 ,127 ,1024 ,23 ,53.612 ,58.805 ,0.912 0 ,256 ,14 ,127 ,13 ,23 ,3.758 ,3.727 ,1.008 0 ,256 ,144 ,127 ,128 ,23 ,9.776 ,11.126 ,0.879 0 ,256 ,15 ,127 ,14 ,23 ,3.741 ,3.747 ,0.999 0 ,256 ,16 ,127 ,0 ,23 ,3.42 ,3.427 ,0.998 0 ,256 ,16 ,127 ,144 ,23 ,3.522 ,3.526 ,0.999 0 ,256 ,16 ,127 ,15 ,23 ,3.727 ,3.723 ,1.001 0 ,256 ,16 ,127 ,16 ,23 ,3.44 ,3.436 ,1.001 0 ,256 ,16 ,127 ,192 ,23 ,3.456 ,3.459 ,0.999 0 ,256 ,16 ,127 ,240 ,23 ,3.449 ,3.422 ,1.008 0 ,256 ,16 ,127 ,256 ,23 ,3.465 ,3.458 ,1.002 0 ,256 ,16 ,127 ,288 ,23 ,3.449 ,3.969 ,0.869 0 ,256 ,16 ,127 ,48 ,23 ,3.512 ,3.505 ,1.002 0 ,256 ,16 ,127 ,64 ,23 ,3.448 ,3.455 ,0.998 0 ,256 ,16 ,127 ,96 ,23 ,3.583 ,3.552 ,1.009 0 ,256 ,160 ,127 ,144 ,23 ,9.741 ,11.038 ,0.883 0 ,256 ,160 ,127 ,16 ,23 ,12.077 ,13.522 ,0.893 0 ,256 ,160 ,127 ,256 ,23 ,9.67 ,10.917 ,0.886 0 ,256 ,160 ,127 ,64 ,23 ,10.052 ,12.105 ,0.83 0 ,256 ,160 ,127 ,96 ,23 ,8.69 ,10.045 ,0.865 0 ,256 ,17 ,127 ,16 ,23 ,3.741 ,3.747 ,0.998 0 ,256 ,176 ,127 ,128 ,23 ,9.853 ,10.804 ,0.912 0 ,256 ,176 ,127 ,160 ,23 ,9.652 ,10.972 ,0.88 0 ,256 ,176 ,127 ,32 ,23 ,9.892 ,11.296 ,0.876 0 ,256 ,1760 ,127 ,2048 ,23 ,96.6 ,108.661 ,0.889 0 ,256 ,1760 ,127 ,288 ,23 ,53.499 ,70.529 ,0.759 0 ,256 ,18 ,127 ,17 ,23 ,3.694 ,3.699 ,0.999 0 ,256 ,1808 ,127 ,2048 ,23 ,99.662 ,111.351 ,0.895 0 ,256 ,1808 ,127 ,240 ,23 ,55.199 ,73.631 ,0.75 0 ,256 ,1856 ,127 ,192 ,23 ,56.473 ,75.74 ,0.746 0 ,256 ,1856 ,127 ,2048 ,23 ,100.381 ,112.404 ,0.893 0 ,256 ,19 ,127 ,18 ,23 ,3.725 ,3.73 ,0.999 0 ,256 ,1904 ,127 ,144 ,23 ,54.26 ,72.948 ,0.744 0 ,256 ,1904 ,127 ,2048 ,23 ,100.691 ,115.118 ,0.875 0 ,256 ,192 ,127 ,176 ,23 ,11.119 ,12.39 ,0.897 0 ,256 ,1952 ,127 ,2048 ,23 ,124.851 ,122.253 ,1.021 0 ,256 ,1952 ,127 ,96 ,23 ,78.921 ,74.065 ,1.066 0 ,256 ,2 ,127 ,1 ,23 ,3.481 ,3.487 ,0.998 0 ,256 ,20 ,127 ,19 ,23 ,3.699 ,3.714 ,0.996 0 ,256 ,2000 ,127 ,2048 ,23 ,106.015 ,121.298 ,0.874 0 ,256 ,2000 ,127 ,48 ,23 ,77.55 ,80.627 ,0.962 0 ,256 ,2048 ,127 ,0 ,23 ,89.12 ,83.645 ,1.065 0 ,256 ,2048 ,127 ,1024 ,23 ,72.634 ,75.941 ,0.956 0 ,256 ,2048 ,127 ,128 ,23 ,59.134 ,79.509 ,0.744 0 ,256 ,2048 ,127 ,144 ,23 ,75.153 ,97.646 ,0.77 0 ,256 ,2048 ,127 ,1760 ,23 ,102.92 ,118.472 ,0.869 0 ,256 ,2048 ,127 ,1808 ,23 ,106.085 ,118.723 ,0.894 0 ,256 ,2048 ,127 ,1856 ,23 ,105.164 ,120.566 ,0.872 0 ,256 ,2048 ,127 ,1904 ,23 ,103.725 ,120.612 ,0.86 0 ,256 ,2048 ,127 ,192 ,23 ,85.861 ,80.948 ,1.061 0 ,256 ,2048 ,127 ,1952 ,23 ,108.137 ,121.018 ,0.894 0 ,256 ,2048 ,127 ,2000 ,23 ,107.436 ,122.155 ,0.88 0 ,256 ,2048 ,127 ,2048 ,23 ,105.609 ,121.073 ,0.872 0 ,256 ,2048 ,127 ,240 ,23 ,86.38 ,81.444 ,1.061 0 ,256 ,2048 ,127 ,256 ,23 ,77.811 ,81.742 ,0.952 0 ,256 ,2048 ,127 ,288 ,23 ,82.038 ,82.261 ,0.997 0 ,256 ,2048 ,127 ,32 ,23 ,83.405 ,82.95 ,1.005 0 ,256 ,2048 ,127 ,4096 ,23 ,108.251 ,121.632 ,0.89 0 ,256 ,2048 ,127 ,48 ,23 ,80.984 ,79.95 ,1.013 0 ,256 ,2048 ,127 ,512 ,23 ,65.482 ,85.708 ,0.764 0 ,256 ,2048 ,127 ,64 ,23 ,81.546 ,81.911 ,0.996 0 ,256 ,2048 ,127 ,96 ,23 ,81.451 ,80.689 ,1.009 0 ,256 ,208 ,127 ,16 ,23 ,13.609 ,15.418 ,0.883 0 ,256 ,208 ,127 ,192 ,23 ,11.816 ,13.444 ,0.879 0 ,256 ,208 ,127 ,256 ,23 ,11.905 ,13.285 ,0.896 0 ,256 ,208 ,127 ,48 ,23 ,11.446 ,12.963 ,0.883 0 ,256 ,208 ,127 ,64 ,23 ,11.48 ,13.384 ,0.858 0 ,256 ,2096 ,127 ,2048 ,23 ,109.087 ,126.066 ,0.865 0 ,256 ,21 ,127 ,20 ,23 ,3.704 ,3.707 ,0.999 0 ,256 ,2144 ,127 ,2048 ,23 ,109.486 ,125.478 ,0.873 0 ,256 ,2192 ,127 ,2048 ,23 ,135.983 ,130.385 ,1.043 0 ,256 ,22 ,127 ,21 ,23 ,3.689 ,3.704 ,0.996 0 ,256 ,224 ,127 ,128 ,23 ,12.611 ,12.678 ,0.995 0 ,256 ,224 ,127 ,208 ,23 ,11.663 ,13.529 ,0.862 0 ,256 ,224 ,127 ,288 ,23 ,11.764 ,13.531 ,0.869 0 ,256 ,224 ,127 ,32 ,23 ,11.551 ,13.114 ,0.881 0 ,256 ,224 ,127 ,512 ,23 ,12.103 ,13.777 ,0.879 0 ,256 ,2240 ,127 ,2048 ,23 ,115.602 ,129.427 ,0.893 0 ,256 ,2288 ,127 ,2048 ,23 ,113.611 ,131.4 ,0.865 0 ,256 ,23 ,127 ,22 ,23 ,3.697 ,3.706 ,0.998 0 ,256 ,2336 ,127 ,2048 ,23 ,116.71 ,131.11 ,0.89 0 ,256 ,24 ,127 ,23 ,23 ,3.69 ,3.699 ,0.998 0 ,256 ,240 ,127 ,224 ,23 ,11.676 ,13.415 ,0.87 0 ,256 ,25 ,127 ,24 ,23 ,3.703 ,3.707 ,0.999 0 ,256 ,256 ,127 ,0 ,23 ,13.206 ,14.905 ,0.886 0 ,256 ,256 ,127 ,112 ,23 ,11.793 ,13.555 ,0.87 0 ,256 ,256 ,127 ,144 ,23 ,14.229 ,14.538 ,0.979 0 ,256 ,256 ,127 ,16 ,23 ,14.062 ,15.819 ,0.889 0 ,256 ,256 ,127 ,160 ,23 ,13.551 ,13.99 ,0.969 0 ,256 ,256 ,127 ,192 ,23 ,15.303 ,15.686 ,0.976 0 ,256 ,256 ,127 ,208 ,23 ,15.876 ,15.401 ,1.031 0 ,256 ,256 ,127 ,240 ,23 ,14.077 ,15.305 ,0.92 0 ,256 ,256 ,127 ,256 ,23 ,13.849 ,15.122 ,0.916 0 ,256 ,256 ,127 ,288 ,23 ,14.039 ,15.513 ,0.905 0 ,256 ,256 ,127 ,48 ,23 ,13.063 ,15.006 ,0.87 0 ,256 ,256 ,127 ,64 ,23 ,13.097 ,14.9 ,0.879 0 ,256 ,256 ,127 ,96 ,23 ,12.041 ,13.591 ,0.886 0 ,256 ,26 ,127 ,25 ,23 ,3.684 ,3.919 ,0.94 0 ,256 ,27 ,127 ,26 ,23 ,3.687 ,4.32 ,0.854 0 ,256 ,272 ,127 ,128 ,23 ,14.05 ,14.025 ,1.002 0 ,256 ,272 ,127 ,240 ,23 ,13.934 ,15.159 ,0.919 0 ,256 ,272 ,127 ,256 ,23 ,14.791 ,16.623 ,0.89 0 ,256 ,272 ,127 ,32 ,23 ,13.133 ,14.673 ,0.895 0 ,256 ,272 ,127 ,512 ,23 ,15.565 ,17.073 ,0.912 0 ,256 ,28 ,127 ,27 ,23 ,3.635 ,4.447 ,0.817 0 ,256 ,288 ,127 ,272 ,23 ,14.816 ,16.57 ,0.894 0 ,256 ,29 ,127 ,28 ,23 ,3.599 ,4.758 ,0.756 0 ,256 ,3 ,127 ,2 ,23 ,3.601 ,3.605 ,0.999 0 ,256 ,30 ,127 ,29 ,23 ,3.555 ,4.478 ,0.794 0 ,256 ,304 ,127 ,16 ,23 ,13.191 ,15.236 ,0.866 0 ,256 ,304 ,127 ,256 ,23 ,14.764 ,16.62 ,0.888 0 ,256 ,304 ,127 ,64 ,23 ,12.998 ,14.505 ,0.896 0 ,256 ,31 ,127 ,30 ,23 ,3.566 ,4.646 ,0.767 0 ,256 ,32 ,127 ,0 ,23 ,4.846 ,5.699 ,0.85 0 ,256 ,32 ,127 ,128 ,23 ,4.771 ,5.539 ,0.861 0 ,256 ,32 ,127 ,144 ,23 ,4.874 ,5.301 ,0.919 0 ,256 ,32 ,127 ,16 ,23 ,4.943 ,6.15 ,0.804 0 ,256 ,32 ,127 ,192 ,23 ,4.817 ,5.222 ,0.922 0 ,256 ,32 ,127 ,240 ,23 ,4.759 ,5.217 ,0.912 0 ,256 ,32 ,127 ,288 ,23 ,4.935 ,4.967 ,0.994 0 ,256 ,32 ,127 ,31 ,23 ,4.958 ,6.072 ,0.817 0 ,256 ,32 ,127 ,32 ,23 ,4.797 ,5.177 ,0.927 0 ,256 ,32 ,127 ,48 ,23 ,4.848 ,5.526 ,0.877 0 ,256 ,32 ,127 ,96 ,23 ,4.846 ,5.738 ,0.845 0 ,256 ,320 ,127 ,128 ,23 ,17.561 ,17.135 ,1.025 0 ,256 ,320 ,127 ,192 ,23 ,16.239 ,16.659 ,0.975 0 ,256 ,320 ,127 ,32 ,23 ,16.288 ,18.004 ,0.905 0 ,256 ,320 ,127 ,512 ,23 ,16.393 ,17.792 ,0.921 0 ,256 ,352 ,127 ,256 ,23 ,17.41 ,17.634 ,0.987 0 ,256 ,352 ,127 ,64 ,23 ,16.285 ,17.774 ,0.916 0 ,256 ,368 ,127 ,128 ,23 ,16.755 ,16.958 ,0.988 0 ,256 ,368 ,127 ,144 ,23 ,15.238 ,15.994 ,0.953 0 ,256 ,368 ,127 ,512 ,23 ,17.195 ,18.66 ,0.921 0 ,256 ,4 ,127 ,3 ,23 ,3.618 ,3.613 ,1.001 0 ,256 ,400 ,127 ,256 ,23 ,20.116 ,20.573 ,0.978 0 ,256 ,416 ,127 ,128 ,23 ,18.265 ,18.429 ,0.991 0 ,256 ,416 ,127 ,512 ,23 ,19.667 ,22.126 ,0.889 0 ,256 ,416 ,127 ,96 ,23 ,15.156 ,17.022 ,0.89 0 ,256 ,448 ,127 ,256 ,23 ,21.112 ,22.16 ,0.953 0 ,256 ,464 ,127 ,48 ,23 ,17.832 ,19.4 ,0.919 0 ,256 ,464 ,127 ,512 ,23 ,21.967 ,24.716 ,0.889 0 ,256 ,48 ,127 ,32 ,23 ,4.753 ,5.809 ,0.818 0 ,256 ,496 ,127 ,256 ,23 ,21.503 ,22.245 ,0.967 0 ,256 ,5 ,127 ,4 ,23 ,3.618 ,3.638 ,0.994 0 ,256 ,512 ,127 ,0 ,23 ,21.293 ,22.854 ,0.932 0 ,256 ,512 ,127 ,144 ,23 ,19.517 ,20.58 ,0.948 0 ,256 ,512 ,127 ,192 ,23 ,20.597 ,21.183 ,0.972 0 ,256 ,512 ,127 ,224 ,23 ,19.726 ,21.519 ,0.917 0 ,256 ,512 ,127 ,240 ,23 ,19.967 ,21.324 ,0.936 0 ,256 ,512 ,127 ,272 ,23 ,21.963 ,22.42 ,0.98 0 ,256 ,512 ,127 ,288 ,23 ,21.693 ,22.394 ,0.969 0 ,256 ,512 ,127 ,320 ,23 ,22.427 ,23.135 ,0.969 0 ,256 ,512 ,127 ,368 ,23 ,21.574 ,23.369 ,0.923 0 ,256 ,512 ,127 ,416 ,23 ,22.767 ,24.602 ,0.925 0 ,256 ,512 ,127 ,464 ,23 ,25.806 ,27.773 ,0.929 0 ,256 ,512 ,127 ,48 ,23 ,20.766 ,22.559 ,0.92 0 ,256 ,512 ,127 ,512 ,23 ,24.747 ,27.864 ,0.888 0 ,256 ,512 ,127 ,96 ,23 ,20.261 ,21.807 ,0.929 0 ,256 ,544 ,127 ,256 ,23 ,22.772 ,23.891 ,0.953 0 ,256 ,560 ,127 ,512 ,23 ,23.875 ,28.033 ,0.852 0 ,256 ,6 ,127 ,5 ,23 ,3.635 ,3.652 ,0.995 0 ,256 ,608 ,127 ,512 ,23 ,27.933 ,30.862 ,0.905 0 ,256 ,64 ,127 ,0 ,23 ,6.107 ,7.522 ,0.812 0 ,256 ,64 ,127 ,144 ,23 ,5.573 ,7.086 ,0.787 0 ,256 ,64 ,127 ,16 ,23 ,6.229 ,7.81 ,0.798 0 ,256 ,64 ,127 ,192 ,23 ,5.633 ,6.975 ,0.808 0 ,256 ,64 ,127 ,240 ,23 ,5.521 ,6.79 ,0.813 0 ,256 ,64 ,127 ,256 ,23 ,5.61 ,6.727 ,0.834 0 ,256 ,64 ,127 ,288 ,23 ,5.601 ,7.077 ,0.791 0 ,256 ,64 ,127 ,48 ,23 ,5.888 ,6.835 ,0.861 0 ,256 ,64 ,127 ,64 ,23 ,5.486 ,6.603 ,0.831 0 ,256 ,64 ,127 ,96 ,23 ,5.794 ,6.914 ,0.838 0 ,256 ,656 ,127 ,512 ,23 ,29.612 ,32.328 ,0.916 0 ,256 ,7 ,127 ,6 ,23 ,3.667 ,3.671 ,0.999 0 ,256 ,704 ,127 ,512 ,23 ,31.313 ,33.468 ,0.936 0 ,256 ,736 ,127 ,1024 ,23 ,32.047 ,36.808 ,0.871 0 ,256 ,736 ,127 ,288 ,23 ,25.736 ,27.07 ,0.951 0 ,256 ,752 ,127 ,512 ,23 ,31.08 ,33.516 ,0.927 0 ,256 ,784 ,127 ,1024 ,23 ,34.631 ,39.876 ,0.868 0 ,256 ,784 ,127 ,240 ,23 ,26.905 ,27.933 ,0.963 0 ,256 ,8 ,127 ,7 ,23 ,3.68 ,3.69 ,0.997 0 ,256 ,80 ,127 ,128 ,23 ,5.225 ,6.739 ,0.775 0 ,256 ,80 ,127 ,32 ,23 ,5.733 ,6.858 ,0.836 0 ,256 ,80 ,127 ,48 ,23 ,5.568 ,7.196 ,0.774 0 ,256 ,80 ,127 ,64 ,23 ,5.386 ,7.077 ,0.761 0 ,256 ,800 ,127 ,512 ,23 ,33.027 ,34.808 ,0.949 0 ,256 ,832 ,127 ,1024 ,23 ,36.505 ,41.175 ,0.887 0 ,256 ,832 ,127 ,192 ,23 ,29.101 ,29.286 ,0.994 0 ,256 ,880 ,127 ,1024 ,23 ,36.353 ,42.688 ,0.852 0 ,256 ,880 ,127 ,144 ,23 ,27.392 ,28.384 ,0.965 0 ,256 ,9 ,127 ,8 ,23 ,3.672 ,3.676 ,0.999 0 ,256 ,928 ,127 ,1024 ,23 ,39.49 ,46.211 ,0.855 0 ,256 ,928 ,127 ,96 ,23 ,28.702 ,30.43 ,0.943 0 ,256 ,96 ,127 ,80 ,23 ,6.891 ,8.695 ,0.793 0 ,256 ,976 ,127 ,1024 ,23 ,42.081 ,49.033 ,0.858 0 ,256 ,976 ,127 ,48 ,23 ,31.039 ,32.831 ,0.945 0 ,4 ,1 ,127 ,0 ,23 ,3.487 ,3.483 ,1.001 0 ,4 ,10 ,127 ,9 ,23 ,3.672 ,3.676 ,0.999 0 ,4 ,1024 ,127 ,0 ,23 ,35.088 ,35.799 ,0.98 0 ,4 ,1024 ,127 ,1024 ,23 ,36.532 ,36.781 ,0.993 0 ,4 ,1024 ,127 ,144 ,23 ,32.306 ,33.063 ,0.977 0 ,4 ,1024 ,127 ,192 ,23 ,33.842 ,34.018 ,0.995 0 ,4 ,1024 ,127 ,240 ,23 ,32.997 ,33.75 ,0.978 0 ,4 ,1024 ,127 ,288 ,23 ,34.319 ,35.103 ,0.978 0 ,4 ,1024 ,127 ,48 ,23 ,34.234 ,35.567 ,0.963 0 ,4 ,1024 ,127 ,736 ,23 ,36.362 ,38.79 ,0.937 0 ,4 ,1024 ,127 ,784 ,23 ,37.155 ,37.523 ,0.99 0 ,4 ,1024 ,127 ,832 ,23 ,37.483 ,41.873 ,0.895 0 ,4 ,1024 ,127 ,880 ,23 ,38.046 ,40.079 ,0.949 0 ,4 ,1024 ,127 ,928 ,23 ,36.544 ,38.781 ,0.942 0 ,4 ,1024 ,127 ,96 ,23 ,32.139 ,33.166 ,0.969 0 ,4 ,1024 ,127 ,976 ,23 ,39.354 ,39.628 ,0.993 0 ,4 ,1072 ,127 ,1024 ,23 ,38.495 ,39.141 ,0.984 0 ,4 ,11 ,127 ,10 ,23 ,3.695 ,3.691 ,1.001 0 ,4 ,112 ,127 ,144 ,23 ,5.946 ,7.881 ,0.755 0 ,4 ,112 ,127 ,16 ,23 ,7.018 ,8.82 ,0.796 0 ,4 ,112 ,127 ,256 ,23 ,7.148 ,8.811 ,0.811 0 ,4 ,112 ,127 ,64 ,23 ,7.008 ,8.515 ,0.823 0 ,4 ,112 ,127 ,96 ,23 ,6.209 ,7.835 ,0.793 0 ,4 ,1120 ,127 ,1024 ,23 ,41.472 ,42.441 ,0.977 0 ,4 ,1168 ,127 ,1024 ,23 ,42.698 ,44.814 ,0.953 0 ,4 ,12 ,127 ,11 ,23 ,3.753 ,3.733 ,1.005 0 ,4 ,1216 ,127 ,1024 ,23 ,44.024 ,45.246 ,0.973 0 ,4 ,1264 ,127 ,1024 ,23 ,45.369 ,47.162 ,0.962 0 ,4 ,128 ,127 ,0 ,23 ,9.94 ,11.416 ,0.871 0 ,4 ,128 ,127 ,112 ,23 ,9.966 ,12.549 ,0.794 0 ,4 ,128 ,127 ,128 ,23 ,8.554 ,9.86 ,0.868 0 ,4 ,128 ,127 ,144 ,23 ,8.637 ,10.054 ,0.859 0 ,4 ,128 ,127 ,192 ,23 ,8.596 ,10.029 ,0.857 0 ,4 ,128 ,127 ,240 ,23 ,8.663 ,10.525 ,0.823 0 ,4 ,128 ,127 ,288 ,23 ,9.681 ,11.264 ,0.859 0 ,4 ,128 ,127 ,32 ,23 ,10.167 ,11.199 ,0.908 0 ,4 ,128 ,127 ,48 ,23 ,9.971 ,11.3 ,0.882 0 ,4 ,128 ,127 ,80 ,23 ,9.776 ,10.966 ,0.892 0 ,4 ,128 ,127 ,96 ,23 ,8.636 ,10.134 ,0.852 0 ,4 ,13 ,127 ,12 ,23 ,3.756 ,3.761 ,0.999 0 ,4 ,1312 ,127 ,1024 ,23 ,44.547 ,45.754 ,0.974 0 ,4 ,14 ,127 ,13 ,23 ,3.732 ,3.747 ,0.996 0 ,4 ,144 ,127 ,128 ,23 ,10.127 ,10.97 ,0.923 0 ,4 ,15 ,127 ,14 ,23 ,3.765 ,3.775 ,0.997 0 ,4 ,16 ,127 ,0 ,23 ,3.486 ,3.454 ,1.009 0 ,4 ,16 ,127 ,144 ,23 ,4.053 ,4.049 ,1.001 0 ,4 ,16 ,127 ,15 ,23 ,3.748 ,3.746 ,1.0 0 ,4 ,16 ,127 ,16 ,23 ,3.495 ,3.484 ,1.003 0 ,4 ,16 ,127 ,192 ,23 ,3.997 ,3.997 ,1.0 0 ,4 ,16 ,127 ,240 ,23 ,4.024 ,3.986 ,1.009 0 ,4 ,16 ,127 ,256 ,23 ,4.065 ,4.184 ,0.972 0 ,4 ,16 ,127 ,288 ,23 ,3.979 ,4.677 ,0.851 0 ,4 ,16 ,127 ,48 ,23 ,3.554 ,3.506 ,1.014 0 ,4 ,16 ,127 ,64 ,23 ,3.98 ,4.086 ,0.974 0 ,4 ,16 ,127 ,96 ,23 ,4.047 ,4.051 ,0.999 0 ,4 ,160 ,127 ,144 ,23 ,9.849 ,11.009 ,0.895 0 ,4 ,160 ,127 ,16 ,23 ,11.933 ,13.626 ,0.876 0 ,4 ,160 ,127 ,256 ,23 ,9.79 ,11.149 ,0.878 0 ,4 ,160 ,127 ,64 ,23 ,9.971 ,11.581 ,0.861 0 ,4 ,160 ,127 ,96 ,23 ,8.583 ,10.209 ,0.841 0 ,4 ,17 ,127 ,16 ,23 ,3.734 ,3.748 ,0.996 0 ,4 ,176 ,127 ,128 ,23 ,9.491 ,11.309 ,0.839 0 ,4 ,176 ,127 ,160 ,23 ,9.467 ,11.071 ,0.855 0 ,4 ,176 ,127 ,32 ,23 ,9.901 ,11.688 ,0.847 0 ,4 ,1760 ,127 ,2048 ,23 ,53.712 ,54.559 ,0.984 0 ,4 ,1760 ,127 ,288 ,23 ,53.455 ,68.237 ,0.783 0 ,4 ,18 ,127 ,17 ,23 ,3.708 ,3.72 ,0.997 0 ,4 ,1808 ,127 ,2048 ,23 ,55.458 ,55.699 ,0.996 0 ,4 ,1808 ,127 ,240 ,23 ,55.07 ,72.605 ,0.758 0 ,4 ,1856 ,127 ,192 ,23 ,57.064 ,75.144 ,0.759 0 ,4 ,1856 ,127 ,2048 ,23 ,57.648 ,57.765 ,0.998 0 ,4 ,19 ,127 ,18 ,23 ,3.727 ,3.728 ,1.0 0 ,4 ,1904 ,127 ,144 ,23 ,53.758 ,75.311 ,0.714 0 ,4 ,1904 ,127 ,2048 ,23 ,58.335 ,57.869 ,1.008 0 ,4 ,192 ,127 ,176 ,23 ,11.282 ,12.456 ,0.906 0 ,4 ,1952 ,127 ,2048 ,23 ,59.45 ,59.715 ,0.996 0 ,4 ,1952 ,127 ,96 ,23 ,78.648 ,74.899 ,1.05 0 ,4 ,2 ,127 ,1 ,23 ,3.523 ,3.519 ,1.001 0 ,4 ,20 ,127 ,19 ,23 ,3.699 ,3.701 ,0.999 0 ,4 ,2000 ,127 ,2048 ,23 ,61.658 ,61.447 ,1.003 0 ,4 ,2000 ,127 ,48 ,23 ,78.569 ,79.898 ,0.983 0 ,4 ,2048 ,127 ,0 ,23 ,88.014 ,84.246 ,1.045 0 ,4 ,2048 ,127 ,1024 ,23 ,64.842 ,65.933 ,0.983 0 ,4 ,2048 ,127 ,128 ,23 ,58.983 ,78.869 ,0.748 0 ,4 ,2048 ,127 ,144 ,23 ,59.302 ,80.038 ,0.741 0 ,4 ,2048 ,127 ,1760 ,23 ,66.634 ,68.68 ,0.97 0 ,4 ,2048 ,127 ,1808 ,23 ,67.537 ,67.691 ,0.998 0 ,4 ,2048 ,127 ,1856 ,23 ,68.247 ,69.206 ,0.986 0 ,4 ,2048 ,127 ,1904 ,23 ,68.615 ,69.063 ,0.994 0 ,4 ,2048 ,127 ,192 ,23 ,82.408 ,80.87 ,1.019 0 ,4 ,2048 ,127 ,1952 ,23 ,69.018 ,70.204 ,0.983 0 ,4 ,2048 ,127 ,2000 ,23 ,71.407 ,71.917 ,0.993 0 ,4 ,2048 ,127 ,2048 ,23 ,62.308 ,62.297 ,1.0 0 ,4 ,2048 ,127 ,240 ,23 ,85.405 ,81.052 ,1.054 0 ,4 ,2048 ,127 ,256 ,23 ,65.475 ,81.985 ,0.799 0 ,4 ,2048 ,127 ,288 ,23 ,83.898 ,81.127 ,1.034 0 ,4 ,2048 ,127 ,32 ,23 ,81.603 ,83.495 ,0.977 0 ,4 ,2048 ,127 ,4096 ,23 ,59.799 ,60.581 ,0.987 0 ,4 ,2048 ,127 ,48 ,23 ,86.377 ,83.332 ,1.037 0 ,4 ,2048 ,127 ,512 ,23 ,81.995 ,89.633 ,0.915 0 ,4 ,2048 ,127 ,64 ,23 ,80.486 ,82.866 ,0.971 0 ,4 ,2048 ,127 ,96 ,23 ,83.451 ,82.836 ,1.007 0 ,4 ,208 ,127 ,16 ,23 ,11.882 ,13.43 ,0.885 0 ,4 ,208 ,127 ,192 ,23 ,11.884 ,13.32 ,0.892 0 ,4 ,208 ,127 ,256 ,23 ,12.054 ,13.906 ,0.867 0 ,4 ,208 ,127 ,48 ,23 ,11.496 ,13.008 ,0.884 0 ,4 ,208 ,127 ,64 ,23 ,11.587 ,13.549 ,0.855 0 ,4 ,2096 ,127 ,2048 ,23 ,71.654 ,72.334 ,0.991 0 ,4 ,21 ,127 ,20 ,23 ,3.71 ,3.726 ,0.996 0 ,4 ,2144 ,127 ,2048 ,23 ,78.692 ,78.067 ,1.008 0 ,4 ,2192 ,127 ,2048 ,23 ,73.591 ,74.875 ,0.983 0 ,4 ,22 ,127 ,21 ,23 ,3.733 ,3.731 ,1.0 0 ,4 ,224 ,127 ,128 ,23 ,12.304 ,12.664 ,0.972 0 ,4 ,224 ,127 ,208 ,23 ,11.724 ,13.224 ,0.887 0 ,4 ,224 ,127 ,288 ,23 ,11.811 ,13.797 ,0.856 0 ,4 ,224 ,127 ,32 ,23 ,11.783 ,13.401 ,0.879 0 ,4 ,224 ,127 ,512 ,23 ,12.283 ,12.816 ,0.958 0 ,4 ,2240 ,127 ,2048 ,23 ,71.418 ,71.731 ,0.996 0 ,4 ,2288 ,127 ,2048 ,23 ,73.787 ,73.959 ,0.998 0 ,4 ,23 ,127 ,22 ,23 ,3.71 ,3.714 ,0.999 0 ,4 ,2336 ,127 ,2048 ,23 ,76.417 ,77.051 ,0.992 0 ,4 ,24 ,127 ,23 ,23 ,3.69 ,3.695 ,0.999 0 ,4 ,240 ,127 ,224 ,23 ,11.699 ,13.407 ,0.873 0 ,4 ,25 ,127 ,24 ,23 ,3.696 ,3.7 ,0.999 0 ,4 ,256 ,127 ,0 ,23 ,13.175 ,14.916 ,0.883 0 ,4 ,256 ,127 ,112 ,23 ,11.733 ,13.597 ,0.863 0 ,4 ,256 ,127 ,144 ,23 ,13.758 ,14.227 ,0.967 0 ,4 ,256 ,127 ,16 ,23 ,14.011 ,16.088 ,0.871 0 ,4 ,256 ,127 ,160 ,23 ,12.872 ,14.245 ,0.904 0 ,4 ,256 ,127 ,192 ,23 ,14.946 ,15.606 ,0.958 0 ,4 ,256 ,127 ,208 ,23 ,14.959 ,15.547 ,0.962 0 ,4 ,256 ,127 ,240 ,23 ,14.08 ,15.414 ,0.914 0 ,4 ,256 ,127 ,256 ,23 ,14.899 ,14.784 ,1.008 0 ,4 ,256 ,127 ,288 ,23 ,15.122 ,15.701 ,0.963 0 ,4 ,256 ,127 ,48 ,23 ,13.193 ,14.705 ,0.897 0 ,4 ,256 ,127 ,64 ,23 ,13.232 ,14.869 ,0.89 0 ,4 ,256 ,127 ,96 ,23 ,12.125 ,13.907 ,0.872 0 ,4 ,26 ,127 ,25 ,23 ,3.784 ,3.794 ,0.997 0 ,4 ,27 ,127 ,26 ,23 ,3.811 ,4.602 ,0.828 0 ,4 ,272 ,127 ,128 ,23 ,13.842 ,14.291 ,0.969 0 ,4 ,272 ,127 ,240 ,23 ,14.653 ,15.561 ,0.942 0 ,4 ,272 ,127 ,256 ,23 ,14.838 ,16.751 ,0.886 0 ,4 ,272 ,127 ,32 ,23 ,13.459 ,15.027 ,0.896 0 ,4 ,272 ,127 ,512 ,23 ,13.731 ,15.173 ,0.905 0 ,4 ,28 ,127 ,27 ,23 ,3.636 ,4.669 ,0.779 0 ,4 ,288 ,127 ,272 ,23 ,14.789 ,16.787 ,0.881 0 ,4 ,29 ,127 ,28 ,23 ,3.719 ,4.744 ,0.784 0 ,4 ,3 ,127 ,2 ,23 ,3.573 ,3.568 ,1.001 0 ,4 ,30 ,127 ,29 ,23 ,3.614 ,4.445 ,0.813 0 ,4 ,304 ,127 ,16 ,23 ,13.289 ,15.266 ,0.871 0 ,4 ,304 ,127 ,256 ,23 ,15.052 ,16.634 ,0.905 0 ,4 ,304 ,127 ,64 ,23 ,13.123 ,14.957 ,0.877 0 ,4 ,31 ,127 ,30 ,23 ,3.543 ,4.653 ,0.761 0 ,4 ,32 ,127 ,0 ,23 ,4.84 ,5.883 ,0.823 0 ,4 ,32 ,127 ,128 ,23 ,4.882 ,6.274 ,0.778 0 ,4 ,32 ,127 ,144 ,23 ,4.997 ,5.352 ,0.934 0 ,4 ,32 ,127 ,16 ,23 ,5.05 ,5.737 ,0.88 0 ,4 ,32 ,127 ,192 ,23 ,4.696 ,5.292 ,0.887 0 ,4 ,32 ,127 ,240 ,23 ,4.824 ,5.315 ,0.908 0 ,4 ,32 ,127 ,288 ,23 ,4.576 ,5.298 ,0.864 0 ,4 ,32 ,127 ,31 ,23 ,4.885 ,6.199 ,0.788 0 ,4 ,32 ,127 ,32 ,23 ,4.831 ,5.242 ,0.922 0 ,4 ,32 ,127 ,48 ,23 ,4.873 ,5.114 ,0.953 0 ,4 ,32 ,127 ,96 ,23 ,4.817 ,5.54 ,0.87 0 ,4 ,320 ,127 ,128 ,23 ,15.269 ,16.163 ,0.945 0 ,4 ,320 ,127 ,192 ,23 ,16.373 ,16.909 ,0.968 0 ,4 ,320 ,127 ,32 ,23 ,14.899 ,16.804 ,0.887 0 ,4 ,320 ,127 ,512 ,23 ,16.514 ,16.873 ,0.979 0 ,4 ,352 ,127 ,256 ,23 ,17.465 ,18.182 ,0.961 0 ,4 ,352 ,127 ,64 ,23 ,14.578 ,16.396 ,0.889 0 ,4 ,368 ,127 ,128 ,23 ,15.143 ,15.633 ,0.969 0 ,4 ,368 ,127 ,144 ,23 ,15.407 ,15.945 ,0.966 0 ,4 ,368 ,127 ,512 ,23 ,16.472 ,16.683 ,0.987 0 ,4 ,4 ,127 ,3 ,23 ,3.651 ,3.63 ,1.006 0 ,4 ,400 ,127 ,256 ,23 ,18.655 ,19.162 ,0.974 0 ,4 ,416 ,127 ,128 ,23 ,16.666 ,17.079 ,0.976 0 ,4 ,416 ,127 ,512 ,23 ,17.694 ,19.41 ,0.912 0 ,4 ,416 ,127 ,96 ,23 ,15.159 ,17.093 ,0.887 0 ,4 ,448 ,127 ,256 ,23 ,20.259 ,20.835 ,0.972 0 ,4 ,464 ,127 ,48 ,23 ,17.868 ,19.735 ,0.905 0 ,4 ,464 ,127 ,512 ,23 ,20.457 ,20.864 ,0.981 0 ,4 ,48 ,127 ,32 ,23 ,4.758 ,6.032 ,0.789 0 ,4 ,496 ,127 ,256 ,23 ,20.028 ,21.012 ,0.953 0 ,4 ,5 ,127 ,4 ,23 ,3.656 ,3.657 ,1.0 0 ,4 ,512 ,127 ,0 ,23 ,20.213 ,21.638 ,0.934 0 ,4 ,512 ,127 ,144 ,23 ,19.229 ,20.362 ,0.944 0 ,4 ,512 ,127 ,192 ,23 ,20.727 ,21.305 ,0.973 0 ,4 ,512 ,127 ,224 ,23 ,19.978 ,21.341 ,0.936 0 ,4 ,512 ,127 ,240 ,23 ,19.722 ,21.646 ,0.911 0 ,4 ,512 ,127 ,272 ,23 ,21.835 ,22.32 ,0.978 0 ,4 ,512 ,127 ,288 ,23 ,20.791 ,22.309 ,0.932 0 ,4 ,512 ,127 ,320 ,23 ,21.715 ,22.348 ,0.972 0 ,4 ,512 ,127 ,368 ,23 ,20.717 ,22.498 ,0.921 0 ,4 ,512 ,127 ,416 ,23 ,21.48 ,23.417 ,0.917 0 ,4 ,512 ,127 ,464 ,23 ,21.983 ,22.526 ,0.976 0 ,4 ,512 ,127 ,48 ,23 ,19.467 ,21.459 ,0.907 0 ,4 ,512 ,127 ,512 ,23 ,21.556 ,22.18 ,0.972 0 ,4 ,512 ,127 ,96 ,23 ,18.418 ,20.613 ,0.894 0 ,4 ,544 ,127 ,256 ,23 ,21.565 ,22.443 ,0.961 0 ,4 ,560 ,127 ,512 ,23 ,22.296 ,24.882 ,0.896 0 ,4 ,6 ,127 ,5 ,23 ,3.641 ,3.644 ,0.999 0 ,4 ,608 ,127 ,512 ,23 ,25.329 ,26.104 ,0.97 0 ,4 ,64 ,127 ,0 ,23 ,6.115 ,7.521 ,0.813 0 ,4 ,64 ,127 ,144 ,23 ,5.601 ,7.039 ,0.796 0 ,4 ,64 ,127 ,16 ,23 ,6.232 ,7.576 ,0.823 0 ,4 ,64 ,127 ,192 ,23 ,5.577 ,7.049 ,0.791 0 ,4 ,64 ,127 ,240 ,23 ,5.614 ,7.129 ,0.788 0 ,4 ,64 ,127 ,256 ,23 ,5.995 ,7.719 ,0.777 0 ,4 ,64 ,127 ,288 ,23 ,6.475 ,7.773 ,0.833 0 ,4 ,64 ,127 ,48 ,23 ,5.991 ,7.007 ,0.855 0 ,4 ,64 ,127 ,64 ,23 ,5.507 ,6.613 ,0.833 0 ,4 ,64 ,127 ,96 ,23 ,5.654 ,7.243 ,0.781 0 ,4 ,656 ,127 ,512 ,23 ,26.114 ,26.541 ,0.984 0 ,4 ,7 ,127 ,6 ,23 ,3.672 ,3.677 ,0.999 0 ,4 ,704 ,127 ,512 ,23 ,28.874 ,29.88 ,0.966 0 ,4 ,736 ,127 ,1024 ,23 ,25.831 ,26.654 ,0.969 0 ,4 ,736 ,127 ,288 ,23 ,25.879 ,27.268 ,0.949 0 ,4 ,752 ,127 ,512 ,23 ,29.208 ,30.644 ,0.953 0 ,4 ,784 ,127 ,1024 ,23 ,27.628 ,29.265 ,0.944 0 ,4 ,784 ,127 ,240 ,23 ,26.804 ,27.815 ,0.964 0 ,4 ,8 ,127 ,7 ,23 ,3.672 ,3.676 ,0.999 0 ,4 ,80 ,127 ,128 ,23 ,5.119 ,6.532 ,0.784 0 ,4 ,80 ,127 ,32 ,23 ,5.646 ,7.295 ,0.774 0 ,4 ,80 ,127 ,48 ,23 ,5.663 ,7.321 ,0.773 0 ,4 ,80 ,127 ,64 ,23 ,5.202 ,6.616 ,0.786 0 ,4 ,800 ,127 ,512 ,23 ,30.149 ,31.294 ,0.963 0 ,4 ,832 ,127 ,1024 ,23 ,30.554 ,30.594 ,0.999 0 ,4 ,832 ,127 ,192 ,23 ,29.195 ,29.332 ,0.995 0 ,4 ,880 ,127 ,1024 ,23 ,30.665 ,31.135 ,0.985 0 ,4 ,880 ,127 ,144 ,23 ,27.531 ,28.4 ,0.969 0 ,4 ,9 ,127 ,8 ,23 ,3.676 ,3.68 ,0.999 0 ,4 ,928 ,127 ,1024 ,23 ,32.165 ,32.648 ,0.985 0 ,4 ,928 ,127 ,96 ,23 ,29.012 ,29.832 ,0.973 0 ,4 ,96 ,127 ,80 ,23 ,7.17 ,8.775 ,0.817 0 ,4 ,976 ,127 ,1024 ,23 ,33.58 ,34.26 ,0.98 0 ,4 ,976 ,127 ,48 ,23 ,30.879 ,32.767 ,0.942 0 ,64 ,1 ,127 ,0 ,23 ,3.477 ,3.46 ,1.005 0 ,64 ,10 ,127 ,9 ,23 ,3.68 ,3.686 ,0.999 0 ,64 ,1024 ,127 ,0 ,23 ,35.631 ,35.876 ,0.993 0 ,64 ,1024 ,127 ,1024 ,23 ,45.181 ,51.777 ,0.873 0 ,64 ,1024 ,127 ,144 ,23 ,32.18 ,33.228 ,0.968 0 ,64 ,1024 ,127 ,192 ,23 ,34.128 ,34.105 ,1.001 0 ,64 ,1024 ,127 ,240 ,23 ,33.026 ,33.942 ,0.973 0 ,64 ,1024 ,127 ,288 ,23 ,34.054 ,35.033 ,0.972 0 ,64 ,1024 ,127 ,48 ,23 ,34.209 ,35.787 ,0.956 0 ,64 ,1024 ,127 ,736 ,23 ,39.5 ,43.527 ,0.907 0 ,64 ,1024 ,127 ,784 ,23 ,41.692 ,44.959 ,0.927 0 ,64 ,1024 ,127 ,832 ,23 ,42.868 ,46.789 ,0.916 0 ,64 ,1024 ,127 ,880 ,23 ,41.615 ,46.687 ,0.891 0 ,64 ,1024 ,127 ,928 ,23 ,42.763 ,48.59 ,0.88 0 ,64 ,1024 ,127 ,96 ,23 ,31.607 ,33.517 ,0.943 0 ,64 ,1024 ,127 ,976 ,23 ,45.214 ,50.379 ,0.897 0 ,64 ,1072 ,127 ,1024 ,23 ,44.69 ,52.169 ,0.857 0 ,64 ,11 ,127 ,10 ,23 ,3.69 ,3.695 ,0.999 0 ,64 ,112 ,127 ,144 ,23 ,5.793 ,7.603 ,0.762 0 ,64 ,112 ,127 ,16 ,23 ,7.068 ,8.932 ,0.791 0 ,64 ,112 ,127 ,256 ,23 ,6.182 ,7.265 ,0.851 0 ,64 ,112 ,127 ,64 ,23 ,6.858 ,8.588 ,0.799 0 ,64 ,112 ,127 ,96 ,23 ,5.911 ,7.981 ,0.741 0 ,64 ,1120 ,127 ,1024 ,23 ,48.057 ,53.429 ,0.899 0 ,64 ,1168 ,127 ,1024 ,23 ,48.896 ,54.819 ,0.892 0 ,64 ,12 ,127 ,11 ,23 ,3.686 ,3.69 ,0.999 0 ,64 ,1216 ,127 ,1024 ,23 ,52.335 ,60.571 ,0.864 0 ,64 ,1264 ,127 ,1024 ,23 ,50.943 ,55.742 ,0.914 0 ,64 ,128 ,127 ,0 ,23 ,10.083 ,11.255 ,0.896 0 ,64 ,128 ,127 ,112 ,23 ,10.139 ,12.492 ,0.812 0 ,64 ,128 ,127 ,128 ,23 ,8.529 ,9.939 ,0.858 0 ,64 ,128 ,127 ,144 ,23 ,8.655 ,10.129 ,0.855 0 ,64 ,128 ,127 ,192 ,23 ,8.766 ,10.197 ,0.86 0 ,64 ,128 ,127 ,240 ,23 ,8.902 ,10.167 ,0.876 0 ,64 ,128 ,127 ,288 ,23 ,8.909 ,10.185 ,0.875 0 ,64 ,128 ,127 ,32 ,23 ,10.029 ,11.241 ,0.892 0 ,64 ,128 ,127 ,48 ,23 ,9.828 ,11.021 ,0.892 0 ,64 ,128 ,127 ,80 ,23 ,9.741 ,10.845 ,0.898 0 ,64 ,128 ,127 ,96 ,23 ,8.592 ,10.001 ,0.859 0 ,64 ,13 ,127 ,12 ,23 ,3.724 ,3.726 ,0.999 0 ,64 ,1312 ,127 ,1024 ,23 ,52.227 ,57.168 ,0.914 0 ,64 ,14 ,127 ,13 ,23 ,3.732 ,3.733 ,1.0 0 ,64 ,144 ,127 ,128 ,23 ,9.849 ,11.39 ,0.865 0 ,64 ,15 ,127 ,14 ,23 ,3.752 ,3.76 ,0.998 0 ,64 ,16 ,127 ,0 ,23 ,3.444 ,3.423 ,1.006 0 ,64 ,16 ,127 ,144 ,23 ,3.555 ,3.509 ,1.013 0 ,64 ,16 ,127 ,15 ,23 ,3.756 ,3.76 ,0.999 0 ,64 ,16 ,127 ,16 ,23 ,3.467 ,3.473 ,0.998 0 ,64 ,16 ,127 ,192 ,23 ,3.464 ,3.467 ,0.999 0 ,64 ,16 ,127 ,240 ,23 ,3.429 ,3.432 ,0.999 0 ,64 ,16 ,127 ,256 ,23 ,3.533 ,3.541 ,0.998 0 ,64 ,16 ,127 ,288 ,23 ,3.431 ,3.914 ,0.877 0 ,64 ,16 ,127 ,48 ,23 ,3.498 ,3.491 ,1.002 0 ,64 ,16 ,127 ,64 ,23 ,3.462 ,3.488 ,0.993 0 ,64 ,16 ,127 ,96 ,23 ,3.498 ,3.503 ,0.998 0 ,64 ,160 ,127 ,144 ,23 ,9.941 ,10.922 ,0.91 0 ,64 ,160 ,127 ,16 ,23 ,12.535 ,13.57 ,0.924 0 ,64 ,160 ,127 ,256 ,23 ,9.738 ,11.169 ,0.872 0 ,64 ,160 ,127 ,64 ,23 ,9.907 ,11.578 ,0.856 0 ,64 ,160 ,127 ,96 ,23 ,8.759 ,10.112 ,0.866 0 ,64 ,17 ,127 ,16 ,23 ,3.727 ,3.734 ,0.998 0 ,64 ,176 ,127 ,128 ,23 ,9.609 ,11.025 ,0.872 0 ,64 ,176 ,127 ,160 ,23 ,9.717 ,10.7 ,0.908 0 ,64 ,176 ,127 ,32 ,23 ,9.898 ,11.644 ,0.85 0 ,64 ,1760 ,127 ,2048 ,23 ,95.593 ,108.833 ,0.878 0 ,64 ,1760 ,127 ,288 ,23 ,53.134 ,68.014 ,0.781 0 ,64 ,18 ,127 ,17 ,23 ,3.706 ,3.704 ,1.0 0 ,64 ,1808 ,127 ,2048 ,23 ,98.905 ,112.156 ,0.882 0 ,64 ,1808 ,127 ,240 ,23 ,54.856 ,72.125 ,0.761 0 ,64 ,1856 ,127 ,192 ,23 ,57.624 ,75.466 ,0.764 0 ,64 ,1856 ,127 ,2048 ,23 ,100.943 ,113.966 ,0.886 0 ,64 ,19 ,127 ,18 ,23 ,3.723 ,3.734 ,0.997 0 ,64 ,1904 ,127 ,144 ,23 ,53.812 ,72.327 ,0.744 0 ,64 ,1904 ,127 ,2048 ,23 ,101.654 ,115.491 ,0.88 0 ,64 ,192 ,127 ,176 ,23 ,11.159 ,12.463 ,0.895 0 ,64 ,1952 ,127 ,2048 ,23 ,103.488 ,118.261 ,0.875 0 ,64 ,1952 ,127 ,96 ,23 ,79.301 ,73.929 ,1.073 0 ,64 ,2 ,127 ,1 ,23 ,3.515 ,3.483 ,1.009 0 ,64 ,20 ,127 ,19 ,23 ,3.728 ,3.742 ,0.996 0 ,64 ,2000 ,127 ,2048 ,23 ,105.812 ,121.233 ,0.873 0 ,64 ,2000 ,127 ,48 ,23 ,80.643 ,81.529 ,0.989 0 ,64 ,2048 ,127 ,0 ,23 ,86.262 ,81.948 ,1.053 0 ,64 ,2048 ,127 ,1024 ,23 ,86.661 ,89.785 ,0.965 0 ,64 ,2048 ,127 ,128 ,23 ,75.644 ,97.954 ,0.772 0 ,64 ,2048 ,127 ,144 ,23 ,59.987 ,78.445 ,0.765 0 ,64 ,2048 ,127 ,1760 ,23 ,102.241 ,118.125 ,0.866 0 ,64 ,2048 ,127 ,1808 ,23 ,106.846 ,118.735 ,0.9 0 ,64 ,2048 ,127 ,1856 ,23 ,105.991 ,120.37 ,0.881 0 ,64 ,2048 ,127 ,1904 ,23 ,105.956 ,120.117 ,0.882 0 ,64 ,2048 ,127 ,192 ,23 ,85.502 ,80.687 ,1.06 0 ,64 ,2048 ,127 ,1952 ,23 ,110.138 ,120.182 ,0.916 0 ,64 ,2048 ,127 ,2000 ,23 ,106.915 ,121.95 ,0.877 0 ,64 ,2048 ,127 ,2048 ,23 ,105.578 ,120.927 ,0.873 0 ,64 ,2048 ,127 ,240 ,23 ,83.414 ,80.906 ,1.031 0 ,64 ,2048 ,127 ,256 ,23 ,93.172 ,100.421 ,0.928 0 ,64 ,2048 ,127 ,288 ,23 ,78.99 ,81.159 ,0.973 0 ,64 ,2048 ,127 ,32 ,23 ,83.089 ,81.832 ,1.015 0 ,64 ,2048 ,127 ,4096 ,23 ,106.049 ,121.237 ,0.875 0 ,64 ,2048 ,127 ,48 ,23 ,83.57 ,83.426 ,1.002 0 ,64 ,2048 ,127 ,512 ,23 ,82.349 ,104.994 ,0.784 0 ,64 ,2048 ,127 ,64 ,23 ,83.331 ,85.268 ,0.977 0 ,64 ,2048 ,127 ,96 ,23 ,83.696 ,82.087 ,1.02 0 ,64 ,208 ,127 ,16 ,23 ,13.753 ,15.158 ,0.907 0 ,64 ,208 ,127 ,192 ,23 ,11.843 ,13.269 ,0.893 0 ,64 ,208 ,127 ,256 ,23 ,11.776 ,13.823 ,0.852 0 ,64 ,208 ,127 ,48 ,23 ,11.55 ,13.355 ,0.865 0 ,64 ,208 ,127 ,64 ,23 ,11.594 ,13.322 ,0.87 0 ,64 ,2096 ,127 ,2048 ,23 ,107.816 ,124.266 ,0.868 0 ,64 ,21 ,127 ,20 ,23 ,3.724 ,3.731 ,0.998 0 ,64 ,2144 ,127 ,2048 ,23 ,109.099 ,125.101 ,0.872 0 ,64 ,2192 ,127 ,2048 ,23 ,112.059 ,126.594 ,0.885 0 ,64 ,22 ,127 ,21 ,23 ,3.7 ,3.712 ,0.997 0 ,64 ,224 ,127 ,128 ,23 ,12.329 ,12.832 ,0.961 0 ,64 ,224 ,127 ,208 ,23 ,11.74 ,13.336 ,0.88 0 ,64 ,224 ,127 ,288 ,23 ,11.795 ,13.64 ,0.865 0 ,64 ,224 ,127 ,32 ,23 ,11.841 ,13.709 ,0.864 0 ,64 ,224 ,127 ,512 ,23 ,11.797 ,13.576 ,0.869 0 ,64 ,2240 ,127 ,2048 ,23 ,115.099 ,130.109 ,0.885 0 ,64 ,2288 ,127 ,2048 ,23 ,115.993 ,130.564 ,0.888 0 ,64 ,23 ,127 ,22 ,23 ,3.694 ,3.688 ,1.001 0 ,64 ,2336 ,127 ,2048 ,23 ,116.474 ,131.123 ,0.888 0 ,64 ,24 ,127 ,23 ,23 ,3.704 ,3.704 ,1.0 0 ,64 ,240 ,127 ,224 ,23 ,11.727 ,13.426 ,0.873 0 ,64 ,25 ,127 ,24 ,23 ,3.689 ,3.699 ,0.997 0 ,64 ,256 ,127 ,0 ,23 ,13.312 ,14.788 ,0.9 0 ,64 ,256 ,127 ,112 ,23 ,11.622 ,13.572 ,0.856 0 ,64 ,256 ,127 ,144 ,23 ,13.655 ,14.327 ,0.953 0 ,64 ,256 ,127 ,16 ,23 ,14.022 ,15.824 ,0.886 0 ,64 ,256 ,127 ,160 ,23 ,12.666 ,13.875 ,0.913 0 ,64 ,256 ,127 ,192 ,23 ,15.27 ,15.362 ,0.994 0 ,64 ,256 ,127 ,208 ,23 ,15.9 ,15.162 ,1.049 0 ,64 ,256 ,127 ,240 ,23 ,14.188 ,15.325 ,0.926 0 ,64 ,256 ,127 ,256 ,23 ,13.844 ,14.895 ,0.929 0 ,64 ,256 ,127 ,288 ,23 ,14.001 ,15.395 ,0.909 0 ,64 ,256 ,127 ,48 ,23 ,13.079 ,14.809 ,0.883 0 ,64 ,256 ,127 ,64 ,23 ,13.093 ,14.756 ,0.887 0 ,64 ,256 ,127 ,96 ,23 ,11.849 ,13.573 ,0.873 0 ,64 ,26 ,127 ,25 ,23 ,3.693 ,3.791 ,0.974 0 ,64 ,27 ,127 ,26 ,23 ,3.684 ,4.445 ,0.829 0 ,64 ,272 ,127 ,128 ,23 ,13.84 ,14.229 ,0.973 0 ,64 ,272 ,127 ,240 ,23 ,14.123 ,15.343 ,0.92 0 ,64 ,272 ,127 ,256 ,23 ,15.111 ,16.873 ,0.896 0 ,64 ,272 ,127 ,32 ,23 ,13.101 ,14.83 ,0.883 0 ,64 ,272 ,127 ,512 ,23 ,15.437 ,16.894 ,0.914 0 ,64 ,28 ,127 ,27 ,23 ,3.627 ,4.543 ,0.798 0 ,64 ,288 ,127 ,272 ,23 ,14.97 ,16.801 ,0.891 0 ,64 ,29 ,127 ,28 ,23 ,3.621 ,4.85 ,0.746 0 ,64 ,3 ,127 ,2 ,23 ,3.57 ,3.607 ,0.99 0 ,64 ,30 ,127 ,29 ,23 ,3.565 ,4.593 ,0.776 0 ,64 ,304 ,127 ,16 ,23 ,13.418 ,15.238 ,0.881 0 ,64 ,304 ,127 ,256 ,23 ,14.792 ,16.665 ,0.888 0 ,64 ,304 ,127 ,64 ,23 ,12.953 ,14.355 ,0.902 0 ,64 ,31 ,127 ,30 ,23 ,3.56 ,4.69 ,0.759 0 ,64 ,32 ,127 ,0 ,23 ,4.862 ,5.751 ,0.845 0 ,64 ,32 ,127 ,128 ,23 ,4.827 ,5.497 ,0.878 0 ,64 ,32 ,127 ,144 ,23 ,4.828 ,5.031 ,0.96 0 ,64 ,32 ,127 ,16 ,23 ,4.956 ,5.831 ,0.85 0 ,64 ,32 ,127 ,192 ,23 ,4.827 ,5.696 ,0.847 0 ,64 ,32 ,127 ,240 ,23 ,4.771 ,5.059 ,0.943 0 ,64 ,32 ,127 ,288 ,23 ,4.807 ,5.232 ,0.919 0 ,64 ,32 ,127 ,31 ,23 ,4.951 ,6.084 ,0.814 0 ,64 ,32 ,127 ,32 ,23 ,4.786 ,5.448 ,0.878 0 ,64 ,32 ,127 ,48 ,23 ,4.868 ,5.681 ,0.857 0 ,64 ,32 ,127 ,96 ,23 ,4.822 ,5.475 ,0.881 0 ,64 ,320 ,127 ,128 ,23 ,15.677 ,15.721 ,0.997 0 ,64 ,320 ,127 ,192 ,23 ,16.694 ,17.08 ,0.977 0 ,64 ,320 ,127 ,32 ,23 ,14.719 ,16.668 ,0.883 0 ,64 ,320 ,127 ,512 ,23 ,16.663 ,18.256 ,0.913 0 ,64 ,352 ,127 ,256 ,23 ,17.748 ,17.855 ,0.994 0 ,64 ,352 ,127 ,64 ,23 ,14.732 ,16.748 ,0.88 0 ,64 ,368 ,127 ,128 ,23 ,15.716 ,15.943 ,0.986 0 ,64 ,368 ,127 ,144 ,23 ,15.335 ,15.757 ,0.973 0 ,64 ,368 ,127 ,512 ,23 ,17.381 ,19.018 ,0.914 0 ,64 ,4 ,127 ,3 ,23 ,3.602 ,3.604 ,0.999 0 ,64 ,400 ,127 ,256 ,23 ,19.026 ,19.222 ,0.99 0 ,64 ,416 ,127 ,128 ,23 ,16.741 ,17.173 ,0.975 0 ,64 ,416 ,127 ,512 ,23 ,19.657 ,22.136 ,0.888 0 ,64 ,416 ,127 ,96 ,23 ,14.974 ,16.767 ,0.893 0 ,64 ,448 ,127 ,256 ,23 ,21.109 ,22.279 ,0.947 0 ,64 ,464 ,127 ,48 ,23 ,17.829 ,19.286 ,0.924 0 ,64 ,464 ,127 ,512 ,23 ,22.083 ,25.044 ,0.882 0 ,64 ,48 ,127 ,32 ,23 ,4.734 ,5.789 ,0.818 0 ,64 ,496 ,127 ,256 ,23 ,20.453 ,20.97 ,0.975 0 ,64 ,5 ,127 ,4 ,23 ,3.606 ,3.607 ,1.0 0 ,64 ,512 ,127 ,0 ,23 ,20.014 ,21.348 ,0.938 0 ,64 ,512 ,127 ,144 ,23 ,19.349 ,20.692 ,0.935 0 ,64 ,512 ,127 ,192 ,23 ,20.569 ,21.411 ,0.961 0 ,64 ,512 ,127 ,224 ,23 ,19.958 ,21.504 ,0.928 0 ,64 ,512 ,127 ,240 ,23 ,19.893 ,21.299 ,0.934 0 ,64 ,512 ,127 ,272 ,23 ,21.985 ,22.42 ,0.981 0 ,64 ,512 ,127 ,288 ,23 ,20.742 ,22.523 ,0.921 0 ,64 ,512 ,127 ,320 ,23 ,22.376 ,23.266 ,0.962 0 ,64 ,512 ,127 ,368 ,23 ,21.452 ,23.471 ,0.914 0 ,64 ,512 ,127 ,416 ,23 ,22.458 ,24.594 ,0.913 0 ,64 ,512 ,127 ,464 ,23 ,24.658 ,26.085 ,0.945 0 ,64 ,512 ,127 ,48 ,23 ,19.463 ,21.332 ,0.912 0 ,64 ,512 ,127 ,512 ,23 ,23.517 ,25.921 ,0.907 0 ,64 ,512 ,127 ,96 ,23 ,18.336 ,20.142 ,0.91 0 ,64 ,544 ,127 ,256 ,23 ,21.941 ,22.492 ,0.975 0 ,64 ,560 ,127 ,512 ,23 ,23.841 ,27.595 ,0.864 0 ,64 ,6 ,127 ,5 ,23 ,3.681 ,3.685 ,0.999 0 ,64 ,608 ,127 ,512 ,23 ,27.294 ,29.2 ,0.935 0 ,64 ,64 ,127 ,0 ,23 ,6.033 ,7.373 ,0.818 0 ,64 ,64 ,127 ,144 ,23 ,5.558 ,7.033 ,0.79 0 ,64 ,64 ,127 ,16 ,23 ,6.095 ,7.241 ,0.842 0 ,64 ,64 ,127 ,192 ,23 ,5.791 ,7.44 ,0.778 0 ,64 ,64 ,127 ,240 ,23 ,5.507 ,6.615 ,0.833 0 ,64 ,64 ,127 ,256 ,23 ,5.591 ,7.123 ,0.785 0 ,64 ,64 ,127 ,288 ,23 ,5.582 ,6.965 ,0.801 0 ,64 ,64 ,127 ,48 ,23 ,5.855 ,6.783 ,0.863 0 ,64 ,64 ,127 ,64 ,23 ,5.442 ,6.561 ,0.829 0 ,64 ,64 ,127 ,96 ,23 ,5.666 ,6.827 ,0.83 0 ,64 ,656 ,127 ,512 ,23 ,29.126 ,30.657 ,0.95 0 ,64 ,7 ,127 ,6 ,23 ,3.668 ,3.667 ,1.0 0 ,64 ,704 ,127 ,512 ,23 ,31.35 ,33.496 ,0.936 0 ,64 ,736 ,127 ,1024 ,23 ,32.03 ,37.032 ,0.865 0 ,64 ,736 ,127 ,288 ,23 ,25.77 ,27.312 ,0.944 0 ,64 ,752 ,127 ,512 ,23 ,30.567 ,32.325 ,0.946 0 ,64 ,784 ,127 ,1024 ,23 ,34.95 ,39.598 ,0.883 0 ,64 ,784 ,127 ,240 ,23 ,26.742 ,27.676 ,0.966 0 ,64 ,8 ,127 ,7 ,23 ,3.673 ,3.676 ,0.999 0 ,64 ,80 ,127 ,128 ,23 ,5.149 ,6.69 ,0.77 0 ,64 ,80 ,127 ,32 ,23 ,5.633 ,6.993 ,0.806 0 ,64 ,80 ,127 ,48 ,23 ,5.498 ,6.875 ,0.8 0 ,64 ,80 ,127 ,64 ,23 ,5.662 ,6.599 ,0.858 0 ,64 ,800 ,127 ,512 ,23 ,31.594 ,33.21 ,0.951 0 ,64 ,832 ,127 ,1024 ,23 ,36.503 ,41.066 ,0.889 0 ,64 ,832 ,127 ,192 ,23 ,29.027 ,29.238 ,0.993 0 ,64 ,880 ,127 ,1024 ,23 ,36.586 ,42.805 ,0.855 0 ,64 ,880 ,127 ,144 ,23 ,27.332 ,28.541 ,0.958 0 ,64 ,9 ,127 ,8 ,23 ,3.684 ,3.676 ,1.002 0 ,64 ,928 ,127 ,1024 ,23 ,39.856 ,45.936 ,0.868 0 ,64 ,928 ,127 ,96 ,23 ,28.458 ,29.941 ,0.95 0 ,64 ,96 ,127 ,80 ,23 ,7.176 ,8.65 ,0.83 0 ,64 ,976 ,127 ,1024 ,23 ,42.183 ,49.163 ,0.858 0 ,64 ,976 ,127 ,48 ,23 ,30.857 ,32.39 ,0.953 1 ,1 ,2048 ,127 ,32 ,0 ,4.685 ,5.861 ,0.799 1 ,1 ,2048 ,127 ,32 ,23 ,78.6 ,82.253 ,0.956 1 ,1 ,256 ,127 ,64 ,0 ,5.233 ,6.673 ,0.784 1 ,1 ,256 ,127 ,64 ,23 ,13.465 ,14.706 ,0.916 1 ,16 ,2048 ,127 ,32 ,23 ,82.704 ,83.403 ,0.992 1 ,16 ,256 ,127 ,64 ,23 ,15.204 ,16.726 ,0.909 1 ,256 ,2048 ,127 ,32 ,23 ,81.618 ,82.322 ,0.991 1 ,256 ,256 ,127 ,64 ,23 ,15.03 ,16.798 ,0.895 1 ,4 ,2048 ,127 ,32 ,23 ,83.859 ,82.807 ,1.013 1 ,4 ,256 ,127 ,64 ,23 ,13.23 ,15.045 ,0.879 1 ,64 ,2048 ,127 ,32 ,23 ,81.43 ,82.62 ,0.986 1 ,64 ,256 ,127 ,64 ,23 ,15.01 ,16.573 ,0.906 105 ,1 ,256 ,127 ,64 ,0 ,5.352 ,6.474 ,0.827 105 ,1 ,256 ,127 ,64 ,23 ,13.077 ,14.624 ,0.894 105 ,16 ,256 ,127 ,64 ,23 ,13.041 ,14.829 ,0.879 105 ,256 ,256 ,127 ,64 ,23 ,14.802 ,16.29 ,0.909 105 ,4 ,256 ,127 ,64 ,23 ,12.997 ,14.595 ,0.89 105 ,64 ,256 ,127 ,64 ,23 ,13.035 ,14.716 ,0.886 15 ,1 ,256 ,127 ,64 ,0 ,5.226 ,6.566 ,0.796 15 ,1 ,256 ,127 ,64 ,23 ,13.119 ,14.785 ,0.887 15 ,16 ,256 ,127 ,64 ,23 ,13.1 ,14.861 ,0.881 15 ,256 ,256 ,127 ,64 ,23 ,14.709 ,16.324 ,0.901 15 ,4 ,256 ,127 ,64 ,23 ,13.123 ,14.835 ,0.885 15 ,64 ,256 ,127 ,64 ,23 ,13.167 ,14.712 ,0.895 2 ,1 ,2048 ,127 ,64 ,0 ,7.626 ,8.793 ,0.867 2 ,1 ,2048 ,127 ,64 ,23 ,77.366 ,82.498 ,0.938 2 ,1 ,256 ,127 ,64 ,0 ,5.227 ,6.64 ,0.787 2 ,1 ,256 ,127 ,64 ,23 ,12.981 ,14.799 ,0.877 2 ,16 ,2048 ,127 ,64 ,23 ,83.108 ,81.199 ,1.024 2 ,16 ,256 ,127 ,64 ,23 ,13.098 ,14.731 ,0.889 2 ,256 ,2048 ,127 ,64 ,23 ,81.901 ,82.507 ,0.993 2 ,256 ,256 ,127 ,64 ,23 ,14.835 ,16.387 ,0.905 2 ,4 ,2048 ,127 ,64 ,23 ,75.757 ,80.933 ,0.936 2 ,4 ,256 ,127 ,64 ,23 ,13.078 ,14.639 ,0.893 2 ,64 ,2048 ,127 ,64 ,23 ,82.172 ,83.939 ,0.979 2 ,64 ,256 ,127 ,64 ,23 ,13.102 ,14.615 ,0.896 3 ,1 ,2048 ,127 ,128 ,0 ,9.898 ,11.049 ,0.896 3 ,1 ,2048 ,127 ,128 ,23 ,59.115 ,76.422 ,0.774 3 ,1 ,256 ,127 ,64 ,0 ,5.225 ,6.408 ,0.815 3 ,1 ,256 ,127 ,64 ,23 ,13.076 ,14.678 ,0.891 3 ,16 ,2048 ,127 ,128 ,23 ,59.384 ,78.46 ,0.757 3 ,16 ,256 ,127 ,64 ,23 ,13.018 ,14.459 ,0.9 3 ,256 ,2048 ,127 ,128 ,23 ,59.252 ,79.934 ,0.741 3 ,256 ,256 ,127 ,64 ,23 ,14.763 ,16.14 ,0.915 3 ,4 ,2048 ,127 ,128 ,23 ,59.275 ,79.176 ,0.749 3 ,4 ,256 ,127 ,64 ,23 ,13.088 ,14.694 ,0.891 3 ,64 ,2048 ,127 ,128 ,23 ,76.52 ,98.562 ,0.776 3 ,64 ,256 ,127 ,64 ,23 ,13.063 ,14.775 ,0.884 30 ,1 ,256 ,127 ,64 ,0 ,5.241 ,6.562 ,0.799 30 ,1 ,256 ,127 ,64 ,23 ,12.995 ,14.582 ,0.891 30 ,16 ,256 ,127 ,64 ,23 ,13.097 ,14.652 ,0.894 30 ,256 ,256 ,127 ,64 ,23 ,14.91 ,16.136 ,0.924 30 ,4 ,256 ,127 ,64 ,23 ,13.003 ,14.628 ,0.889 30 ,64 ,256 ,127 ,64 ,23 ,12.969 ,14.458 ,0.897 4 ,1 ,2048 ,127 ,256 ,0 ,12.666 ,14.449 ,0.877 4 ,1 ,2048 ,127 ,256 ,23 ,85.886 ,84.646 ,1.015 4 ,1 ,256 ,127 ,64 ,0 ,5.269 ,6.734 ,0.783 4 ,1 ,256 ,127 ,64 ,23 ,13.011 ,14.621 ,0.89 4 ,16 ,2048 ,127 ,256 ,23 ,75.435 ,80.758 ,0.934 4 ,16 ,256 ,127 ,64 ,23 ,13.119 ,14.838 ,0.884 4 ,256 ,2048 ,127 ,256 ,23 ,75.436 ,81.42 ,0.927 4 ,256 ,256 ,127 ,64 ,23 ,14.658 ,16.187 ,0.905 4 ,4 ,2048 ,127 ,256 ,23 ,63.209 ,81.426 ,0.776 4 ,4 ,256 ,127 ,64 ,23 ,13.057 ,14.749 ,0.885 4 ,64 ,2048 ,127 ,256 ,23 ,88.512 ,101.06 ,0.876 4 ,64 ,256 ,127 ,64 ,23 ,13.01 ,14.584 ,0.892 4080 ,1 ,31 ,127 ,30 ,0 ,6.155 ,6.297 ,0.977 4080 ,1 ,31 ,127 ,30 ,23 ,6.037 ,6.162 ,0.98 4080 ,1 ,32 ,127 ,31 ,0 ,6.109 ,6.575 ,0.929 4080 ,1 ,32 ,127 ,31 ,23 ,6.023 ,7.74 ,0.778 4080 ,16 ,31 ,127 ,30 ,23 ,6.11 ,6.175 ,0.989 4080 ,16 ,32 ,127 ,31 ,23 ,6.097 ,7.955 ,0.766 4080 ,256 ,31 ,127 ,30 ,23 ,6.081 ,6.327 ,0.961 4080 ,256 ,32 ,127 ,31 ,23 ,6.049 ,7.932 ,0.763 4080 ,4 ,31 ,127 ,30 ,23 ,6.091 ,6.381 ,0.955 4080 ,4 ,32 ,127 ,31 ,23 ,6.111 ,7.706 ,0.793 4080 ,64 ,31 ,127 ,30 ,23 ,6.125 ,6.272 ,0.977 4080 ,64 ,32 ,127 ,31 ,23 ,6.073 ,7.895 ,0.769 4081 ,1 ,29 ,127 ,28 ,0 ,6.238 ,6.291 ,0.991 4081 ,1 ,29 ,127 ,28 ,23 ,6.155 ,5.567 ,1.106 4081 ,1 ,30 ,127 ,29 ,0 ,6.169 ,5.816 ,1.061 4081 ,1 ,30 ,127 ,29 ,23 ,6.08 ,6.068 ,1.002 4081 ,16 ,29 ,127 ,28 ,23 ,6.169 ,5.642 ,1.093 4081 ,16 ,30 ,127 ,29 ,23 ,6.066 ,5.876 ,1.032 4081 ,256 ,29 ,127 ,28 ,23 ,6.169 ,5.577 ,1.106 4081 ,256 ,30 ,127 ,29 ,23 ,6.148 ,5.812 ,1.058 4081 ,4 ,29 ,127 ,28 ,23 ,6.178 ,5.484 ,1.127 4081 ,4 ,30 ,127 ,29 ,23 ,6.125 ,6.238 ,0.982 4081 ,64 ,29 ,127 ,28 ,23 ,6.192 ,6.002 ,1.032 4081 ,64 ,30 ,127 ,29 ,23 ,6.125 ,6.381 ,0.96 4082 ,1 ,27 ,127 ,26 ,0 ,6.339 ,5.755 ,1.102 4082 ,1 ,27 ,127 ,26 ,23 ,6.293 ,5.593 ,1.125 4082 ,1 ,28 ,127 ,27 ,0 ,6.285 ,5.665 ,1.109 4082 ,1 ,28 ,127 ,27 ,23 ,6.215 ,6.327 ,0.982 4082 ,16 ,27 ,127 ,26 ,23 ,6.292 ,5.593 ,1.125 4082 ,16 ,28 ,127 ,27 ,23 ,6.208 ,5.963 ,1.041 4082 ,256 ,27 ,127 ,26 ,23 ,6.292 ,5.882 ,1.07 4082 ,256 ,28 ,127 ,27 ,23 ,6.199 ,6.268 ,0.989 4082 ,4 ,27 ,127 ,26 ,23 ,6.287 ,6.009 ,1.046 4082 ,4 ,28 ,127 ,27 ,23 ,6.215 ,5.995 ,1.037 4082 ,64 ,27 ,127 ,26 ,23 ,6.324 ,5.593 ,1.131 4082 ,64 ,28 ,127 ,27 ,23 ,6.215 ,6.053 ,1.027 4083 ,1 ,25 ,127 ,24 ,0 ,6.356 ,5.67 ,1.121 4083 ,1 ,25 ,127 ,24 ,23 ,6.374 ,5.649 ,1.128 4083 ,1 ,26 ,127 ,25 ,0 ,6.369 ,5.649 ,1.127 4083 ,1 ,26 ,127 ,25 ,23 ,6.323 ,5.621 ,1.125 4083 ,16 ,25 ,127 ,24 ,23 ,6.355 ,5.649 ,1.125 4083 ,16 ,26 ,127 ,25 ,23 ,6.346 ,5.621 ,1.129 4083 ,256 ,25 ,127 ,24 ,23 ,6.355 ,5.65 ,1.125 4083 ,256 ,26 ,127 ,25 ,23 ,6.339 ,5.94 ,1.067 4083 ,4 ,25 ,127 ,24 ,23 ,6.356 ,5.649 ,1.125 4083 ,4 ,26 ,127 ,25 ,23 ,6.34 ,5.635 ,1.125 4083 ,64 ,25 ,127 ,24 ,23 ,6.383 ,5.65 ,1.13 4083 ,64 ,26 ,127 ,25 ,23 ,6.36 ,5.629 ,1.13 4084 ,1 ,23 ,127 ,22 ,0 ,6.387 ,5.697 ,1.121 4084 ,1 ,23 ,127 ,22 ,23 ,6.371 ,5.664 ,1.125 4084 ,1 ,24 ,127 ,23 ,0 ,6.404 ,5.692 ,1.125 4084 ,1 ,24 ,127 ,23 ,23 ,6.371 ,5.68 ,1.122 4084 ,16 ,23 ,127 ,22 ,23 ,6.388 ,5.678 ,1.125 4084 ,16 ,24 ,127 ,23 ,23 ,6.379 ,5.664 ,1.126 4084 ,256 ,23 ,127 ,22 ,23 ,6.372 ,5.664 ,1.125 4084 ,256 ,24 ,127 ,23 ,23 ,6.371 ,5.65 ,1.128 4084 ,4 ,23 ,127 ,22 ,23 ,6.389 ,5.678 ,1.125 4084 ,4 ,24 ,127 ,23 ,23 ,6.356 ,5.649 ,1.125 4084 ,64 ,23 ,127 ,22 ,23 ,6.355 ,5.665 ,1.122 4084 ,64 ,24 ,127 ,23 ,23 ,6.356 ,5.651 ,1.125 4085 ,1 ,21 ,127 ,20 ,0 ,6.371 ,5.688 ,1.12 4085 ,1 ,21 ,127 ,20 ,23 ,6.396 ,5.678 ,1.126 4085 ,1 ,22 ,127 ,21 ,0 ,6.365 ,5.65 ,1.127 4085 ,1 ,22 ,127 ,21 ,23 ,6.419 ,5.692 ,1.128 4085 ,16 ,21 ,127 ,20 ,23 ,6.397 ,5.663 ,1.13 4085 ,16 ,22 ,127 ,21 ,23 ,6.422 ,5.707 ,1.125 4085 ,256 ,21 ,127 ,20 ,23 ,6.388 ,5.678 ,1.125 4085 ,256 ,22 ,127 ,21 ,23 ,6.356 ,5.649 ,1.125 4085 ,4 ,21 ,127 ,20 ,23 ,6.395 ,5.657 ,1.13 4085 ,4 ,22 ,127 ,21 ,23 ,6.449 ,5.729 ,1.126 4085 ,64 ,21 ,127 ,20 ,23 ,6.405 ,5.706 ,1.123 4085 ,64 ,22 ,127 ,21 ,23 ,6.372 ,5.673 ,1.123 4086 ,1 ,19 ,127 ,18 ,0 ,6.404 ,5.693 ,1.125 4086 ,1 ,19 ,127 ,18 ,23 ,6.397 ,5.686 ,1.125 4086 ,1 ,20 ,127 ,19 ,0 ,6.436 ,5.721 ,1.125 4086 ,1 ,20 ,127 ,19 ,23 ,6.404 ,5.692 ,1.125 4086 ,16 ,19 ,127 ,18 ,23 ,6.388 ,5.678 ,1.125 4086 ,16 ,20 ,127 ,19 ,23 ,6.387 ,5.678 ,1.125 4086 ,256 ,19 ,127 ,18 ,23 ,6.389 ,5.664 ,1.128 4086 ,256 ,20 ,127 ,19 ,23 ,6.388 ,5.678 ,1.125 4086 ,4 ,19 ,127 ,18 ,23 ,6.398 ,5.687 ,1.125 4086 ,4 ,20 ,127 ,19 ,23 ,6.382 ,5.697 ,1.12 4086 ,64 ,19 ,127 ,18 ,23 ,6.425 ,5.693 ,1.129 4086 ,64 ,20 ,127 ,19 ,23 ,6.388 ,5.678 ,1.125 4087 ,1 ,17 ,127 ,16 ,0 ,6.437 ,5.744 ,1.121 4087 ,1 ,17 ,127 ,16 ,23 ,6.42 ,5.707 ,1.125 4087 ,1 ,18 ,127 ,17 ,0 ,6.436 ,5.733 ,1.123 4087 ,1 ,18 ,127 ,17 ,23 ,6.404 ,5.692 ,1.125 4087 ,16 ,17 ,127 ,16 ,23 ,6.437 ,5.721 ,1.125 4087 ,16 ,18 ,127 ,17 ,23 ,6.42 ,5.707 ,1.125 4087 ,256 ,17 ,127 ,16 ,23 ,6.425 ,5.747 ,1.118 4087 ,256 ,18 ,127 ,17 ,23 ,6.412 ,5.703 ,1.124 4087 ,4 ,17 ,127 ,16 ,23 ,6.435 ,5.707 ,1.128 4087 ,4 ,18 ,127 ,17 ,23 ,6.44 ,5.707 ,1.128 4087 ,64 ,17 ,127 ,16 ,23 ,6.387 ,5.678 ,1.125 4087 ,64 ,18 ,127 ,17 ,23 ,6.388 ,5.687 ,1.123 4088 ,1 ,15 ,127 ,14 ,0 ,6.388 ,5.686 ,1.123 4088 ,1 ,15 ,127 ,14 ,23 ,6.429 ,5.726 ,1.123 4088 ,1 ,16 ,127 ,15 ,0 ,6.452 ,5.736 ,1.125 4088 ,1 ,16 ,127 ,15 ,23 ,6.42 ,5.707 ,1.125 4088 ,16 ,15 ,127 ,14 ,23 ,6.469 ,5.75 ,1.125 4088 ,16 ,16 ,127 ,15 ,23 ,6.388 ,5.704 ,1.12 4088 ,256 ,15 ,127 ,14 ,23 ,6.436 ,5.721 ,1.125 4088 ,256 ,16 ,127 ,15 ,23 ,6.453 ,5.736 ,1.125 4088 ,4 ,15 ,127 ,14 ,23 ,6.469 ,5.751 ,1.125 4088 ,4 ,16 ,127 ,15 ,23 ,6.387 ,5.678 ,1.125 4088 ,64 ,15 ,127 ,14 ,23 ,6.469 ,5.75 ,1.125 4088 ,64 ,16 ,127 ,15 ,23 ,6.42 ,5.719 ,1.123 4089 ,1 ,13 ,127 ,12 ,0 ,6.42 ,5.707 ,1.125 4089 ,1 ,13 ,127 ,12 ,23 ,6.421 ,5.707 ,1.125 4089 ,1 ,14 ,127 ,13 ,0 ,6.404 ,5.692 ,1.125 4089 ,1 ,14 ,127 ,13 ,23 ,6.404 ,5.692 ,1.125 4089 ,16 ,13 ,127 ,12 ,23 ,6.395 ,5.672 ,1.128 4089 ,16 ,14 ,127 ,13 ,23 ,6.436 ,5.734 ,1.122 4089 ,256 ,13 ,127 ,12 ,23 ,6.388 ,5.686 ,1.123 4089 ,256 ,14 ,127 ,13 ,23 ,6.437 ,5.721 ,1.125 4089 ,4 ,13 ,127 ,12 ,23 ,6.454 ,5.754 ,1.122 4089 ,4 ,14 ,127 ,13 ,23 ,6.452 ,5.729 ,1.126 4089 ,64 ,13 ,127 ,12 ,23 ,6.403 ,5.692 ,1.125 4089 ,64 ,14 ,127 ,13 ,23 ,6.453 ,5.745 ,1.123 4090 ,1 ,11 ,127 ,10 ,0 ,6.371 ,5.664 ,1.125 4090 ,1 ,11 ,127 ,10 ,23 ,6.372 ,5.664 ,1.125 4090 ,1 ,12 ,127 ,11 ,0 ,6.435 ,5.707 ,1.128 4090 ,1 ,12 ,127 ,11 ,23 ,6.378 ,5.649 ,1.129 4090 ,16 ,11 ,127 ,10 ,23 ,6.355 ,5.657 ,1.123 4090 ,16 ,12 ,127 ,11 ,23 ,6.411 ,5.692 ,1.126 4090 ,256 ,11 ,127 ,10 ,23 ,6.356 ,5.649 ,1.125 4090 ,256 ,12 ,127 ,11 ,23 ,6.404 ,5.7 ,1.123 4090 ,4 ,11 ,127 ,10 ,23 ,6.404 ,5.708 ,1.122 4090 ,4 ,12 ,127 ,11 ,23 ,6.436 ,5.721 ,1.125 4090 ,64 ,11 ,127 ,10 ,23 ,6.356 ,5.649 ,1.125 4090 ,64 ,12 ,127 ,11 ,23 ,6.421 ,5.707 ,1.125 4091 ,1 ,10 ,127 ,9 ,0 ,6.356 ,5.649 ,1.125 4091 ,1 ,10 ,127 ,9 ,23 ,6.354 ,5.649 ,1.125 4091 ,1 ,9 ,127 ,8 ,0 ,6.323 ,5.621 ,1.125 4091 ,1 ,9 ,127 ,8 ,23 ,6.366 ,5.655 ,1.126 4091 ,16 ,10 ,127 ,9 ,23 ,6.339 ,5.635 ,1.125 4091 ,16 ,9 ,127 ,8 ,23 ,6.324 ,5.621 ,1.125 4091 ,256 ,10 ,127 ,9 ,23 ,6.339 ,5.643 ,1.123 4091 ,256 ,9 ,127 ,8 ,23 ,6.339 ,5.635 ,1.125 4091 ,4 ,10 ,127 ,9 ,23 ,6.332 ,5.621 ,1.127 4091 ,4 ,9 ,127 ,8 ,23 ,6.323 ,5.621 ,1.125 4091 ,64 ,10 ,127 ,9 ,23 ,6.355 ,5.649 ,1.125 4091 ,64 ,9 ,127 ,8 ,23 ,6.324 ,5.621 ,1.125 4092 ,1 ,7 ,127 ,6 ,0 ,6.331 ,5.621 ,1.126 4092 ,1 ,7 ,127 ,6 ,23 ,6.332 ,5.621 ,1.126 4092 ,1 ,8 ,127 ,7 ,0 ,6.323 ,5.621 ,1.125 4092 ,1 ,8 ,127 ,7 ,23 ,6.334 ,5.621 ,1.127 4092 ,16 ,7 ,127 ,6 ,23 ,6.323 ,5.621 ,1.125 4092 ,16 ,8 ,127 ,7 ,23 ,6.323 ,5.629 ,1.123 4092 ,256 ,7 ,127 ,6 ,23 ,6.35 ,5.621 ,1.13 4092 ,256 ,8 ,127 ,7 ,23 ,6.324 ,5.63 ,1.123 4092 ,4 ,7 ,127 ,6 ,23 ,6.324 ,5.621 ,1.125 4092 ,4 ,8 ,127 ,7 ,23 ,6.323 ,5.621 ,1.125 4092 ,64 ,7 ,127 ,6 ,23 ,6.307 ,5.607 ,1.125 4092 ,64 ,8 ,127 ,7 ,23 ,6.324 ,5.621 ,1.125 4093 ,1 ,5 ,127 ,4 ,0 ,6.298 ,5.593 ,1.126 4093 ,1 ,5 ,127 ,4 ,23 ,6.278 ,5.606 ,1.12 4093 ,1 ,6 ,127 ,5 ,0 ,6.339 ,5.662 ,1.12 4093 ,1 ,6 ,127 ,5 ,23 ,6.359 ,5.659 ,1.124 4093 ,16 ,5 ,127 ,4 ,23 ,6.215 ,5.535 ,1.123 4093 ,16 ,6 ,127 ,5 ,23 ,6.293 ,5.593 ,1.125 4093 ,256 ,5 ,127 ,4 ,23 ,6.245 ,5.552 ,1.125 4093 ,256 ,6 ,127 ,5 ,23 ,6.325 ,5.647 ,1.12 4093 ,4 ,5 ,127 ,4 ,23 ,6.277 ,5.606 ,1.12 4093 ,4 ,6 ,127 ,5 ,23 ,6.261 ,5.566 ,1.125 4093 ,64 ,5 ,127 ,4 ,23 ,6.259 ,5.589 ,1.12 4093 ,64 ,6 ,127 ,5 ,23 ,6.366 ,5.635 ,1.13 4094 ,1 ,3 ,127 ,2 ,0 ,6.185 ,5.499 ,1.125 4094 ,1 ,3 ,127 ,2 ,23 ,6.199 ,5.483 ,1.131 4094 ,1 ,4 ,127 ,3 ,0 ,6.278 ,5.606 ,1.12 4094 ,1 ,4 ,127 ,3 ,23 ,6.263 ,5.601 ,1.118 4094 ,16 ,3 ,127 ,2 ,23 ,6.133 ,5.471 ,1.121 4094 ,16 ,4 ,127 ,3 ,23 ,6.2 ,5.56 ,1.115 4094 ,256 ,3 ,127 ,2 ,23 ,6.195 ,5.526 ,1.121 4094 ,256 ,4 ,127 ,3 ,23 ,6.244 ,5.562 ,1.123 4094 ,4 ,3 ,127 ,2 ,23 ,6.214 ,5.479 ,1.134 4094 ,4 ,4 ,127 ,3 ,23 ,6.236 ,5.525 ,1.129 4094 ,64 ,3 ,127 ,2 ,23 ,6.284 ,5.555 ,1.131 4094 ,64 ,4 ,127 ,3 ,23 ,6.213 ,5.498 ,1.13 4095 ,1 ,1 ,127 ,0 ,0 ,4.929 ,4.205 ,1.172 4095 ,1 ,1 ,127 ,0 ,23 ,6.295 ,5.356 ,1.175 4095 ,1 ,2 ,127 ,1 ,0 ,6.179 ,5.473 ,1.129 4095 ,1 ,2 ,127 ,1 ,23 ,6.04 ,5.368 ,1.125 4095 ,16 ,1 ,127 ,0 ,23 ,6.421 ,5.472 ,1.173 4095 ,16 ,2 ,127 ,1 ,23 ,6.148 ,5.433 ,1.132 4095 ,256 ,1 ,127 ,0 ,23 ,6.21 ,5.237 ,1.186 4095 ,256 ,2 ,127 ,1 ,23 ,6.178 ,5.394 ,1.145 4095 ,4 ,1 ,127 ,0 ,23 ,6.433 ,5.447 ,1.181 4095 ,4 ,2 ,127 ,1 ,23 ,6.104 ,5.403 ,1.13 4095 ,64 ,1 ,127 ,0 ,23 ,6.385 ,5.443 ,1.173 4095 ,64 ,2 ,127 ,1 ,23 ,6.044 ,5.356 ,1.129 45 ,1 ,256 ,127 ,64 ,0 ,5.423 ,6.636 ,0.817 45 ,1 ,256 ,127 ,64 ,23 ,13.085 ,14.98 ,0.873 45 ,16 ,256 ,127 ,64 ,23 ,13.131 ,14.652 ,0.896 45 ,256 ,256 ,127 ,64 ,23 ,14.91 ,16.404 ,0.909 45 ,4 ,256 ,127 ,64 ,23 ,13.095 ,14.858 ,0.881 45 ,64 ,256 ,127 ,64 ,23 ,13.063 ,14.828 ,0.881 5 ,1 ,2048 ,127 ,512 ,0 ,19.362 ,20.923 ,0.925 5 ,1 ,2048 ,127 ,512 ,23 ,84.057 ,83.9 ,1.002 5 ,1 ,256 ,127 ,64 ,0 ,5.28 ,6.531 ,0.808 5 ,1 ,256 ,127 ,64 ,23 ,13.172 ,14.676 ,0.898 5 ,16 ,2048 ,127 ,512 ,23 ,65.801 ,86.021 ,0.765 5 ,16 ,256 ,127 ,64 ,23 ,13.018 ,14.652 ,0.888 5 ,256 ,2048 ,127 ,512 ,23 ,65.78 ,85.645 ,0.768 5 ,256 ,256 ,127 ,64 ,23 ,13.007 ,14.684 ,0.886 5 ,4 ,2048 ,127 ,512 ,23 ,69.663 ,83.343 ,0.836 5 ,4 ,256 ,127 ,64 ,23 ,13.015 ,14.68 ,0.887 5 ,64 ,2048 ,127 ,512 ,23 ,81.575 ,103.302 ,0.79 5 ,64 ,256 ,127 ,64 ,23 ,13.035 ,14.543 ,0.896 6 ,1 ,2048 ,127 ,1024 ,0 ,32.464 ,33.905 ,0.957 6 ,1 ,2048 ,127 ,1024 ,23 ,62.443 ,62.809 ,0.994 6 ,1 ,256 ,127 ,64 ,0 ,5.3 ,6.445 ,0.822 6 ,1 ,256 ,127 ,64 ,23 ,13.008 ,14.468 ,0.899 6 ,16 ,2048 ,127 ,1024 ,23 ,72.848 ,76.0 ,0.959 6 ,16 ,256 ,127 ,64 ,23 ,12.983 ,14.459 ,0.898 6 ,256 ,2048 ,127 ,1024 ,23 ,72.617 ,75.992 ,0.956 6 ,256 ,256 ,127 ,64 ,23 ,13.031 ,14.626 ,0.891 6 ,4 ,2048 ,127 ,1024 ,23 ,64.053 ,65.069 ,0.984 6 ,4 ,256 ,127 ,64 ,23 ,13.051 ,14.561 ,0.896 6 ,64 ,2048 ,127 ,1024 ,23 ,72.693 ,76.084 ,0.955 6 ,64 ,256 ,127 ,64 ,23 ,13.037 ,14.607 ,0.892 60 ,1 ,256 ,127 ,64 ,0 ,5.395 ,6.594 ,0.818 60 ,1 ,256 ,127 ,64 ,23 ,13.131 ,14.686 ,0.894 60 ,16 ,256 ,127 ,64 ,23 ,13.114 ,14.83 ,0.884 60 ,256 ,256 ,127 ,64 ,23 ,13.192 ,14.717 ,0.896 60 ,4 ,256 ,127 ,64 ,23 ,13.162 ,15.038 ,0.875 60 ,64 ,256 ,127 ,64 ,23 ,13.117 ,14.73 ,0.89 7 ,1 ,2048 ,127 ,2048 ,0 ,80.932 ,81.343 ,0.995 7 ,1 ,2048 ,127 ,2048 ,23 ,80.463 ,74.44 ,1.081 7 ,1 ,256 ,127 ,64 ,0 ,5.323 ,6.552 ,0.812 7 ,1 ,256 ,127 ,64 ,23 ,13.13 ,14.673 ,0.895 7 ,16 ,2048 ,127 ,2048 ,23 ,94.479 ,99.784 ,0.947 7 ,16 ,256 ,127 ,64 ,23 ,13.142 ,14.68 ,0.895 7 ,256 ,2048 ,127 ,2048 ,23 ,107.288 ,121.184 ,0.885 7 ,256 ,256 ,127 ,64 ,23 ,13.012 ,14.641 ,0.889 7 ,4 ,2048 ,127 ,2048 ,23 ,62.841 ,62.668 ,1.003 7 ,4 ,256 ,127 ,64 ,23 ,13.038 ,14.618 ,0.892 7 ,64 ,2048 ,127 ,2048 ,23 ,105.909 ,121.875 ,0.869 7 ,64 ,256 ,127 ,64 ,23 ,13.02 ,14.491 ,0.899 75 ,1 ,256 ,127 ,64 ,0 ,5.24 ,6.448 ,0.813 75 ,1 ,256 ,127 ,64 ,23 ,13.071 ,14.458 ,0.904 75 ,16 ,256 ,127 ,64 ,23 ,13.04 ,14.67 ,0.889 75 ,256 ,256 ,127 ,64 ,23 ,14.747 ,16.432 ,0.897 75 ,4 ,256 ,127 ,64 ,23 ,13.025 ,14.718 ,0.885 75 ,64 ,256 ,127 ,64 ,23 ,13.032 ,14.728 ,0.885 8 ,1 ,2048 ,127 ,4096 ,0 ,80.369 ,81.326 ,0.988 8 ,1 ,2048 ,127 ,4096 ,23 ,80.042 ,73.995 ,1.082 8 ,16 ,2048 ,127 ,4096 ,23 ,66.75 ,67.302 ,0.992 8 ,256 ,2048 ,127 ,4096 ,23 ,107.316 ,121.695 ,0.882 8 ,4 ,2048 ,127 ,4096 ,23 ,59.898 ,60.757 ,0.986 8 ,64 ,2048 ,127 ,4096 ,23 ,105.027 ,121.241 ,0.866 90 ,1 ,256 ,127 ,64 ,0 ,5.205 ,6.318 ,0.824 90 ,1 ,256 ,127 ,64 ,23 ,13.045 ,14.626 ,0.892 90 ,16 ,256 ,127 ,64 ,23 ,13.004 ,14.613 ,0.89 90 ,256 ,256 ,127 ,64 ,23 ,14.72 ,16.383 ,0.899 90 ,4 ,256 ,127 ,64 ,23 ,13.025 ,14.953 ,0.871 90 ,64 ,256 ,127 ,64 ,23 ,12.978 ,14.562 ,0.891 0.9316776326414105
diff --git a/sysdeps/x86_64/multiarch/strrchr-evex.S b/sysdeps/x86_64/multiarch/strrchr-evex.S index 992b45fb47..45487dc87a 100644 --- a/sysdeps/x86_64/multiarch/strrchr-evex.S +++ b/sysdeps/x86_64/multiarch/strrchr-evex.S @@ -26,25 +26,30 @@ # define STRRCHR __strrchr_evex # endif -# define VMOVU vmovdqu64 -# define VMOVA vmovdqa64 +# include "x86-evex256-vecs.h" # ifdef USE_AS_WCSRCHR -# define SHIFT_REG esi - -# define kunpck kunpckbw +# define RCX_M cl +# define SHIFT_REG rcx +# define VPCOMPRESS vpcompressd +# define kunpck_2x kunpckbw # define kmov_2x kmovd # define maskz_2x ecx # define maskm_2x eax # define CHAR_SIZE 4 # define VPMIN vpminud # define VPTESTN vptestnmd +# define VPTEST vptestmd # define VPBROADCAST vpbroadcastd +# define VPCMPEQ vpcmpeqd # define VPCMP vpcmpd -# else -# define SHIFT_REG edi -# define kunpck kunpckdq +# define USE_WIDE_CHAR +# else +# define RCX_M ecx +# define SHIFT_REG rdi +# define VPCOMPRESS vpcompressb +# define kunpck_2x kunpckdq # define kmov_2x kmovq # define maskz_2x rcx # define maskm_2x rax @@ -52,58 +57,48 @@ # define CHAR_SIZE 1 # define VPMIN vpminub # define VPTESTN vptestnmb +# define VPTEST vptestmb # define VPBROADCAST vpbroadcastb +# define VPCMPEQ vpcmpeqb # define VPCMP vpcmpb # endif -# define XMMZERO xmm16 -# define YMMZERO ymm16 -# define YMMMATCH ymm17 -# define YMMSAVE ymm18 +# include "reg-macros.h" -# define YMM1 ymm19 -# define YMM2 ymm20 -# define YMM3 ymm21 -# define YMM4 ymm22 -# define YMM5 ymm23 -# define YMM6 ymm24 -# define YMM7 ymm25 -# define YMM8 ymm26 - - -# define VEC_SIZE 32 +# define VMATCH VMM(0) +# define CHAR_PER_VEC (VEC_SIZE / CHAR_SIZE) # define PAGE_SIZE 4096 - .section .text.evex, "ax", @progbits -ENTRY(STRRCHR) + + .section SECTION(.text), "ax", @progbits +ENTRY_P2ALIGN(STRRCHR, 6) movl %edi, %eax - /* Broadcast CHAR to YMMMATCH. */ - VPBROADCAST %esi, %YMMMATCH + /* Broadcast CHAR to VMATCH. */ + VPBROADCAST %esi, %VMATCH andl $(PAGE_SIZE - 1), %eax cmpl $(PAGE_SIZE - VEC_SIZE), %eax jg L(cross_page_boundary) -L(page_cross_continue): - VMOVU (%rdi), %YMM1 - /* k0 has a 1 for each zero CHAR in YMM1. */ - VPTESTN %YMM1, %YMM1, %k0 - kmovd %k0, %ecx - testl %ecx, %ecx + VMOVU (%rdi), %VMM(1) + /* k0 has a 1 for each zero CHAR in VEC(1). */ + VPTESTN %VMM(1), %VMM(1), %k0 + KMOV %k0, %VRSI + test %VRSI, %VRSI jz L(aligned_more) /* fallthrough: zero CHAR in first VEC. */ - - /* K1 has a 1 for each search CHAR match in YMM1. */ - VPCMP $0, %YMMMATCH, %YMM1, %k1 - kmovd %k1, %eax +L(page_cross_return): + /* K1 has a 1 for each search CHAR match in VEC(1). */ + VPCMPEQ %VMATCH, %VMM(1), %k1 + KMOV %k1, %VRAX /* Build mask up until first zero CHAR (used to mask of potential search CHAR matches past the end of the string). */ - blsmskl %ecx, %ecx - andl %ecx, %eax + blsmsk %VRSI, %VRSI + and %VRSI, %VRAX jz L(ret0) - /* Get last match (the `andl` removed any out of bounds - matches). */ - bsrl %eax, %eax + /* Get last match (the `and` removed any out of bounds matches). + */ + bsr %VRAX, %VRAX # ifdef USE_AS_WCSRCHR leaq (%rdi, %rax, CHAR_SIZE), %rax # else @@ -116,22 +111,22 @@ L(ret0): search path for earlier matches. */ .p2align 4,, 6 L(first_vec_x1): - VPCMP $0, %YMMMATCH, %YMM2, %k1 - kmovd %k1, %eax - blsmskl %ecx, %ecx + VPCMPEQ %VMATCH, %VMM(2), %k1 + KMOV %k1, %VRAX + blsmsk %VRCX, %VRCX /* eax non-zero if search CHAR in range. */ - andl %ecx, %eax + and %VRCX, %VRAX jnz L(first_vec_x1_return) - /* fallthrough: no match in YMM2 then need to check for earlier - matches (in YMM1). */ + /* fallthrough: no match in VEC(2) then need to check for + earlier matches (in VEC(1)). */ .p2align 4,, 4 L(first_vec_x0_test): - VPCMP $0, %YMMMATCH, %YMM1, %k1 - kmovd %k1, %eax - testl %eax, %eax + VPCMPEQ %VMATCH, %VMM(1), %k1 + KMOV %k1, %VRAX + test %VRAX, %VRAX jz L(ret1) - bsrl %eax, %eax + bsr %VRAX, %VRAX # ifdef USE_AS_WCSRCHR leaq (%rsi, %rax, CHAR_SIZE), %rax # else @@ -142,129 +137,144 @@ L(ret1): .p2align 4,, 10 L(first_vec_x1_or_x2): - VPCMP $0, %YMM3, %YMMMATCH, %k3 - VPCMP $0, %YMM2, %YMMMATCH, %k2 + VPCMPEQ %VMM(3), %VMATCH, %k3 + VPCMPEQ %VMM(2), %VMATCH, %k2 /* K2 and K3 have 1 for any search CHAR match. Test if any - matches between either of them. Otherwise check YMM1. */ - kortestd %k2, %k3 + matches between either of them. Otherwise check VEC(1). */ + KORTEST %k2, %k3 jz L(first_vec_x0_test) - /* Guranteed that YMM2 and YMM3 are within range so merge the - two bitmasks then get last result. */ - kunpck %k2, %k3, %k3 - kmovq %k3, %rax - bsrq %rax, %rax - leaq (VEC_SIZE)(%r8, %rax, CHAR_SIZE), %rax + /* Guranteed that VEC(2) and VEC(3) are within range so merge + the two bitmasks then get last result. */ + kunpck_2x %k2, %k3, %k3 + kmov_2x %k3, %maskm_2x + bsr %maskm_2x, %maskm_2x + leaq (VEC_SIZE * 1)(%r8, %rax, CHAR_SIZE), %rax ret - .p2align 4,, 6 + .p2align 4,, 7 L(first_vec_x3): - VPCMP $0, %YMMMATCH, %YMM4, %k1 - kmovd %k1, %eax - blsmskl %ecx, %ecx - /* If no search CHAR match in range check YMM1/YMM2/YMM3. */ - andl %ecx, %eax + VPCMPEQ %VMATCH, %VMM(4), %k1 + KMOV %k1, %VRAX + blsmsk %VRCX, %VRCX + /* If no search CHAR match in range check VEC(1)/VEC(2)/VEC(3). + */ + and %VRCX, %VRAX jz L(first_vec_x1_or_x2) - bsrl %eax, %eax + bsr %VRAX, %VRAX leaq (VEC_SIZE * 3)(%rdi, %rax, CHAR_SIZE), %rax ret + .p2align 4,, 6 L(first_vec_x0_x1_test): - VPCMP $0, %YMMMATCH, %YMM2, %k1 - kmovd %k1, %eax - /* Check YMM2 for last match first. If no match try YMM1. */ - testl %eax, %eax + VPCMPEQ %VMATCH, %VMM(2), %k1 + KMOV %k1, %VRAX + /* Check VEC(2) for last match first. If no match try VEC(1). + */ + test %VRAX, %VRAX jz L(first_vec_x0_test) .p2align 4,, 4 L(first_vec_x1_return): - bsrl %eax, %eax + bsr %VRAX, %VRAX leaq (VEC_SIZE)(%rdi, %rax, CHAR_SIZE), %rax ret + .p2align 4,, 10 L(first_vec_x2): - VPCMP $0, %YMMMATCH, %YMM3, %k1 - kmovd %k1, %eax - blsmskl %ecx, %ecx - /* Check YMM3 for last match first. If no match try YMM2/YMM1. - */ - andl %ecx, %eax + VPCMPEQ %VMATCH, %VMM(3), %k1 + KMOV %k1, %VRAX + blsmsk %VRCX, %VRCX + /* Check VEC(3) for last match first. If no match try + VEC(2)/VEC(1). */ + and %VRCX, %VRAX jz L(first_vec_x0_x1_test) - bsrl %eax, %eax + bsr %VRAX, %VRAX leaq (VEC_SIZE * 2)(%rdi, %rax, CHAR_SIZE), %rax ret - .p2align 4 + .p2align 4,, 12 L(aligned_more): - /* Need to keep original pointer incase YMM1 has last match. */ +L(page_cross_continue): + /* Need to keep original pointer incase VEC(1) has last match. + */ movq %rdi, %rsi andq $-VEC_SIZE, %rdi - VMOVU VEC_SIZE(%rdi), %YMM2 - VPTESTN %YMM2, %YMM2, %k0 - kmovd %k0, %ecx - testl %ecx, %ecx + + VMOVU VEC_SIZE(%rdi), %VMM(2) + VPTESTN %VMM(2), %VMM(2), %k0 + KMOV %k0, %VRCX + + test %VRCX, %VRCX jnz L(first_vec_x1) - VMOVU (VEC_SIZE * 2)(%rdi), %YMM3 - VPTESTN %YMM3, %YMM3, %k0 - kmovd %k0, %ecx - testl %ecx, %ecx + VMOVU (VEC_SIZE * 2)(%rdi), %VMM(3) + VPTESTN %VMM(3), %VMM(3), %k0 + KMOV %k0, %VRCX + + test %VRCX, %VRCX jnz L(first_vec_x2) - VMOVU (VEC_SIZE * 3)(%rdi), %YMM4 - VPTESTN %YMM4, %YMM4, %k0 - kmovd %k0, %ecx + VMOVU (VEC_SIZE * 3)(%rdi), %VMM(4) + VPTESTN %VMM(4), %VMM(4), %k0 + KMOV %k0, %VRCX movq %rdi, %r8 - testl %ecx, %ecx + test %VRCX, %VRCX jnz L(first_vec_x3) andq $-(VEC_SIZE * 2), %rdi - .p2align 4 + .p2align 4,, 10 L(first_aligned_loop): - /* Preserve YMM1, YMM2, YMM3, and YMM4 until we can gurantee - they don't store a match. */ - VMOVA (VEC_SIZE * 4)(%rdi), %YMM5 - VMOVA (VEC_SIZE * 5)(%rdi), %YMM6 + /* Preserve VEC(1), VEC(2), VEC(3), and VEC(4) until we can + gurantee they don't store a match. */ + VMOVA (VEC_SIZE * 4)(%rdi), %VMM(5) + VMOVA (VEC_SIZE * 5)(%rdi), %VMM(6) - VPCMP $0, %YMM5, %YMMMATCH, %k2 - vpxord %YMM6, %YMMMATCH, %YMM7 + VPCMPEQ %VMM(5), %VMATCH, %k2 + vpxord %VMM(6), %VMATCH, %VMM(7) - VPMIN %YMM5, %YMM6, %YMM8 - VPMIN %YMM8, %YMM7, %YMM7 + VPMIN %VMM(5), %VMM(6), %VMM(8) + VPMIN %VMM(8), %VMM(7), %VMM(7) - VPTESTN %YMM7, %YMM7, %k1 + VPTESTN %VMM(7), %VMM(7), %k1 subq $(VEC_SIZE * -2), %rdi - kortestd %k1, %k2 + KORTEST %k1, %k2 jz L(first_aligned_loop) - VPCMP $0, %YMM6, %YMMMATCH, %k3 - VPTESTN %YMM8, %YMM8, %k1 - ktestd %k1, %k1 + VPCMPEQ %VMM(6), %VMATCH, %k3 + VPTESTN %VMM(8), %VMM(8), %k1 + + /* If k1 is zero, then we found a CHAR match but no null-term. + We can now safely throw out VEC1-4. */ + KTEST %k1, %k1 jz L(second_aligned_loop_prep) - kortestd %k2, %k3 + KORTEST %k2, %k3 jnz L(return_first_aligned_loop) + .p2align 4,, 6 L(first_vec_x1_or_x2_or_x3): - VPCMP $0, %YMM4, %YMMMATCH, %k4 - kmovd %k4, %eax - testl %eax, %eax + VPCMPEQ %VMM(4), %VMATCH, %k4 + KMOV %k4, %VRAX + bsr %VRAX, %VRAX jz L(first_vec_x1_or_x2) - bsrl %eax, %eax leaq (VEC_SIZE * 3)(%r8, %rax, CHAR_SIZE), %rax ret + .p2align 4,, 8 L(return_first_aligned_loop): - VPTESTN %YMM5, %YMM5, %k0 - kunpck %k0, %k1, %k0 + VPTESTN %VMM(5), %VMM(5), %k0 + + /* Combined results from VEC5/6. */ + kunpck_2x %k0, %k1, %k0 kmov_2x %k0, %maskz_2x blsmsk %maskz_2x, %maskz_2x - kunpck %k2, %k3, %k3 + kunpck_2x %k2, %k3, %k3 kmov_2x %k3, %maskm_2x and %maskz_2x, %maskm_2x jz L(first_vec_x1_or_x2_or_x3) @@ -280,47 +290,62 @@ L(return_first_aligned_loop): L(second_aligned_loop_prep): L(second_aligned_loop_set_furthest_match): movq %rdi, %rsi - kunpck %k2, %k3, %k4 - + /* Ideally we would safe k2/k3 but `kmov/kunpck` take uops on + port0 and have noticable overhead in the loop. */ + VMOVA %VMM(5), %VMM(7) + VMOVA %VMM(6), %VMM(8) .p2align 4 L(second_aligned_loop): - VMOVU (VEC_SIZE * 4)(%rdi), %YMM1 - VMOVU (VEC_SIZE * 5)(%rdi), %YMM2 - - VPCMP $0, %YMM1, %YMMMATCH, %k2 - vpxord %YMM2, %YMMMATCH, %YMM3 + VMOVU (VEC_SIZE * 4)(%rdi), %VMM(5) + VMOVU (VEC_SIZE * 5)(%rdi), %VMM(6) + VPCMPEQ %VMM(5), %VMATCH, %k2 + vpxord %VMM(6), %VMATCH, %VMM(3) - VPMIN %YMM1, %YMM2, %YMM4 - VPMIN %YMM3, %YMM4, %YMM3 + VPMIN %VMM(5), %VMM(6), %VMM(4) + VPMIN %VMM(3), %VMM(4), %VMM(3) - VPTESTN %YMM3, %YMM3, %k1 + VPTESTN %VMM(3), %VMM(3), %k1 subq $(VEC_SIZE * -2), %rdi - kortestd %k1, %k2 + KORTEST %k1, %k2 jz L(second_aligned_loop) - - VPCMP $0, %YMM2, %YMMMATCH, %k3 - VPTESTN %YMM4, %YMM4, %k1 - ktestd %k1, %k1 + VPCMPEQ %VMM(6), %VMATCH, %k3 + VPTESTN %VMM(4), %VMM(4), %k1 + KTEST %k1, %k1 jz L(second_aligned_loop_set_furthest_match) - kortestd %k2, %k3 - /* branch here because there is a significant advantage interms - of output dependency chance in using edx. */ + /* branch here because we know we have a match in VEC7/8 but + might not in VEC5/6 so the latter is expected to be less + likely. */ + KORTEST %k2, %k3 jnz L(return_new_match) + L(return_old_match): - kmovq %k4, %rax - bsrq %rax, %rax - leaq (VEC_SIZE * 2)(%rsi, %rax, CHAR_SIZE), %rax + VPCMPEQ %VMM(8), %VMATCH, %k0 + KMOV %k0, %VRCX + bsr %VRCX, %VRCX + jnz L(return_old_match_ret) + + VPCMPEQ %VMM(7), %VMATCH, %k0 + KMOV %k0, %VRCX + bsr %VRCX, %VRCX + subq $VEC_SIZE, %rsi +L(return_old_match_ret): + leaq (VEC_SIZE * 3)(%rsi, %rcx, CHAR_SIZE), %rax ret + .p2align 4,, 10 L(return_new_match): - VPTESTN %YMM1, %YMM1, %k0 - kunpck %k0, %k1, %k0 + VPTESTN %VMM(5), %VMM(5), %k0 + + /* Combined results from VEC5/6. */ + kunpck_2x %k0, %k1, %k0 kmov_2x %k0, %maskz_2x blsmsk %maskz_2x, %maskz_2x - kunpck %k2, %k3, %k3 + kunpck_2x %k2, %k3, %k3 kmov_2x %k3, %maskm_2x + + /* Match at end was out-of-bounds so use last known match. */ and %maskz_2x, %maskm_2x jz L(return_old_match) @@ -328,49 +353,53 @@ L(return_new_match): leaq (VEC_SIZE * 2)(%rdi, %rax, CHAR_SIZE), %rax ret + .p2align 4,, 4 L(cross_page_boundary): - /* eax contains all the page offset bits of src (rdi). `xor rdi, - rax` sets pointer will all page offset bits cleared so - offset of (PAGE_SIZE - VEC_SIZE) will get last aligned VEC - before page cross (guranteed to be safe to read). Doing this - as opposed to `movq %rdi, %rax; andq $-VEC_SIZE, %rax` saves - a bit of code size. */ xorq %rdi, %rax - VMOVU (PAGE_SIZE - VEC_SIZE)(%rax), %YMM1 - VPTESTN %YMM1, %YMM1, %k0 - kmovd %k0, %ecx + mov $-1, %VRDX + VMOVU (PAGE_SIZE - VEC_SIZE)(%rax), %VMM(6) + VPTESTN %VMM(6), %VMM(6), %k0 + KMOV %k0, %VRSI + +# ifdef USE_AS_WCSRCHR + movl %edi, %ecx + and $(VEC_SIZE - 1), %ecx + shrl $2, %ecx +# endif + shlx %VGPR(SHIFT_REG), %VRDX, %VRDX - /* Shift out zero CHAR matches that are before the begining of - src (rdi). */ # ifdef USE_AS_WCSRCHR - movl %edi, %esi - andl $(VEC_SIZE - 1), %esi - shrl $2, %esi + kmovb %edx, %k1 +# else + KMOV %VRDX, %k1 # endif - shrxl %SHIFT_REG, %ecx, %ecx - testl %ecx, %ecx + /* Need to adjust result to VEC(1) so it can be re-used by + L(return_vec_x0_test). The alternative is to collect VEC(1) + will a page cross load which is far more expensive. */ + VPCOMPRESS %VMM(6), %VMM(1){%k1}{z} + + /* We could technically just jmp back after the vpcompress but + it doesn't save any 16-byte blocks. */ + shrx %VGPR(SHIFT_REG), %VRSI, %VRSI + test %VRSI, %VRSI jz L(page_cross_continue) - /* Found zero CHAR so need to test for search CHAR. */ - VPCMP $0, %YMMMATCH, %YMM1, %k1 - kmovd %k1, %eax - /* Shift out search CHAR matches that are before the begining of - src (rdi). */ - shrxl %SHIFT_REG, %eax, %eax - - /* Check if any search CHAR match in range. */ - blsmskl %ecx, %ecx - andl %ecx, %eax - jz L(ret3) - bsrl %eax, %eax + /* Duplicate of return logic from ENTRY. Doesn't cause spill to + next cache line so might as well copy it here. */ + VPCMPEQ %VMATCH, %VMM(1), %k1 + KMOV %k1, %VRAX + blsmsk %VRSI, %VRSI + and %VRSI, %VRAX + jz L(ret_page_cross) + bsr %VRAX, %VRAX # ifdef USE_AS_WCSRCHR leaq (%rdi, %rax, CHAR_SIZE), %rax # else addq %rdi, %rax # endif -L(ret3): +L(ret_page_cross): ret - + /* 1 byte till next cache line. */ END(STRRCHR) #endif