@@ -164,4 +164,15 @@
#define __DECL_SIMD_atan2f32x
#define __DECL_SIMD_atan2f64x
#define __DECL_SIMD_atan2f128x
+
+#define __DECL_SIMD_atanh
+#define __DECL_SIMD_atanhf
+#define __DECL_SIMD_atanhl
+#define __DECL_SIMD_atanhf16
+#define __DECL_SIMD_atanhf32
+#define __DECL_SIMD_atanhf64
+#define __DECL_SIMD_atanhf128
+#define __DECL_SIMD_atanhf32x
+#define __DECL_SIMD_atanhf64x
+#define __DECL_SIMD_atanhf128x
#endif
@@ -86,7 +86,7 @@ __MATHCALL_VEC (acosh,, (_Mdouble_ __x));
/* Hyperbolic arc sine of X. */
__MATHCALL_VEC (asinh,, (_Mdouble_ __x));
/* Hyperbolic arc tangent of X. */
-__MATHCALL (atanh,, (_Mdouble_ __x));
+__MATHCALL_VEC (atanh,, (_Mdouble_ __x));
#endif
/* Exponential and logarithmic functions. */
@@ -51,46 +51,54 @@ GLIBC_2.35 _ZGVbN2v_acosh F
GLIBC_2.35 _ZGVbN2v_asin F
GLIBC_2.35 _ZGVbN2v_asinh F
GLIBC_2.35 _ZGVbN2v_atan F
+GLIBC_2.35 _ZGVbN2v_atanh F
GLIBC_2.35 _ZGVbN2vv_atan2 F
GLIBC_2.35 _ZGVbN4v_acosf F
GLIBC_2.35 _ZGVbN4v_acoshf F
GLIBC_2.35 _ZGVbN4v_asinf F
GLIBC_2.35 _ZGVbN4v_asinhf F
GLIBC_2.35 _ZGVbN4v_atanf F
+GLIBC_2.35 _ZGVbN4v_atanhf F
GLIBC_2.35 _ZGVbN4vv_atan2f F
GLIBC_2.35 _ZGVcN4v_acos F
GLIBC_2.35 _ZGVcN4v_acosh F
GLIBC_2.35 _ZGVcN4v_asin F
GLIBC_2.35 _ZGVcN4v_asinh F
GLIBC_2.35 _ZGVcN4v_atan F
+GLIBC_2.35 _ZGVcN4v_atanh F
GLIBC_2.35 _ZGVcN4vv_atan2 F
GLIBC_2.35 _ZGVcN8v_acosf F
GLIBC_2.35 _ZGVcN8v_acoshf F
GLIBC_2.35 _ZGVcN8v_asinf F
GLIBC_2.35 _ZGVcN8v_asinhf F
GLIBC_2.35 _ZGVcN8v_atanf F
+GLIBC_2.35 _ZGVcN8v_atanhf F
GLIBC_2.35 _ZGVcN8vv_atan2f F
GLIBC_2.35 _ZGVdN4v_acos F
GLIBC_2.35 _ZGVdN4v_acosh F
GLIBC_2.35 _ZGVdN4v_asin F
GLIBC_2.35 _ZGVdN4v_asinh F
GLIBC_2.35 _ZGVdN4v_atan F
+GLIBC_2.35 _ZGVdN4v_atanh F
GLIBC_2.35 _ZGVdN4vv_atan2 F
GLIBC_2.35 _ZGVdN8v_acosf F
GLIBC_2.35 _ZGVdN8v_acoshf F
GLIBC_2.35 _ZGVdN8v_asinf F
GLIBC_2.35 _ZGVdN8v_asinhf F
GLIBC_2.35 _ZGVdN8v_atanf F
+GLIBC_2.35 _ZGVdN8v_atanhf F
GLIBC_2.35 _ZGVdN8vv_atan2f F
GLIBC_2.35 _ZGVeN16v_acosf F
GLIBC_2.35 _ZGVeN16v_acoshf F
GLIBC_2.35 _ZGVeN16v_asinf F
GLIBC_2.35 _ZGVeN16v_asinhf F
GLIBC_2.35 _ZGVeN16v_atanf F
+GLIBC_2.35 _ZGVeN16v_atanhf F
GLIBC_2.35 _ZGVeN16vv_atan2f F
GLIBC_2.35 _ZGVeN8v_acos F
GLIBC_2.35 _ZGVeN8v_acosh F
GLIBC_2.35 _ZGVeN8v_asin F
GLIBC_2.35 _ZGVeN8v_asinh F
GLIBC_2.35 _ZGVeN8v_atan F
+GLIBC_2.35 _ZGVeN8v_atanh F
GLIBC_2.35 _ZGVeN8vv_atan2 F
@@ -82,6 +82,10 @@
# define __DECL_SIMD_atan2 __DECL_SIMD_x86_64
# undef __DECL_SIMD_atan2f
# define __DECL_SIMD_atan2f __DECL_SIMD_x86_64
+# undef __DECL_SIMD_atanh
+# define __DECL_SIMD_atanh __DECL_SIMD_x86_64
+# undef __DECL_SIMD_atanhf
+# define __DECL_SIMD_atanhf __DECL_SIMD_x86_64
# endif
#endif
@@ -28,6 +28,7 @@ libmvec-funcs = \
asinh \
atan \
atan2 \
+ atanh \
cos \
exp \
log \
@@ -19,12 +19,14 @@ libmvec {
_ZGVbN2v_asin; _ZGVcN4v_asin; _ZGVdN4v_asin; _ZGVeN8v_asin;
_ZGVbN2v_asinh; _ZGVcN4v_asinh; _ZGVdN4v_asinh; _ZGVeN8v_asinh;
_ZGVbN2v_atan; _ZGVcN4v_atan; _ZGVdN4v_atan; _ZGVeN8v_atan;
+ _ZGVbN2v_atanh; _ZGVcN4v_atanh; _ZGVdN4v_atanh; _ZGVeN8v_atanh;
_ZGVbN2vv_atan2; _ZGVcN4vv_atan2; _ZGVdN4vv_atan2; _ZGVeN8vv_atan2;
_ZGVbN4v_acosf; _ZGVcN8v_acosf; _ZGVdN8v_acosf; _ZGVeN16v_acosf;
_ZGVbN4v_acoshf; _ZGVcN8v_acoshf; _ZGVdN8v_acoshf; _ZGVeN16v_acoshf;
_ZGVbN4v_asinf; _ZGVcN8v_asinf; _ZGVdN8v_asinf; _ZGVeN16v_asinf;
_ZGVbN4v_asinhf; _ZGVcN8v_asinhf; _ZGVdN8v_asinhf; _ZGVeN16v_asinhf;
_ZGVbN4v_atanf; _ZGVcN8v_atanf; _ZGVdN8v_atanf; _ZGVeN16v_atanf;
+ _ZGVbN4v_atanhf; _ZGVcN8v_atanhf; _ZGVdN8v_atanhf; _ZGVeN16v_atanhf;
_ZGVbN4vv_atan2f; _ZGVcN8vv_atan2f; _ZGVdN8vv_atan2f; _ZGVeN16vv_atan2f;
}
}
@@ -285,6 +285,26 @@ float: 3
float128: 4
ldouble: 5
+Function: "atanh_vlen16":
+float: 1
+
+Function: "atanh_vlen2":
+double: 1
+
+Function: "atanh_vlen4":
+double: 1
+float: 1
+
+Function: "atanh_vlen4_avx2":
+double: 1
+
+Function: "atanh_vlen8":
+double: 1
+float: 1
+
+Function: "atanh_vlen8_avx2":
+float: 1
+
Function: "cabs":
double: 1
float128: 1
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized atanh, vector length is 2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVbN2v_atanh _ZGVbN2v_atanh_sse2
+#include "../svml_d_atanh2_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized atanh, vector length is 2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVbN2v_atanh
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN2v_atanh, __GI__ZGVbN2v_atanh, __redirect__ZGVbN2v_atanh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,5501 @@
+/* Function atanh vectorized with SSE4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVbN2v_atanh_sse4)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $256, %rsp
+ lea -4218816+__svml_datanh_data_internal(%rip), %r8
+ movups 12864+__svml_datanh_data_internal(%rip), %xmm3
+
+/* Load the constant 1 and a sign mask */
+ movups 12800+__svml_datanh_data_internal(%rip), %xmm5
+
+/* Strip off the sign, so treat X as positive until right at the end */
+ movaps %xmm3, %xmm2
+ movups %xmm11, 144(%rsp)
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm0, %xmm11
+ andps %xmm11, %xmm2
+ movaps %xmm5, %xmm0
+ subpd %xmm2, %xmm0
+ movups %xmm15, 96(%rsp)
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm5, %xmm15
+ subpd %xmm0, %xmm15
+ movups %xmm14, 112(%rsp)
+
+/*
+ * Compute V = 2 * X trivially, and UHi + U_lo = 1 - X in two pieces,
+ * the upper part UHi being <= 41 bits long. Then we have
+ * atanh(X) = 1/2 * log((1 + X) / (1 - X)) = 1/2 * log1p(V / (UHi + ULo)).
+ */
+ movaps %xmm2, %xmm1
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movups 14400+__svml_datanh_data_internal(%rip), %xmm14
+
+/*
+ * Check whether |X| < 1, in which case we use the main function.
+ * Otherwise set the rangemask so that the callout will get used.
+ * Note that this will also use the callout for NaNs since not(NaN < 1).
+ */
+ movaps %xmm2, %xmm6
+ movaps %xmm14, %xmm4
+ movaps %xmm2, %xmm7
+ andps %xmm0, %xmm4
+ addpd %xmm2, %xmm1
+ subpd %xmm2, %xmm15
+ subpd %xmm4, %xmm0
+ cmpnltpd %xmm5, %xmm6
+ cmpltpd 14528+__svml_datanh_data_internal(%rip), %xmm7
+
+/*
+ * Now compute R = 1/(UHi+ULo) * (1 - E) and the error term E
+ * The first FMR is exact (we force R to 12 bits just in case it
+ * isn't already, to make absolutely sure), and since E is ~ 2^-12,
+ * the rounding error in the other one is acceptable.
+ */
+ cvtpd2ps %xmm4, %xmm2
+ addpd %xmm0, %xmm15
+ movmskpd %xmm6, %edx
+ movlhps %xmm2, %xmm2
+ movaps %xmm5, %xmm0
+ rcpps %xmm2, %xmm2
+ cvtps2pd %xmm2, %xmm2
+ andps 14208+__svml_datanh_data_internal(%rip), %xmm2
+
+/*
+ * Split V as well into upper 41 bits and lower part, so that we can get
+ * a preliminary quotient estimate without rounding error.
+ */
+ andps %xmm1, %xmm14
+ mulpd %xmm2, %xmm4
+ mulpd %xmm2, %xmm15
+ subpd %xmm4, %xmm0
+ subpd %xmm14, %xmm1
+
+/* Hence get initial quotient estimate QHi + QLo = R * VHi + R * VLo */
+ mulpd %xmm2, %xmm14
+ subpd %xmm15, %xmm0
+ mulpd %xmm1, %xmm2
+
+/*
+ * Compute D = E + E^2 + E^3 + E^4 + E^5
+ * = E + (E + E^2) (E + E * E^2)
+ */
+ movaps %xmm0, %xmm15
+ movaps %xmm0, %xmm1
+ mulpd %xmm0, %xmm15
+ mulpd %xmm15, %xmm1
+ addpd %xmm0, %xmm15
+ addpd %xmm0, %xmm1
+ mulpd %xmm1, %xmm15
+ addpd %xmm15, %xmm0
+
+/*
+ * Compute R * (VHi + VLo) * (1 + E + E^2 + E^3 + E^4 + E^5)
+ * = R * (VHi + VLo) * (1 + D)
+ * = QHi + (QHi * D + QLo + QLo * D)
+ */
+ movaps %xmm0, %xmm4
+ mulpd %xmm2, %xmm0
+ mulpd %xmm14, %xmm4
+ addpd %xmm0, %xmm2
+ addpd %xmm2, %xmm4
+
+/*
+ * Now finally accumulate the high and low parts of the
+ * argument to log1p, H + L, with a final compensated summation.
+ */
+ addpd %xmm4, %xmm14
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * later incorporating L into the reduced argument.
+ * compute 1+x as high, low parts
+ */
+ movaps %xmm5, %xmm0
+ movaps %xmm5, %xmm4
+ maxpd %xmm14, %xmm0
+ minpd %xmm14, %xmm4
+ andps %xmm3, %xmm14
+ movaps %xmm0, %xmm2
+ cmpltpd 12928+__svml_datanh_data_internal(%rip), %xmm14
+ addpd %xmm4, %xmm2
+ orps 12992+__svml_datanh_data_internal(%rip), %xmm14
+ andps %xmm14, %xmm2
+
+/* preserve mantissa, set input exponent to 2^(-10) */
+ movups 12480+__svml_datanh_data_internal(%rip), %xmm14
+ andps %xmm2, %xmm14
+ orps 12544+__svml_datanh_data_internal(%rip), %xmm14
+
+/* reciprocal approximation good to at least 11 bits */
+ cvtpd2ps %xmm14, %xmm3
+ subpd %xmm2, %xmm0
+ movlhps %xmm3, %xmm3
+ rcpps %xmm3, %xmm1
+ addpd %xmm0, %xmm4
+ cvtps2pd %xmm1, %xmm0
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+ movups .FLT_26(%rip), %xmm14
+
+/* exponent bits */
+ movaps %xmm2, %xmm1
+ addpd %xmm14, %xmm0
+ subpd %xmm14, %xmm0
+
+/* exponent of X needed to scale Xl */
+ movdqu 13376+__svml_datanh_data_internal(%rip), %xmm15
+ psrlq $20, %xmm1
+
+/* 2^ (-10-exp(X) ) */
+ movdqu 13440+__svml_datanh_data_internal(%rip), %xmm3
+ pand %xmm2, %xmm15
+ psubq %xmm15, %xmm3
+
+/* scale DblRcp */
+ mulpd %xmm0, %xmm3
+
+/* argument reduction */
+ mulpd %xmm3, %xmm2
+ mulpd %xmm3, %xmm4
+ subpd %xmm5, %xmm2
+ pshufd $221, %xmm1, %xmm15
+
+/*
+ * prepare table index
+ * table lookup
+ */
+ movaps %xmm0, %xmm1
+ psrlq $40, %xmm1
+ movd %xmm1, %eax
+ pshufd $2, %xmm1, %xmm1
+
+/* polynomial */
+ movups 12416+__svml_datanh_data_internal(%rip), %xmm5
+ addpd %xmm4, %xmm2
+
+/* biased exponent in DP format */
+ cvtdq2pd %xmm15, %xmm15
+ movd %xmm1, %ecx
+ mulpd %xmm2, %xmm5
+
+/* exponent*log(2.0) */
+ movups 13184+__svml_datanh_data_internal(%rip), %xmm1
+ cmpltpd %xmm0, %xmm1
+ addpd 12432+__svml_datanh_data_internal(%rip), %xmm5
+ andps 13248+__svml_datanh_data_internal(%rip), %xmm1
+ orps 13312+__svml_datanh_data_internal(%rip), %xmm1
+ subpd %xmm1, %xmm15
+ movaps %xmm2, %xmm1
+ mulpd %xmm2, %xmm1
+ mulpd 13504+__svml_datanh_data_internal(%rip), %xmm15
+ mulpd %xmm1, %xmm5
+ movups 12448+__svml_datanh_data_internal(%rip), %xmm0
+ mulpd %xmm2, %xmm0
+ addpd 12464+__svml_datanh_data_internal(%rip), %xmm0
+ addpd %xmm5, %xmm0
+
+/* reconstruction */
+ mulpd %xmm0, %xmm1
+ movslq %eax, %rax
+ movaps %xmm7, %xmm0
+ addpd %xmm1, %xmm2
+ movslq %ecx, %rcx
+ movsd (%r8,%rax), %xmm14
+ movups %xmm10, 160(%rsp)
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm11, %xmm10
+ mulpd %xmm11, %xmm10
+ movhpd (%r8,%rcx), %xmm14
+ addpd %xmm2, %xmm14
+ addpd %xmm11, %xmm10
+ addpd %xmm14, %xmm15
+
+/* Record the sign for eventual reincorporation. */
+ movups 14080+__svml_datanh_data_internal(%rip), %xmm6
+
+/* Finally, halve the result and reincorporate the sign */
+ movups 13888+__svml_datanh_data_internal(%rip), %xmm2
+ andps %xmm11, %xmm6
+ pxor %xmm6, %xmm2
+
+/* Or the sign bit in with the tiny result to handle atanh(-0) correctly */
+ orps %xmm6, %xmm10
+ mulpd %xmm15, %xmm2
+ andnps %xmm2, %xmm0
+ andps %xmm7, %xmm10
+ orps %xmm10, %xmm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ movups 160(%rsp), %xmm10
+ cfi_restore(27)
+ movups 144(%rsp), %xmm11
+ cfi_restore(28)
+ movups 112(%rsp), %xmm14
+ cfi_restore(31)
+ movups 96(%rsp), %xmm15
+ cfi_restore(32)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_3:
+ movups %xmm11, 128(%rsp)
+ movups %xmm0, 192(%rsp)
+ xorl %eax, %eax
+ movups %xmm8, 48(%rsp)
+ movups %xmm9, 32(%rsp)
+ movups %xmm12, 16(%rsp)
+ movups %xmm13, (%rsp)
+ movq %rsi, 72(%rsp)
+ movq %rdi, 64(%rsp)
+ movq %r12, 88(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 80(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $2, %r12d
+ jl .LBL_1_7
+ movups 48(%rsp), %xmm8
+ cfi_restore(25)
+ movups 32(%rsp), %xmm9
+ cfi_restore(26)
+ movups 16(%rsp), %xmm12
+ cfi_restore(29)
+ movups (%rsp), %xmm13
+ cfi_restore(30)
+ movq 72(%rsp), %rsi
+ cfi_restore(4)
+ movq 64(%rsp), %rdi
+ cfi_restore(5)
+ movq 88(%rsp), %r12
+ cfi_restore(12)
+ movq 80(%rsp), %r13
+ cfi_restore(13)
+ movups 192(%rsp), %xmm0
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 128(%rsp,%r12,8), %rdi
+ lea 192(%rsp,%r12,8), %rsi
+ call __svml_datanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVbN2v_atanh_sse4)
+
+ .align 16,0x90
+
+__svml_datanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ movb 7(%rdi), %dl
+ andb $127, %dl
+ movsd %xmm0, -8(%rsp)
+ cmpl $32752, %eax
+ je .LBL_2_6
+
+.LBL_2_2:
+ cmpl $0, -8(%rsp)
+ jne .LBL_2_5
+ movb %dl, -1(%rsp)
+ cmpl $1072693248, -4(%rsp)
+ jne .LBL_2_5
+ divsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_5:
+ movsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 16+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ testl $1048575, 4(%rdi)
+ jne .LBL_2_8
+ cmpl $0, (%rdi)
+ je .LBL_2_2
+
+.LBL_2_8:
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_datanh_cout_rare_internal,@function
+ .size __svml_datanh_cout_rare_internal,.-__svml_datanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datanh_data_internal:
+ .long 3715793664
+ .long 3230016299
+ .long 4013928704
+ .long 3189565726
+ .long 3699038248
+ .long 3230016303
+ .long 4255595370
+ .long 3189567439
+ .long 3648859040
+ .long 3230016307
+ .long 1732833791
+ .long 3189567296
+ .long 3565385952
+ .long 3230016311
+ .long 2485752410
+ .long 3189567274
+ .long 3448748152
+ .long 3230016315
+ .long 3514744523
+ .long 3189567800
+ .long 3299074072
+ .long 3230016319
+ .long 3686511262
+ .long 3189567474
+ .long 3116491376
+ .long 3230016323
+ .long 716063611
+ .long 3189567908
+ .long 2901127016
+ .long 3230016327
+ .long 354437295
+ .long 3189567291
+ .long 2653107184
+ .long 3230016331
+ .long 3777462366
+ .long 3189567264
+ .long 2372557360
+ .long 3230016335
+ .long 3590663412
+ .long 3189567498
+ .long 2059602304
+ .long 3230016339
+ .long 1680795031
+ .long 3189567428
+ .long 1714366048
+ .long 3230016343
+ .long 2010344982
+ .long 3189567986
+ .long 1336971936
+ .long 3230016347
+ .long 166254822
+ .long 3189567184
+ .long 927542568
+ .long 3230016351
+ .long 59552610
+ .long 3189567972
+ .long 486199888
+ .long 3230016355
+ .long 2268824919
+ .long 3189567664
+ .long 13065112
+ .long 3230016359
+ .long 3005381643
+ .long 3189567835
+ .long 3803226080
+ .long 3230016362
+ .long 4018973165
+ .long 3189567825
+ .long 3266868056
+ .long 3230016366
+ .long 3693925101
+ .long 3189567457
+ .long 2699077504
+ .long 3230016370
+ .long 4005905743
+ .long 3189567697
+ .long 2099972936
+ .long 3230016374
+ .long 3580935118
+ .long 3189567215
+ .long 1469672176
+ .long 3230016378
+ .long 2928784295
+ .long 3189567129
+ .long 808292392
+ .long 3230016382
+ .long 674298833
+ .long 3189567553
+ .long 115950104
+ .long 3230016386
+ .long 2555938320
+ .long 3189567208
+ .long 3687728456
+ .long 3230016389
+ .long 532458218
+ .long 3189567130
+ .long 2933808064
+ .long 3230016393
+ .long 3888913110
+ .long 3189567192
+ .long 2149270784
+ .long 3230016397
+ .long 2365955494
+ .long 3189567756
+ .long 1334230552
+ .long 3230016401
+ .long 3325722981
+ .long 3189567206
+ .long 488800640
+ .long 3230016405
+ .long 1496133617
+ .long 3189567683
+ .long 3908061016
+ .long 3230016408
+ .long 1824836379
+ .long 3189567490
+ .long 3002189112
+ .long 3230016412
+ .long 1222174320
+ .long 3189567837
+ .long 2066263648
+ .long 3230016416
+ .long 2472769660
+ .long 3189567285
+ .long 1100395408
+ .long 3230016420
+ .long 447932460
+ .long 3189567455
+ .long 104694584
+ .long 3230016424
+ .long 1006807684
+ .long 3189567460
+ .long 3374238048
+ .long 3230016427
+ .long 4121834935
+ .long 3189567556
+ .long 2319200184
+ .long 3230016431
+ .long 3019906587
+ .long 3189567664
+ .long 1234656664
+ .long 3230016435
+ .long 3882744783
+ .long 3189567930
+ .long 120715280
+ .long 3230016439
+ .long 1927363170
+ .long 3189567242
+ .long 3272450504
+ .long 3230016442
+ .long 8203115
+ .long 3189567876
+ .long 2100034368
+ .long 3230016446
+ .long 1260625560
+ .long 3189567855
+ .long 898540192
+ .long 3230016450
+ .long 1791679111
+ .long 3189567639
+ .long 3963040720
+ .long 3230016453
+ .long 831133439
+ .long 3189567590
+ .long 2703706240
+ .long 3230016457
+ .long 2803140504
+ .long 3189567482
+ .long 1415608352
+ .long 3230016461
+ .long 2955844462
+ .long 3189568058
+ .long 98850816
+ .long 3230016465
+ .long 4017967070
+ .long 3189567455
+ .long 3048504096
+ .long 3230016468
+ .long 3974385451
+ .long 3189567871
+ .long 1674736240
+ .long 3230016472
+ .long 2424114556
+ .long 3189567887
+ .long 272616624
+ .long 3230016476
+ .long 4261883032
+ .long 3189567073
+ .long 3137214056
+ .long 3230016479
+ .long 3716750895
+ .long 3189567522
+ .long 1678694944
+ .long 3230016483
+ .long 498025304
+ .long 3189567180
+ .long 192127016
+ .long 3230016487
+ .long 1011852160
+ .long 3189567511
+ .long 2972577480
+ .long 3230016490
+ .long 558940916
+ .long 3189567850
+ .long 1430211120
+ .long 3230016494
+ .long 2550865739
+ .long 3189567935
+ .long 4155061376
+ .long 3230016497
+ .long 1930847170
+ .long 3189567371
+ .long 2557291968
+ .long 3230016501
+ .long 1716354804
+ .long 3189567130
+ .long 931967984
+ .long 3230016505
+ .long 2729403392
+ .long 3189567981
+ .long 3574154016
+ .long 3230016508
+ .long 1067280599
+ .long 3189567890
+ .long 1894012232
+ .long 3230016512
+ .long 2094260282
+ .long 3189567604
+ .long 186606176
+ .long 3230016516
+ .long 3897933165
+ .long 3189568046
+ .long 2746998904
+ .long 3230016519
+ .long 1935720459
+ .long 3189567701
+ .long 985351064
+ .long 3230016523
+ .long 2170344821
+ .long 3189567164
+ .long 3491691984
+ .long 3230016526
+ .long 4220979537
+ .long 3189567547
+ .long 1676181328
+ .long 3230016530
+ .long 1953924393
+ .long 3189567854
+ .long 4128847448
+ .long 3230016533
+ .long 1689829067
+ .long 3189567468
+ .long 2259849008
+ .long 3230016537
+ .long 2367753130
+ .long 3189567619
+ .long 364246088
+ .long 3230016541
+ .long 2263309073
+ .long 3189567722
+ .long 2737098280
+ .long 3230016544
+ .long 2366756869
+ .long 3189567856
+ .long 788562816
+ .long 3230016548
+ .long 2294653975
+ .long 3189567145
+ .long 3108665616
+ .long 3230016551
+ .long 1786494117
+ .long 3189567254
+ .long 1107562960
+ .long 3230016555
+ .long 3655887416
+ .long 3189567689
+ .long 3375279848
+ .long 3230016558
+ .long 1178948625
+ .long 3189567241
+ .long 1321971608
+ .long 3230016562
+ .long 1620080441
+ .long 3189567466
+ .long 3537662304
+ .long 3230016565
+ .long 154455618
+ .long 3189567981
+ .long 1432506360
+ .long 3230016569
+ .long 3128192125
+ .long 3189567889
+ .long 3596526920
+ .long 3230016572
+ .long 2026842750
+ .long 3189567212
+ .long 1439877480
+ .long 3230016576
+ .long 1384431897
+ .long 3189567284
+ .long 3552580280
+ .long 3230016579
+ .long 1999983129
+ .long 3189568079
+ .long 1344787944
+ .long 3230016583
+ .long 4035436820
+ .long 3189567579
+ .long 3406521808
+ .long 3230016586
+ .long 77799817
+ .long 3189567285
+ .long 1147933592
+ .long 3230016590
+ .long 1261060207
+ .long 3189567477
+ .long 3159043768
+ .long 3230016593
+ .long 2102717775
+ .long 3189567605
+ .long 850003184
+ .long 3230016597
+ .long 161472469
+ .long 3189567688
+ .long 2810831440
+ .long 3230016600
+ .long 1937336881
+ .long 3189567665
+ .long 451678520
+ .long 3230016604
+ .long 2268353549
+ .long 3189567773
+ .long 2362563168
+ .long 3230016607
+ .long 1785871595
+ .long 3189567889
+ .long 4248601816
+ .long 3230016610
+ .long 2434669991
+ .long 3189567898
+ .long 1814910472
+ .long 3230016614
+ .long 2666999375
+ .long 3189568058
+ .long 3651506624
+ .long 3230016617
+ .long 1033139811
+ .long 3189567312
+ .long 1168538136
+ .long 3230016621
+ .long 4004618418
+ .long 3189567740
+ .long 2956021672
+ .long 3230016624
+ .long 3799928764
+ .long 3189567751
+ .long 424104288
+ .long 3230016628
+ .long 3650233137
+ .long 3189567549
+ .long 2162801816
+ .long 3230016631
+ .long 437313833
+ .long 3189567438
+ .long 3877227800
+ .long 3230016634
+ .long 2138293494
+ .long 3189567140
+ .long 1272495376
+ .long 3230016638
+ .long 2891370752
+ .long 3189567168
+ .long 2938619176
+ .long 3230016641
+ .long 1704142730
+ .long 3189567114
+ .long 285744240
+ .long 3230016645
+ .long 500817607
+ .long 3189568035
+ .long 1903884424
+ .long 3230016648
+ .long 3102571944
+ .long 3189567668
+ .long 3498151272
+ .long 3230016651
+ .long 2374193154
+ .long 3189567933
+ .long 773655960
+ .long 3230016655
+ .long 2898331636
+ .long 3189568089
+ .long 2320411168
+ .long 3230016658
+ .long 1983295500
+ .long 3189567113
+ .long 3843527280
+ .long 3230016661
+ .long 2132853542
+ .long 3189567093
+ .long 1048114320
+ .long 3230016665
+ .long 3551155364
+ .long 3189567407
+ .long 2524183824
+ .long 3230016668
+ .long 2564000663
+ .long 3189567090
+ .long 3976845048
+ .long 3230016671
+ .long 361581803
+ .long 3189567196
+ .long 1111206880
+ .long 3230016675
+ .long 696765230
+ .long 3189568040
+ .long 2517279744
+ .long 3230016678
+ .long 941542475
+ .long 3189567463
+ .long 3900171776
+ .long 3230016681
+ .long 2377895552
+ .long 3189567282
+ .long 964990760
+ .long 3230016685
+ .long 1173605489
+ .long 3189567454
+ .long 2301746008
+ .long 3230016688
+ .long 3096720313
+ .long 3189567400
+ .long 3615544576
+ .long 3230016691
+ .long 1942008121
+ .long 3189567335
+ .long 611493160
+ .long 3230016695
+ .long 3375481119
+ .long 3189567537
+ .long 1879599992
+ .long 3230016698
+ .long 4103239143
+ .long 3189567624
+ .long 3124971056
+ .long 3230016701
+ .long 3773474925
+ .long 3189567869
+ .long 52711992
+ .long 3230016705
+ .long 2465315445
+ .long 3189567444
+ .long 1252829960
+ .long 3230016708
+ .long 1041581158
+ .long 3189567781
+ .long 2430429904
+ .long 3230016711
+ .long 166620501
+ .long 3189567739
+ .long 3585583704
+ .long 3230016714
+ .long 2379237630
+ .long 3189567984
+ .long 423395616
+ .long 3230016718
+ .long 134834559
+ .long 3189567178
+ .long 1533871416
+ .long 3230016721
+ .long 1449318760
+ .long 3189567373
+ .long 2622114680
+ .long 3230016724
+ .long 3042372984
+ .long 3189567127
+ .long 3688195920
+ .long 3230016727
+ .long 1265290101
+ .long 3189567921
+ .long 437218048
+ .long 3230016731
+ .long 2248549362
+ .long 3189567262
+ .long 1459185496
+ .long 3230016734
+ .long 1293250365
+ .long 3189567151
+ .long 2459200496
+ .long 3230016737
+ .long 313786605
+ .long 3189567180
+ .long 3437332240
+ .long 3230016740
+ .long 3289151823
+ .long 3189567872
+ .long 98682312
+ .long 3230016744
+ .long 2693758821
+ .long 3189567877
+ .long 1033253848
+ .long 3230016747
+ .long 4237443192
+ .long 3189567301
+ .long 1946147760
+ .long 3230016750
+ .long 4099404586
+ .long 3189567972
+ .long 2837431968
+ .long 3230016753
+ .long 343640666
+ .long 3189567552
+ .long 3707174040
+ .long 3230016756
+ .long 4238401458
+ .long 3189567983
+ .long 260473960
+ .long 3230016760
+ .long 21423548
+ .long 3189567559
+ .long 1087333264
+ .long 3230016763
+ .long 3515278593
+ .long 3189567309
+ .long 1892851296
+ .long 3230016766
+ .long 629106375
+ .long 3189567166
+ .long 2677094384
+ .long 3230016769
+ .long 2048670044
+ .long 3189567227
+ .long 3440128544
+ .long 3230016772
+ .long 3739217292
+ .long 3189568009
+ .long 4182019504
+ .long 3230016775
+ .long 3662039444
+ .long 3189567618
+ .long 607865368
+ .long 3230016779
+ .long 1766486991
+ .long 3189567112
+ .long 1307665824
+ .long 3230016782
+ .long 512689457
+ .long 3189567670
+ .long 1986518392
+ .long 3230016785
+ .long 1704577378
+ .long 3189567760
+ .long 2644487576
+ .long 3230016788
+ .long 4001935135
+ .long 3189567473
+ .long 3281637576
+ .long 3230016791
+ .long 1184452342
+ .long 3189567735
+ .long 3898032312
+ .long 3230016794
+ .long 2714793956
+ .long 3189567464
+ .long 198768096
+ .long 3230016798
+ .long 3657654418
+ .long 3189567905
+ .long 773842856
+ .long 3230016801
+ .long 2809688013
+ .long 3189567736
+ .long 1328352328
+ .long 3230016804
+ .long 390727591
+ .long 3189567393
+ .long 1862359256
+ .long 3230016807
+ .long 1135237925
+ .long 3189567248
+ .long 2375926096
+ .long 3230016810
+ .long 1377572509
+ .long 3189567837
+ .long 2869115032
+ .long 3230016813
+ .long 3148383775
+ .long 3189568032
+ .long 3341987960
+ .long 3230016816
+ .long 3809536738
+ .long 3189567313
+ .long 3794606472
+ .long 3230016819
+ .long 4243445934
+ .long 3189568034
+ .long 4227031920
+ .long 3230016822
+ .long 1302642088
+ .long 3189567451
+ .long 344358048
+ .long 3230016826
+ .long 3239125361
+ .long 3189567151
+ .long 736580224
+ .long 3230016829
+ .long 3753161736
+ .long 3189567129
+ .long 1108791648
+ .long 3230016832
+ .long 624357483
+ .long 3189568045
+ .long 1461052568
+ .long 3230016835
+ .long 3153257064
+ .long 3189567338
+ .long 1793422920
+ .long 3230016838
+ .long 2705820149
+ .long 3189567635
+ .long 2105962400
+ .long 3230016841
+ .long 911564860
+ .long 3189567737
+ .long 2398730424
+ .long 3230016844
+ .long 1086958332
+ .long 3189567948
+ .long 2671786152
+ .long 3230016847
+ .long 1598984535
+ .long 3189567210
+ .long 2925188456
+ .long 3230016850
+ .long 4113385879
+ .long 3189567401
+ .long 3158995968
+ .long 3230016853
+ .long 2426812671
+ .long 3189567396
+ .long 3373267048
+ .long 3230016856
+ .long 3480845679
+ .long 3189567359
+ .long 3568059792
+ .long 3230016859
+ .long 3306230729
+ .long 3189567924
+ .long 3743432056
+ .long 3230016862
+ .long 3853821277
+ .long 3189567317
+ .long 3899441408
+ .long 3230016865
+ .long 2049309148
+ .long 3189567699
+ .long 4036145192
+ .long 3230016868
+ .long 2667321817
+ .long 3189567166
+ .long 4153600472
+ .long 3230016871
+ .long 3540670389
+ .long 3189567114
+ .long 4251864072
+ .long 3230016874
+ .long 404207883
+ .long 3189567310
+ .long 36025272
+ .long 3230016878
+ .long 2837617046
+ .long 3189567103
+ .long 96074976
+ .long 3230016881
+ .long 1231280453
+ .long 3189567669
+ .long 137101976
+ .long 3230016884
+ .long 792492437
+ .long 3189567071
+ .long 159162080
+ .long 3230016887
+ .long 2385525292
+ .long 3189567618
+ .long 162310880
+ .long 3230016890
+ .long 3272051015
+ .long 3189567858
+ .long 146603712
+ .long 3230016893
+ .long 623573538
+ .long 3189567881
+ .long 112095672
+ .long 3230016896
+ .long 2151835939
+ .long 3189567451
+ .long 58841608
+ .long 3230016899
+ .long 958006130
+ .long 3189567217
+ .long 4281863424
+ .long 3230016901
+ .long 549948691
+ .long 3189567863
+ .long 4191280920
+ .long 3230016904
+ .long 4177689987
+ .long 3189567217
+ .long 4082115512
+ .long 3230016907
+ .long 2895765193
+ .long 3189567599
+ .long 3954421112
+ .long 3230016910
+ .long 1055606208
+ .long 3189567799
+ .long 3808251392
+ .long 3230016913
+ .long 1966521217
+ .long 3189567351
+ .long 3643659776
+ .long 3230016916
+ .long 1017382758
+ .long 3189567732
+ .long 3460699480
+ .long 3230016919
+ .long 3485890155
+ .long 3189567410
+ .long 3259423472
+ .long 3230016922
+ .long 2657419170
+ .long 3189567140
+ .long 3039884488
+ .long 3230016925
+ .long 4198858220
+ .long 3189568080
+ .long 2802135064
+ .long 3230016928
+ .long 2343740494
+ .long 3189567869
+ .long 2546227480
+ .long 3230016931
+ .long 2423084215
+ .long 3189567957
+ .long 2272213808
+ .long 3230016934
+ .long 3887273856
+ .long 3189567631
+ .long 1980145888
+ .long 3230016937
+ .long 3992755473
+ .long 3189567251
+ .long 1670075336
+ .long 3230016940
+ .long 722498073
+ .long 3189567389
+ .long 1342053552
+ .long 3230016943
+ .long 3573506400
+ .long 3189567965
+ .long 996131728
+ .long 3230016946
+ .long 714695829
+ .long 3189567392
+ .long 632360808
+ .long 3230016949
+ .long 2816704229
+ .long 3189567846
+ .long 250791552
+ .long 3230016952
+ .long 386951333
+ .long 3189567243
+ .long 4146441768
+ .long 3230016954
+ .long 2155319939
+ .long 3189567580
+ .long 3729427184
+ .long 3230016957
+ .long 4227840137
+ .long 3189567931
+ .long 3294765200
+ .long 3230016960
+ .long 1718354212
+ .long 3189567672
+ .long 2842505696
+ .long 3230016963
+ .long 4243880582
+ .long 3189567656
+ .long 2372698352
+ .long 3230016966
+ .long 3784093842
+ .long 3189567302
+ .long 1885392624
+ .long 3230016969
+ .long 2318733051
+ .long 3189567813
+ .long 1380637784
+ .long 3230016972
+ .long 497929746
+ .long 3189567210
+ .long 858482864
+ .long 3230016975
+ .long 3218883783
+ .long 3189567649
+ .long 318976720
+ .long 3230016978
+ .long 3492652862
+ .long 3189567382
+ .long 4057135272
+ .long 3230016980
+ .long 473724673
+ .long 3189568069
+ .long 3483072376
+ .long 3230016983
+ .long 150485010
+ .long 3189567757
+ .long 2891803552
+ .long 3230016986
+ .long 3028900958
+ .long 3189567173
+ .long 2283376816
+ .long 3230016989
+ .long 321242596
+ .long 3189567822
+ .long 1657840008
+ .long 3230016992
+ .long 151305746
+ .long 3189568029
+ .long 1015240760
+ .long 3230016995
+ .long 2208026401
+ .long 3189567184
+ .long 355626480
+ .long 3230016998
+ .long 2487781842
+ .long 3189567931
+ .long 3974011720
+ .long 3230017000
+ .long 2391142094
+ .long 3189567091
+ .long 3280508896
+ .long 3230017003
+ .long 734457618
+ .long 3189568092
+ .long 2570132168
+ .long 3230017006
+ .long 3070902701
+ .long 3189567794
+ .long 1842928168
+ .long 3230017009
+ .long 1110877923
+ .long 3189567896
+ .long 1098943352
+ .long 3230017012
+ .long 3880360185
+ .long 3189567898
+ .long 338223984
+ .long 3230017015
+ .long 391995809
+ .long 3189567294
+ .long 3855783416
+ .long 3230017017
+ .long 4186345433
+ .long 3189567745
+ .long 3061732952
+ .long 3230017020
+ .long 3682852050
+ .long 3189567081
+ .long 2251085560
+ .long 3230017023
+ .long 3057037137
+ .long 3189567617
+ .long 1423886760
+ .long 3230017026
+ .long 3352664894
+ .long 3189567074
+ .long 580181848
+ .long 3230017029
+ .long 1170568982
+ .long 3189567927
+ .long 4014983272
+ .long 3230017031
+ .long 671148579
+ .long 3189567293
+ .long 3138401368
+ .long 3230017034
+ .long 267496658
+ .long 3189567304
+ .long 2245448192
+ .long 3230017037
+ .long 1285167087
+ .long 3189568066
+ .long 1336168336
+ .long 3230017040
+ .long 4259909589
+ .long 3189567788
+ .long 410606184
+ .long 3230017043
+ .long 1494078902
+ .long 3189568031
+ .long 3763773256
+ .long 3230017045
+ .long 261935754
+ .long 3189567685
+ .long 2805778992
+ .long 3230017048
+ .long 3679585605
+ .long 3189567195
+ .long 1831634536
+ .long 3230017051
+ .long 809066513
+ .long 3189567664
+ .long 841383576
+ .long 3230017054
+ .long 385945238
+ .long 3189567897
+ .long 4130036912
+ .long 3230017056
+ .long 825579909
+ .long 3189567603
+ .long 3107703272
+ .long 3230017059
+ .long 3911295427
+ .long 3189567514
+ .long 2069393104
+ .long 3230017062
+ .long 3473784588
+ .long 3189567461
+ .long 1015149384
+ .long 3230017065
+ .long 629861200
+ .long 3189567515
+ .long 4239982216
+ .long 3230017067
+ .long 2659142760
+ .long 3189567083
+ .long 3153999632
+ .long 3230017070
+ .long 1251680713
+ .long 3189567080
+ .long 2052211384
+ .long 3230017073
+ .long 3168705163
+ .long 3189567992
+ .long 934659776
+ .long 3230017076
+ .long 1674797624
+ .long 3189567952
+ .long 4096354216
+ .long 3230017078
+ .long 437847902
+ .long 3189567971
+ .long 2947402064
+ .long 3230017081
+ .long 4024401533
+ .long 3189567960
+ .long 1782812400
+ .long 3230017084
+ .long 786902458
+ .long 3189567873
+ .long 602626840
+ .long 3230017087
+ .long 2593792633
+ .long 3189567812
+ .long 3701854136
+ .long 3230017089
+ .long 3989721221
+ .long 3189567126
+ .long 2490600968
+ .long 3230017092
+ .long 2545746866
+ .long 3189567591
+ .long 1263875768
+ .long 3230017095
+ .long 3115843521
+ .long 3189567377
+ .long 21719488
+ .long 3230017098
+ .long 1730226063
+ .long 3189567307
+ .long 3059140216
+ .long 3230017100
+ .long 690350922
+ .long 3189567892
+ .long 1786244008
+ .long 3230017103
+ .long 3350998585
+ .long 3189567394
+ .long 498038616
+ .long 3230017106
+ .long 1499123379
+ .long 3189568082
+ .long 3489531672
+ .long 3230017108
+ .long 2598665922
+ .long 3189567118
+ .long 2170828712
+ .long 3230017111
+ .long 2436376826
+ .long 3189567935
+ .long 836937048
+ .long 3230017114
+ .long 1977004902
+ .long 3189568052
+ .long 3782863816
+ .long 3230017116
+ .long 4027224619
+ .long 3189567373
+ .long 2418714096
+ .long 3230017119
+ .long 2616869856
+ .long 3189567271
+ .long 1039494712
+ .long 3230017122
+ .long 3775628133
+ .long 3189567616
+ .long 3940212336
+ .long 3230017124
+ .long 419018052
+ .long 3189567909
+ .long 2530971600
+ .long 3230017127
+ .long 150919657
+ .long 3189567379
+ .long 1106778856
+ .long 3230017130
+ .long 2926254537
+ .long 3189567139
+ .long 3962640312
+ .long 3230017132
+ .long 1610863810
+ .long 3189567216
+ .long 2508660136
+ .long 3230017135
+ .long 1166015244
+ .long 3189567672
+ .long 1039844240
+ .long 3230017138
+ .long 645159638
+ .long 3189567685
+ .long 3851198376
+ .long 3230017140
+ .long 2449439581
+ .long 3189567695
+ .long 2352826264
+ .long 3230017143
+ .long 1619104640
+ .long 3189567458
+ .long 839733360
+ .long 3230017146
+ .long 2427070371
+ .long 3189567165
+ .long 3606924968
+ .long 3230017148
+ .long 2166480890
+ .long 3189567544
+ .long 2064504368
+ .long 3230017151
+ .long 2283025905
+ .long 3189567907
+ .long 507476584
+ .long 3230017154
+ .long 3923356754
+ .long 3189567272
+ .long 3230846472
+ .long 3230017156
+ .long 805331677
+ .long 3189567533
+ .long 1644716880
+ .long 3230017159
+ .long 3790469685
+ .long 3189567406
+ .long 44092384
+ .long 3230017162
+ .long 2689788214
+ .long 3189567653
+ .long 2723977432
+ .long 3230017164
+ .long 2762250221
+ .long 3189567072
+ .long 1094474416
+ .long 3230017167
+ .long 2781925193
+ .long 3189567716
+ .long 3745554800
+ .long 3230017169
+ .long 593120878
+ .long 3189567817
+ .long 2087320704
+ .long 3230017172
+ .long 403414988
+ .long 3189568021
+ .long 414776008
+ .long 3230017175
+ .long 359307328
+ .long 3189567387
+ .long 3022924432
+ .long 3230017177
+ .long 3373547966
+ .long 3189567572
+ .long 1321867688
+ .long 3230017180
+ .long 3978711340
+ .long 3189567805
+ .long 3901576528
+ .long 3230017182
+ .long 2765663238
+ .long 3189568046
+ .long 2172152384
+ .long 3230017185
+ .long 1181150766
+ .long 3189568053
+ .long 428598440
+ .long 3230017188
+ .long 2473022131
+ .long 3189567471
+ .long 2965917728
+ .long 3230017190
+ .long 1621744488
+ .long 3189567971
+ .long 1194211288
+ .long 3230017193
+ .long 2931299013
+ .long 3189567190
+ .long 3703449168
+ .long 3230017195
+ .long 873154950
+ .long 3189568039
+ .long 1903732144
+ .long 3230017198
+ .long 1510784525
+ .long 3189567521
+ .long 90062704
+ .long 3230017201
+ .long 2918231590
+ .long 3189568086
+ .long 2557443240
+ .long 3230017203
+ .long 3329944838
+ .long 3189567475
+ .long 715974088
+ .long 3230017206
+ .long 2679715410
+ .long 3189568021
+ .long 3155624672
+ .long 3230017208
+ .long 1841110143
+ .long 3189567518
+ .long 1286495072
+ .long 3230017211
+ .long 3881638924
+ .long 3189567497
+ .long 3698554440
+ .long 3230017213
+ .long 167906931
+ .long 3189567169
+ .long 1801902600
+ .long 3230017216
+ .long 1468264167
+ .long 3189567597
+ .long 4186508448
+ .long 3230017218
+ .long 2400624638
+ .long 3189567691
+ .long 2262471560
+ .long 3230017221
+ .long 3796182064
+ .long 3189567357
+ .long 324793264
+ .long 3230017224
+ .long 2801238958
+ .long 3189567581
+ .long 2668474776
+ .long 3230017226
+ .long 2273142813
+ .long 3189567436
+ .long 703615288
+ .long 3230017229
+ .long 831867571
+ .long 3189567237
+ .long 3020183048
+ .long 3230017231
+ .long 2238048829
+ .long 3189567595
+ .long 1028277008
+ .long 3230017234
+ .long 1163763070
+ .long 3189567452
+ .long 3317865168
+ .long 3230017236
+ .long 1206450788
+ .long 3189567228
+ .long 1299046216
+ .long 3230017239
+ .long 737162226
+ .long 3189567879
+ .long 3561787920
+ .long 3230017241
+ .long 2433253277
+ .long 3189567901
+ .long 1516188728
+ .long 3230017244
+ .long 3561277099
+ .long 3189567506
+ .long 3752216144
+ .long 3230017246
+ .long 1385095507
+ .long 3189567674
+ .long 1679968384
+ .long 3230017249
+ .long 829462408
+ .long 3189567156
+ .long 3889412704
+ .long 3230017251
+ .long 2939266725
+ .long 3189567673
+ .long 1790647080
+ .long 3230017254
+ .long 4214100827
+ .long 3189567848
+ .long 3973638544
+ .long 3230017256
+ .long 2537954451
+ .long 3189567376
+ .long 1848484816
+ .long 3230017259
+ .long 1128740312
+ .long 3189567098
+ .long 4005152680
+ .long 3230017261
+ .long 1932232434
+ .long 3189568053
+ .long 1853739648
+ .long 3230017264
+ .long 1359710694
+ .long 3189567457
+ .long 3984212256
+ .long 3230017266
+ .long 1268482287
+ .long 3189567990
+ .long 1806667776
+ .long 3230017269
+ .long 839689017
+ .long 3189567631
+ .long 3911072520
+ .long 3230017271
+ .long 3727165601
+ .long 3189567921
+ .long 1707523520
+ .long 3230017274
+ .long 1836550952
+ .long 3189567895
+ .long 3785986872
+ .long 3230017276
+ .long 172951407
+ .long 3189567220
+ .long 1556559360
+ .long 3230017279
+ .long 1166449891
+ .long 3189567294
+ .long 3609206856
+ .long 3230017281
+ .long 28625366
+ .long 3189567222
+ .long 1354025920
+ .long 3230017284
+ .long 4038426582
+ .long 3189567978
+ .long 3380982208
+ .long 3230017286
+ .long 2756284659
+ .long 3189567362
+ .long 1100172048
+ .long 3230017289
+ .long 848830252
+ .long 3189567230
+ .long 3101560856
+ .long 3230017291
+ .long 1868170309
+ .long 3189567423
+ .long 795244752
+ .long 3230017294
+ .long 3128260908
+ .long 3189567885
+ .long 2771188936
+ .long 3230017296
+ .long 1691261279
+ .long 3189567706
+ .long 439489304
+ .long 3230017299
+ .long 2886711298
+ .long 3189567236
+ .long 2390110824
+ .long 3230017301
+ .long 1311431101
+ .long 3189567133
+ .long 33149176
+ .long 3230017304
+ .long 3042183093
+ .long 3189567401
+ .long 1958569120
+ .long 3230017306
+ .long 3174208880
+ .long 3189567462
+ .long 3871433416
+ .long 3230017308
+ .long 302374021
+ .long 3189567243
+ .long 1476804712
+ .long 3230017311
+ .long 712531519
+ .long 3189567241
+ .long 3364647440
+ .long 3230017313
+ .long 3705318448
+ .long 3189567568
+ .long 945056744
+ .long 3230017316
+ .long 2424171915
+ .long 3189568016
+ .long 2807996856
+ .long 3230017318
+ .long 199511961
+ .long 3189567094
+ .long 363562688
+ .long 3230017321
+ .long 3766234060
+ .long 3189567214
+ .long 2201718256
+ .long 3230017323
+ .long 1956195829
+ .long 3189567592
+ .long 4027525584
+ .long 3230017325
+ .long 2891794585
+ .long 3189567375
+ .long 1546046576
+ .long 3230017328
+ .long 843173017
+ .long 3189567760
+ .long 3347244936
+ .long 3230017330
+ .long 1609532414
+ .long 3189567955
+ .long 841215080
+ .long 3230017333
+ .long 3356704285
+ .long 3189567294
+ .long 2617920488
+ .long 3230017335
+ .long 1641729240
+ .long 3189567346
+ .long 87455368
+ .long 3230017338
+ .long 1455753222
+ .long 3189567878
+ .long 1839783016
+ .long 3230017340
+ .long 1936589978
+ .long 3189567944
+ .long 3579964728
+ .long 3230017342
+ .long 1006586129
+ .long 3189567993
+ .long 1013061704
+ .long 3230017345
+ .long 2766825484
+ .long 3189567880
+ .long 2729036928
+ .long 3230017347
+ .long 1888685184
+ .long 3189567954
+ .long 137984104
+ .long 3230017350
+ .long 848046306
+ .long 3189568090
+ .long 1829866024
+ .long 3230017352
+ .long 4178224056
+ .long 3189567750
+ .long 3509743488
+ .long 3230017354
+ .long 2637072474
+ .long 3189567070
+ .long 882677184
+ .long 3230017357
+ .long 3133305384
+ .long 3189567936
+ .long 2538629624
+ .long 3230017359
+ .long 1343200028
+ .long 3189567905
+ .long 4182661312
+ .long 3230017361
+ .long 107195460
+ .long 3189567427
+ .long 1519832648
+ .long 3230017364
+ .long 602154914
+ .long 3189567857
+ .long 3140105848
+ .long 3230017366
+ .long 659160740
+ .long 3189567417
+ .long 453573824
+ .long 3230017369
+ .long 236889930
+ .long 3189567396
+ .long 2050198592
+ .long 3230017371
+ .long 1175634921
+ .long 3189567087
+ .long 3635040168
+ .long 3230017373
+ .long 1241855527
+ .long 3189567941
+ .long 913158504
+ .long 3230017376
+ .long 3947904414
+ .long 3189567477
+ .long 2474515312
+ .long 3230017378
+ .long 1206979822
+ .long 3189567534
+ .long 4024170344
+ .long 3230017380
+ .long 1847397805
+ .long 3189567152
+ .long 1267183240
+ .long 3230017383
+ .long 2916539301
+ .long 3189567754
+ .long 2793515456
+ .long 3230017385
+ .long 2568213263
+ .long 3189568078
+ .long 13259168
+ .long 3230017388
+ .long 3003245330
+ .long 3189567303
+ .long 1516375624
+ .long 3230017390
+ .long 3472633477
+ .long 3189567153
+ .long 3007924104
+ .long 3230017392
+ .long 532406289
+ .long 3189567855
+ .long 192963816
+ .long 3230017395
+ .long 4149310663
+ .long 3189567165
+ .long 1661455728
+ .long 3230017397
+ .long 946970842
+ .long 3189567598
+ .long 3118458864
+ .long 3230017399
+ .long 2040517972
+ .long 3189567254
+ .long 269032128
+ .long 3230017402
+ .long 3669971831
+ .long 3189568072
+ .long 1703136256
+ .long 3230017404
+ .long 2375197389
+ .long 3189567687
+ .long 3125829976
+ .long 3230017406
+ .long 296757744
+ .long 3189567673
+ .long 242171944
+ .long 3230017409
+ .long 611424102
+ .long 3189567452
+ .long 1642122608
+ .long 3230017411
+ .long 1700968423
+ .long 3189567419
+ .long 3030740440
+ .long 3230017413
+ .long 2947762668
+ .long 3189567968
+ .long 113083840
+ .long 3230017416
+ .long 690901756
+ .long 3189567496
+ .long 1479112984
+ .long 3230017418
+ .long 121139903
+ .long 3189567571
+ .long 2833886088
+ .long 3230017420
+ .long 173386055
+ .long 3189567866
+ .long 4177428584
+ .long 3230017422
+ .long 2964718132
+ .long 3189567231
+ .long 1214798496
+ .long 3230017425
+ .long 541562024
+ .long 3189567842
+ .long 2535955680
+ .long 3230017427
+ .long 3368765612
+ .long 3189568076
+ .long 3845958008
+ .long 3230017429
+ .long 3194541507
+ .long 3189567689
+ .long 849863256
+ .long 3230017432
+ .long 3443356552
+ .long 3189567858
+ .long 2137631024
+ .long 3230017434
+ .long 1180679397
+ .long 3189567138
+ .long 3414318912
+ .long 3230017436
+ .long 2261929999
+ .long 3189567651
+ .long 384984464
+ .long 3230017439
+ .long 954057098
+ .long 3189567971
+ .long 1639587024
+ .long 3230017441
+ .long 1346995839
+ .long 3189567263
+ .long 2883183944
+ .long 3230017443
+ .long 3253373727
+ .long 3189567382
+ .long 4115799808
+ .long 3230017445
+ .long 4143791142
+ .long 3189567800
+ .long 1042491824
+ .long 3230017448
+ .long 4240432954
+ .long 3189567700
+ .long 2253218992
+ .long 3230017450
+ .long 1891708033
+ .long 3189568072
+ .long 3453038360
+ .long 3230017452
+ .long 710292621
+ .long 3189567662
+ .long 347006880
+ .long 3230017455
+ .long 2712254611
+ .long 3189567116
+ .long 1525083304
+ .long 3230017457
+ .long 349583280
+ .long 3189568004
+ .long 2692324448
+ .long 3230017459
+ .long 1803227864
+ .long 3189567740
+ .long 3848754312
+ .long 3230017461
+ .long 3644606976
+ .long 3189567826
+ .long 699429536
+ .long 3230017464
+ .long 1067153346
+ .long 3189567751
+ .long 1834308568
+ .long 3230017466
+ .long 1335350692
+ .long 3189567081
+ .long 2958447872
+ .long 3230017468
+ .long 1803696599
+ .long 3189567557
+ .long 4071871152
+ .long 3230017470
+ .long 1232152547
+ .long 3189568017
+ .long 879634736
+ .long 3230017473
+ .long 1455437901
+ .long 3189567512
+ .long 1971696744
+ .long 3230017475
+ .long 3708110750
+ .long 3189567399
+ .long 3053113344
+ .long 3230017477
+ .long 3907324819
+ .long 3189567290
+ .long 4123907920
+ .long 3230017479
+ .long 4080000314
+ .long 3189567141
+ .long 889136480
+ .long 3230017482
+ .long 1286519001
+ .long 3189567298
+ .long 1938756848
+ .long 3230017484
+ .long 1292347423
+ .long 3189567513
+ .long 2977824880
+ .long 3230017486
+ .long 1159725249
+ .long 3189568015
+ .long 4006363664
+ .long 3230017488
+ .long 895621348
+ .long 3189567502
+ .long 729428896
+ .long 3230017491
+ .long 1212894155
+ .long 3189567280
+ .long 1736978096
+ .long 3230017493
+ .long 296117275
+ .long 3189567210
+ .long 2734066816
+ .long 3230017495
+ .long 2463481211
+ .long 3189567796
+ .long 3720717848
+ .long 3230017497
+ .long 76524950
+ .long 3189567159
+ .long 401986584
+ .long 3230017500
+ .long 1718551671
+ .long 3189567216
+ .long 1367830248
+ .long 3230017502
+ .long 3568874946
+ .long 3189567584
+ .long 2323304104
+ .long 3230017504
+ .long 2763456396
+ .long 3189567666
+ .long 3268430632
+ .long 3230017506
+ .long 1208592501
+ .long 3189567715
+ .long 4203232240
+ .long 3230017508
+ .long 4148835618
+ .long 3189567851
+ .long 832763976
+ .long 3230017511
+ .long 610418007
+ .long 3189567082
+ .long 1746982680
+ .long 3230017513
+ .long 3035714190
+ .long 3189567431
+ .long 2650943256
+ .long 3230017515
+ .long 85931336
+ .long 3189567843
+ .long 3544667832
+ .long 3230017517
+ .long 3006685957
+ .long 3189567286
+ .long 133211144
+ .long 3230017520
+ .long 878859600
+ .long 3189567873
+ .long 1006529776
+ .long 3230017522
+ .long 854333969
+ .long 3189567724
+ .long 1869678336
+ .long 3230017524
+ .long 3058646748
+ .long 3189567155
+ .long 2722678648
+ .long 3230017526
+ .long 360733640
+ .long 3189567693
+ .long 3565552488
+ .long 3230017528
+ .long 3015564990
+ .long 3189568013
+ .long 103354256
+ .long 3230017531
+ .long 2286095909
+ .long 3189568081
+ .long 926040176
+ .long 3230017533
+ .long 1899270393
+ .long 3189567137
+ .long 1738664488
+ .long 3230017535
+ .long 1377641292
+ .long 3189567833
+ .long 2541248696
+ .long 3230017537
+ .long 4266686523
+ .long 3189568077
+ .long 3333814224
+ .long 3230017539
+ .long 4018775563
+ .long 3189567218
+ .long 4116382408
+ .long 3230017541
+ .long 3373913644
+ .long 3189567103
+ .long 594007232
+ .long 3230017544
+ .long 2818265402
+ .long 3189568021
+ .long 1356644520
+ .long 3230017546
+ .long 1075601108
+ .long 3189567716
+ .long 2109348112
+ .long 3230017548
+ .long 3342127702
+ .long 3189567566
+ .long 2852139088
+ .long 3230017550
+ .long 2910355434
+ .long 3189567504
+ .long 3585038464
+ .long 3230017552
+ .long 611858749
+ .long 3189567074
+ .long 13099880
+ .long 3230017555
+ .long 1954698831
+ .long 3189567516
+ .long 726278816
+ .long 3230017557
+ .long 550712630
+ .long 3189567710
+ .long 1429628792
+ .long 3230017559
+ .long 3672474493
+ .long 3189567278
+ .long 2123170544
+ .long 3230017561
+ .long 1160875209
+ .long 3189567651
+ .long 2806924760
+ .long 3230017563
+ .long 2242524344
+ .long 3189568000
+ .long 3480912064
+ .long 3230017565
+ .long 2823138691
+ .long 3189567327
+ .long 4145152992
+ .long 3230017567
+ .long 3521079748
+ .long 3189567568
+ .long 504700744
+ .long 3230017570
+ .long 1136670137
+ .long 3189567486
+ .long 1149510328
+ .long 3230017572
+ .long 806933442
+ .long 3189567823
+ .long 1784634816
+ .long 3230017574
+ .long 1606084669
+ .long 3189567242
+ .long 2410094488
+ .long 3230017576
+ .long 2841342625
+ .long 3189567480
+ .long 3025909584
+ .long 3230017578
+ .long 984188059
+ .long 3189567239
+ .long 3632100264
+ .long 3230017580
+ .long 3011730434
+ .long 3189567337
+ .long 4228686632
+ .long 3230017582
+ .long 328432041
+ .long 3189567676
+ .long 520721440
+ .long 3230017585
+ .long 2057225622
+ .long 3189567268
+ .long 1098159248
+ .long 3230017587
+ .long 3150727306
+ .long 3189567348
+ .long 1666052680
+ .long 3230017589
+ .long 3291380622
+ .long 3189567307
+ .long 2224421584
+ .long 3230017591
+ .long 3570771984
+ .long 3189567798
+ .long 2773285760
+ .long 3230017593
+ .long 2427604440
+ .long 3189567698
+ .long 3312664936
+ .long 3230017595
+ .long 3733848165
+ .long 3189567211
+ .long 3842578768
+ .long 3230017597
+ .long 2673912350
+ .long 3189567904
+ .long 68079584
+ .long 3230017600
+ .long 960995892
+ .long 3189567616
+ .long 579121512
+ .long 3230017602
+ .long 4150493479
+ .long 3189567659
+ .long 1080756744
+ .long 3230017604
+ .long 1054941272
+ .long 3189567735
+ .long 1573004704
+ .long 3230017606
+ .long 2574365292
+ .long 3189568007
+ .long 2055884768
+ .long 3230017608
+ .long 2507498673
+ .long 3189567092
+ .long 2529416224
+ .long 3230017610
+ .long 2082176323
+ .long 3189567207
+ .long 2993618320
+ .long 3230017612
+ .long 3719982601
+ .long 3189568058
+ .long 3448510256
+ .long 3230017614
+ .long 4104247904
+ .long 3189567897
+ .long 3894111152
+ .long 3230017616
+ .long 3735557011
+ .long 3189567647
+ .long 35472776
+ .long 3230017619
+ .long 2914260983
+ .long 3189567862
+ .long 462548736
+ .long 3230017621
+ .long 1334094042
+ .long 3189567734
+ .long 880390688
+ .long 3230017623
+ .long 1291097379
+ .long 3189567171
+ .long 1289017512
+ .long 3230017625
+ .long 1627119803
+ .long 3189567853
+ .long 1688448064
+ .long 3230017627
+ .long 3886873723
+ .long 3189567117
+ .long 2078701104
+ .long 3230017629
+ .long 627887757
+ .long 3189567206
+ .long 2459795360
+ .long 3230017631
+ .long 1722013861
+ .long 3189567101
+ .long 2831749488
+ .long 3230017633
+ .long 4163262354
+ .long 3189567678
+ .long 3194582104
+ .long 3230017635
+ .long 4170237688
+ .long 3189567639
+ .long 3548311752
+ .long 3230017637
+ .long 47563772
+ .long 3189567637
+ .long 3892956928
+ .long 3230017639
+ .long 2990136007
+ .long 3189567231
+ .long 4228536056
+ .long 3230017641
+ .long 4294532248
+ .long 3189567995
+ .long 260100240
+ .long 3230017644
+ .long 2060709623
+ .long 3189567397
+ .long 577602376
+ .long 3230017646
+ .long 1488525373
+ .long 3189568044
+ .long 886093456
+ .long 3230017648
+ .long 1657840200
+ .long 3189567474
+ .long 1185591680
+ .long 3230017650
+ .long 3155771782
+ .long 3189567399
+ .long 1476115208
+ .long 3230017652
+ .long 2195162329
+ .long 3189567591
+ .long 1757682144
+ .long 3230017654
+ .long 1292806663
+ .long 3189567956
+ .long 2030310544
+ .long 3230017656
+ .long 2151451208
+ .long 3189567540
+ .long 2294018392
+ .long 3230017658
+ .long 2224122735
+ .long 3189567630
+ .long 2548823632
+ .long 3230017660
+ .long 3554417607
+ .long 3189567684
+ .long 2794744152
+ .long 3230017662
+ .long 3831650627
+ .long 3189567409
+ .long 3031797776
+ .long 3230017664
+ .long 4024246224
+ .long 3189567811
+ .long 3260002296
+ .long 3230017666
+ .long 2530219738
+ .long 3189567128
+ .long 3479375416
+ .long 3230017668
+ .long 1618145996
+ .long 3189568024
+ .long 3689934832
+ .long 3230017670
+ .long 392379700
+ .long 3189567378
+ .long 3891698144
+ .long 3230017672
+ .long 55874694
+ .long 3189567574
+ .long 4084682928
+ .long 3230017674
+ .long 4294251475
+ .long 3189567312
+ .long 4268906688
+ .long 3230017676
+ .long 1899705040
+ .long 3189567783
+ .long 149419600
+ .long 3230017679
+ .long 357699389
+ .long 3189567568
+ .long 316173656
+ .long 3230017681
+ .long 3025711727
+ .long 3189567790
+ .long 474218920
+ .long 3230017683
+ .long 2921891821
+ .long 3189568046
+ .long 623572704
+ .long 3230017685
+ .long 1716968749
+ .long 3189567453
+ .long 764252248
+ .long 3230017687
+ .long 2393171526
+ .long 3189567748
+ .long 896274768
+ .long 3230017689
+ .long 1343317993
+ .long 3189567172
+ .long 1019657400
+ .long 3230017691
+ .long 1388235839
+ .long 3189567661
+ .long 1134417256
+ .long 3230017693
+ .long 2766147125
+ .long 3189567706
+ .long 1240571384
+ .long 3230017695
+ .long 2162068842
+ .long 3189567499
+ .long 1338136776
+ .long 3230017697
+ .long 4075455588
+ .long 3189567932
+ .long 1427130392
+ .long 3230017699
+ .long 1579647664
+ .long 3189567555
+ .long 1507569120
+ .long 3230017701
+ .long 3785749868
+ .long 3189567715
+ .long 1579469816
+ .long 3230017703
+ .long 2639950365
+ .long 3189567469
+ .long 1642849272
+ .long 3230017705
+ .long 3611501026
+ .long 3189567698
+ .long 1697724240
+ .long 3230017707
+ .long 15422953
+ .long 3189568066
+ .long 1744111424
+ .long 3230017709
+ .long 2642213241
+ .long 3189568062
+ .long 1782027472
+ .long 3230017711
+ .long 143606300
+ .long 3189568058
+ .long 1811488992
+ .long 3230017713
+ .long 501328690
+ .long 3189567276
+ .long 1832512520
+ .long 3230017715
+ .long 3258054578
+ .long 3189567915
+ .long 1845114576
+ .long 3230017717
+ .long 1297851139
+ .long 3189568007
+ .long 1849311616
+ .long 3230017719
+ .long 3589200000
+ .long 3189567580
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 2846560486
+ .long 3210737666
+ .long 2729511872
+ .long 3211784202
+ .long 3956813460
+ .long 3212307985
+ .long 1796237193
+ .long 3212828714
+ .long 1562748889
+ .long 3213092649
+ .long 1602292343
+ .long 3213352007
+ .long 745814092
+ .long 3213610865
+ .long 2969306084
+ .long 3213869224
+ .long 3953060839
+ .long 3214006263
+ .long 1128703349
+ .long 3214134948
+ .long 1371067273
+ .long 3214263386
+ .long 131445019
+ .long 3214391579
+ .long 1427948820
+ .long 3214519527
+ .long 665817496
+ .long 3214647232
+ .long 1817459908
+ .long 3214774694
+ .long 242758400
+ .long 3214901915
+ .long 2082038134
+ .long 3214981455
+ .long 2300828032
+ .long 3215044825
+ .long 571795571
+ .long 3215108076
+ .long 3120479584
+ .long 3215171207
+ .long 3276640540
+ .long 3215234220
+ .long 2949178581
+ .long 3215297115
+ .long 4036279704
+ .long 3215359892
+ .long 4130528508
+ .long 3215422552
+ .long 813954767
+ .long 3215485096
+ .long 248046571
+ .long 3215547523
+ .long 4288926261
+ .long 3215609833
+ .long 1897492927
+ .long 3215672029
+ .long 3499237165
+ .long 3215734109
+ .long 2329611090
+ .long 3215796075
+ .long 203907094
+ .long 3215857927
+ .long 3222364838
+ .long 3215919664
+ .long 295408387
+ .long 3215981289
+ .long 899212401
+ .long 3216012696
+ .long 2606049022
+ .long 3216043395
+ .long 4003691233
+ .long 3216074038
+ .long 1675303236
+ .long 3216104626
+ .long 789189655
+ .long 3216135158
+ .long 2213928479
+ .long 3216165634
+ .long 2518405585
+ .long 3216196055
+ .long 2561783534
+ .long 3216226421
+ .long 3198568176
+ .long 3216256732
+ .long 983674944
+ .long 3216286989
+ .long 1057364031
+ .long 3216317191
+ .long 4260371496
+ .long 3216347338
+ .long 2838974660
+ .long 3216377432
+ .long 1919860988
+ .long 3216407472
+ .long 2330291020
+ .long 3216437458
+ .long 598130195
+ .long 3216467391
+ .long 1836782285
+ .long 3216497270
+ .long 2565351466
+ .long 3216527096
+ .long 3593575201
+ .long 3216556869
+ .long 1431920350
+ .long 3216586590
+ .long 1176515501
+ .long 3216616258
+ .long 3624279252
+ .long 3216645873
+ .long 977982819
+ .long 3216675437
+ .long 2616083454
+ .long 3216704948
+ .long 733015457
+ .long 3216734408
+ .long 403990373
+ .long 3216763816
+ .long 2405156675
+ .long 3216793172
+ .long 3213628385
+ .long 3216822477
+ .long 3597448029
+ .long 3216851731
+ .long 25680167
+ .long 3216880935
+ .long 1848308454
+ .long 3216910087
+ .long 1231492199
+ .long 3216939189
+ .long 3222364838
+ .long 3216968240
+ .long 4274224607
+ .long 3216997241
+ .long 836496059
+ .long 3217026193
+ .long 1119829323
+ .long 3217043131
+ .long 315251054
+ .long 3217057557
+ .long 518461891
+ .long 3217071958
+ .long 2094042713
+ .long 3217086334
+ .long 1109735857
+ .long 3217100686
+ .long 2221359788
+ .long 3217115013
+ .long 1492952593
+ .long 3217129316
+ .long 3576653728
+ .long 3217143594
+ .long 237880003
+ .long 3217157849
+ .long 420109003
+ .long 3217172079
+ .long 180120274
+ .long 3217186285
+ .long 4162843939
+ .long 3217200466
+ .long 4126536273
+ .long 3217214624
+ .long 417628115
+ .long 3217228759
+ .long 1970736719
+ .long 3217242869
+ .long 538873716
+ .long 3217256956
+ .long 758227830
+ .long 3217271019
+ .long 2968307242
+ .long 3217285058
+ .long 3211951040
+ .long 3217299074
+ .long 1825275166
+ .long 3217313067
+ .long 3437683677
+ .long 3217327036
+ .long 4086978021
+ .long 3217340982
+ .long 4104270002
+ .long 3217354905
+ .long 3819025464
+ .long 3217368805
+ .long 3559075183
+ .long 3217382682
+ .long 3650625670
+ .long 3217396536
+ .long 123302585
+ .long 3217410368
+ .long 1890030548
+ .long 3217424176
+ .long 682272600
+ .long 3217437962
+ .long 1114811729
+ .long 3217451725
+ .long 3505892050
+ .long 3217465465
+ .long 3877229085
+ .long 3217479183
+ .long 2543954549
+ .long 3217492879
+ .long 4114626469
+ .long 3217506552
+ .long 311370023
+ .long 3217520204
+ .long 34658569
+ .long 3217533833
+ .long 3593519732
+ .long 3217547439
+ .long 2705545195
+ .long 3217561024
+ .long 1971736889
+ .long 3217574587
+ .long 1696647441
+ .long 3217588128
+ .long 2183357019
+ .long 3217601647
+ .long 3733482817
+ .long 3217615144
+ .long 2352221150
+ .long 3217628620
+ .long 2633258676
+ .long 3217642074
+ .long 578912458
+ .long 3217655507
+ .long 780008323
+ .long 3217668918
+ .long 3530988084
+ .long 3217682307
+ .long 534951267
+ .long 3217695676
+ .long 673467853
+ .long 3217709023
+ .long 4236783385
+ .long 3217722348
+ .long 2923827788
+ .long 3217735653
+ .long 1317060595
+ .long 3217748937
+ .long 3997577740
+ .long 3217762199
+ .long 2660218276
+ .long 3217775441
+ .long 1883376699
+ .long 3217788662
+ .long 1949142230
+ .long 3217801862
+ .long 3138274530
+ .long 3217815041
+ .long 1435244737
+ .long 3217828200
+ .long 1413145637
+ .long 3217841338
+ .long 3348797986
+ .long 3217854455
+ .long 3222758658
+ .long 3217867552
+ .long 1309263324
+ .long 3217880629
+ .long 2176234471
+ .long 3217893685
+ .long 1800387473
+ .long 3217906721
+ .long 452140382
+ .long 3217919737
+ .long 2695621757
+ .long 3217932732
+ .long 208809263
+ .long 3217945708
+ .long 1848308454
+ .long 3217958663
+ .long 3584589359
+ .long 3217971598
+ .long 1386895968
+ .long 3217984514
+ .long 4108155659
+ .long 3217997409
+ .long 3420215606
+ .long 3218010285
+ .long 3878621277
+ .long 3218023141
+ .long 1447787319
+ .long 3218035978
+ .long 680874053
+ .long 3218048795
+ .long 1834892843
+ .long 3218061592
+ .long 870713292
+ .long 3218074370
+ .long 1168986141
+ .long 3218083436
+ .long 3245089583
+ .long 3218089805
+ .long 2494877761
+ .long 3218096165
+ .long 3338922950
+ .long 3218102515
+ .long 1607293197
+ .long 3218108856
+ .long 1719424943
+ .long 3218115187
+ .long 3799224547
+ .long 3218121508
+ .long 3675071677
+ .long 3218127820
+ .long 1469757259
+ .long 3218134123
+ .long 1600486820
+ .long 3218140416
+ .long 4188949205
+ .long 3218146699
+ .long 766352567
+ .long 3218152974
+ .long 43231408
+ .long 3218159239
+ .long 2139646042
+ .long 3218165494
+ .long 2880153102
+ .long 3218171740
+ .long 2383743325
+ .long 3218177977
+ .long 768877423
+ .long 3218184205
+ .long 2448456521
+ .long 3218190423
+ .long 3244923387
+ .long 3218196632
+ .long 3275167422
+ .long 3218202832
+ .long 2655560435
+ .long 3218209023
+ .long 1501959692
+ .long 3218215205
+ .long 4224678246
+ .long 3218221377
+ .long 2348618756
+ .long 3218227541
+ .long 283080250
+ .long 3218233696
+ .long 2436859197
+ .long 3218239841
+ .long 333350563
+ .long 3218245978
+ .long 2675321801
+ .long 3218252105
+ .long 985177381
+ .long 3218258224
+ .long 3964700035
+ .long 3218264333
+ .long 3135315249
+ .long 3218270434
+ .long 2902865164
+ .long 3218276526
+ .long 3377742213
+ .long 3218282609
+ .long 374891912
+ .long 3218288684
+ .long 2593684821
+ .long 3218294749
+ .long 1553148222
+ .long 3218300806
+ .long 1656739931
+ .long 3218306854
+ .long 3012481825
+ .long 3218312893
+ .long 1432962538
+ .long 3218318924
+ .long 1320242026
+ .long 3218324946
+ .long 2780952336
+ .long 3218330959
+ .long 1626300240
+ .long 3218336964
+ .long 2256971748
+ .long 3218342960
+ .long 483265518
+ .long 3218348948
+ .long 704964628
+ .long 3218354927
+ .long 3026437244
+ .long 3218360897
+ .long 3256639170
+ .long 3218366859
+ .long 1499050969
+ .long 3218372813
+ .long 2151680465
+ .long 3218378758
+ .long 1022163351
+ .long 3218384695
+ .long 2507634849
+ .long 3218390623
+ .long 2414862975
+ .long 3218396543
+ .long 845152874
+ .long 3218402455
+ .long 2194349235
+ .long 3218408358
+ .long 2267936813
+ .long 3218414253
+ .long 1165944702
+ .long 3218420140
+ .long 3282948707
+ .long 3218426018
+ .long 128204514
+ .long 3218431889
+ .long 390421100
+ .long 3218437751
+ .long 4167959282
+ .long 3218443604
+ .long 2968834018
+ .long 3218449450
+ .long 1185553177
+ .long 3218455288
+ .long 3210217930
+ .long 3218461117
+ .long 549623114
+ .long 3218466939
+ .long 1890030548
+ .long 3218472752
+ .long 3032400188
+ .long 3218478557
+ .long 4072261525
+ .long 3218484354
+ .long 3450874911
+ .long 1070995813
+ .long 2331021804
+ .long 1070990032
+ .long 1029453230
+ .long 1070984259
+ .long 3747176240
+ .long 1070978493
+ .long 1800682930
+ .long 1070972736
+ .long 3686719393
+ .long 1070966986
+ .long 722545241
+ .long 1070961245
+ .long 1405669883
+ .long 1070955511
+ .long 1349079372
+ .long 1070949785
+ .long 461103529
+ .long 1070944067
+ .long 2945413886
+ .long 1070938356
+ .long 121152472
+ .long 1070932654
+ .long 487700860
+ .long 1070926959
+ .long 3954874384
+ .long 1070921271
+ .long 1842920138
+ .long 1070915592
+ .long 2652318780
+ .long 1070909920
+ .long 1999011482
+ .long 1070904256
+ .long 4089234463
+ .long 1070898599
+ .long 244680560
+ .long 1070892951
+ .long 3262235675
+ .long 1070887309
+ .long 169336595
+ .long 1070881676
+ .long 3763576649
+ .long 1070876049
+ .long 1073096258
+ .long 1070870431
+ .long 601221319
+ .long 1070864820
+ .long 2261690268
+ .long 1070859216
+ .long 1673619518
+ .long 1070853620
+ .long 3046403514
+ .long 1070848031
+ .long 1999843716
+ .long 1070842450
+ .long 2744015967
+ .long 1070836876
+ .long 899399508
+ .long 1070831310
+ .long 676744370
+ .long 1070825751
+ .long 1992167703
+ .long 1070820199
+ .long 467152011
+ .long 1070814655
+ .long 313445281
+ .long 1070809118
+ .long 1448157352
+ .long 1070803588
+ .long 3788725476
+ .long 1070798065
+ .long 2957945300
+ .long 1070792550
+ .long 3168871046
+ .long 1070787042
+ .long 44944622
+ .long 1070781542
+ .long 2094830420
+ .long 1070776048
+ .long 647642559
+ .long 1070770562
+ .long 4212681596
+ .long 1070765082
+ .long 4119694493
+ .long 1070759610
+ .long 288676754
+ .long 1070754146
+ .long 1229870791
+ .long 1070748688
+ .long 2568927817
+ .long 1070743237
+ .long 4226775419
+ .long 1070737793
+ .long 1829681364
+ .long 1070732357
+ .long 3889121191
+ .long 1070726927
+ .long 1737005556
+ .long 1070721505
+ .long 3885417029
+ .long 1070716089
+ .long 1666870165
+ .long 1070710681
+ .long 3594048319
+ .long 1070705279
+ .long 1000063738
+ .long 1070699885
+ .long 2398194399
+ .long 1070694497
+ .long 3417111411
+ .long 1070689116
+ .long 3980746691
+ .long 1070683742
+ .long 4013324163
+ .long 1070678375
+ .long 3439358267
+ .long 1070673015
+ .long 2183652476
+ .long 1070667662
+ .long 171297820
+ .long 1070662316
+ .long 1622638721
+ .long 1070656976
+ .long 2168369647
+ .long 1070651643
+ .long 1734435555
+ .long 1070646317
+ .long 247063161
+ .long 1070640998
+ .long 1927726804
+ .long 1070635685
+ .long 2408245143
+ .long 1070630379
+ .long 1615681634
+ .long 1070625080
+ .long 3772343130
+ .long 1070619787
+ .long 215909304
+ .long 1070614502
+ .long 3759169634
+ .long 1070609222
+ .long 1445381777
+ .long 1070603950
+ .long 1792910451
+ .long 1070598684
+ .long 870975437
+ .long 1070590754
+ .long 3194096222
+ .long 1070580248
+ .long 1823716217
+ .long 1070569756
+ .long 913800688
+ .long 1070559277
+ .long 323875369
+ .long 1070548811
+ .long 4208958430
+ .long 1070538357
+ .long 3839688678
+ .long 1070527917
+ .long 3372126730
+ .long 1070517490
+ .long 2667883253
+ .long 1070507076
+ .long 1589083690
+ .long 1070496675
+ .long 4293333010
+ .long 1070486286
+ .long 2053843986
+ .long 1070475911
+ .long 3324205749
+ .long 1070465548
+ .long 3673610217
+ .long 1070455198
+ .long 2966718784
+ .long 1070444861
+ .long 1068692560
+ .long 1070434537
+ .long 2140157205
+ .long 1070424225
+ .long 1752298597
+ .long 1070413926
+ .long 4066729595
+ .long 1070403639
+ .long 360651144
+ .long 1070393366
+ .long 3386588242
+ .long 1070383104
+ .long 127747308
+ .long 1070372856
+ .long 3337621361
+ .long 1070362619
+ .long 380113
+ .long 1070352396
+ .long 2870475188
+ .long 1070342184
+ .long 3227997535
+ .long 1070331985
+ .long 943446189
+ .long 1070321799
+ .long 182758681
+ .long 1070311625
+ .long 817374162
+ .long 1070301463
+ .long 2719198427
+ .long 1070291313
+ .long 1465634365
+ .long 1070281176
+ .long 1224481606
+ .long 1070271051
+ .long 1869032404
+ .long 1070260938
+ .long 3273036717
+ .long 1070250837
+ .long 1015732707
+ .long 1070240749
+ .long 3561713742
+ .long 1070230672
+ .long 2196155141
+ .long 1070220608
+ .long 1089583089
+ .long 1070210556
+ .long 118003300
+ .long 1070200516
+ .long 3452833475
+ .long 1070190487
+ .long 2381031992
+ .long 1070180471
+ .long 1074899573
+ .long 1070170467
+ .long 3707175295
+ .long 1070160474
+ .long 1566132617
+ .long 1070150494
+ .long 3120348377
+ .long 1070140525
+ .long 3953929663
+ .long 1070130568
+ .long 3946380940
+ .long 1070120623
+ .long 2977634725
+ .long 1070110690
+ .long 928049556
+ .long 1070100769
+ .long 1973375279
+ .long 1070090859
+ .long 1699849154
+ .long 1070080961
+ .long 4284063055
+ .long 1070071074
+ .long 1018125008
+ .long 1070061200
+ .long 374428300
+ .long 1070051337
+ .long 2235845747
+ .long 1070041485
+ .long 2190695046
+ .long 1070031645
+ .long 122671437
+ .long 1070021817
+ .long 210845780
+ .long 1070012000
+ .long 2339728060
+ .long 1070002194
+ .long 2099265479
+ .long 1069992400
+ .long 3669742467
+ .long 1069982617
+ .long 2641909617
+ .long 1069972846
+ .long 3196851002
+ .long 1069963086
+ .long 926113142
+ .long 1069953338
+ .long 11572342
+ .long 1069943601
+ .long 340530969
+ .long 1069933875
+ .long 1800682930
+ .long 1069924160
+ .long 4280111857
+ .long 1069914456
+ .long 3372322013
+ .long 1069904764
+ .long 3261138386
+ .long 1069895083
+ .long 3835803021
+ .long 1069885413
+ .long 690973253
+ .long 1069875755
+ .long 2306589128
+ .long 1069866107
+ .long 4278067876
+ .long 1069856470
+ .long 2201204065
+ .long 1069846845
+ .long 262102455
+ .long 1069837231
+ .long 2647241692
+ .long 1069827627
+ .long 658570708
+ .long 1069818035
+ .long 2778278092
+ .long 1069808453
+ .long 309052031
+ .long 1069798883
+ .long 1733817001
+ .long 1069789323
+ .long 2650961017
+ .long 1069779774
+ .long 2954203158
+ .long 1069770236
+ .long 2537624622
+ .long 1069760709
+ .long 1295667077
+ .long 1069751193
+ .long 3418098326
+ .long 1069741687
+ .long 210141498
+ .long 1069732193
+ .long 157244505
+ .long 1069722709
+ .long 3155274661
+ .long 1069713235
+ .long 510517079
+ .long 1069703773
+ .long 709476866
+ .long 1069694321
+ .long 3649073763
+ .long 1069684879
+ .long 636640577
+ .long 1069675449
+ .long 159725394
+ .long 1069666029
+ .long 2116286250
+ .long 1069656619
+ .long 2109656884
+ .long 1069647220
+ .long 38479793
+ .long 1069637832
+ .long 96704707
+ .long 1069628454
+ .long 2183652476
+ .long 1069619086
+ .long 1904013563
+ .long 1069609729
+ .long 3452748429
+ .long 1069600382
+ .long 2435216853
+ .long 1069591046
+ .long 3047045639
+ .long 1069581720
+ .long 894257944
+ .long 1069572405
+ .long 173141005
+ .long 1069563100
+ .long 785342784
+ .long 1069553805
+ .long 970708326
+ .long 1069541521
+ .long 2645916898
+ .long 1069522972
+ .long 2106590683
+ .long 1069504444
+ .long 3453588195
+ .long 1069485936
+ .long 2198475040
+ .long 1069467449
+ .long 2443390270
+ .long 1069448982
+ .long 3996141691
+ .long 1069430535
+ .long 2370203065
+ .long 1069412109
+ .long 1669613218
+ .long 1069393703
+ .long 1704071394
+ .long 1069375317
+ .long 2283901796
+ .long 1069356951
+ .long 3220050856
+ .long 1069338605
+ .long 29117219
+ .long 1069320280
+ .long 1113218225
+ .long 1069301974
+ .long 1990183441
+ .long 1069283688
+ .long 2473421172
+ .long 1069265422
+ .long 2376948508
+ .long 1069247176
+ .long 1515388672
+ .long 1069228950
+ .long 3998935692
+ .long 1069210743
+ .long 1053482595
+ .long 1069192557
+ .long 1085389880
+ .long 1069174390
+ .long 3911679148
+ .long 1069156242
+ .long 760030536
+ .long 1069138115
+ .long 38583924
+ .long 1069120007
+ .long 1566132617
+ .long 1069101918
+ .long 867088104
+ .long 1069083849
+ .long 2056379433
+ .long 1069065799
+ .long 659581512
+ .long 1069047769
+ .long 792781808
+ .long 1069029758
+ .long 2277675977
+ .long 1069011766
+ .long 641565395
+ .long 1068993794
+ .long 2256601
+ .long 1068975841
+ .long 183156961
+ .long 1068957907
+ .long 1008239542
+ .long 1068939992
+ .long 2302040698
+ .long 1068922096
+ .long 3889657667
+ .long 1068904219
+ .long 1301778891
+ .long 1068886362
+ .long 2954550821
+ .long 1068868523
+ .long 84804484
+ .long 1068850704
+ .long 1109791498
+ .long 1068832903
+ .long 1562410668
+ .long 1068815121
+ .long 1271074840
+ .long 1068797358
+ .long 64741293
+ .long 1068779614
+ .long 2067876735
+ .long 1068761888
+ .long 2815553124
+ .long 1068744181
+ .long 2138347284
+ .long 1068726493
+ .long 4162338635
+ .long 1068708823
+ .long 129237761
+ .long 1068691173
+ .long 2756122533
+ .long 1068673540
+ .long 3285762921
+ .long 1068655926
+ .long 1551389854
+ .long 1068638331
+ .long 1681725707
+ .long 1068620754
+ .long 3511047527
+ .long 1068603195
+ .long 2579184841
+ .long 1068585655
+ .long 3016419377
+ .long 1068568133
+ .long 363613719
+ .long 1068550630
+ .long 3047045639
+ .long 1068533144
+ .long 2313634884
+ .long 1068515677
+ .long 296456961
+ .long 1068497513
+ .long 1367328035
+ .long 1068462651
+ .long 3221665916
+ .long 1068427825
+ .long 1242258971
+ .long 1068393036
+ .long 3697798734
+ .long 1068358282
+ .long 1678104687
+ .long 1068323565
+ .long 3453858508
+ .long 1068288883
+ .long 116861598
+ .long 1068254238
+ .long 4234736672
+ .long 1068219627
+ .long 2606283437
+ .long 1068185053
+ .long 3506114812
+ .long 1068150514
+ .long 2324914545
+ .long 1068116011
+ .long 3044269692
+ .long 1068081543
+ .long 1056797460
+ .long 1068047111
+ .long 346010435
+ .long 1068012714
+ .long 601410756
+ .long 1067978352
+ .long 1513453498
+ .long 1067944025
+ .long 2773542775
+ .long 1067909733
+ .long 4074027864
+ .long 1067875476
+ .long 813232056
+ .long 1067841255
+ .long 1275317999
+ .long 1067807068
+ .long 860480111
+ .long 1067772916
+ .long 3559777258
+ .long 1067738798
+ .long 480292498
+ .long 1067704716
+ .long 4204867691
+ .long 1067670667
+ .long 1547459502
+ .long 1067636654
+ .long 797775935
+ .long 1067602675
+ .long 1656501562
+ .long 1067568730
+ .long 3825228429
+ .long 1067534819
+ .long 2711485098
+ .long 1067500943
+ .long 2313634884
+ .long 1067467101
+ .long 376973398
+ .long 1067416219
+ .long 672386641
+ .long 1067348671
+ .long 630691842
+ .long 1067281191
+ .long 3960777458
+ .long 1067213778
+ .long 1488394470
+ .long 1067146434
+ .long 1220920383
+ .long 1067079157
+ .long 2577548405
+ .long 1067011947
+ .long 684247743
+ .long 1066944805
+ .long 3553625811
+ .long 1066877729
+ .long 2020150230
+ .long 1066810721
+ .long 4099880293
+ .long 1066743779
+ .long 630721729
+ .long 1066676905
+ .long 3927125538
+ .long 1066610096
+ .long 535440936
+ .long 1066543355
+ .long 2773516144
+ .long 1066476679
+ .long 1486051399
+ .long 1066410070
+ .long 808661260
+ .long 1066285262
+ .long 2227658502
+ .long 1066152307
+ .long 1813447778
+ .long 1066019484
+ .long 2743640746
+ .long 1065886792
+ .long 3904192454
+ .long 1065754231
+ .long 4184355568
+ .long 1065621801
+ .long 2476667369
+ .long 1065489502
+ .long 1971904113
+ .long 1065357333
+ .long 3138267131
+ .long 1065097372
+ .long 341338964
+ .long 1064833554
+ .long 1954052322
+ .long 1064569994
+ .long 1498975029
+ .long 1064306693
+ .long 2190050752
+ .long 1063782660
+ .long 1440057502
+ .long 1063257089
+ .long 1432705161
+ .long 1062208000
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4227858432
+ .long 4294967295
+ .long 4227858432
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1082564608
+ .long 0
+ .long 1082564608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1083176960
+ .long 0
+ .long 1083176960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1083174912
+ .long 0
+ .long 1083174912
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 2146435072
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070858240
+ .long 0
+ .long 1070858240
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070694400
+ .long 0
+ .long 1070694400
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070563328
+ .long 0
+ .long 1070563328
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 2146435071
+ .long 4294967295
+ .long 2146435071
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1063256064
+ .long 0
+ .long 1063256064
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 55574528
+ .long 0
+ .long 55574528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 3220176896
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 0
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .type __svml_datanh_data_internal,@object
+ .size __svml_datanh_data_internal,14784
+ .align 16
+
+.FLT_26:
+ .long 0x00000000,0x43380000,0x00000000,0x43380000
+ .type .FLT_26,@object
+ .size .FLT_26,16
+ .align 8
+
+__datanh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __datanh_la_CoutTab,@object
+ .size __datanh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized atanh, vector length is 4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVdN4v_atanh _ZGVdN4v_atanh_sse_wrapper
+#include "../svml_d_atanh4_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized atanh, vector length is 4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVdN4v_atanh
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN4v_atanh, __GI__ZGVdN4v_atanh, __redirect__ZGVdN4v_atanh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,5080 @@
+/* Function atanh vectorized with AVX2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVdN4v_atanh_avx2)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $384, %rsp
+ lea -4218816+__svml_datanh_data_internal(%rip), %rax
+ vmovupd 12928+__svml_datanh_data_internal(%rip), %ymm7
+ vmovups %ymm11, 192(%rsp)
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+/* Load the constant 1 and a sign mask */
+ vmovupd 12864+__svml_datanh_data_internal(%rip), %ymm11
+ vmovups %ymm12, 224(%rsp)
+ vmovups %ymm13, 256(%rsp)
+ vmovups %ymm14, 288(%rsp)
+ vmovups %ymm9, 32(%rsp)
+ vmovups %ymm8, 96(%rsp)
+ vmovups %ymm15, 320(%rsp)
+ vmovups %ymm10, 160(%rsp)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+ vmovapd %ymm0, %ymm12
+
+/* Strip off the sign, so treat X as positive until right at the end */
+ vandpd %ymm7, %ymm12, %ymm1
+ vsubpd %ymm1, %ymm11, %ymm6
+
+/*
+ * Check whether |X| < 1, in which case we use the main function.
+ * Otherwise set the rangemask so that the callout will get used.
+ * Note that this will also use the callout for NaNs since not(NaN < 1).
+ */
+ vcmpnlt_uqpd %ymm11, %ymm1, %ymm5
+ vcmplt_oqpd 14592+__svml_datanh_data_internal(%rip), %ymm1, %ymm10
+ vsubpd %ymm6, %ymm11, %ymm2
+
+/*
+ * Compute V = 2 * X trivially, and UHi + U_lo = 1 - X in two pieces,
+ * the upper part UHi being <= 41 bits long. Then we have
+ * atanh(X) = 1/2 * log((1 + X) / (1 - X)) = 1/2 * log1p(V / (UHi + ULo)).
+ */
+ vaddpd %ymm1, %ymm1, %ymm0
+ vcvtpd2ps %ymm6, %xmm3
+ vsubpd %ymm1, %ymm2, %ymm15
+ vrcpps %xmm3, %xmm13
+ vmovapd %ymm12, %ymm4
+ vfmadd213pd %ymm12, %ymm12, %ymm4
+ vcvtps2pd %xmm13, %ymm14
+
+/* Record the sign for eventual reincorporation. */
+ vandpd 14144+__svml_datanh_data_internal(%rip), %ymm12, %ymm9
+
+/* Or the sign bit in with the tiny result to handle atanh(-0) correctly */
+ vorpd %ymm9, %ymm4, %ymm8
+ vandpd 14272+__svml_datanh_data_internal(%rip), %ymm14, %ymm4
+
+/* No need to split dU when FMA is available */
+ vfnmadd213pd %ymm11, %ymm4, %ymm6
+ vfnmadd231pd %ymm4, %ymm15, %ymm6
+
+/* 2^ (-10-exp(X) ) */
+ vmovupd 13504+__svml_datanh_data_internal(%rip), %ymm15
+
+/*
+ * Compute D = E + E^2 + E^3 + E^4 + E^5
+ * = E + (E + E^2) (E + E * E^2)
+ * Only saves when FMA is available
+ */
+ vmovapd %ymm11, %ymm1
+ vmovapd %ymm6, %ymm3
+ vfmadd231pd %ymm6, %ymm6, %ymm1
+ vfmadd213pd %ymm6, %ymm6, %ymm3
+ vfmadd213pd %ymm11, %ymm1, %ymm3
+ vmovmskpd %ymm5, %edx
+
+/*
+ * Split V as well into upper 41 bits and lower part, so that we can get
+ * a preliminary quotient estimate without rounding error.
+ */
+ vandpd 14464+__svml_datanh_data_internal(%rip), %ymm0, %ymm5
+ vsubpd %ymm5, %ymm0, %ymm2
+
+/* Hence get initial quotient estimate QHi + QLo = R * VHi + R * VLo */
+ vmulpd %ymm5, %ymm4, %ymm14
+ vmulpd %ymm3, %ymm6, %ymm0
+ vmulpd %ymm2, %ymm4, %ymm13
+
+/*
+ * Compute R * (VHi + VLo) * (1 + E + E^2 + E^3 + E^4 + E^5)
+ * = R * (VHi + VLo) * (1 + D)
+ * = QHi + (QHi * D + QLo + QLo * D)
+ */
+ vmulpd %ymm0, %ymm14, %ymm6
+ vfmadd213pd %ymm13, %ymm13, %ymm0
+ vaddpd %ymm0, %ymm6, %ymm5
+
+/*
+ * Now finally accumulate the high and low parts of the
+ * argument to log1p, H + L, with a final compensated summation.
+ */
+ vaddpd %ymm5, %ymm14, %ymm4
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * later incorporating L into the reduced argument.
+ * compute 1+x as high, low parts
+ */
+ vmaxpd %ymm4, %ymm11, %ymm2
+ vminpd %ymm4, %ymm11, %ymm1
+ vandpd %ymm7, %ymm4, %ymm7
+ vcmplt_oqpd 12992+__svml_datanh_data_internal(%rip), %ymm7, %ymm0
+ vaddpd %ymm1, %ymm2, %ymm5
+ vorpd 13056+__svml_datanh_data_internal(%rip), %ymm0, %ymm4
+ vandpd %ymm4, %ymm5, %ymm5
+
+/* preserve mantissa, set input exponent to 2^(-10) */
+ vandpd 12544+__svml_datanh_data_internal(%rip), %ymm5, %ymm6
+ vorpd 12608+__svml_datanh_data_internal(%rip), %ymm6, %ymm7
+
+/* reciprocal approximation good to at least 11 bits */
+ vcvtpd2ps %ymm7, %xmm13
+ vsubpd %ymm5, %ymm2, %ymm3
+
+/* exponent bits */
+ vpsrlq $20, %ymm5, %ymm2
+ vrcpps %xmm13, %xmm14
+ vaddpd %ymm3, %ymm1, %ymm4
+ vcvtps2pd %xmm14, %ymm3
+
+/* round reciprocal to nearest integer, will have 1+9 mantissa bits */
+ vroundpd $0, %ymm3, %ymm3
+
+/*
+ * prepare table index
+ * table lookup
+ */
+ vpsrlq $40, %ymm3, %ymm13
+
+/* exponent of X needed to scale Xl */
+ vandps 13440+__svml_datanh_data_internal(%rip), %ymm5, %ymm0
+ vpsubq %ymm0, %ymm15, %ymm6
+
+/* Finally, halve the result and reincorporate the sign */
+ vxorpd 13952+__svml_datanh_data_internal(%rip), %ymm9, %ymm9
+ vmovd %xmm13, %ecx
+ vextractf128 $1, %ymm13, %xmm0
+ movslq %ecx, %rcx
+ vpextrd $2, %xmm13, %r8d
+ movslq %r8d, %r8
+ vmovd %xmm0, %r9d
+ vmovsd (%rax,%rcx), %xmm14
+ vmovhpd (%rax,%r8), %xmm14, %xmm15
+
+/* exponent*log(2.0) */
+ vmovupd 13248+__svml_datanh_data_internal(%rip), %ymm14
+ movslq %r9d, %r9
+ vpextrd $2, %xmm0, %r10d
+ movslq %r10d, %r10
+ vextractf128 $1, %ymm2, %xmm1
+ vshufps $221, %xmm1, %xmm2, %xmm7
+
+/* scale DblRcp */
+ vmulpd %ymm6, %ymm3, %ymm2
+ vmovsd (%rax,%r9), %xmm6
+
+/* biased exponent in DP format */
+ vcvtdq2pd %xmm7, %ymm1
+ vmovhpd (%rax,%r10), %xmm6, %xmm7
+ vcmplt_oqpd %ymm3, %ymm14, %ymm3
+
+/* argument reduction */
+ vfmsub213pd %ymm11, %ymm2, %ymm5
+ vmulpd %ymm2, %ymm4, %ymm11
+ vmovupd 12480+__svml_datanh_data_internal(%rip), %ymm2
+ vaddpd %ymm11, %ymm5, %ymm5
+ vandpd 13312+__svml_datanh_data_internal(%rip), %ymm3, %ymm3
+ vorpd 13376+__svml_datanh_data_internal(%rip), %ymm3, %ymm6
+ vsubpd %ymm6, %ymm1, %ymm1
+ vfmadd213pd 12512+__svml_datanh_data_internal(%rip), %ymm5, %ymm2
+ vmulpd %ymm5, %ymm5, %ymm4
+ vmulpd 13568+__svml_datanh_data_internal(%rip), %ymm1, %ymm3
+
+/* polynomial */
+ vmovupd 12416+__svml_datanh_data_internal(%rip), %ymm1
+ vfmadd213pd 12448+__svml_datanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213pd %ymm2, %ymm4, %ymm1
+
+/* reconstruction */
+ vfmadd213pd %ymm5, %ymm4, %ymm1
+ vinsertf128 $1, %xmm7, %ymm15, %ymm0
+ vaddpd %ymm1, %ymm0, %ymm0
+ vaddpd %ymm0, %ymm3, %ymm6
+ vmulpd %ymm6, %ymm9, %ymm0
+ vblendvpd %ymm10, %ymm8, %ymm0, %ymm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ vmovups 96(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 32(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 160(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 192(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 224(%rsp), %ymm12
+ cfi_restore(95)
+ vmovups 256(%rsp), %ymm13
+ cfi_restore(96)
+ vmovups 288(%rsp), %ymm14
+ cfi_restore(97)
+ vmovups 320(%rsp), %ymm15
+ cfi_restore(98)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_3:
+ vmovupd %ymm12, 64(%rsp)
+ vmovupd %ymm0, 128(%rsp)
+ je .LBL_1_2
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $4, %r12d
+ jl .LBL_1_7
+ movq 8(%rsp), %rsi
+ cfi_restore(4)
+ movq (%rsp), %rdi
+ cfi_restore(5)
+ movq 24(%rsp), %r12
+ cfi_restore(12)
+ movq 16(%rsp), %r13
+ cfi_restore(13)
+ vmovupd 128(%rsp), %ymm0
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ call __svml_datanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVdN4v_atanh_avx2)
+
+ .align 16,0x90
+
+__svml_datanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ movb 7(%rdi), %dl
+ andb $127, %dl
+ movsd %xmm0, -8(%rsp)
+ cmpl $32752, %eax
+ je .LBL_2_6
+
+.LBL_2_2:
+ cmpl $0, -8(%rsp)
+ jne .LBL_2_5
+ movb %dl, -1(%rsp)
+ cmpl $1072693248, -4(%rsp)
+ jne .LBL_2_5
+ divsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_5:
+ movsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 16+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ testl $1048575, 4(%rdi)
+ jne .LBL_2_8
+ cmpl $0, (%rdi)
+ je .LBL_2_2
+
+.LBL_2_8:
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_datanh_cout_rare_internal,@function
+ .size __svml_datanh_cout_rare_internal,.-__svml_datanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datanh_data_internal:
+ .long 3715793664
+ .long 3230016299
+ .long 4013928704
+ .long 3189565726
+ .long 3699038248
+ .long 3230016303
+ .long 4255595370
+ .long 3189567439
+ .long 3648859040
+ .long 3230016307
+ .long 1732833791
+ .long 3189567296
+ .long 3565385952
+ .long 3230016311
+ .long 2485752410
+ .long 3189567274
+ .long 3448748152
+ .long 3230016315
+ .long 3514744523
+ .long 3189567800
+ .long 3299074072
+ .long 3230016319
+ .long 3686511262
+ .long 3189567474
+ .long 3116491376
+ .long 3230016323
+ .long 716063611
+ .long 3189567908
+ .long 2901127016
+ .long 3230016327
+ .long 354437295
+ .long 3189567291
+ .long 2653107184
+ .long 3230016331
+ .long 3777462366
+ .long 3189567264
+ .long 2372557360
+ .long 3230016335
+ .long 3590663412
+ .long 3189567498
+ .long 2059602304
+ .long 3230016339
+ .long 1680795031
+ .long 3189567428
+ .long 1714366048
+ .long 3230016343
+ .long 2010344982
+ .long 3189567986
+ .long 1336971936
+ .long 3230016347
+ .long 166254822
+ .long 3189567184
+ .long 927542568
+ .long 3230016351
+ .long 59552610
+ .long 3189567972
+ .long 486199888
+ .long 3230016355
+ .long 2268824919
+ .long 3189567664
+ .long 13065112
+ .long 3230016359
+ .long 3005381643
+ .long 3189567835
+ .long 3803226080
+ .long 3230016362
+ .long 4018973165
+ .long 3189567825
+ .long 3266868056
+ .long 3230016366
+ .long 3693925101
+ .long 3189567457
+ .long 2699077504
+ .long 3230016370
+ .long 4005905743
+ .long 3189567697
+ .long 2099972936
+ .long 3230016374
+ .long 3580935118
+ .long 3189567215
+ .long 1469672176
+ .long 3230016378
+ .long 2928784295
+ .long 3189567129
+ .long 808292392
+ .long 3230016382
+ .long 674298833
+ .long 3189567553
+ .long 115950104
+ .long 3230016386
+ .long 2555938320
+ .long 3189567208
+ .long 3687728456
+ .long 3230016389
+ .long 532458218
+ .long 3189567130
+ .long 2933808064
+ .long 3230016393
+ .long 3888913110
+ .long 3189567192
+ .long 2149270784
+ .long 3230016397
+ .long 2365955494
+ .long 3189567756
+ .long 1334230552
+ .long 3230016401
+ .long 3325722981
+ .long 3189567206
+ .long 488800640
+ .long 3230016405
+ .long 1496133617
+ .long 3189567683
+ .long 3908061016
+ .long 3230016408
+ .long 1824836379
+ .long 3189567490
+ .long 3002189112
+ .long 3230016412
+ .long 1222174320
+ .long 3189567837
+ .long 2066263648
+ .long 3230016416
+ .long 2472769660
+ .long 3189567285
+ .long 1100395408
+ .long 3230016420
+ .long 447932460
+ .long 3189567455
+ .long 104694584
+ .long 3230016424
+ .long 1006807684
+ .long 3189567460
+ .long 3374238048
+ .long 3230016427
+ .long 4121834935
+ .long 3189567556
+ .long 2319200184
+ .long 3230016431
+ .long 3019906587
+ .long 3189567664
+ .long 1234656664
+ .long 3230016435
+ .long 3882744783
+ .long 3189567930
+ .long 120715280
+ .long 3230016439
+ .long 1927363170
+ .long 3189567242
+ .long 3272450504
+ .long 3230016442
+ .long 8203115
+ .long 3189567876
+ .long 2100034368
+ .long 3230016446
+ .long 1260625560
+ .long 3189567855
+ .long 898540192
+ .long 3230016450
+ .long 1791679111
+ .long 3189567639
+ .long 3963040720
+ .long 3230016453
+ .long 831133439
+ .long 3189567590
+ .long 2703706240
+ .long 3230016457
+ .long 2803140504
+ .long 3189567482
+ .long 1415608352
+ .long 3230016461
+ .long 2955844462
+ .long 3189568058
+ .long 98850816
+ .long 3230016465
+ .long 4017967070
+ .long 3189567455
+ .long 3048504096
+ .long 3230016468
+ .long 3974385451
+ .long 3189567871
+ .long 1674736240
+ .long 3230016472
+ .long 2424114556
+ .long 3189567887
+ .long 272616624
+ .long 3230016476
+ .long 4261883032
+ .long 3189567073
+ .long 3137214056
+ .long 3230016479
+ .long 3716750895
+ .long 3189567522
+ .long 1678694944
+ .long 3230016483
+ .long 498025304
+ .long 3189567180
+ .long 192127016
+ .long 3230016487
+ .long 1011852160
+ .long 3189567511
+ .long 2972577480
+ .long 3230016490
+ .long 558940916
+ .long 3189567850
+ .long 1430211120
+ .long 3230016494
+ .long 2550865739
+ .long 3189567935
+ .long 4155061376
+ .long 3230016497
+ .long 1930847170
+ .long 3189567371
+ .long 2557291968
+ .long 3230016501
+ .long 1716354804
+ .long 3189567130
+ .long 931967984
+ .long 3230016505
+ .long 2729403392
+ .long 3189567981
+ .long 3574154016
+ .long 3230016508
+ .long 1067280599
+ .long 3189567890
+ .long 1894012232
+ .long 3230016512
+ .long 2094260282
+ .long 3189567604
+ .long 186606176
+ .long 3230016516
+ .long 3897933165
+ .long 3189568046
+ .long 2746998904
+ .long 3230016519
+ .long 1935720459
+ .long 3189567701
+ .long 985351064
+ .long 3230016523
+ .long 2170344821
+ .long 3189567164
+ .long 3491691984
+ .long 3230016526
+ .long 4220979537
+ .long 3189567547
+ .long 1676181328
+ .long 3230016530
+ .long 1953924393
+ .long 3189567854
+ .long 4128847448
+ .long 3230016533
+ .long 1689829067
+ .long 3189567468
+ .long 2259849008
+ .long 3230016537
+ .long 2367753130
+ .long 3189567619
+ .long 364246088
+ .long 3230016541
+ .long 2263309073
+ .long 3189567722
+ .long 2737098280
+ .long 3230016544
+ .long 2366756869
+ .long 3189567856
+ .long 788562816
+ .long 3230016548
+ .long 2294653975
+ .long 3189567145
+ .long 3108665616
+ .long 3230016551
+ .long 1786494117
+ .long 3189567254
+ .long 1107562960
+ .long 3230016555
+ .long 3655887416
+ .long 3189567689
+ .long 3375279848
+ .long 3230016558
+ .long 1178948625
+ .long 3189567241
+ .long 1321971608
+ .long 3230016562
+ .long 1620080441
+ .long 3189567466
+ .long 3537662304
+ .long 3230016565
+ .long 154455618
+ .long 3189567981
+ .long 1432506360
+ .long 3230016569
+ .long 3128192125
+ .long 3189567889
+ .long 3596526920
+ .long 3230016572
+ .long 2026842750
+ .long 3189567212
+ .long 1439877480
+ .long 3230016576
+ .long 1384431897
+ .long 3189567284
+ .long 3552580280
+ .long 3230016579
+ .long 1999983129
+ .long 3189568079
+ .long 1344787944
+ .long 3230016583
+ .long 4035436820
+ .long 3189567579
+ .long 3406521808
+ .long 3230016586
+ .long 77799817
+ .long 3189567285
+ .long 1147933592
+ .long 3230016590
+ .long 1261060207
+ .long 3189567477
+ .long 3159043768
+ .long 3230016593
+ .long 2102717775
+ .long 3189567605
+ .long 850003184
+ .long 3230016597
+ .long 161472469
+ .long 3189567688
+ .long 2810831440
+ .long 3230016600
+ .long 1937336881
+ .long 3189567665
+ .long 451678520
+ .long 3230016604
+ .long 2268353549
+ .long 3189567773
+ .long 2362563168
+ .long 3230016607
+ .long 1785871595
+ .long 3189567889
+ .long 4248601816
+ .long 3230016610
+ .long 2434669991
+ .long 3189567898
+ .long 1814910472
+ .long 3230016614
+ .long 2666999375
+ .long 3189568058
+ .long 3651506624
+ .long 3230016617
+ .long 1033139811
+ .long 3189567312
+ .long 1168538136
+ .long 3230016621
+ .long 4004618418
+ .long 3189567740
+ .long 2956021672
+ .long 3230016624
+ .long 3799928764
+ .long 3189567751
+ .long 424104288
+ .long 3230016628
+ .long 3650233137
+ .long 3189567549
+ .long 2162801816
+ .long 3230016631
+ .long 437313833
+ .long 3189567438
+ .long 3877227800
+ .long 3230016634
+ .long 2138293494
+ .long 3189567140
+ .long 1272495376
+ .long 3230016638
+ .long 2891370752
+ .long 3189567168
+ .long 2938619176
+ .long 3230016641
+ .long 1704142730
+ .long 3189567114
+ .long 285744240
+ .long 3230016645
+ .long 500817607
+ .long 3189568035
+ .long 1903884424
+ .long 3230016648
+ .long 3102571944
+ .long 3189567668
+ .long 3498151272
+ .long 3230016651
+ .long 2374193154
+ .long 3189567933
+ .long 773655960
+ .long 3230016655
+ .long 2898331636
+ .long 3189568089
+ .long 2320411168
+ .long 3230016658
+ .long 1983295500
+ .long 3189567113
+ .long 3843527280
+ .long 3230016661
+ .long 2132853542
+ .long 3189567093
+ .long 1048114320
+ .long 3230016665
+ .long 3551155364
+ .long 3189567407
+ .long 2524183824
+ .long 3230016668
+ .long 2564000663
+ .long 3189567090
+ .long 3976845048
+ .long 3230016671
+ .long 361581803
+ .long 3189567196
+ .long 1111206880
+ .long 3230016675
+ .long 696765230
+ .long 3189568040
+ .long 2517279744
+ .long 3230016678
+ .long 941542475
+ .long 3189567463
+ .long 3900171776
+ .long 3230016681
+ .long 2377895552
+ .long 3189567282
+ .long 964990760
+ .long 3230016685
+ .long 1173605489
+ .long 3189567454
+ .long 2301746008
+ .long 3230016688
+ .long 3096720313
+ .long 3189567400
+ .long 3615544576
+ .long 3230016691
+ .long 1942008121
+ .long 3189567335
+ .long 611493160
+ .long 3230016695
+ .long 3375481119
+ .long 3189567537
+ .long 1879599992
+ .long 3230016698
+ .long 4103239143
+ .long 3189567624
+ .long 3124971056
+ .long 3230016701
+ .long 3773474925
+ .long 3189567869
+ .long 52711992
+ .long 3230016705
+ .long 2465315445
+ .long 3189567444
+ .long 1252829960
+ .long 3230016708
+ .long 1041581158
+ .long 3189567781
+ .long 2430429904
+ .long 3230016711
+ .long 166620501
+ .long 3189567739
+ .long 3585583704
+ .long 3230016714
+ .long 2379237630
+ .long 3189567984
+ .long 423395616
+ .long 3230016718
+ .long 134834559
+ .long 3189567178
+ .long 1533871416
+ .long 3230016721
+ .long 1449318760
+ .long 3189567373
+ .long 2622114680
+ .long 3230016724
+ .long 3042372984
+ .long 3189567127
+ .long 3688195920
+ .long 3230016727
+ .long 1265290101
+ .long 3189567921
+ .long 437218048
+ .long 3230016731
+ .long 2248549362
+ .long 3189567262
+ .long 1459185496
+ .long 3230016734
+ .long 1293250365
+ .long 3189567151
+ .long 2459200496
+ .long 3230016737
+ .long 313786605
+ .long 3189567180
+ .long 3437332240
+ .long 3230016740
+ .long 3289151823
+ .long 3189567872
+ .long 98682312
+ .long 3230016744
+ .long 2693758821
+ .long 3189567877
+ .long 1033253848
+ .long 3230016747
+ .long 4237443192
+ .long 3189567301
+ .long 1946147760
+ .long 3230016750
+ .long 4099404586
+ .long 3189567972
+ .long 2837431968
+ .long 3230016753
+ .long 343640666
+ .long 3189567552
+ .long 3707174040
+ .long 3230016756
+ .long 4238401458
+ .long 3189567983
+ .long 260473960
+ .long 3230016760
+ .long 21423548
+ .long 3189567559
+ .long 1087333264
+ .long 3230016763
+ .long 3515278593
+ .long 3189567309
+ .long 1892851296
+ .long 3230016766
+ .long 629106375
+ .long 3189567166
+ .long 2677094384
+ .long 3230016769
+ .long 2048670044
+ .long 3189567227
+ .long 3440128544
+ .long 3230016772
+ .long 3739217292
+ .long 3189568009
+ .long 4182019504
+ .long 3230016775
+ .long 3662039444
+ .long 3189567618
+ .long 607865368
+ .long 3230016779
+ .long 1766486991
+ .long 3189567112
+ .long 1307665824
+ .long 3230016782
+ .long 512689457
+ .long 3189567670
+ .long 1986518392
+ .long 3230016785
+ .long 1704577378
+ .long 3189567760
+ .long 2644487576
+ .long 3230016788
+ .long 4001935135
+ .long 3189567473
+ .long 3281637576
+ .long 3230016791
+ .long 1184452342
+ .long 3189567735
+ .long 3898032312
+ .long 3230016794
+ .long 2714793956
+ .long 3189567464
+ .long 198768096
+ .long 3230016798
+ .long 3657654418
+ .long 3189567905
+ .long 773842856
+ .long 3230016801
+ .long 2809688013
+ .long 3189567736
+ .long 1328352328
+ .long 3230016804
+ .long 390727591
+ .long 3189567393
+ .long 1862359256
+ .long 3230016807
+ .long 1135237925
+ .long 3189567248
+ .long 2375926096
+ .long 3230016810
+ .long 1377572509
+ .long 3189567837
+ .long 2869115032
+ .long 3230016813
+ .long 3148383775
+ .long 3189568032
+ .long 3341987960
+ .long 3230016816
+ .long 3809536738
+ .long 3189567313
+ .long 3794606472
+ .long 3230016819
+ .long 4243445934
+ .long 3189568034
+ .long 4227031920
+ .long 3230016822
+ .long 1302642088
+ .long 3189567451
+ .long 344358048
+ .long 3230016826
+ .long 3239125361
+ .long 3189567151
+ .long 736580224
+ .long 3230016829
+ .long 3753161736
+ .long 3189567129
+ .long 1108791648
+ .long 3230016832
+ .long 624357483
+ .long 3189568045
+ .long 1461052568
+ .long 3230016835
+ .long 3153257064
+ .long 3189567338
+ .long 1793422920
+ .long 3230016838
+ .long 2705820149
+ .long 3189567635
+ .long 2105962400
+ .long 3230016841
+ .long 911564860
+ .long 3189567737
+ .long 2398730424
+ .long 3230016844
+ .long 1086958332
+ .long 3189567948
+ .long 2671786152
+ .long 3230016847
+ .long 1598984535
+ .long 3189567210
+ .long 2925188456
+ .long 3230016850
+ .long 4113385879
+ .long 3189567401
+ .long 3158995968
+ .long 3230016853
+ .long 2426812671
+ .long 3189567396
+ .long 3373267048
+ .long 3230016856
+ .long 3480845679
+ .long 3189567359
+ .long 3568059792
+ .long 3230016859
+ .long 3306230729
+ .long 3189567924
+ .long 3743432056
+ .long 3230016862
+ .long 3853821277
+ .long 3189567317
+ .long 3899441408
+ .long 3230016865
+ .long 2049309148
+ .long 3189567699
+ .long 4036145192
+ .long 3230016868
+ .long 2667321817
+ .long 3189567166
+ .long 4153600472
+ .long 3230016871
+ .long 3540670389
+ .long 3189567114
+ .long 4251864072
+ .long 3230016874
+ .long 404207883
+ .long 3189567310
+ .long 36025272
+ .long 3230016878
+ .long 2837617046
+ .long 3189567103
+ .long 96074976
+ .long 3230016881
+ .long 1231280453
+ .long 3189567669
+ .long 137101976
+ .long 3230016884
+ .long 792492437
+ .long 3189567071
+ .long 159162080
+ .long 3230016887
+ .long 2385525292
+ .long 3189567618
+ .long 162310880
+ .long 3230016890
+ .long 3272051015
+ .long 3189567858
+ .long 146603712
+ .long 3230016893
+ .long 623573538
+ .long 3189567881
+ .long 112095672
+ .long 3230016896
+ .long 2151835939
+ .long 3189567451
+ .long 58841608
+ .long 3230016899
+ .long 958006130
+ .long 3189567217
+ .long 4281863424
+ .long 3230016901
+ .long 549948691
+ .long 3189567863
+ .long 4191280920
+ .long 3230016904
+ .long 4177689987
+ .long 3189567217
+ .long 4082115512
+ .long 3230016907
+ .long 2895765193
+ .long 3189567599
+ .long 3954421112
+ .long 3230016910
+ .long 1055606208
+ .long 3189567799
+ .long 3808251392
+ .long 3230016913
+ .long 1966521217
+ .long 3189567351
+ .long 3643659776
+ .long 3230016916
+ .long 1017382758
+ .long 3189567732
+ .long 3460699480
+ .long 3230016919
+ .long 3485890155
+ .long 3189567410
+ .long 3259423472
+ .long 3230016922
+ .long 2657419170
+ .long 3189567140
+ .long 3039884488
+ .long 3230016925
+ .long 4198858220
+ .long 3189568080
+ .long 2802135064
+ .long 3230016928
+ .long 2343740494
+ .long 3189567869
+ .long 2546227480
+ .long 3230016931
+ .long 2423084215
+ .long 3189567957
+ .long 2272213808
+ .long 3230016934
+ .long 3887273856
+ .long 3189567631
+ .long 1980145888
+ .long 3230016937
+ .long 3992755473
+ .long 3189567251
+ .long 1670075336
+ .long 3230016940
+ .long 722498073
+ .long 3189567389
+ .long 1342053552
+ .long 3230016943
+ .long 3573506400
+ .long 3189567965
+ .long 996131728
+ .long 3230016946
+ .long 714695829
+ .long 3189567392
+ .long 632360808
+ .long 3230016949
+ .long 2816704229
+ .long 3189567846
+ .long 250791552
+ .long 3230016952
+ .long 386951333
+ .long 3189567243
+ .long 4146441768
+ .long 3230016954
+ .long 2155319939
+ .long 3189567580
+ .long 3729427184
+ .long 3230016957
+ .long 4227840137
+ .long 3189567931
+ .long 3294765200
+ .long 3230016960
+ .long 1718354212
+ .long 3189567672
+ .long 2842505696
+ .long 3230016963
+ .long 4243880582
+ .long 3189567656
+ .long 2372698352
+ .long 3230016966
+ .long 3784093842
+ .long 3189567302
+ .long 1885392624
+ .long 3230016969
+ .long 2318733051
+ .long 3189567813
+ .long 1380637784
+ .long 3230016972
+ .long 497929746
+ .long 3189567210
+ .long 858482864
+ .long 3230016975
+ .long 3218883783
+ .long 3189567649
+ .long 318976720
+ .long 3230016978
+ .long 3492652862
+ .long 3189567382
+ .long 4057135272
+ .long 3230016980
+ .long 473724673
+ .long 3189568069
+ .long 3483072376
+ .long 3230016983
+ .long 150485010
+ .long 3189567757
+ .long 2891803552
+ .long 3230016986
+ .long 3028900958
+ .long 3189567173
+ .long 2283376816
+ .long 3230016989
+ .long 321242596
+ .long 3189567822
+ .long 1657840008
+ .long 3230016992
+ .long 151305746
+ .long 3189568029
+ .long 1015240760
+ .long 3230016995
+ .long 2208026401
+ .long 3189567184
+ .long 355626480
+ .long 3230016998
+ .long 2487781842
+ .long 3189567931
+ .long 3974011720
+ .long 3230017000
+ .long 2391142094
+ .long 3189567091
+ .long 3280508896
+ .long 3230017003
+ .long 734457618
+ .long 3189568092
+ .long 2570132168
+ .long 3230017006
+ .long 3070902701
+ .long 3189567794
+ .long 1842928168
+ .long 3230017009
+ .long 1110877923
+ .long 3189567896
+ .long 1098943352
+ .long 3230017012
+ .long 3880360185
+ .long 3189567898
+ .long 338223984
+ .long 3230017015
+ .long 391995809
+ .long 3189567294
+ .long 3855783416
+ .long 3230017017
+ .long 4186345433
+ .long 3189567745
+ .long 3061732952
+ .long 3230017020
+ .long 3682852050
+ .long 3189567081
+ .long 2251085560
+ .long 3230017023
+ .long 3057037137
+ .long 3189567617
+ .long 1423886760
+ .long 3230017026
+ .long 3352664894
+ .long 3189567074
+ .long 580181848
+ .long 3230017029
+ .long 1170568982
+ .long 3189567927
+ .long 4014983272
+ .long 3230017031
+ .long 671148579
+ .long 3189567293
+ .long 3138401368
+ .long 3230017034
+ .long 267496658
+ .long 3189567304
+ .long 2245448192
+ .long 3230017037
+ .long 1285167087
+ .long 3189568066
+ .long 1336168336
+ .long 3230017040
+ .long 4259909589
+ .long 3189567788
+ .long 410606184
+ .long 3230017043
+ .long 1494078902
+ .long 3189568031
+ .long 3763773256
+ .long 3230017045
+ .long 261935754
+ .long 3189567685
+ .long 2805778992
+ .long 3230017048
+ .long 3679585605
+ .long 3189567195
+ .long 1831634536
+ .long 3230017051
+ .long 809066513
+ .long 3189567664
+ .long 841383576
+ .long 3230017054
+ .long 385945238
+ .long 3189567897
+ .long 4130036912
+ .long 3230017056
+ .long 825579909
+ .long 3189567603
+ .long 3107703272
+ .long 3230017059
+ .long 3911295427
+ .long 3189567514
+ .long 2069393104
+ .long 3230017062
+ .long 3473784588
+ .long 3189567461
+ .long 1015149384
+ .long 3230017065
+ .long 629861200
+ .long 3189567515
+ .long 4239982216
+ .long 3230017067
+ .long 2659142760
+ .long 3189567083
+ .long 3153999632
+ .long 3230017070
+ .long 1251680713
+ .long 3189567080
+ .long 2052211384
+ .long 3230017073
+ .long 3168705163
+ .long 3189567992
+ .long 934659776
+ .long 3230017076
+ .long 1674797624
+ .long 3189567952
+ .long 4096354216
+ .long 3230017078
+ .long 437847902
+ .long 3189567971
+ .long 2947402064
+ .long 3230017081
+ .long 4024401533
+ .long 3189567960
+ .long 1782812400
+ .long 3230017084
+ .long 786902458
+ .long 3189567873
+ .long 602626840
+ .long 3230017087
+ .long 2593792633
+ .long 3189567812
+ .long 3701854136
+ .long 3230017089
+ .long 3989721221
+ .long 3189567126
+ .long 2490600968
+ .long 3230017092
+ .long 2545746866
+ .long 3189567591
+ .long 1263875768
+ .long 3230017095
+ .long 3115843521
+ .long 3189567377
+ .long 21719488
+ .long 3230017098
+ .long 1730226063
+ .long 3189567307
+ .long 3059140216
+ .long 3230017100
+ .long 690350922
+ .long 3189567892
+ .long 1786244008
+ .long 3230017103
+ .long 3350998585
+ .long 3189567394
+ .long 498038616
+ .long 3230017106
+ .long 1499123379
+ .long 3189568082
+ .long 3489531672
+ .long 3230017108
+ .long 2598665922
+ .long 3189567118
+ .long 2170828712
+ .long 3230017111
+ .long 2436376826
+ .long 3189567935
+ .long 836937048
+ .long 3230017114
+ .long 1977004902
+ .long 3189568052
+ .long 3782863816
+ .long 3230017116
+ .long 4027224619
+ .long 3189567373
+ .long 2418714096
+ .long 3230017119
+ .long 2616869856
+ .long 3189567271
+ .long 1039494712
+ .long 3230017122
+ .long 3775628133
+ .long 3189567616
+ .long 3940212336
+ .long 3230017124
+ .long 419018052
+ .long 3189567909
+ .long 2530971600
+ .long 3230017127
+ .long 150919657
+ .long 3189567379
+ .long 1106778856
+ .long 3230017130
+ .long 2926254537
+ .long 3189567139
+ .long 3962640312
+ .long 3230017132
+ .long 1610863810
+ .long 3189567216
+ .long 2508660136
+ .long 3230017135
+ .long 1166015244
+ .long 3189567672
+ .long 1039844240
+ .long 3230017138
+ .long 645159638
+ .long 3189567685
+ .long 3851198376
+ .long 3230017140
+ .long 2449439581
+ .long 3189567695
+ .long 2352826264
+ .long 3230017143
+ .long 1619104640
+ .long 3189567458
+ .long 839733360
+ .long 3230017146
+ .long 2427070371
+ .long 3189567165
+ .long 3606924968
+ .long 3230017148
+ .long 2166480890
+ .long 3189567544
+ .long 2064504368
+ .long 3230017151
+ .long 2283025905
+ .long 3189567907
+ .long 507476584
+ .long 3230017154
+ .long 3923356754
+ .long 3189567272
+ .long 3230846472
+ .long 3230017156
+ .long 805331677
+ .long 3189567533
+ .long 1644716880
+ .long 3230017159
+ .long 3790469685
+ .long 3189567406
+ .long 44092384
+ .long 3230017162
+ .long 2689788214
+ .long 3189567653
+ .long 2723977432
+ .long 3230017164
+ .long 2762250221
+ .long 3189567072
+ .long 1094474416
+ .long 3230017167
+ .long 2781925193
+ .long 3189567716
+ .long 3745554800
+ .long 3230017169
+ .long 593120878
+ .long 3189567817
+ .long 2087320704
+ .long 3230017172
+ .long 403414988
+ .long 3189568021
+ .long 414776008
+ .long 3230017175
+ .long 359307328
+ .long 3189567387
+ .long 3022924432
+ .long 3230017177
+ .long 3373547966
+ .long 3189567572
+ .long 1321867688
+ .long 3230017180
+ .long 3978711340
+ .long 3189567805
+ .long 3901576528
+ .long 3230017182
+ .long 2765663238
+ .long 3189568046
+ .long 2172152384
+ .long 3230017185
+ .long 1181150766
+ .long 3189568053
+ .long 428598440
+ .long 3230017188
+ .long 2473022131
+ .long 3189567471
+ .long 2965917728
+ .long 3230017190
+ .long 1621744488
+ .long 3189567971
+ .long 1194211288
+ .long 3230017193
+ .long 2931299013
+ .long 3189567190
+ .long 3703449168
+ .long 3230017195
+ .long 873154950
+ .long 3189568039
+ .long 1903732144
+ .long 3230017198
+ .long 1510784525
+ .long 3189567521
+ .long 90062704
+ .long 3230017201
+ .long 2918231590
+ .long 3189568086
+ .long 2557443240
+ .long 3230017203
+ .long 3329944838
+ .long 3189567475
+ .long 715974088
+ .long 3230017206
+ .long 2679715410
+ .long 3189568021
+ .long 3155624672
+ .long 3230017208
+ .long 1841110143
+ .long 3189567518
+ .long 1286495072
+ .long 3230017211
+ .long 3881638924
+ .long 3189567497
+ .long 3698554440
+ .long 3230017213
+ .long 167906931
+ .long 3189567169
+ .long 1801902600
+ .long 3230017216
+ .long 1468264167
+ .long 3189567597
+ .long 4186508448
+ .long 3230017218
+ .long 2400624638
+ .long 3189567691
+ .long 2262471560
+ .long 3230017221
+ .long 3796182064
+ .long 3189567357
+ .long 324793264
+ .long 3230017224
+ .long 2801238958
+ .long 3189567581
+ .long 2668474776
+ .long 3230017226
+ .long 2273142813
+ .long 3189567436
+ .long 703615288
+ .long 3230017229
+ .long 831867571
+ .long 3189567237
+ .long 3020183048
+ .long 3230017231
+ .long 2238048829
+ .long 3189567595
+ .long 1028277008
+ .long 3230017234
+ .long 1163763070
+ .long 3189567452
+ .long 3317865168
+ .long 3230017236
+ .long 1206450788
+ .long 3189567228
+ .long 1299046216
+ .long 3230017239
+ .long 737162226
+ .long 3189567879
+ .long 3561787920
+ .long 3230017241
+ .long 2433253277
+ .long 3189567901
+ .long 1516188728
+ .long 3230017244
+ .long 3561277099
+ .long 3189567506
+ .long 3752216144
+ .long 3230017246
+ .long 1385095507
+ .long 3189567674
+ .long 1679968384
+ .long 3230017249
+ .long 829462408
+ .long 3189567156
+ .long 3889412704
+ .long 3230017251
+ .long 2939266725
+ .long 3189567673
+ .long 1790647080
+ .long 3230017254
+ .long 4214100827
+ .long 3189567848
+ .long 3973638544
+ .long 3230017256
+ .long 2537954451
+ .long 3189567376
+ .long 1848484816
+ .long 3230017259
+ .long 1128740312
+ .long 3189567098
+ .long 4005152680
+ .long 3230017261
+ .long 1932232434
+ .long 3189568053
+ .long 1853739648
+ .long 3230017264
+ .long 1359710694
+ .long 3189567457
+ .long 3984212256
+ .long 3230017266
+ .long 1268482287
+ .long 3189567990
+ .long 1806667776
+ .long 3230017269
+ .long 839689017
+ .long 3189567631
+ .long 3911072520
+ .long 3230017271
+ .long 3727165601
+ .long 3189567921
+ .long 1707523520
+ .long 3230017274
+ .long 1836550952
+ .long 3189567895
+ .long 3785986872
+ .long 3230017276
+ .long 172951407
+ .long 3189567220
+ .long 1556559360
+ .long 3230017279
+ .long 1166449891
+ .long 3189567294
+ .long 3609206856
+ .long 3230017281
+ .long 28625366
+ .long 3189567222
+ .long 1354025920
+ .long 3230017284
+ .long 4038426582
+ .long 3189567978
+ .long 3380982208
+ .long 3230017286
+ .long 2756284659
+ .long 3189567362
+ .long 1100172048
+ .long 3230017289
+ .long 848830252
+ .long 3189567230
+ .long 3101560856
+ .long 3230017291
+ .long 1868170309
+ .long 3189567423
+ .long 795244752
+ .long 3230017294
+ .long 3128260908
+ .long 3189567885
+ .long 2771188936
+ .long 3230017296
+ .long 1691261279
+ .long 3189567706
+ .long 439489304
+ .long 3230017299
+ .long 2886711298
+ .long 3189567236
+ .long 2390110824
+ .long 3230017301
+ .long 1311431101
+ .long 3189567133
+ .long 33149176
+ .long 3230017304
+ .long 3042183093
+ .long 3189567401
+ .long 1958569120
+ .long 3230017306
+ .long 3174208880
+ .long 3189567462
+ .long 3871433416
+ .long 3230017308
+ .long 302374021
+ .long 3189567243
+ .long 1476804712
+ .long 3230017311
+ .long 712531519
+ .long 3189567241
+ .long 3364647440
+ .long 3230017313
+ .long 3705318448
+ .long 3189567568
+ .long 945056744
+ .long 3230017316
+ .long 2424171915
+ .long 3189568016
+ .long 2807996856
+ .long 3230017318
+ .long 199511961
+ .long 3189567094
+ .long 363562688
+ .long 3230017321
+ .long 3766234060
+ .long 3189567214
+ .long 2201718256
+ .long 3230017323
+ .long 1956195829
+ .long 3189567592
+ .long 4027525584
+ .long 3230017325
+ .long 2891794585
+ .long 3189567375
+ .long 1546046576
+ .long 3230017328
+ .long 843173017
+ .long 3189567760
+ .long 3347244936
+ .long 3230017330
+ .long 1609532414
+ .long 3189567955
+ .long 841215080
+ .long 3230017333
+ .long 3356704285
+ .long 3189567294
+ .long 2617920488
+ .long 3230017335
+ .long 1641729240
+ .long 3189567346
+ .long 87455368
+ .long 3230017338
+ .long 1455753222
+ .long 3189567878
+ .long 1839783016
+ .long 3230017340
+ .long 1936589978
+ .long 3189567944
+ .long 3579964728
+ .long 3230017342
+ .long 1006586129
+ .long 3189567993
+ .long 1013061704
+ .long 3230017345
+ .long 2766825484
+ .long 3189567880
+ .long 2729036928
+ .long 3230017347
+ .long 1888685184
+ .long 3189567954
+ .long 137984104
+ .long 3230017350
+ .long 848046306
+ .long 3189568090
+ .long 1829866024
+ .long 3230017352
+ .long 4178224056
+ .long 3189567750
+ .long 3509743488
+ .long 3230017354
+ .long 2637072474
+ .long 3189567070
+ .long 882677184
+ .long 3230017357
+ .long 3133305384
+ .long 3189567936
+ .long 2538629624
+ .long 3230017359
+ .long 1343200028
+ .long 3189567905
+ .long 4182661312
+ .long 3230017361
+ .long 107195460
+ .long 3189567427
+ .long 1519832648
+ .long 3230017364
+ .long 602154914
+ .long 3189567857
+ .long 3140105848
+ .long 3230017366
+ .long 659160740
+ .long 3189567417
+ .long 453573824
+ .long 3230017369
+ .long 236889930
+ .long 3189567396
+ .long 2050198592
+ .long 3230017371
+ .long 1175634921
+ .long 3189567087
+ .long 3635040168
+ .long 3230017373
+ .long 1241855527
+ .long 3189567941
+ .long 913158504
+ .long 3230017376
+ .long 3947904414
+ .long 3189567477
+ .long 2474515312
+ .long 3230017378
+ .long 1206979822
+ .long 3189567534
+ .long 4024170344
+ .long 3230017380
+ .long 1847397805
+ .long 3189567152
+ .long 1267183240
+ .long 3230017383
+ .long 2916539301
+ .long 3189567754
+ .long 2793515456
+ .long 3230017385
+ .long 2568213263
+ .long 3189568078
+ .long 13259168
+ .long 3230017388
+ .long 3003245330
+ .long 3189567303
+ .long 1516375624
+ .long 3230017390
+ .long 3472633477
+ .long 3189567153
+ .long 3007924104
+ .long 3230017392
+ .long 532406289
+ .long 3189567855
+ .long 192963816
+ .long 3230017395
+ .long 4149310663
+ .long 3189567165
+ .long 1661455728
+ .long 3230017397
+ .long 946970842
+ .long 3189567598
+ .long 3118458864
+ .long 3230017399
+ .long 2040517972
+ .long 3189567254
+ .long 269032128
+ .long 3230017402
+ .long 3669971831
+ .long 3189568072
+ .long 1703136256
+ .long 3230017404
+ .long 2375197389
+ .long 3189567687
+ .long 3125829976
+ .long 3230017406
+ .long 296757744
+ .long 3189567673
+ .long 242171944
+ .long 3230017409
+ .long 611424102
+ .long 3189567452
+ .long 1642122608
+ .long 3230017411
+ .long 1700968423
+ .long 3189567419
+ .long 3030740440
+ .long 3230017413
+ .long 2947762668
+ .long 3189567968
+ .long 113083840
+ .long 3230017416
+ .long 690901756
+ .long 3189567496
+ .long 1479112984
+ .long 3230017418
+ .long 121139903
+ .long 3189567571
+ .long 2833886088
+ .long 3230017420
+ .long 173386055
+ .long 3189567866
+ .long 4177428584
+ .long 3230017422
+ .long 2964718132
+ .long 3189567231
+ .long 1214798496
+ .long 3230017425
+ .long 541562024
+ .long 3189567842
+ .long 2535955680
+ .long 3230017427
+ .long 3368765612
+ .long 3189568076
+ .long 3845958008
+ .long 3230017429
+ .long 3194541507
+ .long 3189567689
+ .long 849863256
+ .long 3230017432
+ .long 3443356552
+ .long 3189567858
+ .long 2137631024
+ .long 3230017434
+ .long 1180679397
+ .long 3189567138
+ .long 3414318912
+ .long 3230017436
+ .long 2261929999
+ .long 3189567651
+ .long 384984464
+ .long 3230017439
+ .long 954057098
+ .long 3189567971
+ .long 1639587024
+ .long 3230017441
+ .long 1346995839
+ .long 3189567263
+ .long 2883183944
+ .long 3230017443
+ .long 3253373727
+ .long 3189567382
+ .long 4115799808
+ .long 3230017445
+ .long 4143791142
+ .long 3189567800
+ .long 1042491824
+ .long 3230017448
+ .long 4240432954
+ .long 3189567700
+ .long 2253218992
+ .long 3230017450
+ .long 1891708033
+ .long 3189568072
+ .long 3453038360
+ .long 3230017452
+ .long 710292621
+ .long 3189567662
+ .long 347006880
+ .long 3230017455
+ .long 2712254611
+ .long 3189567116
+ .long 1525083304
+ .long 3230017457
+ .long 349583280
+ .long 3189568004
+ .long 2692324448
+ .long 3230017459
+ .long 1803227864
+ .long 3189567740
+ .long 3848754312
+ .long 3230017461
+ .long 3644606976
+ .long 3189567826
+ .long 699429536
+ .long 3230017464
+ .long 1067153346
+ .long 3189567751
+ .long 1834308568
+ .long 3230017466
+ .long 1335350692
+ .long 3189567081
+ .long 2958447872
+ .long 3230017468
+ .long 1803696599
+ .long 3189567557
+ .long 4071871152
+ .long 3230017470
+ .long 1232152547
+ .long 3189568017
+ .long 879634736
+ .long 3230017473
+ .long 1455437901
+ .long 3189567512
+ .long 1971696744
+ .long 3230017475
+ .long 3708110750
+ .long 3189567399
+ .long 3053113344
+ .long 3230017477
+ .long 3907324819
+ .long 3189567290
+ .long 4123907920
+ .long 3230017479
+ .long 4080000314
+ .long 3189567141
+ .long 889136480
+ .long 3230017482
+ .long 1286519001
+ .long 3189567298
+ .long 1938756848
+ .long 3230017484
+ .long 1292347423
+ .long 3189567513
+ .long 2977824880
+ .long 3230017486
+ .long 1159725249
+ .long 3189568015
+ .long 4006363664
+ .long 3230017488
+ .long 895621348
+ .long 3189567502
+ .long 729428896
+ .long 3230017491
+ .long 1212894155
+ .long 3189567280
+ .long 1736978096
+ .long 3230017493
+ .long 296117275
+ .long 3189567210
+ .long 2734066816
+ .long 3230017495
+ .long 2463481211
+ .long 3189567796
+ .long 3720717848
+ .long 3230017497
+ .long 76524950
+ .long 3189567159
+ .long 401986584
+ .long 3230017500
+ .long 1718551671
+ .long 3189567216
+ .long 1367830248
+ .long 3230017502
+ .long 3568874946
+ .long 3189567584
+ .long 2323304104
+ .long 3230017504
+ .long 2763456396
+ .long 3189567666
+ .long 3268430632
+ .long 3230017506
+ .long 1208592501
+ .long 3189567715
+ .long 4203232240
+ .long 3230017508
+ .long 4148835618
+ .long 3189567851
+ .long 832763976
+ .long 3230017511
+ .long 610418007
+ .long 3189567082
+ .long 1746982680
+ .long 3230017513
+ .long 3035714190
+ .long 3189567431
+ .long 2650943256
+ .long 3230017515
+ .long 85931336
+ .long 3189567843
+ .long 3544667832
+ .long 3230017517
+ .long 3006685957
+ .long 3189567286
+ .long 133211144
+ .long 3230017520
+ .long 878859600
+ .long 3189567873
+ .long 1006529776
+ .long 3230017522
+ .long 854333969
+ .long 3189567724
+ .long 1869678336
+ .long 3230017524
+ .long 3058646748
+ .long 3189567155
+ .long 2722678648
+ .long 3230017526
+ .long 360733640
+ .long 3189567693
+ .long 3565552488
+ .long 3230017528
+ .long 3015564990
+ .long 3189568013
+ .long 103354256
+ .long 3230017531
+ .long 2286095909
+ .long 3189568081
+ .long 926040176
+ .long 3230017533
+ .long 1899270393
+ .long 3189567137
+ .long 1738664488
+ .long 3230017535
+ .long 1377641292
+ .long 3189567833
+ .long 2541248696
+ .long 3230017537
+ .long 4266686523
+ .long 3189568077
+ .long 3333814224
+ .long 3230017539
+ .long 4018775563
+ .long 3189567218
+ .long 4116382408
+ .long 3230017541
+ .long 3373913644
+ .long 3189567103
+ .long 594007232
+ .long 3230017544
+ .long 2818265402
+ .long 3189568021
+ .long 1356644520
+ .long 3230017546
+ .long 1075601108
+ .long 3189567716
+ .long 2109348112
+ .long 3230017548
+ .long 3342127702
+ .long 3189567566
+ .long 2852139088
+ .long 3230017550
+ .long 2910355434
+ .long 3189567504
+ .long 3585038464
+ .long 3230017552
+ .long 611858749
+ .long 3189567074
+ .long 13099880
+ .long 3230017555
+ .long 1954698831
+ .long 3189567516
+ .long 726278816
+ .long 3230017557
+ .long 550712630
+ .long 3189567710
+ .long 1429628792
+ .long 3230017559
+ .long 3672474493
+ .long 3189567278
+ .long 2123170544
+ .long 3230017561
+ .long 1160875209
+ .long 3189567651
+ .long 2806924760
+ .long 3230017563
+ .long 2242524344
+ .long 3189568000
+ .long 3480912064
+ .long 3230017565
+ .long 2823138691
+ .long 3189567327
+ .long 4145152992
+ .long 3230017567
+ .long 3521079748
+ .long 3189567568
+ .long 504700744
+ .long 3230017570
+ .long 1136670137
+ .long 3189567486
+ .long 1149510328
+ .long 3230017572
+ .long 806933442
+ .long 3189567823
+ .long 1784634816
+ .long 3230017574
+ .long 1606084669
+ .long 3189567242
+ .long 2410094488
+ .long 3230017576
+ .long 2841342625
+ .long 3189567480
+ .long 3025909584
+ .long 3230017578
+ .long 984188059
+ .long 3189567239
+ .long 3632100264
+ .long 3230017580
+ .long 3011730434
+ .long 3189567337
+ .long 4228686632
+ .long 3230017582
+ .long 328432041
+ .long 3189567676
+ .long 520721440
+ .long 3230017585
+ .long 2057225622
+ .long 3189567268
+ .long 1098159248
+ .long 3230017587
+ .long 3150727306
+ .long 3189567348
+ .long 1666052680
+ .long 3230017589
+ .long 3291380622
+ .long 3189567307
+ .long 2224421584
+ .long 3230017591
+ .long 3570771984
+ .long 3189567798
+ .long 2773285760
+ .long 3230017593
+ .long 2427604440
+ .long 3189567698
+ .long 3312664936
+ .long 3230017595
+ .long 3733848165
+ .long 3189567211
+ .long 3842578768
+ .long 3230017597
+ .long 2673912350
+ .long 3189567904
+ .long 68079584
+ .long 3230017600
+ .long 960995892
+ .long 3189567616
+ .long 579121512
+ .long 3230017602
+ .long 4150493479
+ .long 3189567659
+ .long 1080756744
+ .long 3230017604
+ .long 1054941272
+ .long 3189567735
+ .long 1573004704
+ .long 3230017606
+ .long 2574365292
+ .long 3189568007
+ .long 2055884768
+ .long 3230017608
+ .long 2507498673
+ .long 3189567092
+ .long 2529416224
+ .long 3230017610
+ .long 2082176323
+ .long 3189567207
+ .long 2993618320
+ .long 3230017612
+ .long 3719982601
+ .long 3189568058
+ .long 3448510256
+ .long 3230017614
+ .long 4104247904
+ .long 3189567897
+ .long 3894111152
+ .long 3230017616
+ .long 3735557011
+ .long 3189567647
+ .long 35472776
+ .long 3230017619
+ .long 2914260983
+ .long 3189567862
+ .long 462548736
+ .long 3230017621
+ .long 1334094042
+ .long 3189567734
+ .long 880390688
+ .long 3230017623
+ .long 1291097379
+ .long 3189567171
+ .long 1289017512
+ .long 3230017625
+ .long 1627119803
+ .long 3189567853
+ .long 1688448064
+ .long 3230017627
+ .long 3886873723
+ .long 3189567117
+ .long 2078701104
+ .long 3230017629
+ .long 627887757
+ .long 3189567206
+ .long 2459795360
+ .long 3230017631
+ .long 1722013861
+ .long 3189567101
+ .long 2831749488
+ .long 3230017633
+ .long 4163262354
+ .long 3189567678
+ .long 3194582104
+ .long 3230017635
+ .long 4170237688
+ .long 3189567639
+ .long 3548311752
+ .long 3230017637
+ .long 47563772
+ .long 3189567637
+ .long 3892956928
+ .long 3230017639
+ .long 2990136007
+ .long 3189567231
+ .long 4228536056
+ .long 3230017641
+ .long 4294532248
+ .long 3189567995
+ .long 260100240
+ .long 3230017644
+ .long 2060709623
+ .long 3189567397
+ .long 577602376
+ .long 3230017646
+ .long 1488525373
+ .long 3189568044
+ .long 886093456
+ .long 3230017648
+ .long 1657840200
+ .long 3189567474
+ .long 1185591680
+ .long 3230017650
+ .long 3155771782
+ .long 3189567399
+ .long 1476115208
+ .long 3230017652
+ .long 2195162329
+ .long 3189567591
+ .long 1757682144
+ .long 3230017654
+ .long 1292806663
+ .long 3189567956
+ .long 2030310544
+ .long 3230017656
+ .long 2151451208
+ .long 3189567540
+ .long 2294018392
+ .long 3230017658
+ .long 2224122735
+ .long 3189567630
+ .long 2548823632
+ .long 3230017660
+ .long 3554417607
+ .long 3189567684
+ .long 2794744152
+ .long 3230017662
+ .long 3831650627
+ .long 3189567409
+ .long 3031797776
+ .long 3230017664
+ .long 4024246224
+ .long 3189567811
+ .long 3260002296
+ .long 3230017666
+ .long 2530219738
+ .long 3189567128
+ .long 3479375416
+ .long 3230017668
+ .long 1618145996
+ .long 3189568024
+ .long 3689934832
+ .long 3230017670
+ .long 392379700
+ .long 3189567378
+ .long 3891698144
+ .long 3230017672
+ .long 55874694
+ .long 3189567574
+ .long 4084682928
+ .long 3230017674
+ .long 4294251475
+ .long 3189567312
+ .long 4268906688
+ .long 3230017676
+ .long 1899705040
+ .long 3189567783
+ .long 149419600
+ .long 3230017679
+ .long 357699389
+ .long 3189567568
+ .long 316173656
+ .long 3230017681
+ .long 3025711727
+ .long 3189567790
+ .long 474218920
+ .long 3230017683
+ .long 2921891821
+ .long 3189568046
+ .long 623572704
+ .long 3230017685
+ .long 1716968749
+ .long 3189567453
+ .long 764252248
+ .long 3230017687
+ .long 2393171526
+ .long 3189567748
+ .long 896274768
+ .long 3230017689
+ .long 1343317993
+ .long 3189567172
+ .long 1019657400
+ .long 3230017691
+ .long 1388235839
+ .long 3189567661
+ .long 1134417256
+ .long 3230017693
+ .long 2766147125
+ .long 3189567706
+ .long 1240571384
+ .long 3230017695
+ .long 2162068842
+ .long 3189567499
+ .long 1338136776
+ .long 3230017697
+ .long 4075455588
+ .long 3189567932
+ .long 1427130392
+ .long 3230017699
+ .long 1579647664
+ .long 3189567555
+ .long 1507569120
+ .long 3230017701
+ .long 3785749868
+ .long 3189567715
+ .long 1579469816
+ .long 3230017703
+ .long 2639950365
+ .long 3189567469
+ .long 1642849272
+ .long 3230017705
+ .long 3611501026
+ .long 3189567698
+ .long 1697724240
+ .long 3230017707
+ .long 15422953
+ .long 3189568066
+ .long 1744111424
+ .long 3230017709
+ .long 2642213241
+ .long 3189568062
+ .long 1782027472
+ .long 3230017711
+ .long 143606300
+ .long 3189568058
+ .long 1811488992
+ .long 3230017713
+ .long 501328690
+ .long 3189567276
+ .long 1832512520
+ .long 3230017715
+ .long 3258054578
+ .long 3189567915
+ .long 1845114576
+ .long 3230017717
+ .long 1297851139
+ .long 3189568007
+ .long 1849311616
+ .long 3230017719
+ .long 3589200000
+ .long 3189567580
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 2846560486
+ .long 3210737666
+ .long 2729511872
+ .long 3211784202
+ .long 3956813460
+ .long 3212307985
+ .long 1796237193
+ .long 3212828714
+ .long 1562748889
+ .long 3213092649
+ .long 1602292343
+ .long 3213352007
+ .long 745814092
+ .long 3213610865
+ .long 2969306084
+ .long 3213869224
+ .long 3953060839
+ .long 3214006263
+ .long 1128703349
+ .long 3214134948
+ .long 1371067273
+ .long 3214263386
+ .long 131445019
+ .long 3214391579
+ .long 1427948820
+ .long 3214519527
+ .long 665817496
+ .long 3214647232
+ .long 1817459908
+ .long 3214774694
+ .long 242758400
+ .long 3214901915
+ .long 2082038134
+ .long 3214981455
+ .long 2300828032
+ .long 3215044825
+ .long 571795571
+ .long 3215108076
+ .long 3120479584
+ .long 3215171207
+ .long 3276640540
+ .long 3215234220
+ .long 2949178581
+ .long 3215297115
+ .long 4036279704
+ .long 3215359892
+ .long 4130528508
+ .long 3215422552
+ .long 813954767
+ .long 3215485096
+ .long 248046571
+ .long 3215547523
+ .long 4288926261
+ .long 3215609833
+ .long 1897492927
+ .long 3215672029
+ .long 3499237165
+ .long 3215734109
+ .long 2329611090
+ .long 3215796075
+ .long 203907094
+ .long 3215857927
+ .long 3222364838
+ .long 3215919664
+ .long 295408387
+ .long 3215981289
+ .long 899212401
+ .long 3216012696
+ .long 2606049022
+ .long 3216043395
+ .long 4003691233
+ .long 3216074038
+ .long 1675303236
+ .long 3216104626
+ .long 789189655
+ .long 3216135158
+ .long 2213928479
+ .long 3216165634
+ .long 2518405585
+ .long 3216196055
+ .long 2561783534
+ .long 3216226421
+ .long 3198568176
+ .long 3216256732
+ .long 983674944
+ .long 3216286989
+ .long 1057364031
+ .long 3216317191
+ .long 4260371496
+ .long 3216347338
+ .long 2838974660
+ .long 3216377432
+ .long 1919860988
+ .long 3216407472
+ .long 2330291020
+ .long 3216437458
+ .long 598130195
+ .long 3216467391
+ .long 1836782285
+ .long 3216497270
+ .long 2565351466
+ .long 3216527096
+ .long 3593575201
+ .long 3216556869
+ .long 1431920350
+ .long 3216586590
+ .long 1176515501
+ .long 3216616258
+ .long 3624279252
+ .long 3216645873
+ .long 977982819
+ .long 3216675437
+ .long 2616083454
+ .long 3216704948
+ .long 733015457
+ .long 3216734408
+ .long 403990373
+ .long 3216763816
+ .long 2405156675
+ .long 3216793172
+ .long 3213628385
+ .long 3216822477
+ .long 3597448029
+ .long 3216851731
+ .long 25680167
+ .long 3216880935
+ .long 1848308454
+ .long 3216910087
+ .long 1231492199
+ .long 3216939189
+ .long 3222364838
+ .long 3216968240
+ .long 4274224607
+ .long 3216997241
+ .long 836496059
+ .long 3217026193
+ .long 1119829323
+ .long 3217043131
+ .long 315251054
+ .long 3217057557
+ .long 518461891
+ .long 3217071958
+ .long 2094042713
+ .long 3217086334
+ .long 1109735857
+ .long 3217100686
+ .long 2221359788
+ .long 3217115013
+ .long 1492952593
+ .long 3217129316
+ .long 3576653728
+ .long 3217143594
+ .long 237880003
+ .long 3217157849
+ .long 420109003
+ .long 3217172079
+ .long 180120274
+ .long 3217186285
+ .long 4162843939
+ .long 3217200466
+ .long 4126536273
+ .long 3217214624
+ .long 417628115
+ .long 3217228759
+ .long 1970736719
+ .long 3217242869
+ .long 538873716
+ .long 3217256956
+ .long 758227830
+ .long 3217271019
+ .long 2968307242
+ .long 3217285058
+ .long 3211951040
+ .long 3217299074
+ .long 1825275166
+ .long 3217313067
+ .long 3437683677
+ .long 3217327036
+ .long 4086978021
+ .long 3217340982
+ .long 4104270002
+ .long 3217354905
+ .long 3819025464
+ .long 3217368805
+ .long 3559075183
+ .long 3217382682
+ .long 3650625670
+ .long 3217396536
+ .long 123302585
+ .long 3217410368
+ .long 1890030548
+ .long 3217424176
+ .long 682272600
+ .long 3217437962
+ .long 1114811729
+ .long 3217451725
+ .long 3505892050
+ .long 3217465465
+ .long 3877229085
+ .long 3217479183
+ .long 2543954549
+ .long 3217492879
+ .long 4114626469
+ .long 3217506552
+ .long 311370023
+ .long 3217520204
+ .long 34658569
+ .long 3217533833
+ .long 3593519732
+ .long 3217547439
+ .long 2705545195
+ .long 3217561024
+ .long 1971736889
+ .long 3217574587
+ .long 1696647441
+ .long 3217588128
+ .long 2183357019
+ .long 3217601647
+ .long 3733482817
+ .long 3217615144
+ .long 2352221150
+ .long 3217628620
+ .long 2633258676
+ .long 3217642074
+ .long 578912458
+ .long 3217655507
+ .long 780008323
+ .long 3217668918
+ .long 3530988084
+ .long 3217682307
+ .long 534951267
+ .long 3217695676
+ .long 673467853
+ .long 3217709023
+ .long 4236783385
+ .long 3217722348
+ .long 2923827788
+ .long 3217735653
+ .long 1317060595
+ .long 3217748937
+ .long 3997577740
+ .long 3217762199
+ .long 2660218276
+ .long 3217775441
+ .long 1883376699
+ .long 3217788662
+ .long 1949142230
+ .long 3217801862
+ .long 3138274530
+ .long 3217815041
+ .long 1435244737
+ .long 3217828200
+ .long 1413145637
+ .long 3217841338
+ .long 3348797986
+ .long 3217854455
+ .long 3222758658
+ .long 3217867552
+ .long 1309263324
+ .long 3217880629
+ .long 2176234471
+ .long 3217893685
+ .long 1800387473
+ .long 3217906721
+ .long 452140382
+ .long 3217919737
+ .long 2695621757
+ .long 3217932732
+ .long 208809263
+ .long 3217945708
+ .long 1848308454
+ .long 3217958663
+ .long 3584589359
+ .long 3217971598
+ .long 1386895968
+ .long 3217984514
+ .long 4108155659
+ .long 3217997409
+ .long 3420215606
+ .long 3218010285
+ .long 3878621277
+ .long 3218023141
+ .long 1447787319
+ .long 3218035978
+ .long 680874053
+ .long 3218048795
+ .long 1834892843
+ .long 3218061592
+ .long 870713292
+ .long 3218074370
+ .long 1168986141
+ .long 3218083436
+ .long 3245089583
+ .long 3218089805
+ .long 2494877761
+ .long 3218096165
+ .long 3338922950
+ .long 3218102515
+ .long 1607293197
+ .long 3218108856
+ .long 1719424943
+ .long 3218115187
+ .long 3799224547
+ .long 3218121508
+ .long 3675071677
+ .long 3218127820
+ .long 1469757259
+ .long 3218134123
+ .long 1600486820
+ .long 3218140416
+ .long 4188949205
+ .long 3218146699
+ .long 766352567
+ .long 3218152974
+ .long 43231408
+ .long 3218159239
+ .long 2139646042
+ .long 3218165494
+ .long 2880153102
+ .long 3218171740
+ .long 2383743325
+ .long 3218177977
+ .long 768877423
+ .long 3218184205
+ .long 2448456521
+ .long 3218190423
+ .long 3244923387
+ .long 3218196632
+ .long 3275167422
+ .long 3218202832
+ .long 2655560435
+ .long 3218209023
+ .long 1501959692
+ .long 3218215205
+ .long 4224678246
+ .long 3218221377
+ .long 2348618756
+ .long 3218227541
+ .long 283080250
+ .long 3218233696
+ .long 2436859197
+ .long 3218239841
+ .long 333350563
+ .long 3218245978
+ .long 2675321801
+ .long 3218252105
+ .long 985177381
+ .long 3218258224
+ .long 3964700035
+ .long 3218264333
+ .long 3135315249
+ .long 3218270434
+ .long 2902865164
+ .long 3218276526
+ .long 3377742213
+ .long 3218282609
+ .long 374891912
+ .long 3218288684
+ .long 2593684821
+ .long 3218294749
+ .long 1553148222
+ .long 3218300806
+ .long 1656739931
+ .long 3218306854
+ .long 3012481825
+ .long 3218312893
+ .long 1432962538
+ .long 3218318924
+ .long 1320242026
+ .long 3218324946
+ .long 2780952336
+ .long 3218330959
+ .long 1626300240
+ .long 3218336964
+ .long 2256971748
+ .long 3218342960
+ .long 483265518
+ .long 3218348948
+ .long 704964628
+ .long 3218354927
+ .long 3026437244
+ .long 3218360897
+ .long 3256639170
+ .long 3218366859
+ .long 1499050969
+ .long 3218372813
+ .long 2151680465
+ .long 3218378758
+ .long 1022163351
+ .long 3218384695
+ .long 2507634849
+ .long 3218390623
+ .long 2414862975
+ .long 3218396543
+ .long 845152874
+ .long 3218402455
+ .long 2194349235
+ .long 3218408358
+ .long 2267936813
+ .long 3218414253
+ .long 1165944702
+ .long 3218420140
+ .long 3282948707
+ .long 3218426018
+ .long 128204514
+ .long 3218431889
+ .long 390421100
+ .long 3218437751
+ .long 4167959282
+ .long 3218443604
+ .long 2968834018
+ .long 3218449450
+ .long 1185553177
+ .long 3218455288
+ .long 3210217930
+ .long 3218461117
+ .long 549623114
+ .long 3218466939
+ .long 1890030548
+ .long 3218472752
+ .long 3032400188
+ .long 3218478557
+ .long 4072261525
+ .long 3218484354
+ .long 3450874911
+ .long 1070995813
+ .long 2331021804
+ .long 1070990032
+ .long 1029453230
+ .long 1070984259
+ .long 3747176240
+ .long 1070978493
+ .long 1800682930
+ .long 1070972736
+ .long 3686719393
+ .long 1070966986
+ .long 722545241
+ .long 1070961245
+ .long 1405669883
+ .long 1070955511
+ .long 1349079372
+ .long 1070949785
+ .long 461103529
+ .long 1070944067
+ .long 2945413886
+ .long 1070938356
+ .long 121152472
+ .long 1070932654
+ .long 487700860
+ .long 1070926959
+ .long 3954874384
+ .long 1070921271
+ .long 1842920138
+ .long 1070915592
+ .long 2652318780
+ .long 1070909920
+ .long 1999011482
+ .long 1070904256
+ .long 4089234463
+ .long 1070898599
+ .long 244680560
+ .long 1070892951
+ .long 3262235675
+ .long 1070887309
+ .long 169336595
+ .long 1070881676
+ .long 3763576649
+ .long 1070876049
+ .long 1073096258
+ .long 1070870431
+ .long 601221319
+ .long 1070864820
+ .long 2261690268
+ .long 1070859216
+ .long 1673619518
+ .long 1070853620
+ .long 3046403514
+ .long 1070848031
+ .long 1999843716
+ .long 1070842450
+ .long 2744015967
+ .long 1070836876
+ .long 899399508
+ .long 1070831310
+ .long 676744370
+ .long 1070825751
+ .long 1992167703
+ .long 1070820199
+ .long 467152011
+ .long 1070814655
+ .long 313445281
+ .long 1070809118
+ .long 1448157352
+ .long 1070803588
+ .long 3788725476
+ .long 1070798065
+ .long 2957945300
+ .long 1070792550
+ .long 3168871046
+ .long 1070787042
+ .long 44944622
+ .long 1070781542
+ .long 2094830420
+ .long 1070776048
+ .long 647642559
+ .long 1070770562
+ .long 4212681596
+ .long 1070765082
+ .long 4119694493
+ .long 1070759610
+ .long 288676754
+ .long 1070754146
+ .long 1229870791
+ .long 1070748688
+ .long 2568927817
+ .long 1070743237
+ .long 4226775419
+ .long 1070737793
+ .long 1829681364
+ .long 1070732357
+ .long 3889121191
+ .long 1070726927
+ .long 1737005556
+ .long 1070721505
+ .long 3885417029
+ .long 1070716089
+ .long 1666870165
+ .long 1070710681
+ .long 3594048319
+ .long 1070705279
+ .long 1000063738
+ .long 1070699885
+ .long 2398194399
+ .long 1070694497
+ .long 3417111411
+ .long 1070689116
+ .long 3980746691
+ .long 1070683742
+ .long 4013324163
+ .long 1070678375
+ .long 3439358267
+ .long 1070673015
+ .long 2183652476
+ .long 1070667662
+ .long 171297820
+ .long 1070662316
+ .long 1622638721
+ .long 1070656976
+ .long 2168369647
+ .long 1070651643
+ .long 1734435555
+ .long 1070646317
+ .long 247063161
+ .long 1070640998
+ .long 1927726804
+ .long 1070635685
+ .long 2408245143
+ .long 1070630379
+ .long 1615681634
+ .long 1070625080
+ .long 3772343130
+ .long 1070619787
+ .long 215909304
+ .long 1070614502
+ .long 3759169634
+ .long 1070609222
+ .long 1445381777
+ .long 1070603950
+ .long 1792910451
+ .long 1070598684
+ .long 870975437
+ .long 1070590754
+ .long 3194096222
+ .long 1070580248
+ .long 1823716217
+ .long 1070569756
+ .long 913800688
+ .long 1070559277
+ .long 323875369
+ .long 1070548811
+ .long 4208958430
+ .long 1070538357
+ .long 3839688678
+ .long 1070527917
+ .long 3372126730
+ .long 1070517490
+ .long 2667883253
+ .long 1070507076
+ .long 1589083690
+ .long 1070496675
+ .long 4293333010
+ .long 1070486286
+ .long 2053843986
+ .long 1070475911
+ .long 3324205749
+ .long 1070465548
+ .long 3673610217
+ .long 1070455198
+ .long 2966718784
+ .long 1070444861
+ .long 1068692560
+ .long 1070434537
+ .long 2140157205
+ .long 1070424225
+ .long 1752298597
+ .long 1070413926
+ .long 4066729595
+ .long 1070403639
+ .long 360651144
+ .long 1070393366
+ .long 3386588242
+ .long 1070383104
+ .long 127747308
+ .long 1070372856
+ .long 3337621361
+ .long 1070362619
+ .long 380113
+ .long 1070352396
+ .long 2870475188
+ .long 1070342184
+ .long 3227997535
+ .long 1070331985
+ .long 943446189
+ .long 1070321799
+ .long 182758681
+ .long 1070311625
+ .long 817374162
+ .long 1070301463
+ .long 2719198427
+ .long 1070291313
+ .long 1465634365
+ .long 1070281176
+ .long 1224481606
+ .long 1070271051
+ .long 1869032404
+ .long 1070260938
+ .long 3273036717
+ .long 1070250837
+ .long 1015732707
+ .long 1070240749
+ .long 3561713742
+ .long 1070230672
+ .long 2196155141
+ .long 1070220608
+ .long 1089583089
+ .long 1070210556
+ .long 118003300
+ .long 1070200516
+ .long 3452833475
+ .long 1070190487
+ .long 2381031992
+ .long 1070180471
+ .long 1074899573
+ .long 1070170467
+ .long 3707175295
+ .long 1070160474
+ .long 1566132617
+ .long 1070150494
+ .long 3120348377
+ .long 1070140525
+ .long 3953929663
+ .long 1070130568
+ .long 3946380940
+ .long 1070120623
+ .long 2977634725
+ .long 1070110690
+ .long 928049556
+ .long 1070100769
+ .long 1973375279
+ .long 1070090859
+ .long 1699849154
+ .long 1070080961
+ .long 4284063055
+ .long 1070071074
+ .long 1018125008
+ .long 1070061200
+ .long 374428300
+ .long 1070051337
+ .long 2235845747
+ .long 1070041485
+ .long 2190695046
+ .long 1070031645
+ .long 122671437
+ .long 1070021817
+ .long 210845780
+ .long 1070012000
+ .long 2339728060
+ .long 1070002194
+ .long 2099265479
+ .long 1069992400
+ .long 3669742467
+ .long 1069982617
+ .long 2641909617
+ .long 1069972846
+ .long 3196851002
+ .long 1069963086
+ .long 926113142
+ .long 1069953338
+ .long 11572342
+ .long 1069943601
+ .long 340530969
+ .long 1069933875
+ .long 1800682930
+ .long 1069924160
+ .long 4280111857
+ .long 1069914456
+ .long 3372322013
+ .long 1069904764
+ .long 3261138386
+ .long 1069895083
+ .long 3835803021
+ .long 1069885413
+ .long 690973253
+ .long 1069875755
+ .long 2306589128
+ .long 1069866107
+ .long 4278067876
+ .long 1069856470
+ .long 2201204065
+ .long 1069846845
+ .long 262102455
+ .long 1069837231
+ .long 2647241692
+ .long 1069827627
+ .long 658570708
+ .long 1069818035
+ .long 2778278092
+ .long 1069808453
+ .long 309052031
+ .long 1069798883
+ .long 1733817001
+ .long 1069789323
+ .long 2650961017
+ .long 1069779774
+ .long 2954203158
+ .long 1069770236
+ .long 2537624622
+ .long 1069760709
+ .long 1295667077
+ .long 1069751193
+ .long 3418098326
+ .long 1069741687
+ .long 210141498
+ .long 1069732193
+ .long 157244505
+ .long 1069722709
+ .long 3155274661
+ .long 1069713235
+ .long 510517079
+ .long 1069703773
+ .long 709476866
+ .long 1069694321
+ .long 3649073763
+ .long 1069684879
+ .long 636640577
+ .long 1069675449
+ .long 159725394
+ .long 1069666029
+ .long 2116286250
+ .long 1069656619
+ .long 2109656884
+ .long 1069647220
+ .long 38479793
+ .long 1069637832
+ .long 96704707
+ .long 1069628454
+ .long 2183652476
+ .long 1069619086
+ .long 1904013563
+ .long 1069609729
+ .long 3452748429
+ .long 1069600382
+ .long 2435216853
+ .long 1069591046
+ .long 3047045639
+ .long 1069581720
+ .long 894257944
+ .long 1069572405
+ .long 173141005
+ .long 1069563100
+ .long 785342784
+ .long 1069553805
+ .long 970708326
+ .long 1069541521
+ .long 2645916898
+ .long 1069522972
+ .long 2106590683
+ .long 1069504444
+ .long 3453588195
+ .long 1069485936
+ .long 2198475040
+ .long 1069467449
+ .long 2443390270
+ .long 1069448982
+ .long 3996141691
+ .long 1069430535
+ .long 2370203065
+ .long 1069412109
+ .long 1669613218
+ .long 1069393703
+ .long 1704071394
+ .long 1069375317
+ .long 2283901796
+ .long 1069356951
+ .long 3220050856
+ .long 1069338605
+ .long 29117219
+ .long 1069320280
+ .long 1113218225
+ .long 1069301974
+ .long 1990183441
+ .long 1069283688
+ .long 2473421172
+ .long 1069265422
+ .long 2376948508
+ .long 1069247176
+ .long 1515388672
+ .long 1069228950
+ .long 3998935692
+ .long 1069210743
+ .long 1053482595
+ .long 1069192557
+ .long 1085389880
+ .long 1069174390
+ .long 3911679148
+ .long 1069156242
+ .long 760030536
+ .long 1069138115
+ .long 38583924
+ .long 1069120007
+ .long 1566132617
+ .long 1069101918
+ .long 867088104
+ .long 1069083849
+ .long 2056379433
+ .long 1069065799
+ .long 659581512
+ .long 1069047769
+ .long 792781808
+ .long 1069029758
+ .long 2277675977
+ .long 1069011766
+ .long 641565395
+ .long 1068993794
+ .long 2256601
+ .long 1068975841
+ .long 183156961
+ .long 1068957907
+ .long 1008239542
+ .long 1068939992
+ .long 2302040698
+ .long 1068922096
+ .long 3889657667
+ .long 1068904219
+ .long 1301778891
+ .long 1068886362
+ .long 2954550821
+ .long 1068868523
+ .long 84804484
+ .long 1068850704
+ .long 1109791498
+ .long 1068832903
+ .long 1562410668
+ .long 1068815121
+ .long 1271074840
+ .long 1068797358
+ .long 64741293
+ .long 1068779614
+ .long 2067876735
+ .long 1068761888
+ .long 2815553124
+ .long 1068744181
+ .long 2138347284
+ .long 1068726493
+ .long 4162338635
+ .long 1068708823
+ .long 129237761
+ .long 1068691173
+ .long 2756122533
+ .long 1068673540
+ .long 3285762921
+ .long 1068655926
+ .long 1551389854
+ .long 1068638331
+ .long 1681725707
+ .long 1068620754
+ .long 3511047527
+ .long 1068603195
+ .long 2579184841
+ .long 1068585655
+ .long 3016419377
+ .long 1068568133
+ .long 363613719
+ .long 1068550630
+ .long 3047045639
+ .long 1068533144
+ .long 2313634884
+ .long 1068515677
+ .long 296456961
+ .long 1068497513
+ .long 1367328035
+ .long 1068462651
+ .long 3221665916
+ .long 1068427825
+ .long 1242258971
+ .long 1068393036
+ .long 3697798734
+ .long 1068358282
+ .long 1678104687
+ .long 1068323565
+ .long 3453858508
+ .long 1068288883
+ .long 116861598
+ .long 1068254238
+ .long 4234736672
+ .long 1068219627
+ .long 2606283437
+ .long 1068185053
+ .long 3506114812
+ .long 1068150514
+ .long 2324914545
+ .long 1068116011
+ .long 3044269692
+ .long 1068081543
+ .long 1056797460
+ .long 1068047111
+ .long 346010435
+ .long 1068012714
+ .long 601410756
+ .long 1067978352
+ .long 1513453498
+ .long 1067944025
+ .long 2773542775
+ .long 1067909733
+ .long 4074027864
+ .long 1067875476
+ .long 813232056
+ .long 1067841255
+ .long 1275317999
+ .long 1067807068
+ .long 860480111
+ .long 1067772916
+ .long 3559777258
+ .long 1067738798
+ .long 480292498
+ .long 1067704716
+ .long 4204867691
+ .long 1067670667
+ .long 1547459502
+ .long 1067636654
+ .long 797775935
+ .long 1067602675
+ .long 1656501562
+ .long 1067568730
+ .long 3825228429
+ .long 1067534819
+ .long 2711485098
+ .long 1067500943
+ .long 2313634884
+ .long 1067467101
+ .long 376973398
+ .long 1067416219
+ .long 672386641
+ .long 1067348671
+ .long 630691842
+ .long 1067281191
+ .long 3960777458
+ .long 1067213778
+ .long 1488394470
+ .long 1067146434
+ .long 1220920383
+ .long 1067079157
+ .long 2577548405
+ .long 1067011947
+ .long 684247743
+ .long 1066944805
+ .long 3553625811
+ .long 1066877729
+ .long 2020150230
+ .long 1066810721
+ .long 4099880293
+ .long 1066743779
+ .long 630721729
+ .long 1066676905
+ .long 3927125538
+ .long 1066610096
+ .long 535440936
+ .long 1066543355
+ .long 2773516144
+ .long 1066476679
+ .long 1486051399
+ .long 1066410070
+ .long 808661260
+ .long 1066285262
+ .long 2227658502
+ .long 1066152307
+ .long 1813447778
+ .long 1066019484
+ .long 2743640746
+ .long 1065886792
+ .long 3904192454
+ .long 1065754231
+ .long 4184355568
+ .long 1065621801
+ .long 2476667369
+ .long 1065489502
+ .long 1971904113
+ .long 1065357333
+ .long 3138267131
+ .long 1065097372
+ .long 341338964
+ .long 1064833554
+ .long 1954052322
+ .long 1064569994
+ .long 1498975029
+ .long 1064306693
+ .long 2190050752
+ .long 1063782660
+ .long 1440057502
+ .long 1063257089
+ .long 1432705161
+ .long 1062208000
+ .long 0
+ .long 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 2900053258
+ .long 1070176668
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1208323809
+ .long 3218079745
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 1431651269
+ .long 1070945621
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294965279
+ .long 3219128319
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .long 4294967295
+ .long 1048575
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .long 0
+ .long 1062207488
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .long 4294967295
+ .long 3220176895
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .long 4294963200
+ .long 2134900735
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4227858432
+ .long 4294967295
+ .long 4227858432
+ .long 4294967295
+ .long 4227858432
+ .long 4294967295
+ .long 4227858432
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .long 0
+ .long 1040187392
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .long 4294966272
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1082564608
+ .long 0
+ .long 1082564608
+ .long 0
+ .long 1082564608
+ .long 0
+ .long 1082564608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1083176960
+ .long 0
+ .long 1083176960
+ .long 0
+ .long 1083176960
+ .long 0
+ .long 1083176960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1083174912
+ .long 0
+ .long 1083174912
+ .long 0
+ .long 1083174912
+ .long 0
+ .long 1083174912
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 2146435072
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .long 0
+ .long 2134900736
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .long 4277811695
+ .long 1072049730
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .long 0
+ .long 1104150528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .long 0
+ .long 1071120384
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070858240
+ .long 0
+ .long 1070858240
+ .long 0
+ .long 1070858240
+ .long 0
+ .long 1070858240
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070694400
+ .long 0
+ .long 1070694400
+ .long 0
+ .long 1070694400
+ .long 0
+ .long 1070694400
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1070563328
+ .long 0
+ .long 1070563328
+ .long 0
+ .long 1070563328
+ .long 0
+ .long 1070563328
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967295
+ .long 2146435071
+ .long 4294967295
+ .long 2146435071
+ .long 4294967295
+ .long 2146435071
+ .long 4294967295
+ .long 2146435071
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1063256064
+ .long 0
+ .long 1063256064
+ .long 0
+ .long 1063256064
+ .long 0
+ .long 1063256064
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .long 0
+ .long 1077870592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .long 0
+ .long 4294966784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .long 4160749568
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .long 4278190080
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .long 4294963200
+ .long 4294967295
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .long 0
+ .long 1041235968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 55574528
+ .long 0
+ .long 55574528
+ .long 0
+ .long 55574528
+ .long 0
+ .long 55574528
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 3220176896
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 0
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .type __svml_datanh_data_internal,@object
+ .size __svml_datanh_data_internal,14848
+ .align 8
+
+__datanh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __datanh_la_CoutTab,@object
+ .size __datanh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized atanh, vector length is 8.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVeN8v_atanh _ZGVeN8v_atanh_avx2_wrapper
+#include "../svml_d_atanh8_core.S"
new file mode 100644
@@ -0,0 +1,27 @@
+/* Multiple versions of vectorized atanh, vector length is 8.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVeN8v_atanh
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN8v_atanh, __GI__ZGVeN8v_atanh, __redirect__ZGVeN8v_atanh)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,632 @@
+/* Function atanh vectorized with AVX-512.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ * using small lookup table that map to AVX-512 permute instructions
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVeN8v_atanh_skx)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $192, %rsp
+ vmovups 256+__svml_datanh_data_internal_avx512(%rip), %zmm15
+
+/* round reciprocals to 1+4b mantissas */
+ vmovups 384+__svml_datanh_data_internal_avx512(%rip), %zmm6
+ vmovups 448+__svml_datanh_data_internal_avx512(%rip), %zmm9
+ vmovaps %zmm0, %zmm2
+ vandpd 320+__svml_datanh_data_internal_avx512(%rip), %zmm2, %zmm13
+
+/* 1+y */
+ vaddpd {rn-sae}, %zmm15, %zmm13, %zmm0
+
+/* 1-y */
+ vsubpd {rn-sae}, %zmm13, %zmm15, %zmm4
+ vxorpd %zmm13, %zmm2, %zmm1
+
+/* Yp_high */
+ vsubpd {rn-sae}, %zmm15, %zmm0, %zmm7
+
+/* -Ym_high */
+ vsubpd {rn-sae}, %zmm15, %zmm4, %zmm12
+
+/* RcpP ~ 1/Yp */
+ vrcp14pd %zmm0, %zmm3
+
+/* RcpM ~ 1/Ym */
+ vrcp14pd %zmm4, %zmm5
+
+/* input outside (-1, 1) ? */
+ vcmppd $21, {sae}, %zmm15, %zmm13, %k0
+ vpaddq %zmm6, %zmm3, %zmm11
+ vpaddq %zmm6, %zmm5, %zmm10
+
+/* Yp_low */
+ vsubpd {rn-sae}, %zmm7, %zmm13, %zmm8
+ vandpd %zmm9, %zmm11, %zmm14
+ vandpd %zmm9, %zmm10, %zmm3
+
+/* Ym_low */
+ vaddpd {rn-sae}, %zmm12, %zmm13, %zmm12
+
+/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */
+ vfmsub213pd {rn-sae}, %zmm15, %zmm14, %zmm0
+
+/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */
+ vfmsub231pd {rn-sae}, %zmm3, %zmm4, %zmm15
+
+/* exponents */
+ vgetexppd {sae}, %zmm14, %zmm5
+ vgetexppd {sae}, %zmm3, %zmm4
+
+/* Table lookups */
+ vmovups __svml_datanh_data_internal_avx512(%rip), %zmm9
+ vmovups 64+__svml_datanh_data_internal_avx512(%rip), %zmm13
+ vmovups 128+__svml_datanh_data_internal_avx512(%rip), %zmm7
+ vfmadd231pd {rn-sae}, %zmm14, %zmm8, %zmm0
+ vfnmadd231pd {rn-sae}, %zmm3, %zmm12, %zmm15
+
+/* Prepare table index */
+ vpsrlq $48, %zmm14, %zmm11
+ vpsrlq $48, %zmm3, %zmm8
+ vmovups 192+__svml_datanh_data_internal_avx512(%rip), %zmm14
+
+/* polynomials */
+ vmovups 512+__svml_datanh_data_internal_avx512(%rip), %zmm3
+
+/* Km-Kp */
+ vsubpd {rn-sae}, %zmm5, %zmm4, %zmm5
+ vmovups 576+__svml_datanh_data_internal_avx512(%rip), %zmm4
+ kmovw %k0, %edx
+ vmovaps %zmm11, %zmm10
+ vmovaps %zmm4, %zmm6
+ vpermi2pd %zmm13, %zmm9, %zmm10
+ vpermi2pd %zmm14, %zmm7, %zmm11
+ vpermt2pd %zmm13, %zmm8, %zmm9
+ vpermt2pd %zmm14, %zmm8, %zmm7
+ vmovups 640+__svml_datanh_data_internal_avx512(%rip), %zmm8
+ vfmadd231pd {rn-sae}, %zmm0, %zmm3, %zmm6
+ vfmadd231pd {rn-sae}, %zmm15, %zmm3, %zmm4
+ vmovups 832+__svml_datanh_data_internal_avx512(%rip), %zmm13
+ vmovups 896+__svml_datanh_data_internal_avx512(%rip), %zmm14
+ vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4
+ vmovups 1024+__svml_datanh_data_internal_avx512(%rip), %zmm8
+ vsubpd {rn-sae}, %zmm11, %zmm7, %zmm12
+
+/* table values */
+ vsubpd {rn-sae}, %zmm10, %zmm9, %zmm3
+ vmovups 704+__svml_datanh_data_internal_avx512(%rip), %zmm7
+ vmovups 768+__svml_datanh_data_internal_avx512(%rip), %zmm9
+
+/* K*L2H + Th */
+ vmovups 1152+__svml_datanh_data_internal_avx512(%rip), %zmm10
+
+/* K*L2L + Tl */
+ vmovups 1216+__svml_datanh_data_internal_avx512(%rip), %zmm11
+ vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4
+ vmovups 960+__svml_datanh_data_internal_avx512(%rip), %zmm7
+ vfmadd231pd {rn-sae}, %zmm5, %zmm10, %zmm3
+ vfmadd213pd {rn-sae}, %zmm12, %zmm11, %zmm5
+ vfmadd213pd {rn-sae}, %zmm9, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm9, %zmm15, %zmm4
+ vfmadd213pd {rn-sae}, %zmm13, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm13, %zmm15, %zmm4
+ vfmadd213pd {rn-sae}, %zmm14, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm14, %zmm15, %zmm4
+ vfmadd213pd {rn-sae}, %zmm7, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm7, %zmm15, %zmm4
+ vfmadd213pd {rn-sae}, %zmm8, %zmm0, %zmm6
+ vfmadd213pd {rn-sae}, %zmm8, %zmm15, %zmm4
+
+/* (K*L2L + Tl) + Rp*PolyP */
+ vfmadd213pd {rn-sae}, %zmm5, %zmm0, %zmm6
+ vorpd 1088+__svml_datanh_data_internal_avx512(%rip), %zmm1, %zmm0
+
+/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */
+ vfnmadd213pd {rn-sae}, %zmm6, %zmm15, %zmm4
+ vaddpd {rn-sae}, %zmm4, %zmm3, %zmm1
+ vmulpd {rn-sae}, %zmm0, %zmm1, %zmm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+.LBL_1_3:
+ vmovups %zmm2, 64(%rsp)
+ vmovups %zmm0, 128(%rsp)
+ je .LBL_1_2
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 48(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $8, %r12d
+ jl .LBL_1_7
+ kmovw 24(%rsp), %k4
+ cfi_restore(122)
+ kmovw 16(%rsp), %k5
+ cfi_restore(123)
+ kmovw 8(%rsp), %k6
+ cfi_restore(124)
+ kmovw (%rsp), %k7
+ cfi_restore(125)
+ vmovups 128(%rsp), %zmm0
+ movq 40(%rsp), %rsi
+ cfi_restore(4)
+ movq 32(%rsp), %rdi
+ cfi_restore(5)
+ movq 56(%rsp), %r12
+ cfi_restore(12)
+ movq 48(%rsp), %r13
+ cfi_restore(13)
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 64(%rsp,%r12,8), %rdi
+ lea 128(%rsp,%r12,8), %rsi
+ call __svml_datanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVeN8v_atanh_skx)
+
+ .align 16,0x90
+
+__svml_datanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 6(%rdi), %eax
+ andl $32752, %eax
+ movsd (%rdi), %xmm0
+ movb 7(%rdi), %dl
+ andb $127, %dl
+ movsd %xmm0, -8(%rsp)
+ cmpl $32752, %eax
+ je .LBL_2_6
+
+.LBL_2_2:
+ cmpl $0, -8(%rsp)
+ jne .LBL_2_5
+ movb %dl, -1(%rsp)
+ cmpl $1072693248, -4(%rsp)
+ jne .LBL_2_5
+ divsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_5:
+ movsd 8+__datanh_la_CoutTab(%rip), %xmm0
+ movl $1, %eax
+ mulsd 16+__datanh_la_CoutTab(%rip), %xmm0
+ movsd %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ testl $1048575, 4(%rdi)
+ jne .LBL_2_8
+ cmpl $0, (%rdi)
+ je .LBL_2_2
+
+.LBL_2_8:
+ mulsd %xmm0, %xmm0
+ xorl %eax, %eax
+ movsd %xmm0, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_datanh_cout_rare_internal,@function
+ .size __svml_datanh_cout_rare_internal,.-__svml_datanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_datanh_data_internal_avx512:
+ .long 0
+ .long 0
+ .long 3222274048
+ .long 1068436016
+ .long 1848246272
+ .long 1069426439
+ .long 1890058240
+ .long 1069940528
+ .long 3348824064
+ .long 1070370807
+ .long 2880143360
+ .long 1070688092
+ .long 3256647680
+ .long 1070883211
+ .long 4139515904
+ .long 1071069655
+ .long 3971973120
+ .long 1071248163
+ .long 3348791296
+ .long 1071419383
+ .long 1605304320
+ .long 1071583887
+ .long 3827646464
+ .long 1071693426
+ .long 1584414720
+ .long 1071769695
+ .long 860815360
+ .long 1071843287
+ .long 3896934400
+ .long 1071914383
+ .long 643547136
+ .long 1071983149
+ .long 0
+ .long 0
+ .long 399283991
+ .long 1030105702
+ .long 1028718588
+ .long 1030642877
+ .long 3808918910
+ .long 3177909005
+ .long 4136237123
+ .long 3177805716
+ .long 3462654649
+ .long 1029900033
+ .long 2051171366
+ .long 3177225921
+ .long 2396640771
+ .long 3177708721
+ .long 3062724207
+ .long 1029196786
+ .long 634920691
+ .long 1029317036
+ .long 1913570380
+ .long 1027322573
+ .long 1734886604
+ .long 3177545033
+ .long 2335489660
+ .long 1025116093
+ .long 3046154741
+ .long 1029750303
+ .long 914782743
+ .long 3176833847
+ .long 3743595607
+ .long 1028041657
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 4294967295
+ .long 2147483647
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 32768
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 0
+ .long 4294901760
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 1087603010
+ .long 1069318621
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 3090058096
+ .long 3217033020
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 2566904552
+ .long 1069697314
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 4168213957
+ .long 3217380691
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 2580363594
+ .long 1070176665
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 797185
+ .long 3218079744
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 1431655522
+ .long 1070945621
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 4294967237
+ .long 3219128319
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 0
+ .long 1071644672
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 4277796864
+ .long 1072049730
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .long 3164471296
+ .long 1031600026
+ .type __svml_datanh_data_internal_avx512,@object
+ .size __svml_datanh_data_internal_avx512,1280
+ .align 8
+
+__datanh_la_CoutTab:
+ .long 0
+ .long 1072693248
+ .long 0
+ .long 0
+ .long 0
+ .long 2146435072
+ .long 0
+ .long 4293918720
+ .type __datanh_la_CoutTab,@object
+ .size __datanh_la_CoutTab,32
new file mode 100644
@@ -0,0 +1,20 @@
+/* AVX2 version of vectorized atanhf.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVeN16v_atanhf _ZGVeN16v_atanhf_avx2_wrapper
+#include "../svml_s_atanhf16_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atanhf, vector length is 16.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVeN16v_atanhf
+#include "ifunc-mathvec-avx512-skx.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVeN16v_atanhf, __GI__ZGVeN16v_atanhf,
+ __redirect__ZGVeN16v_atanhf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,531 @@
+/* Function atanhf vectorized with AVX-512.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ * using small lookup table that map to AVX-512 permute instructions
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVeN16v_atanhf_skx)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $192, %rsp
+ vmovups 256+__svml_satanh_data_internal_avx512(%rip), %zmm4
+
+/* round reciprocals to 1+5b mantissas */
+ vmovups 384+__svml_satanh_data_internal_avx512(%rip), %zmm14
+ vmovups 448+__svml_satanh_data_internal_avx512(%rip), %zmm1
+ vmovaps %zmm0, %zmm11
+ vandps 320+__svml_satanh_data_internal_avx512(%rip), %zmm11, %zmm6
+
+/* 1+y */
+ vaddps {rn-sae}, %zmm4, %zmm6, %zmm9
+
+/* 1-y */
+ vsubps {rn-sae}, %zmm6, %zmm4, %zmm8
+ vxorps %zmm6, %zmm11, %zmm10
+
+/* Yp_high */
+ vsubps {rn-sae}, %zmm4, %zmm9, %zmm2
+
+/* -Ym_high */
+ vsubps {rn-sae}, %zmm4, %zmm8, %zmm5
+
+/* RcpP ~ 1/Yp */
+ vrcp14ps %zmm9, %zmm12
+
+/* RcpM ~ 1/Ym */
+ vrcp14ps %zmm8, %zmm13
+
+/* input outside (-1, 1) ? */
+ vcmpps $21, {sae}, %zmm4, %zmm6, %k0
+ vpaddd %zmm14, %zmm12, %zmm15
+ vpaddd %zmm14, %zmm13, %zmm0
+
+/* Yp_low */
+ vsubps {rn-sae}, %zmm2, %zmm6, %zmm3
+ vandps %zmm1, %zmm15, %zmm7
+ vandps %zmm1, %zmm0, %zmm12
+
+/* Ym_low */
+ vaddps {rn-sae}, %zmm5, %zmm6, %zmm5
+
+/* Reduced argument: Rp = (RcpP*Yp - 1)+RcpP*Yp_low */
+ vfmsub213ps {rn-sae}, %zmm4, %zmm7, %zmm9
+
+/* Reduced argument: Rm = (RcpM*Ym - 1)+RcpM*Ym_low */
+ vfmsub231ps {rn-sae}, %zmm12, %zmm8, %zmm4
+ vmovups 128+__svml_satanh_data_internal_avx512(%rip), %zmm8
+ vmovups 192+__svml_satanh_data_internal_avx512(%rip), %zmm13
+
+/* exponents */
+ vgetexpps {sae}, %zmm7, %zmm15
+ vfmadd231ps {rn-sae}, %zmm7, %zmm3, %zmm9
+
+/* Table lookups */
+ vmovups __svml_satanh_data_internal_avx512(%rip), %zmm6
+ vgetexpps {sae}, %zmm12, %zmm14
+ vfnmadd231ps {rn-sae}, %zmm12, %zmm5, %zmm4
+
+/* Prepare table index */
+ vpsrld $18, %zmm7, %zmm3
+ vpsrld $18, %zmm12, %zmm2
+ vmovups 64+__svml_satanh_data_internal_avx512(%rip), %zmm7
+ vmovups 640+__svml_satanh_data_internal_avx512(%rip), %zmm12
+
+/* Km-Kp */
+ vsubps {rn-sae}, %zmm15, %zmm14, %zmm1
+ kmovw %k0, %edx
+ vmovaps %zmm3, %zmm0
+ vpermi2ps %zmm13, %zmm8, %zmm3
+ vpermt2ps %zmm13, %zmm2, %zmm8
+ vpermi2ps %zmm7, %zmm6, %zmm0
+ vpermt2ps %zmm7, %zmm2, %zmm6
+ vsubps {rn-sae}, %zmm3, %zmm8, %zmm5
+
+/* K*L2H + Th */
+ vmovups 832+__svml_satanh_data_internal_avx512(%rip), %zmm2
+
+/* K*L2L + Tl */
+ vmovups 896+__svml_satanh_data_internal_avx512(%rip), %zmm3
+
+/* polynomials */
+ vmovups 512+__svml_satanh_data_internal_avx512(%rip), %zmm7
+ vmovups 704+__svml_satanh_data_internal_avx512(%rip), %zmm13
+
+/* table values */
+ vsubps {rn-sae}, %zmm0, %zmm6, %zmm0
+ vfmadd231ps {rn-sae}, %zmm1, %zmm2, %zmm0
+ vfmadd213ps {rn-sae}, %zmm5, %zmm3, %zmm1
+ vmovups 576+__svml_satanh_data_internal_avx512(%rip), %zmm3
+ vmovaps %zmm3, %zmm2
+ vfmadd231ps {rn-sae}, %zmm9, %zmm7, %zmm2
+ vfmadd231ps {rn-sae}, %zmm4, %zmm7, %zmm3
+ vfmadd213ps {rn-sae}, %zmm12, %zmm9, %zmm2
+ vfmadd213ps {rn-sae}, %zmm12, %zmm4, %zmm3
+ vfmadd213ps {rn-sae}, %zmm13, %zmm9, %zmm2
+ vfmadd213ps {rn-sae}, %zmm13, %zmm4, %zmm3
+
+/* (K*L2L + Tl) + Rp*PolyP */
+ vfmadd213ps {rn-sae}, %zmm1, %zmm9, %zmm2
+ vorps 768+__svml_satanh_data_internal_avx512(%rip), %zmm10, %zmm9
+
+/* (K*L2L + Tl) + Rp*PolyP -Rm*PolyM */
+ vfnmadd213ps {rn-sae}, %zmm2, %zmm4, %zmm3
+ vaddps {rn-sae}, %zmm3, %zmm0, %zmm4
+ vmulps {rn-sae}, %zmm9, %zmm4, %zmm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+
+.LBL_1_3:
+ vmovups %zmm11, 64(%rsp)
+ vmovups %zmm0, 128(%rsp)
+ je .LBL_1_2
+ xorl %eax, %eax
+ vzeroupper
+ kmovw %k4, 24(%rsp)
+ kmovw %k5, 16(%rsp)
+ kmovw %k6, 8(%rsp)
+ kmovw %k7, (%rsp)
+ movq %rsi, 40(%rsp)
+ movq %rdi, 32(%rsp)
+ movq %r12, 56(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 48(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $16, %r12d
+ jl .LBL_1_7
+ kmovw 24(%rsp), %k4
+ cfi_restore(122)
+ kmovw 16(%rsp), %k5
+ cfi_restore(123)
+ kmovw 8(%rsp), %k6
+ cfi_restore(124)
+ kmovw (%rsp), %k7
+ cfi_restore(125)
+ vmovups 128(%rsp), %zmm0
+ movq 40(%rsp), %rsi
+ cfi_restore(4)
+ movq 32(%rsp), %rdi
+ cfi_restore(5)
+ movq 56(%rsp), %r12
+ cfi_restore(12)
+ movq 48(%rsp), %r13
+ cfi_restore(13)
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x78, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfa, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x48, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xfd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ call __svml_satanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVeN16v_atanhf_skx)
+
+ .align 16,0x90
+
+__svml_satanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 2(%rdi), %edx
+ movss (%rdi), %xmm1
+ andl $32640, %edx
+ movb 3(%rdi), %al
+ andb $127, %al
+ movss %xmm1, -8(%rsp)
+ movb %al, -5(%rsp)
+ cmpl $32640, %edx
+ je .LBL_2_6
+ cmpl $1065353216, -8(%rsp)
+ jne .LBL_2_4
+ divss 4+__satanh_la__imlsAtanhTab(%rip), %xmm1
+ movss %xmm1, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_4:
+ movss 8+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ cmpl $2139095040, -8(%rsp)
+ jne .LBL_2_8
+ movss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss %xmm0, %xmm1
+ movss %xmm1, (%rsi)
+ ret
+
+.LBL_2_8:
+ mulss (%rdi), %xmm1
+ xorl %eax, %eax
+ movss %xmm1, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_satanh_cout_rare_internal,@function
+ .size __svml_satanh_cout_rare_internal,.-__svml_satanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satanh_data_internal_avx512:
+ .long 0
+ .long 1023148032
+ .long 1031274496
+ .long 1035436032
+ .long 1039204352
+ .long 1041547264
+ .long 1043333120
+ .long 1045069824
+ .long 1046773760
+ .long 1048428544
+ .long 1049313280
+ .long 1050099712
+ .long 1050869760
+ .long 1051623424
+ .long 1052360704
+ .long 1053089792
+ .long 1053794304
+ .long 1054482432
+ .long 1055162368
+ .long 1055825920
+ .long 1056481280
+ .long 1057042432
+ .long 1057353728
+ .long 1057660928
+ .long 1057964032
+ .long 1058263040
+ .long 1058553856
+ .long 1058840576
+ .long 1059123200
+ .long 1059397632
+ .long 1059672064
+ .long 1059942400
+ .long 0
+ .long 925287326
+ .long 950209537
+ .long 928156389
+ .long 954265029
+ .long 3098231288
+ .long 3083833176
+ .long 949397309
+ .long 3045295702
+ .long 940324527
+ .long 3089323092
+ .long 945994465
+ .long 952492302
+ .long 954130348
+ .long 954989406
+ .long 3102096543
+ .long 3093041984
+ .long 947354573
+ .long 3053684310
+ .long 936642948
+ .long 3099086888
+ .long 3098368602
+ .long 946194506
+ .long 952357621
+ .long 943635681
+ .long 3097619830
+ .long 3080925892
+ .long 3078186319
+ .long 3093311347
+ .long 955801008
+ .long 934582639
+ .long 3099571146
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 131072
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 4294705152
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 3196061712
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 1051373854
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 1060204544
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .long 939916788
+ .type __svml_satanh_data_internal_avx512,@object
+ .size __svml_satanh_data_internal_avx512,960
+ .align 4
+
+__satanh_la__imlsAtanhTab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __satanh_la__imlsAtanhTab,@object
+ .size __satanh_la__imlsAtanhTab,12
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE2 version of vectorized atanhf, vector length is 4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVbN4v_atanhf _ZGVbN4v_atanhf_sse2
+#include "../svml_s_atanhf4_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atanhf, vector length is 4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVbN4v_atanhf
+#include "ifunc-mathvec-sse4_1.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVbN4v_atanhf, __GI__ZGVbN4v_atanhf,
+ __redirect__ZGVbN4v_atanhf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2536 @@
+/* Function atanhf vectorized with SSE4.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVbN4v_atanhf_sse4)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $256, %rsp
+ movups %xmm9, 160(%rsp)
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm0, %xmm9
+
+/* Load constants including One = 1 */
+ movups 1920+__svml_satanh_data_internal(%rip), %xmm4
+ movaps %xmm9, %xmm7
+
+/* Strip off the sign, so treat X as positive until right at the end */
+ movups 1088+__svml_satanh_data_internal(%rip), %xmm2
+ movaps %xmm4, %xmm1
+ andps %xmm9, %xmm2
+ movups %xmm14, 112(%rsp)
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+ movaps %xmm4, %xmm14
+ movups %xmm11, 144(%rsp)
+
+/*
+ * Compute V = 2 * X trivially, and UHi + U_lo = 1 - X in two pieces,
+ * the upper part UHi being <= 12 bits long. Then we have
+ * atanh(X) = 1/2 * log((1 + X) / (1 - X)) = 1/2 * log1p(V / (UHi + ULo)).
+ */
+ movaps %xmm2, %xmm0
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ movups 2944+__svml_satanh_data_internal(%rip), %xmm11
+
+/*
+ * Check whether |X| < 1, in which case we use the main function.
+ * Otherwise set the rangemask so that the callout will get used.
+ * Note that this will also use the callout for NaNs since not(NaN < 1).
+ */
+ movaps %xmm2, %xmm5
+ movaps %xmm11, %xmm3
+ movaps %xmm2, %xmm6
+ cmpnltps %xmm4, %xmm5
+ cmpltps 3136+__svml_satanh_data_internal(%rip), %xmm6
+ mulps %xmm9, %xmm7
+ subps %xmm2, %xmm1
+ addps %xmm2, %xmm0
+ movmskps %xmm5, %edx
+ subps %xmm1, %xmm14
+ addps %xmm9, %xmm7
+ subps %xmm2, %xmm14
+ andps %xmm1, %xmm3
+ movaps %xmm4, %xmm2
+
+/* Record the sign for eventual reincorporation. */
+ movups 2752+__svml_satanh_data_internal(%rip), %xmm5
+ subps %xmm3, %xmm1
+ andps %xmm9, %xmm5
+ addps %xmm1, %xmm14
+
+/*
+ * Now compute R = 1/(UHi+ULo) * (1 - E) and the error term E
+ * The first FMR is exact (we force R to 12 bits just in case it
+ * isn't already, to make absolutely sure), and since E is ~ 2^-12,
+ * the rounding error in the other one is acceptable.
+ */
+ rcpps %xmm3, %xmm1
+ andps %xmm11, %xmm1
+
+/*
+ * Split V as well into upper 12 bits and lower part, so that we can get
+ * a preliminary quotient estimate without rounding error.
+ */
+ andps %xmm0, %xmm11
+ mulps %xmm1, %xmm3
+ subps %xmm11, %xmm0
+ mulps %xmm1, %xmm14
+
+/* Hence get initial quotient estimate QHi + QLo = R * VHi + R * VLo */
+ mulps %xmm1, %xmm11
+ subps %xmm3, %xmm2
+ mulps %xmm0, %xmm1
+ subps %xmm14, %xmm2
+
+/* Compute D = E + E^2 */
+ movaps %xmm2, %xmm14
+
+/* Or the sign bit in with the tiny result to handle atanh(-0) correctly */
+ orps %xmm5, %xmm7
+ mulps %xmm2, %xmm14
+ andps %xmm6, %xmm7
+ addps %xmm14, %xmm2
+ movaps %xmm4, %xmm14
+
+/*
+ * Compute R * (VHi + VLo) * (1 + E + E^2)
+ * = R * (VHi + VLo) * (1 + D)
+ * = QHi + (QHi * D + QLo + QLo * D)
+ */
+ movaps %xmm2, %xmm3
+ mulps %xmm1, %xmm2
+ mulps %xmm11, %xmm3
+ addps %xmm2, %xmm1
+
+/* reduction: compute r,n */
+ movdqu 2240+__svml_satanh_data_internal(%rip), %xmm2
+ addps %xmm1, %xmm3
+
+/*
+ * Now finally accumulate the high and low parts of the
+ * argument to log1p, H + L, with a final compensated summation.
+ */
+ movaps %xmm3, %xmm0
+ addps %xmm11, %xmm0
+ minps %xmm0, %xmm14
+ subps %xmm0, %xmm11
+ addps %xmm11, %xmm3
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * later incorporating L into the reduced argument.
+ * compute 1+x as high, low parts
+ */
+ movaps %xmm4, %xmm11
+ maxps %xmm0, %xmm11
+ movaps %xmm11, %xmm1
+ movdqu 2304+__svml_satanh_data_internal(%rip), %xmm0
+ addps %xmm14, %xmm1
+ subps %xmm1, %xmm11
+ psubd %xmm2, %xmm1
+ pand %xmm1, %xmm0
+ psrad $23, %xmm1
+ paddd %xmm2, %xmm0
+ addps %xmm11, %xmm14
+
+/* polynomial evaluation */
+ subps %xmm4, %xmm0
+ addps %xmm14, %xmm3
+ cvtdq2ps %xmm1, %xmm14
+ pslld $23, %xmm1
+ movaps %xmm4, %xmm11
+ psubd %xmm1, %xmm11
+ mulps %xmm3, %xmm11
+
+/* final reconstruction */
+ mulps 3200+__svml_satanh_data_internal(%rip), %xmm14
+ addps %xmm0, %xmm11
+ movups 2096+__svml_satanh_data_internal(%rip), %xmm4
+ movaps %xmm6, %xmm0
+ mulps %xmm11, %xmm4
+
+/* Finally, halve the result and reincorporate the sign */
+ movups 2560+__svml_satanh_data_internal(%rip), %xmm1
+ pxor %xmm5, %xmm1
+ addps 2080+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 2064+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 2048+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 2032+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 2016+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 2000+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ addps 1984+__svml_satanh_data_internal(%rip), %xmm4
+ mulps %xmm11, %xmm4
+ mulps %xmm11, %xmm4
+ addps %xmm4, %xmm11
+ addps %xmm14, %xmm11
+ mulps %xmm11, %xmm1
+ andnps %xmm1, %xmm0
+ orps %xmm7, %xmm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ movups 160(%rsp), %xmm9
+ cfi_restore(26)
+ movups 144(%rsp), %xmm11
+ cfi_restore(28)
+ movups 112(%rsp), %xmm14
+ cfi_restore(31)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0x1a, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1f, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x70, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_3:
+ movups %xmm9, 128(%rsp)
+ movups %xmm0, 192(%rsp)
+ xorl %eax, %eax
+ movups %xmm8, 64(%rsp)
+ movups %xmm10, 48(%rsp)
+ movups %xmm12, 32(%rsp)
+ movups %xmm13, 16(%rsp)
+ movups %xmm15, (%rsp)
+ movq %rsi, 88(%rsp)
+ movq %rdi, 80(%rsp)
+ movq %r12, 104(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 96(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $4, %r12d
+ jl .LBL_1_7
+ movups 64(%rsp), %xmm8
+ cfi_restore(25)
+ movups 48(%rsp), %xmm10
+ cfi_restore(27)
+ movups 32(%rsp), %xmm12
+ cfi_restore(29)
+ movups 16(%rsp), %xmm13
+ cfi_restore(30)
+ movups (%rsp), %xmm15
+ cfi_restore(32)
+ movq 88(%rsp), %rsi
+ cfi_restore(4)
+ movq 80(%rsp), %rdi
+ cfi_restore(5)
+ movq 104(%rsp), %r12
+ cfi_restore(12)
+ movq 96(%rsp), %r13
+ cfi_restore(13)
+ movups 192(%rsp), %xmm0
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x58, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x50, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x68, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x19, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1b, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x30, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x1e, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x10, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x20, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x00, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 128(%rsp,%r12,4), %rdi
+ lea 192(%rsp,%r12,4), %rsi
+ call __svml_satanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVbN4v_atanhf_sse4)
+
+ .align 16,0x90
+
+__svml_satanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 2(%rdi), %edx
+ movss (%rdi), %xmm1
+ andl $32640, %edx
+ movb 3(%rdi), %al
+ andb $127, %al
+ movss %xmm1, -8(%rsp)
+ movb %al, -5(%rsp)
+ cmpl $32640, %edx
+ je .LBL_2_6
+ cmpl $1065353216, -8(%rsp)
+ jne .LBL_2_4
+ divss 4+__satanh_la__imlsAtanhTab(%rip), %xmm1
+ movss %xmm1, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_4:
+ movss 8+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ cmpl $2139095040, -8(%rsp)
+ jne .LBL_2_8
+ movss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss %xmm0, %xmm1
+ movss %xmm1, (%rsi)
+ ret
+
+.LBL_2_8:
+ mulss (%rdi), %xmm1
+ xorl %eax, %eax
+ movss %xmm1, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_satanh_cout_rare_internal,@function
+ .size __svml_satanh_cout_rare_internal,.-__svml_satanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satanh_data_internal:
+ .long 3266227256
+ .long 3107766024
+ .long 3266228276
+ .long 3107776882
+ .long 3266229284
+ .long 3109949545
+ .long 3266230292
+ .long 3108055846
+ .long 3266231292
+ .long 3106351937
+ .long 3266232276
+ .long 3109092567
+ .long 3266233260
+ .long 3107948216
+ .long 3266234236
+ .long 3107170960
+ .long 3266235204
+ .long 3106817287
+ .long 3266236164
+ .long 3106942449
+ .long 3266237116
+ .long 3107600489
+ .long 3266238060
+ .long 3108844279
+ .long 3266239004
+ .long 3106531253
+ .long 3266239932
+ .long 3109100650
+ .long 3266240860
+ .long 3108213420
+ .long 3266241780
+ .long 3108112381
+ .long 3266242692
+ .long 3108845034
+ .long 3266243604
+ .long 3106263589
+ .long 3266244500
+ .long 3108802209
+ .long 3266245396
+ .long 3108116909
+ .long 3266246284
+ .long 3108445707
+ .long 3266247164
+ .long 3109831435
+ .long 3266248044
+ .long 3108121760
+ .long 3266248916
+ .long 3107552123
+ .long 3266249780
+ .long 3108162844
+ .long 3266250644
+ .long 3105799146
+ .long 3266251492
+ .long 3108888393
+ .long 3266252340
+ .long 3109079979
+ .long 3266253188
+ .long 3106411173
+ .long 3266254020
+ .long 3109307139
+ .long 3266254852
+ .long 3109415127
+ .long 3266255684
+ .long 3106770317
+ .long 3266256500
+ .long 3109795834
+ .long 3266257324
+ .long 3105942641
+ .long 3266258132
+ .long 3107826892
+ .long 3266258940
+ .long 3107092610
+ .long 3266259740
+ .long 3107966131
+ .long 3266260540
+ .long 3106284596
+ .long 3266261332
+ .long 3106273188
+ .long 3266262116
+ .long 3107962226
+ .long 3266262900
+ .long 3107187186
+ .long 3266263676
+ .long 3108171617
+ .long 3266264452
+ .long 3106749947
+ .long 3266265220
+ .long 3107144703
+ .long 3266265980
+ .long 3109383615
+ .long 3266266740
+ .long 3109299629
+ .long 3266267500
+ .long 3106919521
+ .long 3266268252
+ .long 3106463913
+ .long 3266268996
+ .long 3107958670
+ .long 3266269740
+ .long 3107234917
+ .long 3266270476
+ .long 3108511954
+ .long 3266271212
+ .long 3107620056
+ .long 3266271940
+ .long 3108777693
+ .long 3266272668
+ .long 3107814325
+ .long 3266273388
+ .long 3108947630
+ .long 3266274108
+ .long 3108006290
+ .long 3266274820
+ .long 3109207222
+ .long 3266275532
+ .long 3108378366
+ .long 3266276236
+ .long 3109735912
+ .long 3266276940
+ .long 3109107087
+ .long 3266277644
+ .long 3106513079
+ .long 3266278340
+ .long 3106169044
+ .long 3266279028
+ .long 3108095503
+ .long 3266279716
+ .long 3108118349
+ .long 3266280404
+ .long 3106257463
+ .long 3266281084
+ .long 3106726720
+ .long 3266281756
+ .long 3109545389
+ .long 3266282436
+ .long 3106343833
+ .long 3266283100
+ .long 3109723642
+ .long 3266283772
+ .long 3107120300
+ .long 3266284436
+ .long 3106940529
+ .long 3266285092
+ .long 3109202170
+ .long 3266285748
+ .long 3109728494
+ .long 3266286404
+ .long 3108536808
+ .long 3266287052
+ .long 3109838471
+ .long 3266287700
+ .long 3109455977
+ .long 3266288348
+ .long 3107405879
+ .long 3266288988
+ .long 3107898790
+ .long 3266289628
+ .long 3106756477
+ .long 3266290260
+ .long 3108189081
+ .long 3266290892
+ .long 3108017907
+ .long 3266291524
+ .long 3106258339
+ .long 3266292148
+ .long 3107119845
+ .long 3266292772
+ .long 3106423069
+ .long 3266293388
+ .long 3108377050
+ .long 3266294004
+ .long 3108802011
+ .long 3266294620
+ .long 3107712277
+ .long 3266295228
+ .long 3109316274
+ .long 3266295836
+ .long 3109433625
+ .long 3266296444
+ .long 3108078064
+ .long 3266297044
+ .long 3109457438
+ .long 3266297644
+ .long 3109390801
+ .long 3266298244
+ .long 3107891329
+ .long 3266298836
+ .long 3109166323
+ .long 3266299428
+ .long 3109034299
+ .long 3266300020
+ .long 3107507904
+ .long 3266300604
+ .long 3108793919
+ .long 3266301188
+ .long 3108710352
+ .long 3266301772
+ .long 3107269350
+ .long 3266302348
+ .long 3108677203
+ .long 3266302924
+ .long 3108751436
+ .long 3266303500
+ .long 3107503720
+ .long 3266304068
+ .long 3109139881
+ .long 3266304636
+ .long 3109476985
+ .long 3266305204
+ .long 3108526254
+ .long 3266305772
+ .long 3106298768
+ .long 3266306332
+ .long 3106999765
+ .long 3266306892
+ .long 3106445739
+ .long 3266307444
+ .long 3108841650
+ .long 3266308004
+ .long 3105809415
+ .long 3266308548
+ .long 3109942336
+ .long 3266309100
+ .long 3108667760
+ .long 3266309652
+ .long 3106190122
+ .long 3266310196
+ .long 3106713732
+ .long 3266310740
+ .long 3106054165
+ .long 3266311276
+ .long 3108415484
+ .long 3266311812
+ .long 3109613023
+ .long 3266312348
+ .long 3109656301
+ .long 3266312884
+ .long 3108554723
+ .long 3266313420
+ .long 3106317576
+ .long 3266313948
+ .long 3107148341
+ .long 3266314476
+ .long 3106861780
+ .long 3266314996
+ .long 3109661153
+ .long 3266315524
+ .long 3107166702
+ .long 3266316044
+ .long 3107775778
+ .long 3266316564
+ .long 3107302717
+ .long 3266317076
+ .long 3109950361
+ .long 3266317596
+ .long 3107338539
+ .long 3266318108
+ .long 3107864196
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095040
+ .long 4286578688
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 3212836864
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .type __svml_satanh_data_internal,@object
+ .size __svml_satanh_data_internal,3456
+ .align 4
+
+__satanh_la__imlsAtanhTab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __satanh_la__imlsAtanhTab,@object
+ .size __satanh_la__imlsAtanhTab,12
new file mode 100644
@@ -0,0 +1,20 @@
+/* SSE version of vectorized atanhf, vector length is 8.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define _ZGVdN8v_atanhf _ZGVdN8v_atanhf_sse_wrapper
+#include "../svml_s_atanhf8_core.S"
new file mode 100644
@@ -0,0 +1,28 @@
+/* Multiple versions of vectorized atanhf, vector length is 8.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#define SYMBOL_NAME _ZGVdN8v_atanhf
+#include "ifunc-mathvec-avx2.h"
+
+libc_ifunc_redirected (REDIRECT_NAME, SYMBOL_NAME, IFUNC_SELECTOR ());
+
+#ifdef SHARED
+__hidden_ver1 (_ZGVdN8v_atanhf, __GI__ZGVdN8v_atanhf,
+ __redirect__ZGVdN8v_atanhf)
+ __attribute__ ((visibility ("hidden")));
+#endif
new file mode 100644
@@ -0,0 +1,2131 @@
+/* Function atanhf vectorized with AVX2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ https://www.gnu.org/licenses/. */
+
+/*
+ * ALGORITHM DESCRIPTION:
+ *
+ * Compute atanh(x) as 0.5 * log((1 + x)/(1 - x))
+ *
+ * Special cases:
+ *
+ * atanh(0) = 0
+ * atanh(+1) = +INF
+ * atanh(-1) = -INF
+ * atanh(x) = NaN if |x| > 1, or if x is a NaN or INF
+ *
+ */
+
+#include <sysdep.h>
+
+ .text
+ENTRY(_ZGVdN8v_atanhf_avx2)
+ pushq %rbp
+ cfi_def_cfa_offset(16)
+ movq %rsp, %rbp
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ andq $-64, %rsp
+ subq $384, %rsp
+
+/* Load constants including One = 1 */
+ vmovups 1920+__svml_satanh_data_internal(%rip), %ymm5
+ vmovups %ymm8, 32(%rsp)
+ vmovups %ymm10, 160(%rsp)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ vmovups 3072+__svml_satanh_data_internal(%rip), %ymm10
+ vmovups %ymm13, 256(%rsp)
+ vmovups %ymm9, 96(%rsp)
+ vmovups %ymm11, 192(%rsp)
+ vmovups %ymm12, 224(%rsp)
+ vmovups %ymm14, 288(%rsp)
+ vmovups %ymm15, 320(%rsp)
+ vmovaps %ymm0, %ymm6
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+/* Strip off the sign, so treat X as positive until right at the end */
+ vandps 1088+__svml_satanh_data_internal(%rip), %ymm6, %ymm8
+
+/*
+ * Check whether |X| < 1, in which case we use the main function.
+ * Otherwise set the rangemask so that the callout will get used.
+ * Note that this will also use the callout for NaNs since not(NaN < 1).
+ */
+ vcmpnlt_uqps %ymm5, %ymm8, %ymm7
+ vsubps %ymm8, %ymm5, %ymm1
+
+/*
+ * Compute V = 2 * X trivially, and UHi + U_lo = 1 - X in two pieces,
+ * the upper part UHi being <= 12 bits long. Then we have
+ * atanh(X) = 1/2 * log((1 + X) / (1 - X)) = 1/2 * log1p(V / (UHi + ULo)).
+ */
+ vaddps %ymm8, %ymm8, %ymm11
+ vcmplt_oqps 3264+__svml_satanh_data_internal(%rip), %ymm8, %ymm4
+ vsubps %ymm1, %ymm5, %ymm0
+ vmovmskps %ymm7, %edx
+ vrcpps %ymm1, %ymm7
+ vsubps %ymm8, %ymm0, %ymm9
+ vandps %ymm10, %ymm7, %ymm13
+
+/* No need to split sU when FMA is available */
+ vfnmadd213ps %ymm5, %ymm13, %ymm1
+ vfnmadd231ps %ymm13, %ymm9, %ymm1
+
+/*
+ * Split V as well into upper 12 bits and lower part, so that we can get
+ * a preliminary quotient estimate without rounding error.
+ */
+ vandps %ymm10, %ymm11, %ymm12
+ vsubps %ymm12, %ymm11, %ymm14
+
+/* Hence get initial quotient estimate QHi + QLo = R * VHi + R * VLo */
+ vmulps %ymm12, %ymm13, %ymm7
+
+/* Compute D = E + E^2 */
+ vfmadd213ps %ymm1, %ymm1, %ymm1
+ vmulps %ymm14, %ymm13, %ymm15
+
+/*
+ * Compute R * (VHi + VLo) * (1 + E + E^2)
+ * = R * (VHi + VLo) * (1 + D)
+ * = QHi + (QHi * D + QLo + QLo * D)
+ */
+ vmulps %ymm1, %ymm7, %ymm0
+ vfmadd213ps %ymm15, %ymm15, %ymm1
+
+/* reduction: compute r,n */
+ vmovups 2368+__svml_satanh_data_internal(%rip), %ymm15
+ vaddps %ymm1, %ymm0, %ymm1
+
+/*
+ * Now finally accumulate the high and low parts of the
+ * argument to log1p, H + L, with a final compensated summation.
+ */
+ vaddps %ymm1, %ymm7, %ymm8
+ vsubps %ymm8, %ymm7, %ymm0
+ vminps %ymm8, %ymm5, %ymm7
+ vaddps %ymm0, %ymm1, %ymm10
+
+/*
+ * Now we feed into the log1p code, using H in place of _VARG1 and
+ * later incorporating L into the reduced argument.
+ * compute 1+x as high, low parts
+ */
+ vmaxps %ymm8, %ymm5, %ymm1
+ vaddps %ymm7, %ymm1, %ymm12
+ vpsubd %ymm15, %ymm12, %ymm13
+ vsubps %ymm12, %ymm1, %ymm9
+ vpsrad $23, %ymm13, %ymm12
+ vpand 2432+__svml_satanh_data_internal(%rip), %ymm13, %ymm14
+ vaddps %ymm9, %ymm7, %ymm11
+ vcvtdq2ps %ymm12, %ymm0
+ vpslld $23, %ymm12, %ymm13
+ vpaddd %ymm15, %ymm14, %ymm7
+ vaddps %ymm11, %ymm10, %ymm1
+ vpsubd %ymm13, %ymm5, %ymm14
+
+/* polynomial evaluation */
+ vsubps %ymm5, %ymm7, %ymm5
+ vmulps %ymm1, %ymm14, %ymm8
+ vmovups 2208+__svml_satanh_data_internal(%rip), %ymm1
+ vaddps %ymm5, %ymm8, %ymm5
+ vfmadd213ps 2176+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 2144+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 2112+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 2080+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 2048+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 2016+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vfmadd213ps 1984+__svml_satanh_data_internal(%rip), %ymm5, %ymm1
+ vmulps %ymm1, %ymm5, %ymm7
+ vfmadd213ps %ymm5, %ymm5, %ymm7
+ vmovaps %ymm6, %ymm2
+ vfmadd213ps %ymm6, %ymm6, %ymm2
+
+/* final reconstruction */
+ vfmadd132ps 3328+__svml_satanh_data_internal(%rip), %ymm7, %ymm0
+
+/* Record the sign for eventual reincorporation. */
+ vandps 2880+__svml_satanh_data_internal(%rip), %ymm6, %ymm3
+
+/* Or the sign bit in with the tiny result to handle atanh(-0) correctly */
+ vorps %ymm3, %ymm2, %ymm2
+
+/* Finally, halve the result and reincorporate the sign */
+ vxorps 2688+__svml_satanh_data_internal(%rip), %ymm3, %ymm3
+ vmulps %ymm0, %ymm3, %ymm0
+ vblendvps %ymm4, %ymm2, %ymm0, %ymm0
+ testl %edx, %edx
+ jne .LBL_1_3
+
+.LBL_1_2:
+ vmovups 32(%rsp), %ymm8
+ cfi_restore(91)
+ vmovups 96(%rsp), %ymm9
+ cfi_restore(92)
+ vmovups 160(%rsp), %ymm10
+ cfi_restore(93)
+ vmovups 192(%rsp), %ymm11
+ cfi_restore(94)
+ vmovups 224(%rsp), %ymm12
+ cfi_restore(95)
+ vmovups 256(%rsp), %ymm13
+ cfi_restore(96)
+ vmovups 288(%rsp), %ymm14
+ cfi_restore(97)
+ vmovups 320(%rsp), %ymm15
+ cfi_restore(98)
+ movq %rbp, %rsp
+ popq %rbp
+ cfi_def_cfa(7, 8)
+ cfi_restore(6)
+ ret
+ cfi_def_cfa(6, 16)
+ cfi_offset(6, -16)
+ .cfi_escape 0x10, 0xdb, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdc, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xe0, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdd, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x20, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xde, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x40, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xdf, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x60, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe0, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe1, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xa0, 0xff, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0xe2, 0x00, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x22
+
+.LBL_1_3:
+ vmovups %ymm6, 64(%rsp)
+ vmovups %ymm0, 128(%rsp)
+ je .LBL_1_2
+ xorl %eax, %eax
+ vzeroupper
+ movq %rsi, 8(%rsp)
+ movq %rdi, (%rsp)
+ movq %r12, 24(%rsp)
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ movl %eax, %r12d
+ movq %r13, 16(%rsp)
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+ movl %edx, %r13d
+
+.LBL_1_7:
+ btl %r12d, %r13d
+ jc .LBL_1_10
+
+.LBL_1_8:
+ incl %r12d
+ cmpl $8, %r12d
+ jl .LBL_1_7
+ movq 8(%rsp), %rsi
+ cfi_restore(4)
+ movq (%rsp), %rdi
+ cfi_restore(5)
+ movq 24(%rsp), %r12
+ cfi_restore(12)
+ movq 16(%rsp), %r13
+ cfi_restore(13)
+ vmovups 128(%rsp), %ymm0
+ jmp .LBL_1_2
+ .cfi_escape 0x10, 0x04, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x88, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x05, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x80, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0c, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x98, 0xfe, 0xff, 0xff, 0x22
+ .cfi_escape 0x10, 0x0d, 0x0e, 0x38, 0x1c, 0x0d, 0xc0, 0xff, 0xff, 0xff, 0x1a, 0x0d, 0x90, 0xfe, 0xff, 0xff, 0x22
+
+.LBL_1_10:
+ lea 64(%rsp,%r12,4), %rdi
+ lea 128(%rsp,%r12,4), %rsi
+ call __svml_satanh_cout_rare_internal
+ jmp .LBL_1_8
+
+END(_ZGVdN8v_atanhf_avx2)
+
+ .align 16,0x90
+
+__svml_satanh_cout_rare_internal:
+
+ cfi_startproc
+
+ movzwl 2(%rdi), %edx
+ movss (%rdi), %xmm1
+ andl $32640, %edx
+ movb 3(%rdi), %al
+ andb $127, %al
+ movss %xmm1, -8(%rsp)
+ movb %al, -5(%rsp)
+ cmpl $32640, %edx
+ je .LBL_2_6
+ cmpl $1065353216, -8(%rsp)
+ jne .LBL_2_4
+ divss 4+__satanh_la__imlsAtanhTab(%rip), %xmm1
+ movss %xmm1, (%rsi)
+ movl $2, %eax
+ ret
+
+.LBL_2_4:
+ movss 8+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movss %xmm0, (%rsi)
+ ret
+
+.LBL_2_6:
+ cmpl $2139095040, -8(%rsp)
+ jne .LBL_2_8
+ movss 4+__satanh_la__imlsAtanhTab(%rip), %xmm0
+ movl $1, %eax
+ mulss %xmm0, %xmm1
+ movss %xmm1, (%rsi)
+ ret
+
+.LBL_2_8:
+ mulss (%rdi), %xmm1
+ xorl %eax, %eax
+ movss %xmm1, (%rsi)
+ ret
+
+ cfi_endproc
+
+ .type __svml_satanh_cout_rare_internal,@function
+ .size __svml_satanh_cout_rare_internal,.-__svml_satanh_cout_rare_internal
+
+ .section .rodata, "a"
+ .align 64
+
+__svml_satanh_data_internal:
+ .long 3266227256
+ .long 3107766024
+ .long 3266228276
+ .long 3107776882
+ .long 3266229284
+ .long 3109949545
+ .long 3266230292
+ .long 3108055846
+ .long 3266231292
+ .long 3106351937
+ .long 3266232276
+ .long 3109092567
+ .long 3266233260
+ .long 3107948216
+ .long 3266234236
+ .long 3107170960
+ .long 3266235204
+ .long 3106817287
+ .long 3266236164
+ .long 3106942449
+ .long 3266237116
+ .long 3107600489
+ .long 3266238060
+ .long 3108844279
+ .long 3266239004
+ .long 3106531253
+ .long 3266239932
+ .long 3109100650
+ .long 3266240860
+ .long 3108213420
+ .long 3266241780
+ .long 3108112381
+ .long 3266242692
+ .long 3108845034
+ .long 3266243604
+ .long 3106263589
+ .long 3266244500
+ .long 3108802209
+ .long 3266245396
+ .long 3108116909
+ .long 3266246284
+ .long 3108445707
+ .long 3266247164
+ .long 3109831435
+ .long 3266248044
+ .long 3108121760
+ .long 3266248916
+ .long 3107552123
+ .long 3266249780
+ .long 3108162844
+ .long 3266250644
+ .long 3105799146
+ .long 3266251492
+ .long 3108888393
+ .long 3266252340
+ .long 3109079979
+ .long 3266253188
+ .long 3106411173
+ .long 3266254020
+ .long 3109307139
+ .long 3266254852
+ .long 3109415127
+ .long 3266255684
+ .long 3106770317
+ .long 3266256500
+ .long 3109795834
+ .long 3266257324
+ .long 3105942641
+ .long 3266258132
+ .long 3107826892
+ .long 3266258940
+ .long 3107092610
+ .long 3266259740
+ .long 3107966131
+ .long 3266260540
+ .long 3106284596
+ .long 3266261332
+ .long 3106273188
+ .long 3266262116
+ .long 3107962226
+ .long 3266262900
+ .long 3107187186
+ .long 3266263676
+ .long 3108171617
+ .long 3266264452
+ .long 3106749947
+ .long 3266265220
+ .long 3107144703
+ .long 3266265980
+ .long 3109383615
+ .long 3266266740
+ .long 3109299629
+ .long 3266267500
+ .long 3106919521
+ .long 3266268252
+ .long 3106463913
+ .long 3266268996
+ .long 3107958670
+ .long 3266269740
+ .long 3107234917
+ .long 3266270476
+ .long 3108511954
+ .long 3266271212
+ .long 3107620056
+ .long 3266271940
+ .long 3108777693
+ .long 3266272668
+ .long 3107814325
+ .long 3266273388
+ .long 3108947630
+ .long 3266274108
+ .long 3108006290
+ .long 3266274820
+ .long 3109207222
+ .long 3266275532
+ .long 3108378366
+ .long 3266276236
+ .long 3109735912
+ .long 3266276940
+ .long 3109107087
+ .long 3266277644
+ .long 3106513079
+ .long 3266278340
+ .long 3106169044
+ .long 3266279028
+ .long 3108095503
+ .long 3266279716
+ .long 3108118349
+ .long 3266280404
+ .long 3106257463
+ .long 3266281084
+ .long 3106726720
+ .long 3266281756
+ .long 3109545389
+ .long 3266282436
+ .long 3106343833
+ .long 3266283100
+ .long 3109723642
+ .long 3266283772
+ .long 3107120300
+ .long 3266284436
+ .long 3106940529
+ .long 3266285092
+ .long 3109202170
+ .long 3266285748
+ .long 3109728494
+ .long 3266286404
+ .long 3108536808
+ .long 3266287052
+ .long 3109838471
+ .long 3266287700
+ .long 3109455977
+ .long 3266288348
+ .long 3107405879
+ .long 3266288988
+ .long 3107898790
+ .long 3266289628
+ .long 3106756477
+ .long 3266290260
+ .long 3108189081
+ .long 3266290892
+ .long 3108017907
+ .long 3266291524
+ .long 3106258339
+ .long 3266292148
+ .long 3107119845
+ .long 3266292772
+ .long 3106423069
+ .long 3266293388
+ .long 3108377050
+ .long 3266294004
+ .long 3108802011
+ .long 3266294620
+ .long 3107712277
+ .long 3266295228
+ .long 3109316274
+ .long 3266295836
+ .long 3109433625
+ .long 3266296444
+ .long 3108078064
+ .long 3266297044
+ .long 3109457438
+ .long 3266297644
+ .long 3109390801
+ .long 3266298244
+ .long 3107891329
+ .long 3266298836
+ .long 3109166323
+ .long 3266299428
+ .long 3109034299
+ .long 3266300020
+ .long 3107507904
+ .long 3266300604
+ .long 3108793919
+ .long 3266301188
+ .long 3108710352
+ .long 3266301772
+ .long 3107269350
+ .long 3266302348
+ .long 3108677203
+ .long 3266302924
+ .long 3108751436
+ .long 3266303500
+ .long 3107503720
+ .long 3266304068
+ .long 3109139881
+ .long 3266304636
+ .long 3109476985
+ .long 3266305204
+ .long 3108526254
+ .long 3266305772
+ .long 3106298768
+ .long 3266306332
+ .long 3106999765
+ .long 3266306892
+ .long 3106445739
+ .long 3266307444
+ .long 3108841650
+ .long 3266308004
+ .long 3105809415
+ .long 3266308548
+ .long 3109942336
+ .long 3266309100
+ .long 3108667760
+ .long 3266309652
+ .long 3106190122
+ .long 3266310196
+ .long 3106713732
+ .long 3266310740
+ .long 3106054165
+ .long 3266311276
+ .long 3108415484
+ .long 3266311812
+ .long 3109613023
+ .long 3266312348
+ .long 3109656301
+ .long 3266312884
+ .long 3108554723
+ .long 3266313420
+ .long 3106317576
+ .long 3266313948
+ .long 3107148341
+ .long 3266314476
+ .long 3106861780
+ .long 3266314996
+ .long 3109661153
+ .long 3266315524
+ .long 3107166702
+ .long 3266316044
+ .long 3107775778
+ .long 3266316564
+ .long 3107302717
+ .long 3266317076
+ .long 3109950361
+ .long 3266317596
+ .long 3107338539
+ .long 3266318108
+ .long 3107864196
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .long 2147483647
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .long 964689920
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .long 2139095040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .long 2063597568
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 1051372345
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 3204448310
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .long 998244352
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .long 3212836863
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .long 2055208960
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .long 4294967040
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .long 1060205056
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .long 901758464
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .long 1065353216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 3204448256
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 1051372180
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 3196061070
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 1045225872
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 3190336823
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 1041222418
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 3189430755
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 1041073389
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .long 16777216
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .long 25165824
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .long 1059760811
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .long 8388607
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .long 1317011456
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .long 1052770304
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .long 1050673152
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .long 1056964608
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .long 2139095039
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .long 1031798784
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .long 1106771968
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .long 4294959104
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .long 4294963200
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .long 4294901760
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .long 813694976
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .long 201326592
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .long 1060205080
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 2139095040
+ .long 4286578688
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 1065353216
+ .long 3212836864
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .long 0
+ .long 2147483648
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .byte 0
+ .type __svml_satanh_data_internal,@object
+ .size __svml_satanh_data_internal,3584
+ .align 4
+
+__satanh_la__imlsAtanhTab:
+ .long 1065353216
+ .long 0
+ .long 2139095040
+ .type __satanh_la__imlsAtanhTab,@object
+ .size __satanh_la__imlsAtanhTab,12
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atanh vectorized with SSE2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVbN2v_atanh)
+WRAPPER_IMPL_SSE2 atanh
+END (_ZGVbN2v_atanh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN2v_atanh)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atanh vectorized with AVX2, wrapper version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVdN4v_atanh)
+WRAPPER_IMPL_AVX _ZGVbN2v_atanh
+END (_ZGVdN4v_atanh)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN4v_atanh)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atanh vectorized in AVX ISA as wrapper to SSE4 ISA version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVcN4v_atanh)
+WRAPPER_IMPL_AVX _ZGVbN2v_atanh
+END (_ZGVcN4v_atanh)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atanh vectorized with AVX-512, wrapper to AVX2.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_d_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVeN8v_atanh)
+WRAPPER_IMPL_AVX512 _ZGVdN4v_atanh
+END (_ZGVeN8v_atanh)
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atanhf vectorized with AVX-512. Wrapper to AVX2 version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVeN16v_atanhf)
+WRAPPER_IMPL_AVX512 _ZGVdN8v_atanhf
+END (_ZGVeN16v_atanhf)
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atanhf vectorized with SSE2, wrapper version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVbN4v_atanhf)
+WRAPPER_IMPL_SSE2 atanhf
+END (_ZGVbN4v_atanhf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVbN4v_atanhf)
+#endif
new file mode 100644
@@ -0,0 +1,29 @@
+/* Function atanhf vectorized with AVX2, wrapper version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVdN8v_atanhf)
+WRAPPER_IMPL_AVX _ZGVbN4v_atanhf
+END (_ZGVdN8v_atanhf)
+
+#ifndef USE_MULTIARCH
+ libmvec_hidden_def (_ZGVdN8v_atanhf)
+#endif
new file mode 100644
@@ -0,0 +1,25 @@
+/* Function atanhf vectorized in AVX ISA as wrapper to SSE4 ISA version.
+ Copyright (C) 2021 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <https://www.gnu.org/licenses/>. */
+
+#include <sysdep.h>
+#include "svml_s_wrapper_impl.h"
+
+ .text
+ENTRY (_ZGVcN8v_atanhf)
+WRAPPER_IMPL_AVX _ZGVbN4v_atanhf
+END (_ZGVcN8v_atanhf)
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atanh.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atanh.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-double-libmvec-atanh.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE double
+#define LIBMVEC_FUNC atanh
+#include "test-vector-abi-arg1.h"
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVbN2v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVbN2v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVbN2v_atan)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVbN2vv_atan2)
+VECTOR_WRAPPER (WRAPPER_NAME (atanh), _ZGVbN2v_atanh)
#define VEC_INT_TYPE __m128i
@@ -36,6 +36,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVdN4v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVdN4v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVdN4v_atan)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVdN4vv_atan2)
+VECTOR_WRAPPER (WRAPPER_NAME (atanh), _ZGVdN4v_atanh)
#ifndef __ILP32__
# define VEC_INT_TYPE __m256i
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVcN4v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVcN4v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVcN4v_atan)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVcN4vv_atan2)
+VECTOR_WRAPPER (WRAPPER_NAME (atanh), _ZGVcN4v_atanh)
#define VEC_INT_TYPE __m128i
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asin), _ZGVeN8v_asin)
VECTOR_WRAPPER (WRAPPER_NAME (asinh), _ZGVeN8v_asinh)
VECTOR_WRAPPER (WRAPPER_NAME (atan), _ZGVeN8v_atan)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2), _ZGVeN8vv_atan2)
+VECTOR_WRAPPER (WRAPPER_NAME (atanh), _ZGVeN8v_atanh)
#ifndef __ILP32__
# define VEC_INT_TYPE __m512i
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atanhf.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atanhf.c"
new file mode 100644
@@ -0,0 +1 @@
+#include "test-float-libmvec-atanhf.c"
new file mode 100644
@@ -0,0 +1,3 @@
+#define LIBMVEC_TYPE float
+#define LIBMVEC_FUNC atanhf
+#include "test-vector-abi-arg1.h"
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVeN16v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVeN16v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVeN16v_atanf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVeN16vv_atan2f)
+VECTOR_WRAPPER (WRAPPER_NAME (atanhf), _ZGVeN16v_atanhf)
#define VEC_INT_TYPE __m512i
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVbN4v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVbN4v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVbN4v_atanf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVbN4vv_atan2f)
+VECTOR_WRAPPER (WRAPPER_NAME (atanhf), _ZGVbN4v_atanhf)
#define VEC_INT_TYPE __m128i
@@ -36,6 +36,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVdN8v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVdN8v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVdN8v_atanf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVdN8vv_atan2f)
+VECTOR_WRAPPER (WRAPPER_NAME (atanhf), _ZGVdN8v_atanhf)
/* Redefinition of wrapper to be compatible with _ZGVdN8vvv_sincosf. */
#undef VECTOR_WRAPPER_fFF
@@ -33,6 +33,7 @@ VECTOR_WRAPPER (WRAPPER_NAME (asinf), _ZGVcN8v_asinf)
VECTOR_WRAPPER (WRAPPER_NAME (asinhf), _ZGVcN8v_asinhf)
VECTOR_WRAPPER (WRAPPER_NAME (atanf), _ZGVcN8v_atanf)
VECTOR_WRAPPER_ff (WRAPPER_NAME (atan2f), _ZGVcN8vv_atan2f)
+VECTOR_WRAPPER (WRAPPER_NAME (atanhf), _ZGVcN8v_atanhf)
#define VEC_INT_TYPE __m128i