@@ -2442,12 +2442,23 @@ GLIBCXX_3.4.29 {
_ZNKRSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE3strEv;
_ZNSt7__cxx1118basic_stringstreamI[cw]St11char_traitsI[cw]ESaI[cw]EE3strEONS_12basic_stringI[cw]S2_S3_EE;
- # std::to_chars(char*, char*, [float|double|long double])
- _ZSt8to_charsPcS_[def];
- # std::to_chars(char*, char*, [float|double|long double], chars_format)
- _ZSt8to_charsPcS_[def]St12chars_format;
- # std::to_chars(char*, char*, [float|double|long double], chars_format, int)
- _ZSt8to_charsPcS_[def]St12chars_formati;
+ # std::to_chars(char*, char*, [float|double|long double|__float128], chars_format)
+ _ZSt8to_charsPcS_[defg]St12chars_format;
+
+ # std::to_chars(char*, char*, __ieee128, chars_format)
+ _ZSt8to_charsPcS_u9__ieee128St12chars_format;
+
+ # std::to_chars(char*, char*, _Float16, chars_format)
+ _ZSt8to_charsPcS_DF16_St12chars_format;
+
+ # std::to_chars(char*, char*, _Float128, chars_format)
+ _ZSt8to_charsPcS_DF128_St12chars_format;
+
+ # std::to_chars(char*, char*, bfloat16, chars_format)
+ _ZSt8to_charsPcS_DF16bSt12chars_format;
+
+ # std::to_chars(char*, char*, [float|double|long double|__float128], chars_format, int)
+ _ZSt8to_charsPcS_[defg]St12chars_formati;
} GLIBCXX_3.4.28;
@@ -877,6 +877,16 @@ namespace std
&& __LDBL_MAX_EXP__ == 16384
// Define if long double has the IEEE binary128 format.
# define _GLIBCXX_LDOUBLE_IS_IEEE_BINARY128 1
+#elif __LDBL_MANT_DIG__ == 106 \
+ && __LDBL_MIN_EXP__ == -968 \
+ && __LDBL_MAX_EXP__ == 1024
+// Define if long double has the IBM 128 format.
+# define _GLIBCXX_LDOUBLE_IS_IBM128 1
+#elif __LDBL_MANT_DIG__ == 64 \
+ && __LDBL_MIN_EXP__ == -16381 \
+ && __LDBL_MAX_EXP__ == 16384
+// Define if long double has the x86 extended format.
+# define _GLIBCXX_LDOUBLE_IS_X86_EXTENDED 1
#elif __LDBL_MANT_DIG__ == 53 \
&& __LDBL_MIN_EXP__ == -1021 \
&& __LDBL_MAX_EXP__ == 1024
@@ -784,91 +784,178 @@ namespace __detail
// Floating-point std::to_chars
// Overloads for float.
- to_chars_result to_chars(char* __first, char* __last, float __value) noexcept;
- to_chars_result to_chars(char* __first, char* __last, float __value,
- chars_format __fmt) noexcept;
+
+#if defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+
+ to_chars_result
+ to_chars(char* __first, char* __last, float __value,
+ chars_format __fmt) noexcept;
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, float __value) noexcept
+ { return to_chars(__first, __last, __value, chars_format{}); }
+
to_chars_result to_chars(char* __first, char* __last, float __value,
chars_format __fmt, int __precision) noexcept;
+#endif
+
// Overloads for double.
- to_chars_result to_chars(char* __first, char* __last, double __value) noexcept;
- to_chars_result to_chars(char* __first, char* __last, double __value,
- chars_format __fmt) noexcept;
+
+#if defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
+
+ to_chars_result
+ to_chars(char* __first, char* __last, double __value,
+ chars_format __fmt) noexcept;
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, double __value) noexcept
+ { return to_chars(__first, __last, __value, chars_format{}); }
+
to_chars_result to_chars(char* __first, char* __last, double __value,
chars_format __fmt, int __precision) noexcept;
+#endif
+
// Overloads for long double.
- to_chars_result to_chars(char* __first, char* __last, long double __value)
- noexcept;
- to_chars_result to_chars(char* __first, char* __last, long double __value,
- chars_format __fmt) noexcept;
- to_chars_result to_chars(char* __first, char* __last, long double __value,
- chars_format __fmt, int __precision) noexcept;
- // Library routines for 16-bit extended floating point formats
- // using float as interchange format.
- to_chars_result __to_chars_float16_t(char* __first, char* __last,
- float __value,
- chars_format __fmt) noexcept;
- to_chars_result __to_chars_bfloat16_t(char* __first, char* __last,
- float __value,
- chars_format __fmt) noexcept;
-
-#if defined(__STDCPP_FLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+#if defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY32) && \
+ defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+
inline to_chars_result
- to_chars(char* __first, char* __last, _Float16 __value) noexcept
+ to_chars(char* __first, char* __last, long double __value,
+ chars_format __fmt) noexcept
+ { return to_chars(__first, __last, static_cast<float>(__value), __fmt); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, long double __value) noexcept
+ { return to_chars(__first, __last, static_cast<float>(__value)); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, long double __value, chars_format __fmt,
+ int __precision) noexcept
{
- return __to_chars_float16_t(__first, __last, float(__value),
- chars_format{});
+ return to_chars(__first, __last, static_cast<float>(__value), __fmt,
+ __precision;
}
+
+#elif defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY64) && \
+ defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
+
inline to_chars_result
- to_chars(char* __first, char* __last, _Float16 __value,
+ to_chars(char* __first, char* __last, long double __value,
chars_format __fmt) noexcept
- { return __to_chars_float16_t(__first, __last, float(__value), __fmt); }
+ { return to_chars(__first, __last, static_cast<double>(__value), __fmt); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, long double __value) noexcept
+ { return to_chars(__first, __last, static_cast<double>(__value)); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, long double __value, chars_format __fmt,
+ int __precision) noexcept
+ {
+ return to_chars(__first, __last, static_cast<double>(__value), __fmt,
+ __precision;
+ }
+
+#elif defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) || \
+ defined(_GLIBCXX_LDOUBLE_IS_IBM128) || \
+ defined(_GLIBCXX_LDOUBLE_IS_X86_EXTENDED)
+
+ to_chars_result
+ to_chars(char* __first, char* __last, long double __value,
+ chars_format __fmt) noexcept;
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, long double __value) noexcept
+ { return to_chars(__first, __last, __value, chars_format{}); }
+
+ to_chars_result
+ to_chars(char* __first, char* __last, long double __value, chars_format __fmt,
+ int __precision) noexcept;
+
+#endif
+
+#if defined(__STDCPP_FLOAT16_T__)
+
+ to_chars_result
+ to_chars(char* __first, char* __last, _Float16 __value,
+ chars_format __fmt) noexcept;
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, _Float16 __value) noexcept
+ { return to_chars(__first, __last, __value, chars_format{}); }
+
+#if defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float16 __value,
chars_format __fmt, int __precision) noexcept
- { return to_chars(__first, __last, float(__value), __fmt, __precision); }
+ {
+ return to_chars(__first, __last, static_cast<float>(__value), __fmt,
+ __precision);
+ }
+
+#endif
#endif
#if defined(__STDCPP_FLOAT32_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
- inline to_chars_result
- to_chars(char* __first, char* __last, _Float32 __value) noexcept
- { return to_chars(__first, __last, float(__value)); }
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float32 __value,
chars_format __fmt) noexcept
- { return to_chars(__first, __last, float(__value), __fmt); }
+ { return to_chars(__first, __last, static_cast<float>(__value), __fmt); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, _Float32 __value) noexcept
+ { return to_chars(__first, __last, static_cast<float>(__value)); }
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float32 __value,
chars_format __fmt, int __precision) noexcept
- { return to_chars(__first, __last, float(__value), __fmt, __precision); }
+ {
+ return to_chars(__first, __last, static_cast<float>(__value), __fmt,
+ __precision);
+ }
+
#endif
#if defined(__STDCPP_FLOAT64_T__) && defined(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
- inline to_chars_result
- to_chars(char* __first, char* __last, _Float64 __value) noexcept
- { return to_chars(__first, __last, double(__value)); }
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float64 __value,
chars_format __fmt) noexcept
- { return to_chars(__first, __last, double(__value), __fmt); }
+ { return to_chars(__first, __last, static_cast<double>(__value), __fmt); }
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, _Float64 __value) noexcept
+ { return to_chars(__first, __last, static_cast<double>(__value)); }
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float64 __value,
chars_format __fmt, int __precision) noexcept
- { return to_chars(__first, __last, double(__value), __fmt, __precision); }
+ {
+ return to_chars(__first, __last, static_cast<double>(__value), __fmt,
+ __precision);
+ }
+
#endif
-#if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
- inline to_chars_result
- to_chars(char* __first, char* __last, _Float128 __value) noexcept
- { return to_chars(__first, __last, static_cast<long double>(__value)); }
+#if defined(__STDCPP_FLOAT128_T__)
+#if defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float128 __value,
chars_format __fmt) noexcept
{
return to_chars(__first, __last, static_cast<long double>(__value), __fmt);
}
+
+ inline to_chars_result
+ to_chars(char* __first, char* __last, _Float128 __value) noexcept
+ { return to_chars(__first, __last, static_cast<long double>(__value)); }
+
inline to_chars_result
to_chars(char* __first, char* __last, _Float128 __value,
chars_format __fmt, int __precision) noexcept
@@ -876,69 +963,72 @@ namespace __detail
return to_chars(__first, __last, static_cast<long double>(__value), __fmt,
__precision);
}
-#elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH)
-#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
- __extension__ to_chars_result
- to_chars(char* __first, char* __last, __float128 __value) noexcept;
- __extension__ to_chars_result
- to_chars(char* __first, char* __last, __float128 __value,
+
+#else
+
+ to_chars_result
+ to_chars(char* __first, char* __last, _Float128 __value,
chars_format __fmt) noexcept;
- __extension__ to_chars_result
- to_chars(char* __first, char* __last, __float128 __value,
- chars_format __fmt, int __precision) noexcept;
inline to_chars_result
to_chars(char* __first, char* __last, _Float128 __value) noexcept
{
- return __extension__ to_chars(__first, __last,
- static_cast<__float128>(__value));
+ return to_chars(__first, __last, __value, chars_format{});
}
- inline to_chars_result
+
+ to_chars_result
to_chars(char* __first, char* __last, _Float128 __value,
+ chars_format __fmt, int __precision) noexcept;
+
+#endif
+
+#if defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT)
+
+ __extension__ inline to_chars_result
+ to_chars(char* __first, char* __last, __float128 __value,
chars_format __fmt) noexcept
- {
+ { return to_chars(__first, __last, static_cast<_Float128>(__value), __fmt); }
- return __extension__ to_chars(__first, __last,
- static_cast<__float128>(__value), __fmt);
- }
- inline to_chars_result
- to_chars(char* __first, char* __last, _Float128 __value,
+ __extension__ inline to_chars_result
+ to_chars(char* __first, char* __last, __float128 __value) noexcept
+ { return to_chars(__first, __last, static_cast<_Float128>(__value)); }
+
+ __extension__ inline to_chars_result
+ to_chars(char* __first, char* __last, __float128 __value,
chars_format __fmt, int __precision) noexcept
{
-
- return __extension__ to_chars(__first, __last,
- static_cast<__float128>(__value), __fmt,
- __precision);
+ return to_chars(__first, __last, static_cast<_Float128>(__value), __fmt,
+ __precision);
}
-#else
- to_chars_result to_chars(char* __first, char* __last, _Float128 __value)
- noexcept;
- to_chars_result to_chars(char* __first, char* __last, _Float128 __value,
- chars_format __fmt) noexcept;
- to_chars_result to_chars(char* __first, char* __last, _Float128 __value,
- chars_format __fmt, int __precision) noexcept;
+
#endif
#endif
-#if defined(__STDCPP_BFLOAT16_T__) && defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+#if defined(__STDCPP_BFLOAT16_T__)
+
+ to_chars_result
+ to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
+ chars_format __fmt) noexcept;
+
inline to_chars_result
to_chars(char* __first, char* __last,
__gnu_cxx::__bfloat16_t __value) noexcept
- {
- return __to_chars_bfloat16_t(__first, __last, float(__value),
- chars_format{});
- }
- inline to_chars_result
- to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
- chars_format __fmt) noexcept
- { return __to_chars_bfloat16_t(__first, __last, float(__value), __fmt); }
+ { return to_chars(__first, __last, __value, chars_format{}); }
+
+#if defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
+
inline to_chars_result
to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
chars_format __fmt, int __precision) noexcept
- { return to_chars(__first, __last, float(__value), __fmt, __precision); }
+ {
+ return to_chars(__first, __last, static_cast<float>(__value), __fmt,
+ __precision);
+ }
#endif
#endif
+#endif
+
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
#endif // C++14
@@ -28,6 +28,7 @@
#include <cfenv>
#include <cassert>
#include <cmath>
+#include <cstdint>
#include <cstdio>
#include <cstring>
#if __has_include(<langinfo.h>)
@@ -37,679 +38,551 @@
#include <string_view>
#include <type_traits>
-#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
-#ifndef __LONG_DOUBLE_IBM128__
-#error "floating_to_chars.cc must be compiled with -mabi=ibmlongdouble"
-#endif
-// sprintf for __ieee128
-extern "C" int __sprintfieee128(char*, const char*, ...);
-#elif __FLT128_MANT_DIG__ == 113 && __LDBL_MANT_DIG__ != 113 \
- && defined(__GLIBC_PREREQ)
-extern "C" int __strfromf128(char*, size_t, const char*, _Float128)
- __asm ("strfromf128")
-#ifndef _GLIBCXX_HAVE_FLOAT128_MATH
- __attribute__((__weak__))
-#endif
- ;
+// This implementation assumes that uint64_t POW10_SPLIT_2[3133][3] is valid.
+#if __SIZE_WIDTH__ < 32
+#error "Invalid size."
#endif
-// This implementation crucially assumes float/double have the
-// IEEE binary32/binary64 formats.
-#if _GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 \
- /* And it also assumes that uint64_t POW10_SPLIT_2[3133][3] is valid. */\
- && __SIZE_WIDTH__ >= 32
-
-// Determine the binary format of 'long double'.
-
-// We support the binary64, float80 (i.e. x86 80-bit extended precision),
-// binary128, and ibm128 formats.
-#define LDK_UNSUPPORTED 0
-#define LDK_BINARY64 1
-#define LDK_FLOAT80 2
-#define LDK_BINARY128 3
-#define LDK_IBM128 4
-
-#if __LDBL_MANT_DIG__ == __DBL_MANT_DIG__
-# define LONG_DOUBLE_KIND LDK_BINARY64
-#elif __LDBL_MANT_DIG__ == 64
-# define LONG_DOUBLE_KIND LDK_FLOAT80
-#elif __LDBL_MANT_DIG__ == 113
-# define LONG_DOUBLE_KIND LDK_BINARY128
-#elif __LDBL_MANT_DIG__ == 106
-# define LONG_DOUBLE_KIND LDK_IBM128
-#else
-# define LONG_DOUBLE_KIND LDK_UNSUPPORTED
-#endif
+#if defined(__FLT128_DIG__) && !defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
+
+ #if defined(_GLIBCXX_LONG_DOUBLE_ALT128_COMPAT)
+
+ // We only support __float128 when it's the powerpc64 __ieee128 type.
+ #ifndef __LONG_DOUBLE_IBM128__
+ #error "floating_to_chars.cc must be compiled with -mabi=ibmlongdouble"
+ #endif
+
+ #define FLOAT128_TO_CHARS
+ using F128_type = __float128;
+ extern "C" int __sprintfieee128(char*, const char*, ...);
-// For now we only support __float128 when it's the powerpc64 __ieee128 type.
-#if defined _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT && __FLT128_MANT_DIG__ == 113
-// Define overloads of std::to_chars for __float128.
-# define FLOAT128_TO_CHARS 1
-using F128_type = __float128;
-#elif __FLT128_MANT_DIG__ == 113 && __LDBL_MANT_DIG__ != 113 \
- && defined(__GLIBC_PREREQ)
-# define FLOAT128_TO_CHARS 1
-using F128_type = _Float128;
+ #elif defined(__GLIBC_PREREQ)
+
+ #define FLOAT128_TO_CHARS
+ using F128_type = _Float128;
+ extern "C" int __strfromf128(char*, size_t, const char*, _Float128)
+ __asm ("strfromf128")
+ #ifndef _GLIBCXX_HAVE_FLOAT128_MATH
+ __attribute__((__weak__))
+ #endif
+ ;
+
+ #else
+ using F128_type = void;
+ #endif
#else
-using F128_type = void;
+ using F128_type = void;
#endif
#include <stdint.h>
+// The definition of uint128_t must precede inclusions of Tejú Jaguá and Ryu.
+#if defined(__SIZEOF_INT128__)
+
namespace
{
-#if defined __SIZEOF_INT128__
- using uint128_t = unsigned __int128;
+using uint128_t = unsigned __int128;
+}
+
#else
-# include "uint128_t.h"
+
+namespace __detail
+{
+#include "uint128_t.h"
+}
+
+namespace
+{
+using uint128_t = __detail::uint128_t;
+}
+
#endif
- namespace ryu
- {
+#include "teju_jagua/to_decimal.h"
+
+namespace
+{
+namespace ryu
+{
#include "ryu/common.h"
#include "ryu/digit_table.h"
#include "ryu/d2s_intrinsics.h"
-#include "ryu/d2s_full_table.h"
#include "ryu/d2fixed_full_table.h"
-#include "ryu/f2s_intrinsics.h"
-#include "ryu/d2s.c"
#include "ryu/d2fixed.c"
-#include "ryu/f2s.c"
+#include "ryu/to_chars.h"
- namespace generic128
- {
- // Put the generic Ryu bits in their own namespace to avoid name conflicts.
-# include "ryu/generic_128.h"
-# include "ryu/ryu_generic_128.h"
-# include "ryu/generic_128.c"
- } // namespace generic128
-
- using generic128::floating_decimal_128;
- using generic128::generic_binary_to_decimal;
-
- int
- to_chars(const floating_decimal_128 v, char* const result)
- { return generic128::generic_to_chars(v, result); }
- } // namespace ryu
-
- // A traits class that contains pertinent information about the binary
- // format of each of the floating-point types we support.
- template<typename T>
- struct floating_type_traits
- { };
-
- template<>
- struct floating_type_traits<float>
- {
- static constexpr int mantissa_bits = 23;
- static constexpr int exponent_bits = 8;
- static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint32_t;
- using shortest_scientific_t = ryu::floating_decimal_32;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000000000011101011100110101100101101110000000000000000000000000 };
- };
+} // namespace ryu
- template<>
- struct floating_type_traits<double>
- {
- static constexpr int mantissa_bits = 52;
- static constexpr int exponent_bits = 11;
- static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint64_t;
- using shortest_scientific_t = ryu::floating_decimal_64;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000000000000000000000011000110101110111000001100101110000111100,
- 0b0111100011110101011000011110000000110110010101011000001110011111,
- 0b0101101100000000011100100100111100110110110100010001010101110000,
- 0b0011110010111000101111110101100011101100010001010000000101100111,
- 0b0001010000011001011100100001010000010101101000001101000000000000 };
- };
+// Most of the code is this anonymous namespace. Calls from here to
+// __bit_width, __countr_zero and to_chars must be unqualified for
+// resolving to members of either std or __detail (by ADL).
+using std::__bit_width;
+using std::__countr_zero;
+using std::to_chars;
-#if LONG_DOUBLE_KIND == LDK_BINARY128 || defined FLOAT128_TO_CHARS
- // Traits for the IEEE binary128 format.
- struct floating_type_traits_binary128
+// A traits class that contains pertinent information about the binary
+// format of each of the floating-point types we support.
+template<typename T>
+ struct floating_type_traits;
+
+template<>
+ struct floating_type_traits<float>
{
- static constexpr int mantissa_bits = 112;
- static constexpr int exponent_bits = 15;
+ static constexpr int mantissa_bits = 23;
+ static constexpr int exponent_bits = 8;
static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint128_t;
- using shortest_scientific_t = ryu::floating_decimal_128;
+ using mantissa_t = uint32_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint32_t>;
static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000000000000000000000000000000000000000000000000100000010000000,
- 0b1011001111110100000100010101101110011100100110000110010110011000,
- 0b1010100010001101111111000000001101010010100010010000111011110111,
- 0b1011111001110001111000011111000010110111000111110100101010100101,
- 0b0110100110011110011011000011000010011001110001001001010011100011,
- 0b0000011111110010101111101011101010000110011111100111001110100111,
- 0b0100010101010110000010111011110100000010011001001010001110111101,
- 0b1101110111000010001101100000110100000111001001101011000101011011,
- 0b0100111011101101010000001101011000101100101110010010110000101011,
- 0b0100000110111000000110101000010011101000110100010110000011101101,
- 0b1011001101001000100001010001100100001111011101010101110001010110,
- 0b1000000001000000101001110010110010001111101101010101001100000110,
- 0b0101110110100110000110000001001010111110001110010000111111010011,
- 0b1010001111100111000100011100100100111100100101000001011001000111,
- 0b1010011000011100110101100111001011100101111111100001110100000100,
- 0b1100011100100010100000110001001010000000100000001001010111011101,
- 0b0101110000100011001111101101000000100110000010010111010001111010,
- 0b0100111100011010110111101000100110000111001001101100000001111100,
- 0b1100100100111110101011000100000101011010110111000111110100110101,
- 0b0110010000010111010100110011000000111010000010111011010110000100,
- 0b0101001001010010110111010111000101011100000111100111000001110010,
- 0b1101111111001011101010110001000111011010111101001011010110100100,
- 0b0001000100110000011111101011001101110010110110010000000011100100,
- 0b0001000000000101001001001000000000011000100011001110101001001110,
- 0b0010010010001000111010011011100001000110011011011110110100111000,
- 0b0000100110101100000111100010100100011100110111011100001111001100,
- 0b1011111010001110001100000011110111111111100000001011111111101100,
- 0b0000011100001111010101110000100110111100101101110111101001000001,
- 0b1100010001110110111100001001001101101000011100000010110101001011,
- 0b0100101001101011111001011110101101100011011111011100101010101111,
- 0b0001101001111001110000101101101100001011010001011110011101000010,
- 0b1111000000101001101111011010110011101110100001011011001011100010,
- 0b0101001010111101101100001111100010010110001101001000001101100100,
- 0b0101100101011110001100101011111000111001111001001001101101100001,
- 0b1111001101010010100100011011000110110010001111000111010001001101,
- 0b0001110010011000000001000110110111011000011100001000011001110111,
- 0b0100001011011011011011110011101100100101111111101100101000001110,
- 0b0101011110111101010111100111101111000101111111111110100011011010,
- 0b1110101010001001110100000010110111010111111010111110100110010110,
- 0b1010001111100001001100101000110100001100011100110010000011010111,
- 0b1111111101101111000100111100000101011000001110011011101010111001,
- 0b1111101100001110100101111101011001000100000101110000110010100011,
- 0b1001010110110101101101000101010001010000101011011111010011010000,
- 0b0111001110110011101001100111000001000100001010110000010000001101,
- 0b0101111100111110100111011001111001111011011110010111010011101010,
- 0b1110111000000001100100111001100100110001011011001110101111110111,
- 0b0001010001001101010111101010011111000011110001101101011001111111,
- 0b0101000011100011010010001101100001011101011010100110101100100010,
- 0b0001000101011000100101111100110110000101101101111000110001001011,
- 0b0101100101001011011000010101000000010100011100101101000010011111,
- 0b1000010010001011101001011010100010111011110100110011011000100111,
- 0b1000011011100001010111010111010011101100100010010010100100101001,
- 0b1001001001010111110101000010111010000000101111010100001010010010,
- 0b0011011110110010010101111011000001000000000011011111000011111011,
- 0b1011000110100011001110000001000100000001011100010111010010011110,
- 0b0111101110110101110111110000011000000100011100011000101101101110,
- 0b1001100101111011011100011110101011001111100111101010101010110111,
- 0b1100110010010001100011001111010000000100011101001111011101001111,
- 0b1000111001111010100101000010000100000001001100101010001011001101,
- 0b0011101011110000110010100101010100110010100001000010101011111101,
- 0b1100000000000110000010101011000000011101000110011111100010111111,
- 0b0010100110000011011100010110111100010110101100110011101110001101,
- 0b0010111101010011111000111001111100110111111100100011110001101110,
- 0b1001110111001001101001001001011000010100110001000000100011010110,
- 0b0011110101100111011011111100001000011001010100111100100101111010,
- 0b0010001101000011000010100101110000010101101000100110000100001010,
- 0b0010000010100110010101100101110011101111000111111111001001100001,
- 0b0100111111011011011011100111111011000010011101101111011111110110,
- 0b1111111111010110101011101000100101110100001110001001101011100111,
- 0b1011111101000101110000111100100010111010100001010000010010110010,
- 0b1111010101001011101011101010000100110110001110111100100110111111,
- 0b1011001101000001001101000010101010010110010001100001011100011010,
- 0b0101001011011101010001110100010000010001111100100100100001001101,
- 0b0010100000111001100011000101100101000001111100111001101000000010,
- 0b1011001111010101011001000100100110100100110111110100000110111000,
- 0b0101011111010011100011010010111101110010100001111111100010001001,
- 0b0010111011101100100000000000001111111010011101100111100001001101,
- 0b1101000000000000000000000000000000000000000000000000000000000000 };
+ = { 0b0000000000011101011100110101100101101110000000000000000000000000 };
};
-# ifdef FLOAT128_TO_CHARS
- template<>
- struct floating_type_traits<F128_type> : floating_type_traits_binary128
- { };
-# endif
-#endif
+template<>
+ struct floating_type_traits<double>
+ {
+ static constexpr int mantissa_bits = 52;
+ static constexpr int exponent_bits = 11;
+ static constexpr bool has_implicit_leading_bit = true;
+ using mantissa_t = uint64_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint64_t>;
+
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0b0000000000000000000000011000110101110111000001100101110000111100,
+ 0b0111100011110101011000011110000000110110010101011000001110011111,
+ 0b0101101100000000011100100100111100110110110100010001010101110000,
+ 0b0011110010111000101111110101100011101100010001010000000101100111,
+ 0b0001010000011001011100100001010000010101101000001101000000000000 };
+ };
+
+struct floating_type_traits_binary128
+{
+ static constexpr int mantissa_bits = 112;
+ static constexpr int exponent_bits = 15;
+ static constexpr bool has_implicit_leading_bit = true;
+ using mantissa_t = uint128_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint128_t>;
+
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0b0000000000000000000000000000000000000000000000000100000010000000,
+ 0b1011001111110100000100010101101110011100100110000110010110011000,
+ 0b1010100010001101111111000000001101010010100010010000111011110111,
+ 0b1011111001110001111000011111000010110111000111110100101010100101,
+ 0b0110100110011110011011000011000010011001110001001001010011100011,
+ 0b0000011111110010101111101011101010000110011111100111001110100111,
+ 0b0100010101010110000010111011110100000010011001001010001110111101,
+ 0b1101110111000010001101100000110100000111001001101011000101011011,
+ 0b0100111011101101010000001101011000101100101110010010110000101011,
+ 0b0100000110111000000110101000010011101000110100010110000011101101,
+ 0b1011001101001000100001010001100100001111011101010101110001010110,
+ 0b1000000001000000101001110010110010001111101101010101001100000110,
+ 0b0101110110100110000110000001001010111110001110010000111111010011,
+ 0b1010001111100111000100011100100100111100100101000001011001000111,
+ 0b1010011000011100110101100111001011100101111111100001110100000100,
+ 0b1100011100100010100000110001001010000000100000001001010111011101,
+ 0b0101110000100011001111101101000000100110000010010111010001111010,
+ 0b0100111100011010110111101000100110000111001001101100000001111100,
+ 0b1100100100111110101011000100000101011010110111000111110100110101,
+ 0b0110010000010111010100110011000000111010000010111011010110000100,
+ 0b0101001001010010110111010111000101011100000111100111000001110010,
+ 0b1101111111001011101010110001000111011010111101001011010110100100,
+ 0b0001000100110000011111101011001101110010110110010000000011100100,
+ 0b0001000000000101001001001000000000011000100011001110101001001110,
+ 0b0010010010001000111010011011100001000110011011011110110100111000,
+ 0b0000100110101100000111100010100100011100110111011100001111001100,
+ 0b1011111010001110001100000011110111111111100000001011111111101100,
+ 0b0000011100001111010101110000100110111100101101110111101001000001,
+ 0b1100010001110110111100001001001101101000011100000010110101001011,
+ 0b0100101001101011111001011110101101100011011111011100101010101111,
+ 0b0001101001111001110000101101101100001011010001011110011101000010,
+ 0b1111000000101001101111011010110011101110100001011011001011100010,
+ 0b0101001010111101101100001111100010010110001101001000001101100100,
+ 0b0101100101011110001100101011111000111001111001001001101101100001,
+ 0b1111001101010010100100011011000110110010001111000111010001001101,
+ 0b0001110010011000000001000110110111011000011100001000011001110111,
+ 0b0100001011011011011011110011101100100101111111101100101000001110,
+ 0b0101011110111101010111100111101111000101111111111110100011011010,
+ 0b1110101010001001110100000010110111010111111010111110100110010110,
+ 0b1010001111100001001100101000110100001100011100110010000011010111,
+ 0b1111111101101111000100111100000101011000001110011011101010111001,
+ 0b1111101100001110100101111101011001000100000101110000110010100011,
+ 0b1001010110110101101101000101010001010000101011011111010011010000,
+ 0b0111001110110011101001100111000001000100001010110000010000001101,
+ 0b0101111100111110100111011001111001111011011110010111010011101010,
+ 0b1110111000000001100100111001100100110001011011001110101111110111,
+ 0b0001010001001101010111101010011111000011110001101101011001111111,
+ 0b0101000011100011010010001101100001011101011010100110101100100010,
+ 0b0001000101011000100101111100110110000101101101111000110001001011,
+ 0b0101100101001011011000010101000000010100011100101101000010011111,
+ 0b1000010010001011101001011010100010111011110100110011011000100111,
+ 0b1000011011100001010111010111010011101100100010010010100100101001,
+ 0b1001001001010111110101000010111010000000101111010100001010010010,
+ 0b0011011110110010010101111011000001000000000011011111000011111011,
+ 0b1011000110100011001110000001000100000001011100010111010010011110,
+ 0b0111101110110101110111110000011000000100011100011000101101101110,
+ 0b1001100101111011011100011110101011001111100111101010101010110111,
+ 0b1100110010010001100011001111010000000100011101001111011101001111,
+ 0b1000111001111010100101000010000100000001001100101010001011001101,
+ 0b0011101011110000110010100101010100110010100001000010101011111101,
+ 0b1100000000000110000010101011000000011101000110011111100010111111,
+ 0b0010100110000011011100010110111100010110101100110011101110001101,
+ 0b0010111101010011111000111001111100110111111100100011110001101110,
+ 0b1001110111001001101001001001011000010100110001000000100011010110,
+ 0b0011110101100111011011111100001000011001010100111100100101111010,
+ 0b0010001101000011000010100101110000010101101000100110000100001010,
+ 0b0010000010100110010101100101110011101111000111111111001001100001,
+ 0b0100111111011011011011100111111011000010011101101111011111110110,
+ 0b1111111111010110101011101000100101110100001110001001101011100111,
+ 0b1011111101000101110000111100100010111010100001010000010010110010,
+ 0b1111010101001011101011101010000100110110001110111100100110111111,
+ 0b1011001101000001001101000010101010010110010001100001011100011010,
+ 0b0101001011011101010001110100010000010001111100100100100001001101,
+ 0b0010100000111001100011000101100101000001111100111001101000000010,
+ 0b1011001111010101011001000100100110100100110111110100000110111000,
+ 0b0101011111010011100011010010111101110010100001111111100010001001,
+ 0b0010111011101100100000000000001111111010011101100111100001001101,
+ 0b1101000000000000000000000000000000000000000000000000000000000000 };
+};
+
+#if defined(FLOAT128_TO_CHARS)
+
+template <>
+ struct floating_type_traits<F128_type> : floating_type_traits_binary128
+ { };
-#if LONG_DOUBLE_KIND == LDK_BINARY64
- // When long double is equivalent to double, we just forward the long double
- // overloads to the double overloads, so we don't need to define a
- // floating_type_traits<long double> specialization in this case.
-#elif LONG_DOUBLE_KIND == LDK_FLOAT80
- template<>
- struct floating_type_traits<long double>
- {
- static constexpr int mantissa_bits = 64;
- static constexpr int exponent_bits = 15;
- static constexpr bool has_implicit_leading_bit = false;
- using mantissa_t = uint64_t;
- using shortest_scientific_t = ryu::floating_decimal_128;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000000000000000000000000000110101011111110100010100110000011101,
- 0b1001100101001111010011011111101000101111110001011001011101110000,
- 0b0000101111111011110010001000001010111101011110111111010100011001,
- 0b0011100000011111001101101011111001111100100010000101001111101001,
- 0b0100100100000000100111010010101110011000110001101101110011001010,
- 0b0111100111100010100000010011000010010110101111110101000011110100,
- 0b1010100111100010011110000011011101101100010110000110101010101010,
- 0b0000001111001111000000101100111011011000101000110011101100110010,
- 0b0111000011100100101101010100001101111110101111001000010011111111,
- 0b0010111000100110100100100010101100111010110001101010010111001000,
- 0b0000100000010110000011001001000111000001111010100101101000001111,
- 0b0010101011101000111100001011000010011101000101010010010000101111,
- 0b1011111011101101110010101011010001111000101000101101011001100011,
- 0b1010111011011011110111110011001010000010011001110100101101000101,
- 0b0011000001110110011010010000011100100011001011001100001101010110,
- 0b0100011111011000111111101000011110000010111110101001000000001001,
- 0b1110000001110001001101101110011000100000001010000111100010111010,
- 0b1110001001010011101000111000001000010100110000010110100011110000,
- 0b0000011010110000110001111000011111000011001101001101001001000110,
- 0b1010010111001000101001100101010110100100100010010010000101000010,
- 0b1011001110000111100010100110000011100011111001110111001100000101,
- 0b0110101001001000010110001000010001010101110101100001111100011001,
- 0b1111100011110101011110011010101001010010100011000010110001101001,
- 0b0100000100001000111101011100010011011111011001000000001100011000,
- 0b1110111111000111100101110111110000000011001110011100011011011001,
- 0b1100001100100000010001100011011000111011110000110011010101000011,
- 0b1111111011100111011101001111111000010000001111010111110010000100,
- 0b1110111001111110101111000101000000001010001110011010001000111010,
- 0b1000010001011000101111111010110011111101110101101001111000111010,
- 0b0100000111101001000111011001101000001010111011101001101111000100,
- 0b0000011100110001000111011100111100110001101111111010110111100000,
- 0b0000011101011100100110010011110101010100010011110010010111010000,
- 0b0011011001100111110101111100001001101110101101001110110011110110,
- 0b1011000101000001110100111001100100111100110011110000000001101000,
- 0b1011100011110100001001110101010110111001000000001011101001011110,
- 0b1111001010010010100000010110101010101011101000101000000000001100,
- 0b1000001111100100111001110101100001010011111111000001000011110000,
- 0b0001011101001000010000101101111000001110101100110011001100110111,
- 0b1110011100000010101011011111001010111101111110100000011100000011,
- 0b1001110110011100101010011110100010110001001110110000101011100110,
- 0b1001101000100011100111010000011011100001000000110101100100001001,
- 0b1010111000101000101101010111000010001100001010100011111100000100,
- 0b0111101000100011000101101011111011100010001101110111001111001011,
- 0b1110100111010110001110110110000000010110100011110000010001111100,
- 0b1100010100011010001011001000111001010101011110100101011001000000,
- 0b0000110001111001100110010110111010101101001101000000000010010101,
- 0b0001110111101000001111101010110010010000111110111100000111110100,
- 0b0111110111001001111000110001101101001010101110110101111110000100,
- 0b0000111110111010101111100010111010011100010110011011011001000001,
- 0b1010010100100100101110111111111000101100000010111111101101000110,
- 0b1000100111111101100011001101000110001000000100010101010100001101,
- 0b1100101010101000111100101100001000110001110010100000000010110101,
- 0b1010000100111101100100101010010110100010000000110101101110000100,
- 0b1011111011110001110000100100000000001010111010001101100000100100,
- 0b0111101101100011001110011100000001000101101101111000100111011111,
- 0b0100111010010011011001010011110100001100111010010101111111100011,
- 0b0010001001011000111000001100110111110111110010100011000110110110,
- 0b0101010110000000010000100000110100111011111101000100000111010010,
- 0b0110000011011101000001010100110101101110011100110101000000001001,
- 0b1101100110100000011000001111000100100100110001100110101010101100,
- 0b0010100101010110010010001010101000011111111111001011001010001111,
- 0b0111001010001111001100111001010101001000110101000011110000001000,
- 0b0110010011001001001111110001010010001011010010001101110110110011,
- 0b0110010100111011000100111000001001101011111001110010111110111111,
- 0b0101110111001001101100110100101001110010101110011001101110001000,
- 0b0100110101010111011010001100010111100011010011111001010100111000,
- 0b0111000110110111011110100100010111000110000110110110110001111110,
- 0b1000101101010100100100111110100011110110110010011001110011110101,
- 0b1001101110101001010100111101101011000101000010110101101111110000,
- 0b0100100101001011011001001011000010001101001010010001010110101000,
- 0b0010100001001011100110101000010110000111000111000011100101011011,
- 0b0110111000011001111101101011111010001000000010101000101010011110,
- 0b1000110110100001111011000001111100001001000000010110010100100100,
- 0b1001110100011111100111101011010000010101011100101000010010100110,
- 0b0001010110101110100010101010001110110110100011101010001001111100,
- 0b1010100101101100000010110011100110100010010000100100001110000100,
- 0b0001000000010000001010000010100110000001110100111001110111101101,
- 0b1100000000000000000000000000000000000000000000000000000000000000 };
- };
-#elif LONG_DOUBLE_KIND == LDK_BINARY128
- template<>
- struct floating_type_traits<long double> : floating_type_traits_binary128
- { };
-#elif LONG_DOUBLE_KIND == LDK_IBM128
- template<>
- struct floating_type_traits<long double>
- {
- static constexpr int mantissa_bits = 105;
- static constexpr int exponent_bits = 11;
- static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint128_t;
- using shortest_scientific_t = ryu::floating_decimal_128;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000000000000000000000000000000000000000000000001000000100000000,
- 0b0000000000000000000100000000000000000000001000000000000000000010,
- 0b0000100000000000000000001001000000000000000001100100000000000000,
- 0b0011000000000000000000000000000001110000010000000000000000000000,
- 0b0000100000000000001000000000000000000000000000100000000000000000 };
- };
#endif
- // Wrappers around float for std::{,b}float16_t promoted to float.
- struct floating_type_float16_t
+#if defined(_GLIBCXX_LDOUBLE_IS_X86_EXTENDED)
+
+template<>
+ struct floating_type_traits<long double>
{
- float x;
- operator float() const { return x; }
+ static constexpr int mantissa_bits = 64;
+ static constexpr int exponent_bits = 15;
+ static constexpr bool has_implicit_leading_bit = false;
+ using mantissa_t = uint64_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint128_t>;
+
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0b0000000000000000000000000000110101011111110100010100110000011101,
+ 0b1001100101001111010011011111101000101111110001011001011101110000,
+ 0b0000101111111011110010001000001010111101011110111111010100011001,
+ 0b0011100000011111001101101011111001111100100010000101001111101001,
+ 0b0100100100000000100111010010101110011000110001101101110011001010,
+ 0b0111100111100010100000010011000010010110101111110101000011110100,
+ 0b1010100111100010011110000011011101101100010110000110101010101010,
+ 0b0000001111001111000000101100111011011000101000110011101100110010,
+ 0b0111000011100100101101010100001101111110101111001000010011111111,
+ 0b0010111000100110100100100010101100111010110001101010010111001000,
+ 0b0000100000010110000011001001000111000001111010100101101000001111,
+ 0b0010101011101000111100001011000010011101000101010010010000101111,
+ 0b1011111011101101110010101011010001111000101000101101011001100011,
+ 0b1010111011011011110111110011001010000010011001110100101101000101,
+ 0b0011000001110110011010010000011100100011001011001100001101010110,
+ 0b0100011111011000111111101000011110000010111110101001000000001001,
+ 0b1110000001110001001101101110011000100000001010000111100010111010,
+ 0b1110001001010011101000111000001000010100110000010110100011110000,
+ 0b0000011010110000110001111000011111000011001101001101001001000110,
+ 0b1010010111001000101001100101010110100100100010010010000101000010,
+ 0b1011001110000111100010100110000011100011111001110111001100000101,
+ 0b0110101001001000010110001000010001010101110101100001111100011001,
+ 0b1111100011110101011110011010101001010010100011000010110001101001,
+ 0b0100000100001000111101011100010011011111011001000000001100011000,
+ 0b1110111111000111100101110111110000000011001110011100011011011001,
+ 0b1100001100100000010001100011011000111011110000110011010101000011,
+ 0b1111111011100111011101001111111000010000001111010111110010000100,
+ 0b1110111001111110101111000101000000001010001110011010001000111010,
+ 0b1000010001011000101111111010110011111101110101101001111000111010,
+ 0b0100000111101001000111011001101000001010111011101001101111000100,
+ 0b0000011100110001000111011100111100110001101111111010110111100000,
+ 0b0000011101011100100110010011110101010100010011110010010111010000,
+ 0b0011011001100111110101111100001001101110101101001110110011110110,
+ 0b1011000101000001110100111001100100111100110011110000000001101000,
+ 0b1011100011110100001001110101010110111001000000001011101001011110,
+ 0b1111001010010010100000010110101010101011101000101000000000001100,
+ 0b1000001111100100111001110101100001010011111111000001000011110000,
+ 0b0001011101001000010000101101111000001110101100110011001100110111,
+ 0b1110011100000010101011011111001010111101111110100000011100000011,
+ 0b1001110110011100101010011110100010110001001110110000101011100110,
+ 0b1001101000100011100111010000011011100001000000110101100100001001,
+ 0b1010111000101000101101010111000010001100001010100011111100000100,
+ 0b0111101000100011000101101011111011100010001101110111001111001011,
+ 0b1110100111010110001110110110000000010110100011110000010001111100,
+ 0b1100010100011010001011001000111001010101011110100101011001000000,
+ 0b0000110001111001100110010110111010101101001101000000000010010101,
+ 0b0001110111101000001111101010110010010000111110111100000111110100,
+ 0b0111110111001001111000110001101101001010101110110101111110000100,
+ 0b0000111110111010101111100010111010011100010110011011011001000001,
+ 0b1010010100100100101110111111111000101100000010111111101101000110,
+ 0b1000100111111101100011001101000110001000000100010101010100001101,
+ 0b1100101010101000111100101100001000110001110010100000000010110101,
+ 0b1010000100111101100100101010010110100010000000110101101110000100,
+ 0b1011111011110001110000100100000000001010111010001101100000100100,
+ 0b0111101101100011001110011100000001000101101101111000100111011111,
+ 0b0100111010010011011001010011110100001100111010010101111111100011,
+ 0b0010001001011000111000001100110111110111110010100011000110110110,
+ 0b0101010110000000010000100000110100111011111101000100000111010010,
+ 0b0110000011011101000001010100110101101110011100110101000000001001,
+ 0b1101100110100000011000001111000100100100110001100110101010101100,
+ 0b0010100101010110010010001010101000011111111111001011001010001111,
+ 0b0111001010001111001100111001010101001000110101000011110000001000,
+ 0b0110010011001001001111110001010010001011010010001101110110110011,
+ 0b0110010100111011000100111000001001101011111001110010111110111111,
+ 0b0101110111001001101100110100101001110010101110011001101110001000,
+ 0b0100110101010111011010001100010111100011010011111001010100111000,
+ 0b0111000110110111011110100100010111000110000110110110110001111110,
+ 0b1000101101010100100100111110100011110110110010011001110011110101,
+ 0b1001101110101001010100111101101011000101000010110101101111110000,
+ 0b0100100101001011011001001011000010001101001010010001010110101000,
+ 0b0010100001001011100110101000010110000111000111000011100101011011,
+ 0b0110111000011001111101101011111010001000000010101000101010011110,
+ 0b1000110110100001111011000001111100001001000000010110010100100100,
+ 0b1001110100011111100111101011010000010101011100101000010010100110,
+ 0b0001010110101110100010101010001110110110100011101010001001111100,
+ 0b1010100101101100000010110011100110100010010000100100001110000100,
+ 0b0001000000010000001010000010100110000001110100111001110111101101,
+ 0b1100000000000000000000000000000000000000000000000000000000000000 };
};
- struct floating_type_bfloat16_t
+
+#elif defined(_GLIBCXX_LDOUBLE_IS_IBM128)
+
+template<>
+ struct floating_type_traits<long double>
{
- float x;
- operator float() const { return x; }
+ static constexpr int mantissa_bits = 105;
+ static constexpr int exponent_bits = 11;
+ static constexpr bool has_implicit_leading_bit = true;
+ using mantissa_t = uint128_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint128_t>;
+
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0b0000000000000000000000000000000000000000000000001000000100000000,
+ 0b0000000000000000000100000000000000000000001000000000000000000010,
+ 0b0000100000000000000000001001000000000000000001100100000000000000,
+ 0b0011000000000000000000000000000001110000010000000000000000000000,
+ 0b0000100000000000001000000000000000000000000000100000000000000000 };
};
- template<>
- struct floating_type_traits<floating_type_float16_t>
- {
- static constexpr int mantissa_bits = 10;
- static constexpr int exponent_bits = 5;
- static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint32_t;
- using shortest_scientific_t = ryu::floating_decimal_128;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0 };
- };
+#elif defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128)
- template<>
- struct floating_type_traits<floating_type_bfloat16_t>
- {
- static constexpr int mantissa_bits = 7;
- static constexpr int exponent_bits = 8;
- static constexpr bool has_implicit_leading_bit = true;
- using mantissa_t = uint32_t;
- using shortest_scientific_t = ryu::floating_decimal_128;
-
- static constexpr uint64_t pow10_adjustment_tab[]
- = { 0b0000111001110001101010010110100101010010000000000000000000000000 };
- };
+template<>
+ struct floating_type_traits<long double> : floating_type_traits_binary128
+ {};
- // An IEEE-style decomposition of a floating-point value of type T.
- template<typename T>
- struct ieee_t
- {
- typename floating_type_traits<T>::mantissa_t mantissa;
- uint32_t biased_exponent;
- bool sign;
- };
+#else
+#error "Unknown long double format."
+#endif
- // Decompose the floating-point value into its IEEE components.
- template<typename T>
- ieee_t<T>
- get_ieee_repr(const T value)
- {
- using mantissa_t = typename floating_type_traits<T>::mantissa_t;
- constexpr int mantissa_bits = floating_type_traits<T>::mantissa_bits;
- constexpr int exponent_bits = floating_type_traits<T>::exponent_bits;
- constexpr int total_bits = mantissa_bits + exponent_bits + 1;
-
- constexpr auto get_uint_t = [] {
- if constexpr (total_bits <= 32)
- return uint32_t{};
- else if constexpr (total_bits <= 64)
- return uint64_t{};
- else if constexpr (total_bits <= 128)
- return uint128_t{};
- };
- using uint_t = decltype(get_uint_t());
- uint_t value_bits = 0;
- memcpy(&value_bits, &value, sizeof(value));
-
- ieee_t<T> ieee_repr;
- ieee_repr.mantissa
- = static_cast<mantissa_t>(value_bits & ((uint_t{1} << mantissa_bits) - 1u));
- value_bits >>= mantissa_bits;
- ieee_repr.biased_exponent
- = static_cast<uint32_t>(value_bits & ((uint_t{1} << exponent_bits) - 1u));
- value_bits >>= exponent_bits;
- ieee_repr.sign = (value_bits & 1) != 0;
- return ieee_repr;
- }
+#if defined(__FLT16_DIG__)
-#if LONG_DOUBLE_KIND == LDK_IBM128
- template<>
- ieee_t<long double>
- get_ieee_repr(const long double value)
- {
- // The layout of __ibm128 isn't compatible with the standard IEEE format.
- // So we transform it into an IEEE-compatible format, suitable for
- // consumption by the generic Ryu API, with an 11-bit exponent and 105-bit
- // mantissa (plus an implicit leading bit). We use the exponent and sign
- // of the high part, and we merge the mantissa of the high part with the
- // mantissa (and the implicit leading bit) of the low part.
- uint64_t value_bits[2] = {};
- memcpy(value_bits, &value, sizeof(value_bits));
-
- const uint64_t value_hi = value_bits[0];
- const uint64_t value_lo = value_bits[1];
-
- uint64_t mantissa_hi = value_hi & ((1ull << 52) - 1);
- unsigned exponent_hi = (value_hi >> 52) & ((1ull << 11) - 1);
- const int sign_hi = (value_hi >> 63) & 1;
-
- uint64_t mantissa_lo = value_lo & ((1ull << 52) - 1);
- const unsigned exponent_lo = (value_lo >> 52) & ((1ull << 11) - 1);
- const int sign_lo = (value_lo >> 63) & 1;
+template<>
+ struct floating_type_traits<_Float16>
+ {
+ static constexpr int mantissa_bits = 10;
+ static constexpr int exponent_bits = 5;
+ static constexpr bool has_implicit_leading_bit = true;
+ using mantissa_t = uint32_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint16_t>;
- {
- // The following code for adjusting the low-part mantissa to combine
- // it with the high-part mantissa is taken from the glibc source file
- // sysdeps/ieee754/ldbl-128ibm/printf_fphex.c.
- mantissa_lo <<= 7;
- if (exponent_lo != 0)
- mantissa_lo |= (1ull << (52 + 7));
- else
- mantissa_lo <<= 1;
-
- const int ediff = exponent_hi - exponent_lo - 53;
- if (ediff > 63)
- mantissa_lo = 0;
- else if (ediff > 0)
- mantissa_lo >>= ediff;
- else if (ediff < 0)
- mantissa_lo <<= -ediff;
-
- if (sign_lo != sign_hi && mantissa_lo != 0)
- {
- mantissa_lo = (1ull << 60) - mantissa_lo;
- if (mantissa_hi == 0)
- {
- mantissa_hi = 0xffffffffffffeLL | (mantissa_lo >> 59);
- mantissa_lo = 0xfffffffffffffffLL & (mantissa_lo << 1);
- exponent_hi--;
- }
- else
- mantissa_hi--;
- }
- }
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0 };
+ };
- ieee_t<long double> ieee_repr;
- ieee_repr.mantissa = ((uint128_t{mantissa_hi} << 64)
- | (uint128_t{mantissa_lo} << 4)) >> 11;
- ieee_repr.biased_exponent = exponent_hi;
- ieee_repr.sign = sign_hi;
- return ieee_repr;
- }
#endif
- template<>
- ieee_t<floating_type_float16_t>
- get_ieee_repr(const floating_type_float16_t value)
- {
- using mantissa_t = typename floating_type_traits<float>::mantissa_t;
- constexpr int mantissa_bits = floating_type_traits<float>::mantissa_bits;
- constexpr int exponent_bits = floating_type_traits<float>::exponent_bits;
-
- uint32_t value_bits = 0;
- memcpy(&value_bits, &value.x, sizeof(value));
-
- ieee_t<floating_type_float16_t> ieee_repr;
- ieee_repr.mantissa
- = static_cast<mantissa_t>(value_bits & ((uint32_t{1} << mantissa_bits) - 1u));
- value_bits >>= mantissa_bits;
- ieee_repr.biased_exponent
- = static_cast<uint32_t>(value_bits & ((uint32_t{1} << exponent_bits) - 1u));
- value_bits >>= exponent_bits;
- ieee_repr.sign = (value_bits & 1) != 0;
- // We have mantissa and biased_exponent from the float (originally
- // float16_t converted to float).
- // Transform that to float16_t mantissa and biased_exponent.
- // If biased_exponent is 0, then value is +-0.0.
- // If biased_exponent is 0x67..0x70, then it is a float16_t denormal.
- if (ieee_repr.biased_exponent >= 0x67
- && ieee_repr.biased_exponent <= 0x70)
- {
- int n = ieee_repr.biased_exponent - 0x67;
- ieee_repr.mantissa = ((uint32_t{1} << n)
- | (ieee_repr.mantissa >> (mantissa_bits - n)));
- ieee_repr.biased_exponent = 0;
- }
- // If biased_exponent is 0xff, then it is a float16_t inf or NaN.
- else if (ieee_repr.biased_exponent == 0xff)
- {
- ieee_repr.mantissa >>= 13;
- ieee_repr.biased_exponent = 0x1f;
- }
- // If biased_exponent is 0x71..0x8e, then it is a float16_t normal number.
- else if (ieee_repr.biased_exponent > 0x70)
- {
- ieee_repr.mantissa >>= 13;
- ieee_repr.biased_exponent -= 0x70;
- }
- return ieee_repr;
- }
+#if defined(__BFLT16_DIG__)
- template<>
- ieee_t<floating_type_bfloat16_t>
- get_ieee_repr(const floating_type_bfloat16_t value)
- {
- using mantissa_t = typename floating_type_traits<float>::mantissa_t;
- constexpr int mantissa_bits = floating_type_traits<float>::mantissa_bits;
- constexpr int exponent_bits = floating_type_traits<float>::exponent_bits;
-
- uint32_t value_bits = 0;
- memcpy(&value_bits, &value.x, sizeof(value));
-
- ieee_t<floating_type_bfloat16_t> ieee_repr;
- ieee_repr.mantissa
- = static_cast<mantissa_t>(value_bits & ((uint32_t{1} << mantissa_bits) - 1u));
- value_bits >>= mantissa_bits;
- ieee_repr.biased_exponent
- = static_cast<uint32_t>(value_bits & ((uint32_t{1} << exponent_bits) - 1u));
- value_bits >>= exponent_bits;
- ieee_repr.sign = (value_bits & 1) != 0;
- // We have mantissa and biased_exponent from the float (originally
- // bfloat16_t converted to float).
- // Transform that to bfloat16_t mantissa and biased_exponent.
- ieee_repr.mantissa >>= 16;
- return ieee_repr;
- }
+template<>
+ struct floating_type_traits<__gnu_cxx::__bfloat16_t>
+ {
+ static constexpr int mantissa_bits = 7;
+ static constexpr int exponent_bits = 8;
+ static constexpr bool has_implicit_leading_bit = true;
+ using mantissa_t = uint32_t;
+ using shortest_scientific_t = teju_jagua::s_decimal<uint16_t>;
- // Invoke Ryu to obtain the shortest scientific form for the given
- // floating-point number.
- template<typename T>
- typename floating_type_traits<T>::shortest_scientific_t
- floating_to_shortest_scientific(const T value)
- {
- if constexpr (std::is_same_v<T, float>)
- return ryu::floating_to_fd32(value);
- else if constexpr (std::is_same_v<T, double>)
- return ryu::floating_to_fd64(value);
- else if constexpr (std::is_same_v<T, long double>
- || std::is_same_v<T, F128_type>
- || std::is_same_v<T, floating_type_float16_t>
- || std::is_same_v<T, floating_type_bfloat16_t>)
- {
- constexpr int mantissa_bits
- = floating_type_traits<T>::mantissa_bits;
- constexpr int exponent_bits
- = floating_type_traits<T>::exponent_bits;
- constexpr bool has_implicit_leading_bit
- = floating_type_traits<T>::has_implicit_leading_bit;
-
- const auto [mantissa, exponent, sign] = get_ieee_repr(value);
- return ryu::generic_binary_to_decimal(mantissa, exponent, sign,
- mantissa_bits, exponent_bits,
- !has_implicit_leading_bit);
- }
- }
+ static constexpr uint64_t pow10_adjustment_tab[]
+ = { 0b0000111001110001101010010110100101010010000000000000000000000000 };
+ };
- // This subroutine returns true if the shortest scientific form fd is a
- // positive power of 10, and the floating-point number that has this shortest
- // scientific form is smaller than this power of 10.
- //
- // For instance, the exactly-representable 64-bit number
- // 99999999999999991611392.0 has the shortest scientific form 1e23, so its
- // exact value is smaller than its shortest scientific form.
- //
- // For these powers of 10 the length of the fixed form is one digit less
- // than what the scientific exponent suggests.
- //
- // This subroutine inspects a lookup table to detect when fd is such a
- // "rounded up" power of 10.
- template<typename T>
- bool
- is_rounded_up_pow10_p(const typename
- floating_type_traits<T>::shortest_scientific_t fd)
- {
- if (fd.exponent < 0 || fd.mantissa != 1) [[likely]]
- return false;
-
- constexpr auto& pow10_adjustment_tab
- = floating_type_traits<T>::pow10_adjustment_tab;
- __glibcxx_assert(fd.exponent/64 < (int)std::size(pow10_adjustment_tab));
- return (pow10_adjustment_tab[fd.exponent/64]
- & (1ull << (63 - fd.exponent%64)));
- }
+#endif
- int
- get_mantissa_length(const ryu::floating_decimal_32 fd)
- { return ryu::decimalLength9(fd.mantissa); }
+// An IEEE-style decomposition of a floating-point value of type T.
+template<typename T>
+ struct ieee_t
+ {
+ typename floating_type_traits<T>::mantissa_t mantissa;
+ uint32_t biased_exponent;
+ bool sign;
+ };
- int
- get_mantissa_length(const ryu::floating_decimal_64 fd)
- { return ryu::decimalLength17(fd.mantissa); }
+// Decompose the floating-point value into its IEEE components.
+template<typename T>
+ ieee_t<T>
+ get_ieee_repr(const T value)
+ {
+ using mantissa_t = typename floating_type_traits<T>::mantissa_t;
+ constexpr int mantissa_bits = floating_type_traits<T>::mantissa_bits;
+ constexpr int exponent_bits = floating_type_traits<T>::exponent_bits;
+ constexpr int total_bits = mantissa_bits + exponent_bits + 1;
+
+ constexpr auto get_uint_t = [] {
+ if constexpr (total_bits <= 32)
+ return uint32_t{};
+ else if constexpr (total_bits <= 64)
+ return uint64_t{};
+ else if constexpr (total_bits <= 128)
+ return uint128_t{};
+ };
+ using uint_t = decltype(get_uint_t());
+ uint_t value_bits = 0;
+ memcpy(&value_bits, &value, sizeof(value));
+
+ ieee_t<T> ieee_repr;
+ ieee_repr.mantissa
+ = static_cast<mantissa_t>(value_bits & ((uint_t{1} << mantissa_bits) - 1u));
+ value_bits >>= mantissa_bits;
+ ieee_repr.biased_exponent
+ = static_cast<uint32_t>(value_bits & ((uint_t{1} << exponent_bits) - 1u));
+ value_bits >>= exponent_bits;
+ ieee_repr.sign = (value_bits & 1) != 0;
+ return ieee_repr;
+ }
- int
- get_mantissa_length(const ryu::floating_decimal_128 fd)
- { return ryu::generic128::decimalLength(fd.mantissa); }
+#if defined(_GLIBCXX_LDOUBLE_IS_IBM128)
-#if !defined __SIZEOF_INT128__
- // An implementation of base-10 std::to_chars for the uint128_t class type,
- // used by targets that lack __int128.
- std::to_chars_result
- to_chars(char* first, char* const last, uint128_t x)
+template<>
+ ieee_t<long double>
+ get_ieee_repr(const long double value)
{
- const int len = ryu::generic128::decimalLength(x);
- if (last - first < len)
- return {last, std::errc::value_too_large};
- if (x == 0)
- {
- *first++ = '0';
- return {first, std::errc{}};
- }
- for (int i = 0; i < len; ++i)
+ // The layout of __ibm128 isn't compatible with the standard IEEE format.
+ // So we transform it into an IEEE-compatible format, suitable for
+ // consumption by the generic Ryu API, with an 11-bit exponent and 105-bit
+ // mantissa (plus an implicit leading bit). We use the exponent and sign
+ // of the high part, and we merge the mantissa of the high part with the
+ // mantissa (and the implicit leading bit) of the low part.
+ uint64_t value_bits[2] = {};
+ memcpy(value_bits, &value, sizeof(value_bits));
+
+ const uint64_t value_hi = value_bits[0];
+ const uint64_t value_lo = value_bits[1];
+
+ uint64_t mantissa_hi = value_hi & ((1ull << 52) - 1);
+ unsigned exponent_hi = (value_hi >> 52) & ((1ull << 11) - 1);
+ const int sign_hi = (value_hi >> 63) & 1;
+
+ uint64_t mantissa_lo = value_lo & ((1ull << 52) - 1);
+ const unsigned exponent_lo = (value_lo >> 52) & ((1ull << 11) - 1);
+ const int sign_lo = (value_lo >> 63) & 1;
+
{
- first[len - 1 - i] = '0' + static_cast<char>(x % 10);
- x /= 10;
+ // The following code for adjusting the low-part mantissa to combine
+ // it with the high-part mantissa is taken from the glibc source file
+ // sysdeps/ieee754/ldbl-128ibm/printf_fphex.c.
+ mantissa_lo <<= 7;
+ if (exponent_lo != 0)
+ mantissa_lo |= (1ull << (52 + 7));
+ else
+ mantissa_lo <<= 1;
+
+ const int ediff = exponent_hi - exponent_lo - 53;
+ if (ediff > 63)
+ mantissa_lo = 0;
+ else if (ediff > 0)
+ mantissa_lo >>= ediff;
+ else if (ediff < 0)
+ mantissa_lo <<= -ediff;
+
+ if (sign_lo != sign_hi && mantissa_lo != 0)
+ {
+ mantissa_lo = (1ull << 60) - mantissa_lo;
+ if (mantissa_hi == 0)
+ {
+ mantissa_hi = 0xffffffffffffeLL | (mantissa_lo >> 59);
+ mantissa_lo = 0xfffffffffffffffLL & (mantissa_lo << 1);
+ exponent_hi--;
+ }
+ else
+ mantissa_hi--;
+ }
}
- __glibcxx_assert(x == 0);
- return {first + len, std::errc{}};
+
+ ieee_t<long double> ieee_repr;
+ ieee_repr.mantissa = ((uint128_t{mantissa_hi} << 64)
+ | (uint128_t{mantissa_lo} << 4)) >> 11;
+ ieee_repr.biased_exponent = exponent_hi;
+ ieee_repr.sign = sign_hi;
+ return ieee_repr;
}
+
#endif
-} // anon namespace
-namespace std _GLIBCXX_VISIBILITY(default)
+// This subroutine returns true if the shortest scientific form fd is a
+// positive power of 10, and the floating-point number that has this shortest
+// scientific form is smaller than this power of 10.
+//
+// For instance, the exactly-representable 64-bit number
+// 99999999999999991611392.0 has the shortest scientific form 1e23, so its
+// exact value is smaller than its shortest scientific form.
+//
+// For these powers of 10 the length of the fixed form is one digit less
+// than what the scientific exponent suggests.
+//
+// This subroutine inspects a lookup table to detect when fd is such a
+// "rounded up" power of 10.
+template<typename T>
+ bool
+ is_rounded_up_pow10_p(const typename
+ floating_type_traits<T>::shortest_scientific_t fd)
+ {
+ const auto mantissa10 = fd.absolute.mantissa;
+ const auto exponent10 = fd.absolute.exponent;
+ if (exponent10 < 0 || mantissa10 != 1) [[likely]]
+ return false;
+
+ constexpr auto& pow10_adjustment_tab
+ = floating_type_traits<T>::pow10_adjustment_tab;
+ __glibcxx_assert(exponent10 / 64 < (int)std::size(pow10_adjustment_tab));
+ return (pow10_adjustment_tab[exponent10 / 64]
+ & (1ull << (63 - exponent10 % 64)));
+ }
+
+#if !defined(__SIZEOF_INT128__)
+
+// An implementation of base-10 std::to_chars for the uint128_t class type,
+// used by targets that lack __int128.
+std::to_chars_result
+to_chars(char* first, char* const last, uint128_t x)
{
-_GLIBCXX_BEGIN_NAMESPACE_VERSION
+ const int len = ryu::get_length(x);
+ if (last - first < len)
+ return {last, std::errc::value_too_large};
+ if (x == 0)
+ {
+ *first++ = '0';
+ return {first, std::errc{}};
+ }
+ for (int i = 0; i < len; ++i)
+ {
+ first[len - 1 - i] = '0' + static_cast<char>(x % 10);
+ x /= 10;
+ }
+ __glibcxx_assert(x == 0);
+ return {first + len, std::errc{}};
+}
+
+#endif
// This subroutine of __floating_to_chars_* handles writing nan, inf and 0 in
// all formatting modes.
template<typename T>
- static optional<to_chars_result>
- __handle_special_value(char* first, char* const last, const T value,
- const chars_format fmt, const int precision)
+ std::optional<std::to_chars_result>
+ handle_special_value(char* first, char* const last, const T value,
+ const std::chars_format fmt, const int precision)
{
__glibcxx_assert(precision >= 0);
- string_view str;
+ std::string_view str;
switch (__builtin_fpclassify(FP_NAN, FP_INFINITE, FP_NORMAL, FP_SUBNORMAL,
FP_ZERO, value))
{
@@ -727,7 +600,7 @@ template<typename T>
default:
case FP_SUBNORMAL:
case FP_NORMAL: [[likely]]
- return nullopt;
+ return std::nullopt;
}
if (!str.empty())
@@ -737,11 +610,11 @@ template<typename T>
str.remove_prefix(strlen("-"));
if (last - first < (int)str.length())
- return {{last, errc::value_too_large}};
+ return {{last, std::errc::value_too_large}};
memcpy(first, &str[0], str.length());
first += str.length();
- return {{first, errc{}}};
+ return {{first, std::errc{}}};
}
// We're formatting 0.
@@ -751,18 +624,18 @@ template<typename T>
int expected_output_length;
switch (fmt)
{
- case chars_format::fixed:
- case chars_format::scientific:
- case chars_format::hex:
+ case std::chars_format::fixed:
+ case std::chars_format::scientific:
+ case std::chars_format::hex:
expected_output_length = sign + 1;
if (precision)
expected_output_length += strlen(".") + precision;
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
expected_output_length += strlen("e+00");
- else if (fmt == chars_format::hex)
+ else if (fmt == std::chars_format::hex)
expected_output_length += strlen("p+0");
if (last - first < expected_output_length)
- return {{last, errc::value_too_large}};
+ return {{last, std::errc::value_too_large}};
if (sign)
*first++ = '-';
@@ -773,23 +646,23 @@ template<typename T>
memset(first, '0', precision);
first += precision;
}
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
{
memcpy(first, "e+00", 4);
first += 4;
}
- else if (fmt == chars_format::hex)
+ else if (fmt == std::chars_format::hex)
{
memcpy(first, "p+0", 3);
first += 3;
}
break;
- case chars_format::general:
- default: // case chars_format{}:
+ case std::chars_format::general:
+ default: // case std::chars_format{}:
expected_output_length = sign + 1;
if (last - first < expected_output_length)
- return {{last, errc::value_too_large}};
+ return {{last, std::errc::value_too_large}};
if (sign)
*first++ = '-';
@@ -797,41 +670,19 @@ template<typename T>
break;
}
__glibcxx_assert(first - orig_first == expected_output_length);
- return {{first, errc{}}};
- }
-
-template<>
- optional<to_chars_result>
- __handle_special_value<floating_type_float16_t>(char* first,
- char* const last,
- const floating_type_float16_t value,
- const chars_format fmt,
- const int precision)
- {
- return __handle_special_value(first, last, value.x, fmt, precision);
- }
-
-template<>
- optional<to_chars_result>
- __handle_special_value<floating_type_bfloat16_t>(char* first,
- char* const last,
- const floating_type_bfloat16_t value,
- const chars_format fmt,
- const int precision)
- {
- return __handle_special_value(first, last, value.x, fmt, precision);
+ return {{first, std::errc{}}};
}
// This subroutine of the floating-point to_chars overloads performs
// hexadecimal formatting.
template<typename T>
- static to_chars_result
- __floating_to_chars_hex(char* first, char* const last, const T value,
- const optional<int> precision)
+ std::to_chars_result
+ floating_to_chars_hex(char* first, char* const last, const T value,
+ const std::optional<int> precision)
{
if (precision.has_value() && precision.value() < 0) [[unlikely]]
// A negative precision argument is treated as if it were omitted.
- return __floating_to_chars_hex(first, last, value, nullopt);
+ return floating_to_chars_hex(first, last, value, std::nullopt);
__glibcxx_requires_valid_range(first, last);
@@ -843,9 +694,9 @@ template<typename T>
using mantissa_t = typename floating_type_traits<T>::mantissa_t;
constexpr int mantissa_t_width = sizeof(mantissa_t) * __CHAR_BIT__;
- if (auto result = __handle_special_value(first, last, value,
- chars_format::hex,
- precision.value_or(0)))
+ if (auto result = handle_special_value(first, last, value,
+ std::chars_format::hex,
+ precision.value_or(0)))
return *result;
// Extract the sign, mantissa and exponent from the value.
@@ -926,9 +777,9 @@ template<typename T>
if constexpr (!has_implicit_leading_bit)
{
// The only supported floating-point type with explicit
- // leading mantissa bit is LDK_FLOAT80, i.e. x86 80-bit
- // extended precision, and so we hardcode the below overflow
- // check+adjustment for this type.
+ // leading mantissa bit is x86 80-bit extended precision, and so
+ // we hardcode the below overflow check+adjustment for this
+ // type.
static_assert(mantissa_t_width == 64
&& rounded_mantissa_bits == 64);
if (effective_mantissa == 0)
@@ -982,7 +833,7 @@ template<typename T>
: strlen("p+d"));
if (last - first < expected_output_length
|| last - first - expected_output_length < excess_precision)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
char* const expected_output_end = first + expected_output_length + excess_precision;
// Write the negative sign and the leading hexit.
@@ -1032,109 +883,100 @@ template<typename T>
*first++ = 'p';
if (written_exponent >= 0)
*first++ = '+';
- const to_chars_result result = to_chars(first, last, written_exponent);
- __glibcxx_assert(result.ec == errc{} && result.ptr == expected_output_end);
+ const std::to_chars_result result = std::to_chars(first, last, written_exponent);
+ __glibcxx_assert(result.ec == std::errc{} && result.ptr == expected_output_end);
return result;
}
-namespace
-{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wabi"
- template<typename T, typename... Extra>
- inline int
- sprintf_ld(char* buffer, size_t length __attribute__((unused)),
- const char* format_string, T value, Extra... args)
- {
- int len;
+
+template<typename T, typename... Extra>
+int
+sprintf_ld(char* buffer, size_t length __attribute__((unused)),
+ const char* format_string, T value, Extra... args)
+{
+ int len;
#if _GLIBCXX_USE_C99_FENV_TR1 && defined(FE_TONEAREST)
- const int saved_rounding_mode = fegetround();
- if (saved_rounding_mode != FE_TONEAREST)
- fesetround(FE_TONEAREST); // We want round-to-nearest behavior.
+ const int saved_rounding_mode = fegetround();
+ if (saved_rounding_mode != FE_TONEAREST)
+ fesetround(FE_TONEAREST); // We want round-to-nearest behavior.
#endif
#ifdef FLOAT128_TO_CHARS
#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
- if constexpr (is_same_v<T, __ieee128>)
- len = __sprintfieee128(buffer, format_string, args..., value);
- else
+ if constexpr (std::is_same_v<T, __ieee128>)
+ len = __sprintfieee128(buffer, format_string, args..., value);
+ else
#else
- if constexpr (is_same_v<T, _Float128>)
- {
-#ifndef _GLIBCXX_HAVE_FLOAT128_MATH
- if (&__strfromf128 == nullptr)
- len = sprintf(buffer, format_string, args..., (long double)value);
- else
+ if constexpr (std::is_same_v<T, _Float128>)
+ {
+#if !defined(_GLIBCXX_HAVE_FLOAT128_MATH)
+ if (&__strfromf128 == nullptr)
+ len = sprintf(buffer, format_string, args..., (long double)value);
+ else
#endif
- if constexpr (sizeof...(args) == 0)
- len = __strfromf128(buffer, length, "%.0f", value);
- else
- {
- // strfromf128 unfortunately doesn't allow .*
- char fmt[3 * sizeof(int) + 6];
- sprintf(fmt, "%%.%d%c", args..., int(format_string[4]));
- len = __strfromf128(buffer, length, fmt, value);
- }
- }
- else
+ if constexpr (sizeof...(args) == 0)
+ len = __strfromf128(buffer, length, "%.0f", value);
+ else
+ {
+ // strfromf128 unfortunately doesn't allow .*
+ char fmt[3 * sizeof(int) + 6];
+ sprintf(fmt, "%%.%d%c", args..., int(format_string[4]));
+ len = __strfromf128(buffer, length, fmt, value);
+ }
+ }
+ else
#endif
#endif
- len = sprintf(buffer, format_string, args..., value);
+ len = sprintf(buffer, format_string, args..., value);
#if _GLIBCXX_USE_C99_FENV_TR1 && defined(FE_TONEAREST)
- if (saved_rounding_mode != FE_TONEAREST)
- fesetround(saved_rounding_mode);
+ if (saved_rounding_mode != FE_TONEAREST)
+ fesetround(saved_rounding_mode);
#endif
- return len;
- }
-#pragma GCC diagnostic pop
+ return len;
}
+#pragma GCC diagnostic pop
+
template<typename T>
- static to_chars_result
- __floating_to_chars_shortest(char* first, char* const last, const T value,
- chars_format fmt)
+ std::to_chars_result
+ floating_to_chars_fmt(char* first, char* const last, const T value,
+ std::chars_format fmt)
{
- if (fmt == chars_format::hex)
- {
- // std::bfloat16_t has the same exponent range as std::float32_t
- // and so we can avoid instantiation of __floating_to_chars_hex
- // for bfloat16_t. Shortest hex will be the same as for float.
- // When we print shortest form even for denormals, we can do it
- // for std::float16_t as well.
- if constexpr (is_same_v<T, floating_type_float16_t>
- || is_same_v<T, floating_type_bfloat16_t>)
- return __floating_to_chars_hex(first, last, value.x, nullopt);
- else
- return __floating_to_chars_hex(first, last, value, nullopt);
- }
+ if (fmt == std::chars_format::hex)
+ return floating_to_chars_hex(first, last, value, std::nullopt);
- __glibcxx_assert(fmt == chars_format::fixed
- || fmt == chars_format::scientific
- || fmt == chars_format::general
- || fmt == chars_format{});
+ __glibcxx_assert(fmt == std::chars_format::fixed
+ || fmt == std::chars_format::scientific
+ || fmt == std::chars_format::general
+ || fmt == std::chars_format{});
__glibcxx_requires_valid_range(first, last);
- if (auto result = __handle_special_value(first, last, value, fmt, 0))
+ if (auto result = handle_special_value(first, last, value, fmt, 0))
return *result;
- const auto fd = floating_to_shortest_scientific(value);
- const int mantissa_length = get_mantissa_length(fd);
- const int scientific_exponent = fd.exponent + mantissa_length - 1;
+ const auto fd = teju_jagua::to_decimal(value);
+ const auto [decimal, is_negative] = fd;
+ const auto mantissa10 = decimal.mantissa;
+ const auto exponent10 = decimal.exponent;
+ const int mantissa_length = ryu::get_length(mantissa10);
+ const int scientific_exponent = exponent10 + mantissa_length - 1;
- if (fmt == chars_format::general)
+ if (fmt == std::chars_format::general)
{
// Resolve the 'general' formatting mode as per the specification of
// the 'g' printf output specifier. Since there is no precision
// argument, the default precision of the 'g' specifier, 6, applies.
if (scientific_exponent >= -4 && scientific_exponent < 6)
- fmt = chars_format::fixed;
+ fmt = std::chars_format::fixed;
else
- fmt = chars_format::scientific;
+ fmt = std::chars_format::scientific;
}
- else if (fmt == chars_format{})
+ else if (fmt == std::chars_format{})
{
// The 'plain' formatting mode resolves to 'scientific' if it yields
// the shorter string, and resolves to 'fixed' otherwise. The
@@ -1147,17 +989,17 @@ template<typename T>
// case; tighten the bounds appropriately.
++lower_bound, --upper_bound;
- if (fd.exponent >= lower_bound && fd.exponent <= upper_bound)
- fmt = chars_format::fixed;
+ if (exponent10 >= lower_bound && exponent10 <= upper_bound)
+ fmt = std::chars_format::fixed;
else
- fmt = chars_format::scientific;
+ fmt = std::chars_format::scientific;
}
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
{
// Calculate the total length of the output string, perform a bounds
- // check, and then defer to Ryu's to_chars subroutine.
- int expected_output_length = fd.sign + mantissa_length;
+ // check, and then defer to ryu::to_chars.
+ int expected_output_length = is_negative + mantissa_length;
if (mantissa_length > 1)
expected_output_length += strlen(".");
const int abs_exponent = abs(scientific_exponent);
@@ -1165,69 +1007,69 @@ template<typename T>
: abs_exponent >= 100 ? strlen("e+ddd")
: strlen("e+dd"));
if (last - first < expected_output_length)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
const int output_length = ryu::to_chars(fd, first);
__glibcxx_assert(output_length == expected_output_length);
- return {first + output_length, errc{}};
+ return {first + output_length, std::errc{}};
}
- else if (fmt == chars_format::fixed && fd.exponent >= 0)
+ else if (fmt == std::chars_format::fixed && exponent10 >= 0)
{
- // The Ryu exponent is positive, and so this number's shortest
+ // The exponent is positive, and so this number's shortest
// representation is a whole number, to be formatted in fixed instead
// of scientific notation "as if by std::printf". This means we may
// need to print more digits of the IEEE mantissa than what the
- // shortest scientific form given by Ryu provides.
+ // shortest scientific form provides.
//
// For instance, the exactly representable number
// 12300000000000001048576.0 has as its shortest scientific
- // representation 123e+22, so in this case fd.mantissa is 123 and
- // fd.exponent is 22, which doesn't have enough information to format
+ // representation 123e+22, so in this case mantissa10 is 123 and
+ // exponent10 is 22, which doesn't have enough information to format
// the number exactly. So we defer to Ryu's d2fixed_buffered_n with
// precision=0 to format the number in the general case here.
// To that end, first compute the output length and perform a bounds
// check.
- int expected_output_length = fd.sign + mantissa_length + fd.exponent;
+ int expected_output_length = is_negative + mantissa_length + exponent10;
if (is_rounded_up_pow10_p<T>(fd))
--expected_output_length;
if (last - first < expected_output_length)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
// Optimization: if the shortest representation fits inside the IEEE
// mantissa, then the number is certainly exactly-representable and
// its shortest scientific form must be equal to its exact form. So
- // we can write the value in fixed form exactly via fd.mantissa and
- // fd.exponent.
+ // we can write the value in fixed form exactly via mantissa10 and
+ // exponent10.
//
// Taking log2 of both sides of the desired condition
- // fd.mantissa * 10^fd.exponent < 2^mantissa_bits
+ // mantissa10 * 10^exponent10 < 2^mantissa_bits
// we get
- // log2 fd.mantissa + fd.exponent * log2 10 < mantissa_bits
+ // log2 mantissa10 + exponent10 * log2 10 < mantissa_bits
// where log2 10 is slightly smaller than 10/3=3.333...
//
// After adding some wiggle room due to rounding we get the condition
// value_fits_inside_mantissa_p below.
- const int log2_mantissa = __bit_width(fd.mantissa) - 1;
+ const int log2_mantissa = __bit_width(mantissa10) - 1;
const bool value_fits_inside_mantissa_p
- = (log2_mantissa + (fd.exponent*10 + 2) / 3
+ = (log2_mantissa + (exponent10*10 + 2) / 3
< floating_type_traits<T>::mantissa_bits - 2);
if (value_fits_inside_mantissa_p)
{
// Print the small exactly-representable number in fixed form by
- // writing out fd.mantissa followed by fd.exponent many 0s.
- if (fd.sign)
+ // writing out mantissa10 followed by exponent10 many 0s.
+ if (is_negative)
*first++ = '-';
- to_chars_result result = to_chars(first, last, fd.mantissa);
- __glibcxx_assert(result.ec == errc{});
- memset(result.ptr, '0', fd.exponent);
- result.ptr += fd.exponent;
- const int output_length = fd.sign + (result.ptr - first);
+ std::to_chars_result result = to_chars(first, last, mantissa10);
+ __glibcxx_assert(result.ec == std::errc{});
+ memset(result.ptr, '0', exponent10);
+ result.ptr += exponent10;
+ const int output_length = is_negative + (result.ptr - first);
__glibcxx_assert(output_length == expected_output_length);
return result;
}
- else if constexpr (is_same_v<T, long double>
- || is_same_v<T, F128_type>)
+ else if constexpr (std::is_same_v<T, long double> ||
+ std::is_same_v<T, F128_type>)
{
// We can't use d2fixed_buffered_n for types larger than double,
// so we instead format larger types through sprintf.
@@ -1242,58 +1084,58 @@ template<typename T>
"%.0Lf", value);
__glibcxx_assert(output_length == expected_output_length);
memcpy(first, buffer, output_length);
- return {first + output_length, errc{}};
+ return {first + output_length, std::errc{}};
}
else
{
// Otherwise, the number is too big, so defer to d2fixed_buffered_n.
const int output_length = ryu::d2fixed_buffered_n(value, 0, first);
__glibcxx_assert(output_length == expected_output_length);
- return {first + output_length, errc{}};
+ return {first + output_length, std::errc{}};
}
}
- else if (fmt == chars_format::fixed && fd.exponent < 0)
+ else if (fmt == std::chars_format::fixed && exponent10 < 0)
{
- // The Ryu exponent is negative, so fd.mantissa definitely contains
- // all of the whole part of the number, and therefore fd.mantissa and
- // fd.exponent contain all of the information needed to format the
+ // The Ryu exponent is negative, so mantissa10 definitely contains
+ // all of the whole part of the number, and therefore mantissa10 and
+ // exponent10 contain all of the information needed to format the
// number in fixed notation "as if by std::printf" (with precision
- // equal to -fd.exponent).
- const int whole_digits = max<int>(mantissa_length + fd.exponent, 1);
+ // equal to -exponent10).
+ const int whole_digits = std::max<int>(mantissa_length + exponent10, 1);
const int expected_output_length
- = fd.sign + whole_digits + strlen(".") + -fd.exponent;
+ = is_negative + whole_digits + strlen(".") + -exponent10;
if (last - first < expected_output_length)
- return {last, errc::value_too_large};
- if (mantissa_length <= -fd.exponent)
+ return {last, std::errc::value_too_large};
+ if (mantissa_length <= -exponent10)
{
// The magnitude of the number is less than one. Format the
// number appropriately.
const auto orig_first = first;
- if (fd.sign)
+ if (is_negative)
*first++ = '-';
*first++ = '0';
*first++ = '.';
- const int leading_zeros = -fd.exponent - mantissa_length;
+ const int leading_zeros = -exponent10 - mantissa_length;
memset(first, '0', leading_zeros);
first += leading_zeros;
- const to_chars_result result = to_chars(first, last, fd.mantissa);
+ const std::to_chars_result result = to_chars(first, last, mantissa10);
const int output_length = result.ptr - orig_first;
__glibcxx_assert(output_length == expected_output_length
- && result.ec == errc{});
+ && result.ec == std::errc{});
return result;
}
else
{
// The magnitude of the number is at least one.
const auto orig_first = first;
- if (fd.sign)
+ if (is_negative)
*first++ = '-';
- to_chars_result result = to_chars(first, last, fd.mantissa);
- __glibcxx_assert(result.ec == errc{});
+ std::to_chars_result result = to_chars(first, last, mantissa10);
+ __glibcxx_assert(result.ec == std::errc{});
// Make space for and write the decimal point in the correct spot.
- memmove(&result.ptr[fd.exponent+1], &result.ptr[fd.exponent],
- -fd.exponent);
- result.ptr[fd.exponent] = '.';
+ memmove(&result.ptr[exponent10+1], &result.ptr[exponent10],
+ -exponent10);
+ result.ptr[exponent10] = '.';
const int output_length = result.ptr + 1 - orig_first;
__glibcxx_assert(output_length == expected_output_length);
++result.ptr;
@@ -1306,26 +1148,25 @@ template<typename T>
}
template<typename T>
- static to_chars_result
- __floating_to_chars_precision(char* first, char* const last, const T value,
- chars_format fmt, const int precision)
+ std::to_chars_result
+ floating_to_chars_precision(char* first, char* const last, const T value,
+ std::chars_format fmt, const int precision)
{
- if (fmt == chars_format::hex)
- return __floating_to_chars_hex(first, last, value, precision);
+ if (fmt == std::chars_format::hex)
+ return floating_to_chars_hex(first, last, value, precision);
if (precision < 0) [[unlikely]]
// A negative precision argument is treated as if it were omitted, in
// which case the default precision of 6 applies, as per the printf
// specification.
- return __floating_to_chars_precision(first, last, value, fmt, 6);
+ return floating_to_chars_precision(first, last, value, fmt, 6);
- __glibcxx_assert(fmt == chars_format::fixed
- || fmt == chars_format::scientific
- || fmt == chars_format::general);
+ __glibcxx_assert(fmt == std::chars_format::fixed
+ || fmt == std::chars_format::scientific
+ || fmt == std::chars_format::general);
__glibcxx_requires_valid_range(first, last);
- if (auto result = __handle_special_value(first, last, value,
- fmt, precision))
+ if (auto result = handle_special_value(first, last, value, fmt, precision))
return *result;
constexpr int mantissa_bits = floating_type_traits<T>::mantissa_bits;
@@ -1360,7 +1201,7 @@ template<typename T>
// on some inputs, e.g. 0x1.bcd19f5d720d12a3513e3301028p+0.
const int max_eff_scientific_precision
= (floor_log2_value >= 0
- ? max(mantissa_bits + 1, approx_log10_value + 1)
+ ? std::max(mantissa_bits + 1, approx_log10_value + 1)
: -(7*floor_log2_value + 9)/10 + 2 + mantissa_bits + 1);
__glibcxx_assert(max_eff_scientific_precision > 0);
@@ -1372,28 +1213,28 @@ template<typename T>
// Ryu doesn't support formatting floating-point types larger than double
// with an explicit precision, so instead we just go through printf.
- if constexpr (is_same_v<T, long double> || is_same_v<T, F128_type>)
+ if constexpr (std::is_same_v<T, long double> || std::is_same_v<T, F128_type>)
{
int effective_precision;
const char* output_specifier;
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
{
- effective_precision = min(precision, max_eff_scientific_precision);
+ effective_precision = std::min(precision, max_eff_scientific_precision);
output_specifier = "%.*Le";
}
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
{
- effective_precision = min(precision, max_eff_fixed_precision);
+ effective_precision = std::min(precision, max_eff_fixed_precision);
output_specifier = "%.*Lf";
}
- else if (fmt == chars_format::general)
+ else if (fmt == std::chars_format::general)
{
- effective_precision = min(precision, max_eff_scientific_precision);
+ effective_precision = std::min(precision, max_eff_scientific_precision);
output_specifier = "%.*Lg";
}
else
__builtin_unreachable();
- const int excess_precision = (fmt != chars_format::general
+ const int excess_precision = (fmt != std::chars_format::general
? precision - effective_precision : 0);
// Since the output of printf is locale-sensitive, we need to be able
@@ -1413,11 +1254,11 @@ template<typename T>
// Compute straightforward upper bounds on the output length.
int output_length_upper_bound;
- if (fmt == chars_format::scientific || fmt == chars_format::general)
+ if (fmt == std::chars_format::scientific || fmt == std::chars_format::general)
output_length_upper_bound = (strlen("-d") + sizeof(radix)
+ effective_precision
+ strlen("e+dddd"));
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
{
if (approx_log10_value >= 0)
output_length_upper_bound = sign + approx_log10_value + 1;
@@ -1437,11 +1278,11 @@ template<typename T>
if (effective_precision > 0)
// We need to replace a radix that is different from '.' with '.'.
- if (const string_view radix_sv = {radix}; radix_sv != ".")
+ if (const std::string_view radix_sv = {radix}; radix_sv != ".")
{
- const string_view buffer_sv = {buffer, (size_t)output_length};
+ const std::string_view buffer_sv = {buffer, (size_t)output_length};
const size_t radix_index = buffer_sv.find(radix_sv);
- if (radix_index != string_view::npos)
+ if (radix_index != std::string_view::npos)
{
buffer[radix_index] = '.';
if (radix_sv.length() > 1)
@@ -1457,14 +1298,14 @@ template<typename T>
// Copy the string from the buffer over to the output range.
if (last - first < output_length
|| last - first - output_length < excess_precision)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
memcpy(first, buffer, output_length);
first += output_length;
// Add the excess 0s to the result.
if (excess_precision > 0)
{
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
{
char* const significand_end
= (output_length >= 6 && first[-6] == 'e' ? &first[-6]
@@ -1476,18 +1317,18 @@ template<typename T>
memset(significand_end, '0', excess_precision);
first += excess_precision;
}
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
{
memset(first, '0', excess_precision);
first += excess_precision;
}
}
- return {first, errc{}};
+ return {first, std::errc{}};
}
- else if (fmt == chars_format::scientific)
+ else if (fmt == std::chars_format::scientific)
{
const int effective_precision
- = min(precision, max_eff_scientific_precision);
+ = std::min(precision, max_eff_scientific_precision);
const int excess_precision = precision - effective_precision;
// We can easily compute the output length exactly whenever the
@@ -1534,14 +1375,14 @@ template<typename T>
|| output_length == output_length_upper_bound);
if (last - first < output_length
|| last - first - output_length < excess_precision)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
memcpy(first, buffer, output_length);
}
else
// If the scientific exponent is not near 100, then the upper bound
// is actually the exact length, and so the result will definitely
// not fit into the output range.
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
first += output_length;
if (excess_precision > 0)
{
@@ -1554,12 +1395,12 @@ template<typename T>
memset(significand_end, '0', excess_precision);
first += excess_precision;
}
- return {first, errc{}};
+ return {first, std::errc{}};
}
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
{
const int effective_precision
- = min(precision, max_eff_fixed_precision);
+ = std::min(precision, max_eff_fixed_precision);
const int excess_precision = precision - effective_precision;
// Compute an upper bound on the output length. TODO: Maybe also
@@ -1593,7 +1434,7 @@ template<typename T>
__glibcxx_assert(output_length <= output_length_upper_bound);
if (last - first < output_length
|| last - first - output_length < excess_precision)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
memcpy(first, buffer, output_length);
}
first += output_length;
@@ -1603,16 +1444,16 @@ template<typename T>
memset(first, '0', excess_precision);
first += excess_precision;
}
- return {first, errc{}};
+ return {first, std::errc{}};
}
- else if (fmt == chars_format::general)
+ else if (fmt == std::chars_format::general)
{
// Handle the 'general' formatting mode as per C11 printf's %g output
// specifier. Since Ryu doesn't do zero-trimming, we always write to
// an intermediate buffer and manually perform zero-trimming there
// before copying the result over to the output range.
int effective_precision
- = min(precision, max_eff_scientific_precision + 1);
+ = std::min(precision, max_eff_scientific_precision + 1);
const int output_length_upper_bound
= strlen("-d.") + effective_precision + strlen("e+ddd");
// The four bytes of headroom is to avoid needing to do a memmove when
@@ -1649,7 +1490,7 @@ template<typename T>
// %g resolves to %f, the fixed form will be no larger than the
// corresponding scientific form, and it will also contain the
// same significant digits as the scientific form.
- fmt = chars_format::fixed;
+ fmt = std::chars_format::fixed;
if (scientific_exponent < 0)
{
// e.g. buffer_start == "-1.234e-04"
@@ -1710,7 +1551,7 @@ template<typename T>
else
{
// We're sticking to the scientific form, so keep the output as-is.
- fmt = chars_format::scientific;
+ fmt = std::chars_format::scientific;
effective_precision = effective_precision - 1;
}
@@ -1720,211 +1561,144 @@ template<typename T>
if (effective_precision > 0)
{
char* decimal_point = nullptr;
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
decimal_point = &buffer_start[sign + 1];
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
decimal_point
= &buffer_start[output_length] - effective_precision - 1;
__glibcxx_assert(*decimal_point == '.');
char* const fractional_part_start = decimal_point + 1;
char* fractional_part_end = nullptr;
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
{
fractional_part_end = (buffer_start[output_length-5] == 'e'
? &buffer_start[output_length-5]
: &buffer_start[output_length-4]);
__glibcxx_assert(*fractional_part_end == 'e');
}
- else if (fmt == chars_format::fixed)
+ else if (fmt == std::chars_format::fixed)
fractional_part_end = &buffer_start[output_length];
- const string_view fractional_part
+ const std::string_view fractional_part
= {fractional_part_start, (size_t)(fractional_part_end
- fractional_part_start) };
const size_t last_nonzero_digit_pos
= fractional_part.find_last_not_of('0');
char* trim_start;
- if (last_nonzero_digit_pos == string_view::npos)
+ if (last_nonzero_digit_pos == std::string_view::npos)
trim_start = decimal_point;
else
trim_start = &fractional_part_start[last_nonzero_digit_pos] + 1;
- if (fmt == chars_format::scientific)
+ if (fmt == std::chars_format::scientific)
memmove(trim_start, fractional_part_end,
&buffer_start[output_length] - fractional_part_end);
output_length -= fractional_part_end - trim_start;
}
if (last - first < output_length)
- return {last, errc::value_too_large};
+ return {last, std::errc::value_too_large};
memcpy(first, buffer_start, output_length);
- return {first + output_length, errc{}};
+ return {first + output_length, std::errc{}};
}
__glibcxx_assert(false);
__builtin_unreachable();
}
-// Define the overloads for float.
-to_chars_result
-to_chars(char* first, char* last, float value) noexcept
-{ return __floating_to_chars_shortest(first, last, value, chars_format{}); }
+} // namespace <anonymous>
+
+namespace std _GLIBCXX_VISIBILITY(default)
+{
+_GLIBCXX_BEGIN_NAMESPACE_VERSION
+
+#if defined(_GLIBCXX_FLOAT_IS_IEEE_BINARY32)
to_chars_result
-to_chars(char* first, char* last, float value, chars_format fmt) noexcept
-{ return __floating_to_chars_shortest(first, last, value, fmt); }
+to_chars(char* first, char* last, float value,
+ chars_format fmt) noexcept
+{ return floating_to_chars_fmt(first, last, value, fmt); }
to_chars_result
to_chars(char* first, char* last, float value, chars_format fmt,
int precision) noexcept
-{ return __floating_to_chars_precision(first, last, value, fmt, precision); }
+{ return floating_to_chars_precision(first, last, value, fmt, precision); }
-// Define the overloads for double.
-to_chars_result
-to_chars(char* first, char* last, double value) noexcept
-{ return __floating_to_chars_shortest(first, last, value, chars_format{}); }
+#endif
+
+#if defined (_GLIBCXX_DOUBLE_IS_IEEE_BINARY64)
to_chars_result
to_chars(char* first, char* last, double value, chars_format fmt) noexcept
-{ return __floating_to_chars_shortest(first, last, value, fmt); }
+{ return floating_to_chars_fmt(first, last, value, fmt); }
to_chars_result
to_chars(char* first, char* last, double value, chars_format fmt,
int precision) noexcept
-{ return __floating_to_chars_precision(first, last, value, fmt, precision); }
+{ return floating_to_chars_precision(first, last, value, fmt, precision); }
-// Define the overloads for long double.
-to_chars_result
-to_chars(char* first, char* last, long double value) noexcept
-{
- if constexpr (LONG_DOUBLE_KIND == LDK_BINARY64
- || LONG_DOUBLE_KIND == LDK_UNSUPPORTED)
- return __floating_to_chars_shortest(first, last, static_cast<double>(value),
- chars_format{});
- else
- return __floating_to_chars_shortest(first, last, value, chars_format{});
-}
+#endif
+
+#if defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) || \
+ defined(_GLIBCXX_LDOUBLE_IS_IBM128) || \
+ defined(_GLIBCXX_LDOUBLE_IS_X86_EXTENDED)
to_chars_result
to_chars(char* first, char* last, long double value, chars_format fmt) noexcept
-{
- if constexpr (LONG_DOUBLE_KIND == LDK_BINARY64
- || LONG_DOUBLE_KIND == LDK_UNSUPPORTED)
- return __floating_to_chars_shortest(first, last, static_cast<double>(value),
- fmt);
- else
- return __floating_to_chars_shortest(first, last, value, fmt);
-}
+{ return floating_to_chars_fmt(first, last, value, fmt); }
to_chars_result
to_chars(char* first, char* last, long double value, chars_format fmt,
int precision) noexcept
-{
- if constexpr (LONG_DOUBLE_KIND == LDK_BINARY64
- || LONG_DOUBLE_KIND == LDK_UNSUPPORTED)
- return __floating_to_chars_precision(first, last, static_cast<double>(value),
- fmt,
- precision);
- else
- return __floating_to_chars_precision(first, last, value, fmt, precision);
-}
+{ return floating_to_chars_precision(first, last, value, fmt, precision); }
-#ifdef FLOAT128_TO_CHARS
-#ifdef _GLIBCXX_LONG_DOUBLE_ALT128_COMPAT
-to_chars_result
-to_chars(char* first, char* last, __float128 value) noexcept
-{
- return __floating_to_chars_shortest(first, last, value, chars_format{});
-}
+#endif
-to_chars_result
-to_chars(char* first, char* last, __float128 value, chars_format fmt) noexcept
-{
- return __floating_to_chars_shortest(first, last, value, fmt);
-}
+// If __fmt == chars_format::fixed, then __value will be cast to float
+// later. This cast requires __SSE2__.
+#if defined(__FLT16_DIG__) && defined(__SSE2__)
to_chars_result
-to_chars(char* first, char* last, __float128 value, chars_format fmt,
- int precision) noexcept
-{
- return __floating_to_chars_precision(first, last, value, fmt, precision);
-}
+to_chars(char* __first, char* __last, _Float16 __value,
+ chars_format __fmt) noexcept
+{ return floating_to_chars_fmt(__first, __last, __value, __fmt); }
-extern "C" to_chars_result
-_ZSt8to_charsPcS_DF128_(char* first, char* last, __float128 value) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_u9__ieee128")));
-
-extern "C" to_chars_result
-_ZSt8to_charsPcS_DF128_St12chars_format(char* first, char* last,
- __float128 value,
- chars_format fmt) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_u9__ieee128St12chars_format")));
-
-extern "C" to_chars_result
-_ZSt8to_charsPcS_DF128_St12chars_formati(char* first, char* last,
- __float128 value,
- chars_format fmt,
- int precision) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_u9__ieee128St12chars_formati")));
-#else
-to_chars_result
-to_chars(char* first, char* last, _Float128 value) noexcept
-{
- return __floating_to_chars_shortest(first, last, value, chars_format{});
-}
+#endif
+
+#if defined(FLOAT128_TO_CHARS)
to_chars_result
-to_chars(char* first, char* last, _Float128 value, chars_format fmt) noexcept
+to_chars(char* __first, char* __last, _Float128 __value,
+ chars_format __fmt) noexcept
{
- return __floating_to_chars_shortest(first, last, value, fmt);
+ return floating_to_chars_fmt(__first, __last,
+ static_cast<F128_type>(__value),
+ __fmt);
}
to_chars_result
-to_chars(char* first, char* last, _Float128 value, chars_format fmt,
- int precision) noexcept
+to_chars(char* __first, char* __last, _Float128 __value,
+ chars_format __fmt, int __precision) noexcept
{
- return __floating_to_chars_precision(first, last, value, fmt, precision);
+ return floating_to_chars_precision(__first, __last,
+ static_cast<F128_type>(__value),
+ __fmt, __precision);
}
-#endif
+
#endif
-// Entrypoints for 16-bit floats.
-[[gnu::cold]] to_chars_result
-__to_chars_float16_t(char* first, char* last, float value,
- chars_format fmt) noexcept
-{
- return __floating_to_chars_shortest(first, last,
- floating_type_float16_t{ value }, fmt);
-}
+// If __fmt == chars_format::fixed, then __value will be cast to float
+// later. This cast requires __SSE2__.
+#if defined(__BFLT16_DIG__) && defined(__SSE2__)
-[[gnu::cold]] to_chars_result
-__to_chars_bfloat16_t(char* first, char* last, float value,
- chars_format fmt) noexcept
-{
- return __floating_to_chars_shortest(first, last,
- floating_type_bfloat16_t{ value }, fmt);
-}
+to_chars_result
+to_chars(char* __first, char* __last, __gnu_cxx::__bfloat16_t __value,
+ chars_format __fmt) noexcept
+{ return floating_to_chars_fmt(__first, __last, __value, __fmt); }
-#ifdef _GLIBCXX_LONG_DOUBLE_COMPAT
-// Map the -mlong-double-64 long double overloads to the double overloads.
-extern "C" to_chars_result
-_ZSt8to_charsPcS_e(char* first, char* last, double value) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_d")));
-
-extern "C" to_chars_result
-_ZSt8to_charsPcS_eSt12chars_format(char* first, char* last, double value,
- chars_format fmt) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_dSt12chars_format")));
-
-extern "C" to_chars_result
-_ZSt8to_charsPcS_eSt12chars_formati(char* first, char* last, double value,
- chars_format fmt, int precision) noexcept
- __attribute__((alias ("_ZSt8to_charsPcS_dSt12chars_formati")));
#endif
_GLIBCXX_END_NAMESPACE_VERSION
} // namespace std
-
-#endif // _GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64
deleted file mode 100644
@@ -1,485 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-
-// Runtime compiler options:
-// -DRYU_DEBUG Generate verbose debugging output to stdout.
-//
-// -DRYU_ONLY_64_BIT_OPS Avoid using uint128_t or 64-bit intrinsics. Slower,
-// depending on your compiler.
-//
-// -DRYU_OPTIMIZE_SIZE Use smaller lookup tables. Instead of storing every
-// required power of 5, only store every 26th entry, and compute
-// intermediate values with a multiplication. This reduces the lookup table
-// size by about 10x (only one case, and only double) at the cost of some
-// performance. Currently requires MSVC intrinsics.
-
-
-
-#ifdef RYU_DEBUG
-#endif
-
-
-// Include either the small or the full lookup tables depending on the mode.
-#if defined(RYU_OPTIMIZE_SIZE)
-#else
-#endif
-
-#define DOUBLE_MANTISSA_BITS 52
-#define DOUBLE_EXPONENT_BITS 11
-#define DOUBLE_BIAS 1023
-
-static inline uint32_t decimalLength17(const uint64_t v) {
- // This is slightly faster than a loop.
- // The average output length is 16.38 digits, so we check high-to-low.
- // Function precondition: v is not an 18, 19, or 20-digit number.
- // (17 digits are sufficient for round-tripping.)
- assert(v < 100000000000000000L);
- if (v >= 10000000000000000L) { return 17; }
- if (v >= 1000000000000000L) { return 16; }
- if (v >= 100000000000000L) { return 15; }
- if (v >= 10000000000000L) { return 14; }
- if (v >= 1000000000000L) { return 13; }
- if (v >= 100000000000L) { return 12; }
- if (v >= 10000000000L) { return 11; }
- if (v >= 1000000000L) { return 10; }
- if (v >= 100000000L) { return 9; }
- if (v >= 10000000L) { return 8; }
- if (v >= 1000000L) { return 7; }
- if (v >= 100000L) { return 6; }
- if (v >= 10000L) { return 5; }
- if (v >= 1000L) { return 4; }
- if (v >= 100L) { return 3; }
- if (v >= 10L) { return 2; }
- return 1;
-}
-
-// A floating decimal representing m * 10^e.
-typedef struct floating_decimal_64 {
- uint64_t mantissa;
- // Decimal exponent's range is -324 to 308
- // inclusive, and can fit in a short if needed.
- int32_t exponent;
- bool sign;
-} floating_decimal_64;
-
-static inline floating_decimal_64 d2d(const uint64_t ieeeMantissa, const uint32_t ieeeExponent, const bool ieeeSign) {
- int32_t e2;
- uint64_t m2;
- if (ieeeExponent == 0) {
- // We subtract 2 so that the bounds computation has 2 additional bits.
- e2 = 1 - DOUBLE_BIAS - DOUBLE_MANTISSA_BITS - 2;
- m2 = ieeeMantissa;
- } else {
- e2 = (int32_t) ieeeExponent - DOUBLE_BIAS - DOUBLE_MANTISSA_BITS - 2;
- m2 = (1ull << DOUBLE_MANTISSA_BITS) | ieeeMantissa;
- }
- const bool even = (m2 & 1) == 0;
- const bool acceptBounds = even;
-
-#ifdef RYU_DEBUG
- printf("-> %" PRIu64 " * 2^%d\n", m2, e2 + 2);
-#endif
-
- // Step 2: Determine the interval of valid decimal representations.
- const uint64_t mv = 4 * m2;
- // Implicit bool -> int conversion. True is 1, false is 0.
- const uint32_t mmShift = ieeeMantissa != 0 || ieeeExponent <= 1;
- // We would compute mp and mm like this:
- // uint64_t mp = 4 * m2 + 2;
- // uint64_t mm = mv - 1 - mmShift;
-
- // Step 3: Convert to a decimal power base using 128-bit arithmetic.
- uint64_t vr, vp, vm;
- int32_t e10;
- bool vmIsTrailingZeros = false;
- bool vrIsTrailingZeros = false;
- if (e2 >= 0) {
- // I tried special-casing q == 0, but there was no effect on performance.
- // This expression is slightly faster than max(0, log10Pow2(e2) - 1).
- const uint32_t q = log10Pow2(e2) - (e2 > 3);
- e10 = (int32_t) q;
- const int32_t k = DOUBLE_POW5_INV_BITCOUNT + pow5bits((int32_t) q) - 1;
- const int32_t i = -e2 + (int32_t) q + k;
-#if defined(RYU_OPTIMIZE_SIZE)
- uint64_t pow5[2];
- double_computeInvPow5(q, pow5);
- vr = mulShiftAll64(m2, pow5, i, &vp, &vm, mmShift);
-#else
- vr = mulShiftAll64(m2, DOUBLE_POW5_INV_SPLIT[q], i, &vp, &vm, mmShift);
-#endif
-#ifdef RYU_DEBUG
- printf("%" PRIu64 " * 2^%d / 10^%u\n", mv, e2, q);
- printf("V+=%" PRIu64 "\nV =%" PRIu64 "\nV-=%" PRIu64 "\n", vp, vr, vm);
-#endif
- if (q <= 21) {
- // This should use q <= 22, but I think 21 is also safe. Smaller values
- // may still be safe, but it's more difficult to reason about them.
- // Only one of mp, mv, and mm can be a multiple of 5, if any.
- const uint32_t mvMod5 = ((uint32_t) mv) - 5 * ((uint32_t) div5(mv));
- if (mvMod5 == 0) {
- vrIsTrailingZeros = multipleOfPowerOf5(mv, q);
- } else if (acceptBounds) {
- // Same as min(e2 + (~mm & 1), pow5Factor(mm)) >= q
- // <=> e2 + (~mm & 1) >= q && pow5Factor(mm) >= q
- // <=> true && pow5Factor(mm) >= q, since e2 >= q.
- vmIsTrailingZeros = multipleOfPowerOf5(mv - 1 - mmShift, q);
- } else {
- // Same as min(e2 + 1, pow5Factor(mp)) >= q.
- vp -= multipleOfPowerOf5(mv + 2, q);
- }
- }
- } else {
- // This expression is slightly faster than max(0, log10Pow5(-e2) - 1).
- const uint32_t q = log10Pow5(-e2) - (-e2 > 1);
- e10 = (int32_t) q + e2;
- const int32_t i = -e2 - (int32_t) q;
- const int32_t k = pow5bits(i) - DOUBLE_POW5_BITCOUNT;
- const int32_t j = (int32_t) q - k;
-#if defined(RYU_OPTIMIZE_SIZE)
- uint64_t pow5[2];
- double_computePow5(i, pow5);
- vr = mulShiftAll64(m2, pow5, j, &vp, &vm, mmShift);
-#else
- vr = mulShiftAll64(m2, DOUBLE_POW5_SPLIT[i], j, &vp, &vm, mmShift);
-#endif
-#ifdef RYU_DEBUG
- printf("%" PRIu64 " * 5^%d / 10^%u\n", mv, -e2, q);
- printf("%u %d %d %d\n", q, i, k, j);
- printf("V+=%" PRIu64 "\nV =%" PRIu64 "\nV-=%" PRIu64 "\n", vp, vr, vm);
-#endif
- if (q <= 1) {
- // {vr,vp,vm} is trailing zeros if {mv,mp,mm} has at least q trailing 0 bits.
- // mv = 4 * m2, so it always has at least two trailing 0 bits.
- vrIsTrailingZeros = true;
- if (acceptBounds) {
- // mm = mv - 1 - mmShift, so it has 1 trailing 0 bit iff mmShift == 1.
- vmIsTrailingZeros = mmShift == 1;
- } else {
- // mp = mv + 2, so it always has at least one trailing 0 bit.
- --vp;
- }
- } else if (q < 63) { // TODO(ulfjack): Use a tighter bound here.
- // We want to know if the full product has at least q trailing zeros.
- // We need to compute min(p2(mv), p5(mv) - e2) >= q
- // <=> p2(mv) >= q && p5(mv) - e2 >= q
- // <=> p2(mv) >= q (because -e2 >= q)
- vrIsTrailingZeros = multipleOfPowerOf2(mv, q);
-#ifdef RYU_DEBUG
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- }
- }
-#ifdef RYU_DEBUG
- printf("e10=%d\n", e10);
- printf("V+=%" PRIu64 "\nV =%" PRIu64 "\nV-=%" PRIu64 "\n", vp, vr, vm);
- printf("vm is trailing zeros=%s\n", vmIsTrailingZeros ? "true" : "false");
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
-
- // Step 4: Find the shortest decimal representation in the interval of valid representations.
- int32_t removed = 0;
- uint8_t lastRemovedDigit = 0;
- uint64_t output;
- // On average, we remove ~2 digits.
- if (vmIsTrailingZeros || vrIsTrailingZeros) {
- // General case, which happens rarely (~0.7%).
- for (;;) {
- const uint64_t vpDiv10 = div10(vp);
- const uint64_t vmDiv10 = div10(vm);
- if (vpDiv10 <= vmDiv10) {
- break;
- }
- const uint32_t vmMod10 = ((uint32_t) vm) - 10 * ((uint32_t) vmDiv10);
- const uint64_t vrDiv10 = div10(vr);
- const uint32_t vrMod10 = ((uint32_t) vr) - 10 * ((uint32_t) vrDiv10);
- vmIsTrailingZeros &= vmMod10 == 0;
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) vrMod10;
- vr = vrDiv10;
- vp = vpDiv10;
- vm = vmDiv10;
- ++removed;
- }
-#ifdef RYU_DEBUG
- printf("V+=%" PRIu64 "\nV =%" PRIu64 "\nV-=%" PRIu64 "\n", vp, vr, vm);
- printf("d-10=%s\n", vmIsTrailingZeros ? "true" : "false");
-#endif
- if (vmIsTrailingZeros) {
- for (;;) {
- const uint64_t vmDiv10 = div10(vm);
- const uint32_t vmMod10 = ((uint32_t) vm) - 10 * ((uint32_t) vmDiv10);
- if (vmMod10 != 0) {
- break;
- }
- const uint64_t vpDiv10 = div10(vp);
- const uint64_t vrDiv10 = div10(vr);
- const uint32_t vrMod10 = ((uint32_t) vr) - 10 * ((uint32_t) vrDiv10);
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) vrMod10;
- vr = vrDiv10;
- vp = vpDiv10;
- vm = vmDiv10;
- ++removed;
- }
- }
-#ifdef RYU_DEBUG
- printf("%" PRIu64 " %d\n", vr, lastRemovedDigit);
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- if (vrIsTrailingZeros && lastRemovedDigit == 5 && vr % 2 == 0) {
- // Round even if the exact number is .....50..0.
- lastRemovedDigit = 4;
- }
- // We need to take vr + 1 if vr is outside bounds or we need to round up.
- output = vr + ((vr == vm && (!acceptBounds || !vmIsTrailingZeros)) || lastRemovedDigit >= 5);
- } else {
- // Specialized for the common case (~99.3%). Percentages below are relative to this.
- bool roundUp = false;
- const uint64_t vpDiv100 = div100(vp);
- const uint64_t vmDiv100 = div100(vm);
- if (vpDiv100 > vmDiv100) { // Optimization: remove two digits at a time (~86.2%).
- const uint64_t vrDiv100 = div100(vr);
- const uint32_t vrMod100 = ((uint32_t) vr) - 100 * ((uint32_t) vrDiv100);
- roundUp = vrMod100 >= 50;
- vr = vrDiv100;
- vp = vpDiv100;
- vm = vmDiv100;
- removed += 2;
- }
- // Loop iterations below (approximately), without optimization above:
- // 0: 0.03%, 1: 13.8%, 2: 70.6%, 3: 14.0%, 4: 1.40%, 5: 0.14%, 6+: 0.02%
- // Loop iterations below (approximately), with optimization above:
- // 0: 70.6%, 1: 27.8%, 2: 1.40%, 3: 0.14%, 4+: 0.02%
- for (;;) {
- const uint64_t vpDiv10 = div10(vp);
- const uint64_t vmDiv10 = div10(vm);
- if (vpDiv10 <= vmDiv10) {
- break;
- }
- const uint64_t vrDiv10 = div10(vr);
- const uint32_t vrMod10 = ((uint32_t) vr) - 10 * ((uint32_t) vrDiv10);
- roundUp = vrMod10 >= 5;
- vr = vrDiv10;
- vp = vpDiv10;
- vm = vmDiv10;
- ++removed;
- }
-#ifdef RYU_DEBUG
- printf("%" PRIu64 " roundUp=%s\n", vr, roundUp ? "true" : "false");
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- // We need to take vr + 1 if vr is outside bounds or we need to round up.
- output = vr + (vr == vm || roundUp);
- }
- const int32_t exp = e10 + removed;
-
-#ifdef RYU_DEBUG
- printf("V+=%" PRIu64 "\nV =%" PRIu64 "\nV-=%" PRIu64 "\n", vp, vr, vm);
- printf("O=%" PRIu64 "\n", output);
- printf("EXP=%d\n", exp);
-#endif
-
- floating_decimal_64 fd;
- fd.exponent = exp;
- fd.mantissa = output;
- fd.sign = ieeeSign;
- return fd;
-}
-
-static inline int to_chars(const floating_decimal_64 v, char* const result) {
- // Step 5: Print the decimal representation.
- int index = 0;
- if (v.sign) {
- result[index++] = '-';
- }
-
- uint64_t output = v.mantissa;
- const uint32_t olength = decimalLength17(output);
-
-#ifdef RYU_DEBUG
- printf("DIGITS=%" PRIu64 "\n", v.mantissa);
- printf("OLEN=%u\n", olength);
- printf("EXP=%u\n", v.exponent + olength);
-#endif
-
- // Print the decimal digits.
- // The following code is equivalent to:
- // for (uint32_t i = 0; i < olength - 1; ++i) {
- // const uint32_t c = output % 10; output /= 10;
- // result[index + olength - i] = (char) ('0' + c);
- // }
- // result[index] = '0' + output % 10;
-
- uint32_t i = 0;
- // We prefer 32-bit operations, even on 64-bit platforms.
- // We have at most 17 digits, and uint32_t can store 9 digits.
- // If output doesn't fit into uint32_t, we cut off 8 digits,
- // so the rest will fit into uint32_t.
- if ((output >> 32) != 0) {
- // Expensive 64-bit division.
- const uint64_t q = div1e8(output);
- uint32_t output2 = ((uint32_t) output) - 100000000 * ((uint32_t) q);
- output = q;
-
- const uint32_t c = output2 % 10000;
- output2 /= 10000;
- const uint32_t d = output2 % 10000;
- const uint32_t c0 = (c % 100) << 1;
- const uint32_t c1 = (c / 100) << 1;
- const uint32_t d0 = (d % 100) << 1;
- const uint32_t d1 = (d / 100) << 1;
- memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
- memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
- memcpy(result + index + olength - i - 5, DIGIT_TABLE + d0, 2);
- memcpy(result + index + olength - i - 7, DIGIT_TABLE + d1, 2);
- i += 8;
- }
- uint32_t output2 = (uint32_t) output;
- while (output2 >= 10000) {
-#ifdef __clang__ // https://bugs.llvm.org/show_bug.cgi?id=38217
- const uint32_t c = output2 - 10000 * (output2 / 10000);
-#else
- const uint32_t c = output2 % 10000;
-#endif
- output2 /= 10000;
- const uint32_t c0 = (c % 100) << 1;
- const uint32_t c1 = (c / 100) << 1;
- memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
- memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
- i += 4;
- }
- if (output2 >= 100) {
- const uint32_t c = (output2 % 100) << 1;
- output2 /= 100;
- memcpy(result + index + olength - i - 1, DIGIT_TABLE + c, 2);
- i += 2;
- }
- if (output2 >= 10) {
- const uint32_t c = output2 << 1;
- // We can't use memcpy here: the decimal dot goes between these two digits.
- result[index + olength - i] = DIGIT_TABLE[c + 1];
- result[index] = DIGIT_TABLE[c];
- } else {
- result[index] = (char) ('0' + output2);
- }
-
- // Print decimal point if needed.
- if (olength > 1) {
- result[index + 1] = '.';
- index += olength + 1;
- } else {
- ++index;
- }
-
- // Print the exponent.
- result[index++] = 'e';
- int32_t exp = v.exponent + (int32_t) olength - 1;
- if (exp < 0) {
- result[index++] = '-';
- exp = -exp;
- } else
- result[index++] = '+';
-
- if (exp >= 100) {
- const int32_t c = exp % 10;
- memcpy(result + index, DIGIT_TABLE + 2 * (exp / 10), 2);
- result[index + 2] = (char) ('0' + c);
- index += 3;
- } else {
- memcpy(result + index, DIGIT_TABLE + 2 * exp, 2);
- index += 2;
- }
-
- return index;
-}
-
-static inline bool d2d_small_int(const uint64_t ieeeMantissa, const uint32_t ieeeExponent, const bool ieeeSign,
- floating_decimal_64* const v) {
- const uint64_t m2 = (1ull << DOUBLE_MANTISSA_BITS) | ieeeMantissa;
- const int32_t e2 = (int32_t) ieeeExponent - DOUBLE_BIAS - DOUBLE_MANTISSA_BITS;
-
- if (e2 > 0) {
- // f = m2 * 2^e2 >= 2^53 is an integer.
- // Ignore this case for now.
- return false;
- }
-
- if (e2 < -52) {
- // f < 1.
- return false;
- }
-
- // Since 2^52 <= m2 < 2^53 and 0 <= -e2 <= 52: 1 <= f = m2 / 2^-e2 < 2^53.
- // Test if the lower -e2 bits of the significand are 0, i.e. whether the fraction is 0.
- const uint64_t mask = (1ull << -e2) - 1;
- const uint64_t fraction = m2 & mask;
- if (fraction != 0) {
- return false;
- }
-
- // f is an integer in the range [1, 2^53).
- // Note: mantissa might contain trailing (decimal) 0's.
- // Note: since 2^53 < 10^16, there is no need to adjust decimalLength17().
- v->mantissa = m2 >> -e2;
- v->exponent = 0;
- v->sign = ieeeSign;
- return true;
-}
-
-floating_decimal_64 floating_to_fd64(double f) {
- // Step 1: Decode the floating-point number, and unify normalized and subnormal cases.
- const uint64_t bits = double_to_bits(f);
-
-#ifdef RYU_DEBUG
- printf("IN=");
- for (int32_t bit = 63; bit >= 0; --bit) {
- printf("%d", (int) ((bits >> bit) & 1));
- }
- printf("\n");
-#endif
-
- // Decode bits into sign, mantissa, and exponent.
- const bool ieeeSign = ((bits >> (DOUBLE_MANTISSA_BITS + DOUBLE_EXPONENT_BITS)) & 1) != 0;
- const uint64_t ieeeMantissa = bits & ((1ull << DOUBLE_MANTISSA_BITS) - 1);
- const uint32_t ieeeExponent = (uint32_t) ((bits >> DOUBLE_MANTISSA_BITS) & ((1u << DOUBLE_EXPONENT_BITS) - 1));
- // Case distinction; exit early for the easy cases.
- if (ieeeExponent == ((1u << DOUBLE_EXPONENT_BITS) - 1u) || (ieeeExponent == 0 && ieeeMantissa == 0)) {
- __builtin_abort();
- }
-
- floating_decimal_64 v;
- const bool isSmallInt = d2d_small_int(ieeeMantissa, ieeeExponent, ieeeSign, &v);
- if (isSmallInt) {
- // For small integers in the range [1, 2^53), v.mantissa might contain trailing (decimal) zeros.
- // For scientific notation we need to move these zeros into the exponent.
- // (This is not needed for fixed-point notation, so it might be beneficial to trim
- // trailing zeros in to_chars only if needed - once fixed-point notation output is implemented.)
- for (;;) {
- const uint64_t q = div10(v.mantissa);
- const uint32_t r = ((uint32_t) v.mantissa) - 10 * ((uint32_t) q);
- if (r != 0) {
- break;
- }
- v.mantissa = q;
- ++v.exponent;
- }
- } else {
- v = d2d(ieeeMantissa, ieeeExponent, ieeeSign);
- }
-
- return v;
-}
deleted file mode 100644
@@ -1,367 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-#ifndef RYU_D2S_FULL_TABLE_H
-#define RYU_D2S_FULL_TABLE_H
-
-// These tables are generated by PrintDoubleLookupTable.
-#define DOUBLE_POW5_INV_BITCOUNT 125
-#define DOUBLE_POW5_BITCOUNT 125
-
-#define DOUBLE_POW5_INV_TABLE_SIZE 342
-#define DOUBLE_POW5_TABLE_SIZE 326
-
-static const uint64_t DOUBLE_POW5_INV_SPLIT[DOUBLE_POW5_INV_TABLE_SIZE][2] = {
- { 1u, 2305843009213693952u }, { 11068046444225730970u, 1844674407370955161u },
- { 5165088340638674453u, 1475739525896764129u }, { 7821419487252849886u, 1180591620717411303u },
- { 8824922364862649494u, 1888946593147858085u }, { 7059937891890119595u, 1511157274518286468u },
- { 13026647942995916322u, 1208925819614629174u }, { 9774590264567735146u, 1934281311383406679u },
- { 11509021026396098440u, 1547425049106725343u }, { 16585914450600699399u, 1237940039285380274u },
- { 15469416676735388068u, 1980704062856608439u }, { 16064882156130220778u, 1584563250285286751u },
- { 9162556910162266299u, 1267650600228229401u }, { 7281393426775805432u, 2028240960365167042u },
- { 16893161185646375315u, 1622592768292133633u }, { 2446482504291369283u, 1298074214633706907u },
- { 7603720821608101175u, 2076918743413931051u }, { 2393627842544570617u, 1661534994731144841u },
- { 16672297533003297786u, 1329227995784915872u }, { 11918280793837635165u, 2126764793255865396u },
- { 5845275820328197809u, 1701411834604692317u }, { 15744267100488289217u, 1361129467683753853u },
- { 3054734472329800808u, 2177807148294006166u }, { 17201182836831481939u, 1742245718635204932u },
- { 6382248639981364905u, 1393796574908163946u }, { 2832900194486363201u, 2230074519853062314u },
- { 5955668970331000884u, 1784059615882449851u }, { 1075186361522890384u, 1427247692705959881u },
- { 12788344622662355584u, 2283596308329535809u }, { 13920024512871794791u, 1826877046663628647u },
- { 3757321980813615186u, 1461501637330902918u }, { 10384555214134712795u, 1169201309864722334u },
- { 5547241898389809503u, 1870722095783555735u }, { 4437793518711847602u, 1496577676626844588u },
- { 10928932444453298728u, 1197262141301475670u }, { 17486291911125277965u, 1915619426082361072u },
- { 6610335899416401726u, 1532495540865888858u }, { 12666966349016942027u, 1225996432692711086u },
- { 12888448528943286597u, 1961594292308337738u }, { 17689456452638449924u, 1569275433846670190u },
- { 14151565162110759939u, 1255420347077336152u }, { 7885109000409574610u, 2008672555323737844u },
- { 9997436015069570011u, 1606938044258990275u }, { 7997948812055656009u, 1285550435407192220u },
- { 12796718099289049614u, 2056880696651507552u }, { 2858676849947419045u, 1645504557321206042u },
- { 13354987924183666206u, 1316403645856964833u }, { 17678631863951955605u, 2106245833371143733u },
- { 3074859046935833515u, 1684996666696914987u }, { 13527933681774397782u, 1347997333357531989u },
- { 10576647446613305481u, 2156795733372051183u }, { 15840015586774465031u, 1725436586697640946u },
- { 8982663654677661702u, 1380349269358112757u }, { 18061610662226169046u, 2208558830972980411u },
- { 10759939715039024913u, 1766847064778384329u }, { 12297300586773130254u, 1413477651822707463u },
- { 15986332124095098083u, 2261564242916331941u }, { 9099716884534168143u, 1809251394333065553u },
- { 14658471137111155161u, 1447401115466452442u }, { 4348079280205103483u, 1157920892373161954u },
- { 14335624477811986218u, 1852673427797059126u }, { 7779150767507678651u, 1482138742237647301u },
- { 2533971799264232598u, 1185710993790117841u }, { 15122401323048503126u, 1897137590064188545u },
- { 12097921058438802501u, 1517710072051350836u }, { 5988988032009131678u, 1214168057641080669u },
- { 16961078480698431330u, 1942668892225729070u }, { 13568862784558745064u, 1554135113780583256u },
- { 7165741412905085728u, 1243308091024466605u }, { 11465186260648137165u, 1989292945639146568u },
- { 16550846638002330379u, 1591434356511317254u }, { 16930026125143774626u, 1273147485209053803u },
- { 4951948911778577463u, 2037035976334486086u }, { 272210314680951647u, 1629628781067588869u },
- { 3907117066486671641u, 1303703024854071095u }, { 6251387306378674625u, 2085924839766513752u },
- { 16069156289328670670u, 1668739871813211001u }, { 9165976216721026213u, 1334991897450568801u },
- { 7286864317269821294u, 2135987035920910082u }, { 16897537898041588005u, 1708789628736728065u },
- { 13518030318433270404u, 1367031702989382452u }, { 6871453250525591353u, 2187250724783011924u },
- { 9186511415162383406u, 1749800579826409539u }, { 11038557946871817048u, 1399840463861127631u },
- { 10282995085511086630u, 2239744742177804210u }, { 8226396068408869304u, 1791795793742243368u },
- { 13959814484210916090u, 1433436634993794694u }, { 11267656730511734774u, 2293498615990071511u },
- { 5324776569667477496u, 1834798892792057209u }, { 7949170070475892320u, 1467839114233645767u },
- { 17427382500606444826u, 1174271291386916613u }, { 5747719112518849781u, 1878834066219066582u },
- { 15666221734240810795u, 1503067252975253265u }, { 12532977387392648636u, 1202453802380202612u },
- { 5295368560860596524u, 1923926083808324180u }, { 4236294848688477220u, 1539140867046659344u },
- { 7078384693692692099u, 1231312693637327475u }, { 11325415509908307358u, 1970100309819723960u },
- { 9060332407926645887u, 1576080247855779168u }, { 14626963555825137356u, 1260864198284623334u },
- { 12335095245094488799u, 2017382717255397335u }, { 9868076196075591040u, 1613906173804317868u },
- { 15273158586344293478u, 1291124939043454294u }, { 13369007293925138595u, 2065799902469526871u },
- { 7005857020398200553u, 1652639921975621497u }, { 16672732060544291412u, 1322111937580497197u },
- { 11918976037903224966u, 2115379100128795516u }, { 5845832015580669650u, 1692303280103036413u },
- { 12055363241948356366u, 1353842624082429130u }, { 841837113407818570u, 2166148198531886609u },
- { 4362818505468165179u, 1732918558825509287u }, { 14558301248600263113u, 1386334847060407429u },
- { 12225235553534690011u, 2218135755296651887u }, { 2401490813343931363u, 1774508604237321510u },
- { 1921192650675145090u, 1419606883389857208u }, { 17831303500047873437u, 2271371013423771532u },
- { 6886345170554478103u, 1817096810739017226u }, { 1819727321701672159u, 1453677448591213781u },
- { 16213177116328979020u, 1162941958872971024u }, { 14873036941900635463u, 1860707134196753639u },
- { 15587778368262418694u, 1488565707357402911u }, { 8780873879868024632u, 1190852565885922329u },
- { 2981351763563108441u, 1905364105417475727u }, { 13453127855076217722u, 1524291284333980581u },
- { 7073153469319063855u, 1219433027467184465u }, { 11317045550910502167u, 1951092843947495144u },
- { 12742985255470312057u, 1560874275157996115u }, { 10194388204376249646u, 1248699420126396892u },
- { 1553625868034358140u, 1997919072202235028u }, { 8621598323911307159u, 1598335257761788022u },
- { 17965325103354776697u, 1278668206209430417u }, { 13987124906400001422u, 2045869129935088668u },
- { 121653480894270168u, 1636695303948070935u }, { 97322784715416134u, 1309356243158456748u },
- { 14913111714512307107u, 2094969989053530796u }, { 8241140556867935363u, 1675975991242824637u },
- { 17660958889720079260u, 1340780792994259709u }, { 17189487779326395846u, 2145249268790815535u },
- { 13751590223461116677u, 1716199415032652428u }, { 18379969808252713988u, 1372959532026121942u },
- { 14650556434236701088u, 2196735251241795108u }, { 652398703163629901u, 1757388200993436087u },
- { 11589965406756634890u, 1405910560794748869u }, { 7475898206584884855u, 2249456897271598191u },
- { 2291369750525997561u, 1799565517817278553u }, { 9211793429904618695u, 1439652414253822842u },
- { 18428218302589300235u, 2303443862806116547u }, { 7363877012587619542u, 1842755090244893238u },
- { 13269799239553916280u, 1474204072195914590u }, { 10615839391643133024u, 1179363257756731672u },
- { 2227947767661371545u, 1886981212410770676u }, { 16539753473096738529u, 1509584969928616540u },
- { 13231802778477390823u, 1207667975942893232u }, { 6413489186596184024u, 1932268761508629172u },
- { 16198837793502678189u, 1545815009206903337u }, { 5580372605318321905u, 1236652007365522670u },
- { 8928596168509315048u, 1978643211784836272u }, { 18210923379033183008u, 1582914569427869017u },
- { 7190041073742725760u, 1266331655542295214u }, { 436019273762630246u, 2026130648867672343u },
- { 7727513048493924843u, 1620904519094137874u }, { 9871359253537050198u, 1296723615275310299u },
- { 4726128361433549347u, 2074757784440496479u }, { 7470251503888749801u, 1659806227552397183u },
- { 13354898832594820487u, 1327844982041917746u }, { 13989140502667892133u, 2124551971267068394u },
- { 14880661216876224029u, 1699641577013654715u }, { 11904528973500979224u, 1359713261610923772u },
- { 4289851098633925465u, 2175541218577478036u }, { 18189276137874781665u, 1740432974861982428u },
- { 3483374466074094362u, 1392346379889585943u }, { 1884050330976640656u, 2227754207823337509u },
- { 5196589079523222848u, 1782203366258670007u }, { 15225317707844309248u, 1425762693006936005u },
- { 5913764258841343181u, 2281220308811097609u }, { 8420360221814984868u, 1824976247048878087u },
- { 17804334621677718864u, 1459980997639102469u }, { 17932816512084085415u, 1167984798111281975u },
- { 10245762345624985047u, 1868775676978051161u }, { 4507261061758077715u, 1495020541582440929u },
- { 7295157664148372495u, 1196016433265952743u }, { 7982903447895485668u, 1913626293225524389u },
- { 10075671573058298858u, 1530901034580419511u }, { 4371188443704728763u, 1224720827664335609u },
- { 14372599139411386667u, 1959553324262936974u }, { 15187428126271019657u, 1567642659410349579u },
- { 15839291315758726049u, 1254114127528279663u }, { 3206773216762499739u, 2006582604045247462u },
- { 13633465017635730761u, 1605266083236197969u }, { 14596120828850494932u, 1284212866588958375u },
- { 4907049252451240275u, 2054740586542333401u }, { 236290587219081897u, 1643792469233866721u },
- { 14946427728742906810u, 1315033975387093376u }, { 16535586736504830250u, 2104054360619349402u },
- { 5849771759720043554u, 1683243488495479522u }, { 15747863852001765813u, 1346594790796383617u },
- { 10439186904235184007u, 2154551665274213788u }, { 15730047152871967852u, 1723641332219371030u },
- { 12584037722297574282u, 1378913065775496824u }, { 9066413911450387881u, 2206260905240794919u },
- { 10942479943902220628u, 1765008724192635935u }, { 8753983955121776503u, 1412006979354108748u },
- { 10317025513452932081u, 2259211166966573997u }, { 874922781278525018u, 1807368933573259198u },
- { 8078635854506640661u, 1445895146858607358u }, { 13841606313089133175u, 1156716117486885886u },
- { 14767872471458792434u, 1850745787979017418u }, { 746251532941302978u, 1480596630383213935u },
- { 597001226353042382u, 1184477304306571148u }, { 15712597221132509104u, 1895163686890513836u },
- { 8880728962164096960u, 1516130949512411069u }, { 10793931984473187891u, 1212904759609928855u },
- { 17270291175157100626u, 1940647615375886168u }, { 2748186495899949531u, 1552518092300708935u },
- { 2198549196719959625u, 1242014473840567148u }, { 18275073973719576693u, 1987223158144907436u },
- { 10930710364233751031u, 1589778526515925949u }, { 12433917106128911148u, 1271822821212740759u },
- { 8826220925580526867u, 2034916513940385215u }, { 7060976740464421494u, 1627933211152308172u },
- { 16716827836597268165u, 1302346568921846537u }, { 11989529279587987770u, 2083754510274954460u },
- { 9591623423670390216u, 1667003608219963568u }, { 15051996368420132820u, 1333602886575970854u },
- { 13015147745246481542u, 2133764618521553367u }, { 3033420566713364587u, 1707011694817242694u },
- { 6116085268112601993u, 1365609355853794155u }, { 9785736428980163188u, 2184974969366070648u },
- { 15207286772667951197u, 1747979975492856518u }, { 1097782973908629988u, 1398383980394285215u },
- { 1756452758253807981u, 2237414368630856344u }, { 5094511021344956708u, 1789931494904685075u },
- { 4075608817075965366u, 1431945195923748060u }, { 6520974107321544586u, 2291112313477996896u },
- { 1527430471115325346u, 1832889850782397517u }, { 12289990821117991246u, 1466311880625918013u },
- { 17210690286378213644u, 1173049504500734410u }, { 9090360384495590213u, 1876879207201175057u },
- { 18340334751822203140u, 1501503365760940045u }, { 14672267801457762512u, 1201202692608752036u },
- { 16096930852848599373u, 1921924308174003258u }, { 1809498238053148529u, 1537539446539202607u },
- { 12515645034668249793u, 1230031557231362085u }, { 1578287981759648052u, 1968050491570179337u },
- { 12330676829633449412u, 1574440393256143469u }, { 13553890278448669853u, 1259552314604914775u },
- { 3239480371808320148u, 2015283703367863641u }, { 17348979556414297411u, 1612226962694290912u },
- { 6500486015647617283u, 1289781570155432730u }, { 10400777625036187652u, 2063650512248692368u },
- { 15699319729512770768u, 1650920409798953894u }, { 16248804598352126938u, 1320736327839163115u },
- { 7551343283653851484u, 2113178124542660985u }, { 6041074626923081187u, 1690542499634128788u },
- { 12211557331022285596u, 1352433999707303030u }, { 1091747655926105338u, 2163894399531684849u },
- { 4562746939482794594u, 1731115519625347879u }, { 7339546366328145998u, 1384892415700278303u },
- { 8053925371383123274u, 2215827865120445285u }, { 6443140297106498619u, 1772662292096356228u },
- { 12533209867169019542u, 1418129833677084982u }, { 5295740528502789974u, 2269007733883335972u },
- { 15304638867027962949u, 1815206187106668777u }, { 4865013464138549713u, 1452164949685335022u },
- { 14960057215536570740u, 1161731959748268017u }, { 9178696285890871890u, 1858771135597228828u },
- { 14721654658196518159u, 1487016908477783062u }, { 4398626097073393881u, 1189613526782226450u },
- { 7037801755317430209u, 1903381642851562320u }, { 5630241404253944167u, 1522705314281249856u },
- { 814844308661245011u, 1218164251424999885u }, { 1303750893857992017u, 1949062802279999816u },
- { 15800395974054034906u, 1559250241823999852u }, { 5261619149759407279u, 1247400193459199882u },
- { 12107939454356961969u, 1995840309534719811u }, { 5997002748743659252u, 1596672247627775849u },
- { 8486951013736837725u, 1277337798102220679u }, { 2511075177753209390u, 2043740476963553087u },
- { 13076906586428298482u, 1634992381570842469u }, { 14150874083884549109u, 1307993905256673975u },
- { 4194654460505726958u, 2092790248410678361u }, { 18113118827372222859u, 1674232198728542688u },
- { 3422448617672047318u, 1339385758982834151u }, { 16543964232501006678u, 2143017214372534641u },
- { 9545822571258895019u, 1714413771498027713u }, { 15015355686490936662u, 1371531017198422170u },
- { 5577825024675947042u, 2194449627517475473u }, { 11840957649224578280u, 1755559702013980378u },
- { 16851463748863483271u, 1404447761611184302u }, { 12204946739213931940u, 2247116418577894884u },
- { 13453306206113055875u, 1797693134862315907u }, { 3383947335406624054u, 1438154507889852726u },
- { 16482362180876329456u, 2301047212623764361u }, { 9496540929959153242u, 1840837770099011489u },
- { 11286581558709232917u, 1472670216079209191u }, { 5339916432225476010u, 1178136172863367353u },
- { 4854517476818851293u, 1885017876581387765u }, { 3883613981455081034u, 1508014301265110212u },
- { 14174937629389795797u, 1206411441012088169u }, { 11611853762797942306u, 1930258305619341071u },
- { 5600134195496443521u, 1544206644495472857u }, { 15548153800622885787u, 1235365315596378285u },
- { 6430302007287065643u, 1976584504954205257u }, { 16212288050055383484u, 1581267603963364205u },
- { 12969830440044306787u, 1265014083170691364u }, { 9683682259845159889u, 2024022533073106183u },
- { 15125643437359948558u, 1619218026458484946u }, { 8411165935146048523u, 1295374421166787957u },
- { 17147214310975587960u, 2072599073866860731u }, { 10028422634038560045u, 1658079259093488585u },
- { 8022738107230848036u, 1326463407274790868u }, { 9147032156827446534u, 2122341451639665389u },
- { 11006974540203867551u, 1697873161311732311u }, { 5116230817421183718u, 1358298529049385849u },
- { 15564666937357714594u, 2173277646479017358u }, { 1383687105660440706u, 1738622117183213887u },
- { 12174996128754083534u, 1390897693746571109u }, { 8411947361780802685u, 2225436309994513775u },
- { 6729557889424642148u, 1780349047995611020u }, { 5383646311539713719u, 1424279238396488816u },
- { 1235136468979721303u, 2278846781434382106u }, { 15745504434151418335u, 1823077425147505684u },
- { 16285752362063044992u, 1458461940118004547u }, { 5649904260166615347u, 1166769552094403638u },
- { 5350498001524674232u, 1866831283351045821u }, { 591049586477829062u, 1493465026680836657u },
- { 11540886113407994219u, 1194772021344669325u }, { 18673707743239135u, 1911635234151470921u },
- { 14772334225162232601u, 1529308187321176736u }, { 8128518565387875758u, 1223446549856941389u },
- { 1937583260394870242u, 1957514479771106223u }, { 8928764237799716840u, 1566011583816884978u },
- { 14521709019723594119u, 1252809267053507982u }, { 8477339172590109297u, 2004494827285612772u },
- { 17849917782297818407u, 1603595861828490217u }, { 6901236596354434079u, 1282876689462792174u },
- { 18420676183650915173u, 2052602703140467478u }, { 3668494502695001169u, 1642082162512373983u },
- { 10313493231639821582u, 1313665730009899186u }, { 9122891541139893884u, 2101865168015838698u },
- { 14677010862395735754u, 1681492134412670958u }, { 673562245690857633u, 1345193707530136767u }
-};
-
-static const uint64_t DOUBLE_POW5_SPLIT[DOUBLE_POW5_TABLE_SIZE][2] = {
- { 0u, 1152921504606846976u }, { 0u, 1441151880758558720u },
- { 0u, 1801439850948198400u }, { 0u, 2251799813685248000u },
- { 0u, 1407374883553280000u }, { 0u, 1759218604441600000u },
- { 0u, 2199023255552000000u }, { 0u, 1374389534720000000u },
- { 0u, 1717986918400000000u }, { 0u, 2147483648000000000u },
- { 0u, 1342177280000000000u }, { 0u, 1677721600000000000u },
- { 0u, 2097152000000000000u }, { 0u, 1310720000000000000u },
- { 0u, 1638400000000000000u }, { 0u, 2048000000000000000u },
- { 0u, 1280000000000000000u }, { 0u, 1600000000000000000u },
- { 0u, 2000000000000000000u }, { 0u, 1250000000000000000u },
- { 0u, 1562500000000000000u }, { 0u, 1953125000000000000u },
- { 0u, 1220703125000000000u }, { 0u, 1525878906250000000u },
- { 0u, 1907348632812500000u }, { 0u, 1192092895507812500u },
- { 0u, 1490116119384765625u }, { 4611686018427387904u, 1862645149230957031u },
- { 9799832789158199296u, 1164153218269348144u }, { 12249790986447749120u, 1455191522836685180u },
- { 15312238733059686400u, 1818989403545856475u }, { 14528612397897220096u, 2273736754432320594u },
- { 13692068767113150464u, 1421085471520200371u }, { 12503399940464050176u, 1776356839400250464u },
- { 15629249925580062720u, 2220446049250313080u }, { 9768281203487539200u, 1387778780781445675u },
- { 7598665485932036096u, 1734723475976807094u }, { 274959820560269312u, 2168404344971008868u },
- { 9395221924704944128u, 1355252715606880542u }, { 2520655369026404352u, 1694065894508600678u },
- { 12374191248137781248u, 2117582368135750847u }, { 14651398557727195136u, 1323488980084844279u },
- { 13702562178731606016u, 1654361225106055349u }, { 3293144668132343808u, 2067951531382569187u },
- { 18199116482078572544u, 1292469707114105741u }, { 8913837547316051968u, 1615587133892632177u },
- { 15753982952572452864u, 2019483917365790221u }, { 12152082354571476992u, 1262177448353618888u },
- { 15190102943214346240u, 1577721810442023610u }, { 9764256642163156992u, 1972152263052529513u },
- { 17631875447420442880u, 1232595164407830945u }, { 8204786253993389888u, 1540743955509788682u },
- { 1032610780636961552u, 1925929944387235853u }, { 2951224747111794922u, 1203706215242022408u },
- { 3689030933889743652u, 1504632769052528010u }, { 13834660704216955373u, 1880790961315660012u },
- { 17870034976990372916u, 1175494350822287507u }, { 17725857702810578241u, 1469367938527859384u },
- { 3710578054803671186u, 1836709923159824231u }, { 26536550077201078u, 2295887403949780289u },
- { 11545800389866720434u, 1434929627468612680u }, { 14432250487333400542u, 1793662034335765850u },
- { 8816941072311974870u, 2242077542919707313u }, { 17039803216263454053u, 1401298464324817070u },
- { 12076381983474541759u, 1751623080406021338u }, { 5872105442488401391u, 2189528850507526673u },
- { 15199280947623720629u, 1368455531567204170u }, { 9775729147674874978u, 1710569414459005213u },
- { 16831347453020981627u, 2138211768073756516u }, { 1296220121283337709u, 1336382355046097823u },
- { 15455333206886335848u, 1670477943807622278u }, { 10095794471753144002u, 2088097429759527848u },
- { 6309871544845715001u, 1305060893599704905u }, { 12499025449484531656u, 1631326116999631131u },
- { 11012095793428276666u, 2039157646249538914u }, { 11494245889320060820u, 1274473528905961821u },
- { 532749306367912313u, 1593091911132452277u }, { 5277622651387278295u, 1991364888915565346u },
- { 7910200175544436838u, 1244603055572228341u }, { 14499436237857933952u, 1555753819465285426u },
- { 8900923260467641632u, 1944692274331606783u }, { 12480606065433357876u, 1215432671457254239u },
- { 10989071563364309441u, 1519290839321567799u }, { 9124653435777998898u, 1899113549151959749u },
- { 8008751406574943263u, 1186945968219974843u }, { 5399253239791291175u, 1483682460274968554u },
- { 15972438586593889776u, 1854603075343710692u }, { 759402079766405302u, 1159126922089819183u },
- { 14784310654990170340u, 1448908652612273978u }, { 9257016281882937117u, 1811135815765342473u },
- { 16182956370781059300u, 2263919769706678091u }, { 7808504722524468110u, 1414949856066673807u },
- { 5148944884728197234u, 1768687320083342259u }, { 1824495087482858639u, 2210859150104177824u },
- { 1140309429676786649u, 1381786968815111140u }, { 1425386787095983311u, 1727233711018888925u },
- { 6393419502297367043u, 2159042138773611156u }, { 13219259225790630210u, 1349401336733506972u },
- { 16524074032238287762u, 1686751670916883715u }, { 16043406521870471799u, 2108439588646104644u },
- { 803757039314269066u, 1317774742903815403u }, { 14839754354425000045u, 1647218428629769253u },
- { 4714634887749086344u, 2059023035787211567u }, { 9864175832484260821u, 1286889397367007229u },
- { 16941905809032713930u, 1608611746708759036u }, { 2730638187581340797u, 2010764683385948796u },
- { 10930020904093113806u, 1256727927116217997u }, { 18274212148543780162u, 1570909908895272496u },
- { 4396021111970173586u, 1963637386119090621u }, { 5053356204195052443u, 1227273366324431638u },
- { 15540067292098591362u, 1534091707905539547u }, { 14813398096695851299u, 1917614634881924434u },
- { 13870059828862294966u, 1198509146801202771u }, { 12725888767650480803u, 1498136433501503464u },
- { 15907360959563101004u, 1872670541876879330u }, { 14553786618154326031u, 1170419088673049581u },
- { 4357175217410743827u, 1463023860841311977u }, { 10058155040190817688u, 1828779826051639971u },
- { 7961007781811134206u, 2285974782564549964u }, { 14199001900486734687u, 1428734239102843727u },
- { 13137066357181030455u, 1785917798878554659u }, { 11809646928048900164u, 2232397248598193324u },
- { 16604401366885338411u, 1395248280373870827u }, { 16143815690179285109u, 1744060350467338534u },
- { 10956397575869330579u, 2180075438084173168u }, { 6847748484918331612u, 1362547148802608230u },
- { 17783057643002690323u, 1703183936003260287u }, { 17617136035325974999u, 2128979920004075359u },
- { 17928239049719816230u, 1330612450002547099u }, { 17798612793722382384u, 1663265562503183874u },
- { 13024893955298202172u, 2079081953128979843u }, { 5834715712847682405u, 1299426220705612402u },
- { 16516766677914378815u, 1624282775882015502u }, { 11422586310538197711u, 2030353469852519378u },
- { 11750802462513761473u, 1268970918657824611u }, { 10076817059714813937u, 1586213648322280764u },
- { 12596021324643517422u, 1982767060402850955u }, { 5566670318688504437u, 1239229412751781847u },
- { 2346651879933242642u, 1549036765939727309u }, { 7545000868343941206u, 1936295957424659136u },
- { 4715625542714963254u, 1210184973390411960u }, { 5894531928393704067u, 1512731216738014950u },
- { 16591536947346905892u, 1890914020922518687u }, { 17287239619732898039u, 1181821263076574179u },
- { 16997363506238734644u, 1477276578845717724u }, { 2799960309088866689u, 1846595723557147156u },
- { 10973347230035317489u, 1154122327223216972u }, { 13716684037544146861u, 1442652909029021215u },
- { 12534169028502795672u, 1803316136286276519u }, { 11056025267201106687u, 2254145170357845649u },
- { 18439230838069161439u, 1408840731473653530u }, { 13825666510731675991u, 1761050914342066913u },
- { 3447025083132431277u, 2201313642927583642u }, { 6766076695385157452u, 1375821026829739776u },
- { 8457595869231446815u, 1719776283537174720u }, { 10571994836539308519u, 2149720354421468400u },
- { 6607496772837067824u, 1343575221513417750u }, { 17482743002901110588u, 1679469026891772187u },
- { 17241742735199000331u, 2099336283614715234u }, { 15387775227926763111u, 1312085177259197021u },
- { 5399660979626290177u, 1640106471573996277u }, { 11361262242960250625u, 2050133089467495346u },
- { 11712474920277544544u, 1281333180917184591u }, { 10028907631919542777u, 1601666476146480739u },
- { 7924448521472040567u, 2002083095183100924u }, { 14176152362774801162u, 1251301934489438077u },
- { 3885132398186337741u, 1564127418111797597u }, { 9468101516160310080u, 1955159272639746996u },
- { 15140935484454969608u, 1221974545399841872u }, { 479425281859160394u, 1527468181749802341u },
- { 5210967620751338397u, 1909335227187252926u }, { 17091912818251750210u, 1193334516992033078u },
- { 12141518985959911954u, 1491668146240041348u }, { 15176898732449889943u, 1864585182800051685u },
- { 11791404716994875166u, 1165365739250032303u }, { 10127569877816206054u, 1456707174062540379u },
- { 8047776328842869663u, 1820883967578175474u }, { 836348374198811271u, 2276104959472719343u },
- { 7440246761515338900u, 1422565599670449589u }, { 13911994470321561530u, 1778206999588061986u },
- { 8166621051047176104u, 2222758749485077483u }, { 2798295147690791113u, 1389224218428173427u },
- { 17332926989895652603u, 1736530273035216783u }, { 17054472718942177850u, 2170662841294020979u },
- { 8353202440125167204u, 1356664275808763112u }, { 10441503050156459005u, 1695830344760953890u },
- { 3828506775840797949u, 2119787930951192363u }, { 86973725686804766u, 1324867456844495227u },
- { 13943775212390669669u, 1656084321055619033u }, { 3594660960206173375u, 2070105401319523792u },
- { 2246663100128858359u, 1293815875824702370u }, { 12031700912015848757u, 1617269844780877962u },
- { 5816254103165035138u, 2021587305976097453u }, { 5941001823691840913u, 1263492066235060908u },
- { 7426252279614801142u, 1579365082793826135u }, { 4671129331091113523u, 1974206353492282669u },
- { 5225298841145639904u, 1233878970932676668u }, { 6531623551432049880u, 1542348713665845835u },
- { 3552843420862674446u, 1927935892082307294u }, { 16055585193321335241u, 1204959932551442058u },
- { 10846109454796893243u, 1506199915689302573u }, { 18169322836923504458u, 1882749894611628216u },
- { 11355826773077190286u, 1176718684132267635u }, { 9583097447919099954u, 1470898355165334544u },
- { 11978871809898874942u, 1838622943956668180u }, { 14973589762373593678u, 2298278679945835225u },
- { 2440964573842414192u, 1436424174966147016u }, { 3051205717303017741u, 1795530218707683770u },
- { 13037379183483547984u, 2244412773384604712u }, { 8148361989677217490u, 1402757983365377945u },
- { 14797138505523909766u, 1753447479206722431u }, { 13884737113477499304u, 2191809349008403039u },
- { 15595489723564518921u, 1369880843130251899u }, { 14882676136028260747u, 1712351053912814874u },
- { 9379973133180550126u, 2140438817391018593u }, { 17391698254306313589u, 1337774260869386620u },
- { 3292878744173340370u, 1672217826086733276u }, { 4116098430216675462u, 2090272282608416595u },
- { 266718509671728212u, 1306420176630260372u }, { 333398137089660265u, 1633025220787825465u },
- { 5028433689789463235u, 2041281525984781831u }, { 10060300083759496378u, 1275800953740488644u },
- { 12575375104699370472u, 1594751192175610805u }, { 1884160825592049379u, 1993438990219513507u },
- { 17318501580490888525u, 1245899368887195941u }, { 7813068920331446945u, 1557374211108994927u },
- { 5154650131986920777u, 1946717763886243659u }, { 915813323278131534u, 1216698602428902287u },
- { 14979824709379828129u, 1520873253036127858u }, { 9501408849870009354u, 1901091566295159823u },
- { 12855909558809837702u, 1188182228934474889u }, { 2234828893230133415u, 1485227786168093612u },
- { 2793536116537666769u, 1856534732710117015u }, { 8663489100477123587u, 1160334207943823134u },
- { 1605989338741628675u, 1450417759929778918u }, { 11230858710281811652u, 1813022199912223647u },
- { 9426887369424876662u, 2266277749890279559u }, { 12809333633531629769u, 1416423593681424724u },
- { 16011667041914537212u, 1770529492101780905u }, { 6179525747111007803u, 2213161865127226132u },
- { 13085575628799155685u, 1383226165704516332u }, { 16356969535998944606u, 1729032707130645415u },
- { 15834525901571292854u, 2161290883913306769u }, { 2979049660840976177u, 1350806802445816731u },
- { 17558870131333383934u, 1688508503057270913u }, { 8113529608884566205u, 2110635628821588642u },
- { 9682642023980241782u, 1319147268013492901u }, { 16714988548402690132u, 1648934085016866126u },
- { 11670363648648586857u, 2061167606271082658u }, { 11905663298832754689u, 1288229753919426661u },
- { 1047021068258779650u, 1610287192399283327u }, { 15143834390605638274u, 2012858990499104158u },
- { 4853210475701136017u, 1258036869061940099u }, { 1454827076199032118u, 1572546086327425124u },
- { 1818533845248790147u, 1965682607909281405u }, { 3442426662494187794u, 1228551629943300878u },
- { 13526405364972510550u, 1535689537429126097u }, { 3072948650933474476u, 1919611921786407622u },
- { 15755650962115585259u, 1199757451116504763u }, { 15082877684217093670u, 1499696813895630954u },
- { 9630225068416591280u, 1874621017369538693u }, { 8324733676974063502u, 1171638135855961683u },
- { 5794231077790191473u, 1464547669819952104u }, { 7242788847237739342u, 1830684587274940130u },
- { 18276858095901949986u, 2288355734093675162u }, { 16034722328366106645u, 1430222333808546976u },
- { 1596658836748081690u, 1787777917260683721u }, { 6607509564362490017u, 2234722396575854651u },
- { 1823850468512862308u, 1396701497859909157u }, { 6891499104068465790u, 1745876872324886446u },
- { 17837745916940358045u, 2182346090406108057u }, { 4231062170446641922u, 1363966306503817536u },
- { 5288827713058302403u, 1704957883129771920u }, { 6611034641322878003u, 2131197353912214900u },
- { 13355268687681574560u, 1331998346195134312u }, { 16694085859601968200u, 1664997932743917890u },
- { 11644235287647684442u, 2081247415929897363u }, { 4971804045566108824u, 1300779634956185852u },
- { 6214755056957636030u, 1625974543695232315u }, { 3156757802769657134u, 2032468179619040394u },
- { 6584659645158423613u, 1270292612261900246u }, { 17454196593302805324u, 1587865765327375307u },
- { 17206059723201118751u, 1984832206659219134u }, { 6142101308573311315u, 1240520129162011959u },
- { 3065940617289251240u, 1550650161452514949u }, { 8444111790038951954u, 1938312701815643686u },
- { 665883850346957067u, 1211445438634777304u }, { 832354812933696334u, 1514306798293471630u },
- { 10263815553021896226u, 1892883497866839537u }, { 17944099766707154901u, 1183052186166774710u },
- { 13206752671529167818u, 1478815232708468388u }, { 16508440839411459773u, 1848519040885585485u },
- { 12623618533845856310u, 1155324400553490928u }, { 15779523167307320387u, 1444155500691863660u },
- { 1277659885424598868u, 1805194375864829576u }, { 1597074856780748586u, 2256492969831036970u },
- { 5609857803915355770u, 1410308106144398106u }, { 16235694291748970521u, 1762885132680497632u },
- { 1847873790976661535u, 2203606415850622041u }, { 12684136165428883219u, 1377254009906638775u },
- { 11243484188358716120u, 1721567512383298469u }, { 219297180166231438u, 2151959390479123087u },
- { 7054589765244976505u, 1344974619049451929u }, { 13429923224983608535u, 1681218273811814911u },
- { 12175718012802122765u, 2101522842264768639u }, { 14527352785642408584u, 1313451776415480399u },
- { 13547504963625622826u, 1641814720519350499u }, { 12322695186104640628u, 2052268400649188124u },
- { 16925056528170176201u, 1282667750405742577u }, { 7321262604930556539u, 1603334688007178222u },
- { 18374950293017971482u, 2004168360008972777u }, { 4566814905495150320u, 1252605225005607986u },
- { 14931890668723713708u, 1565756531257009982u }, { 9441491299049866327u, 1957195664071262478u },
- { 1289246043478778550u, 1223247290044539049u }, { 6223243572775861092u, 1529059112555673811u },
- { 3167368447542438461u, 1911323890694592264u }, { 1979605279714024038u, 1194577431684120165u },
- { 7086192618069917952u, 1493221789605150206u }, { 18081112809442173248u, 1866527237006437757u },
- { 13606538515115052232u, 1166579523129023598u }, { 7784801107039039482u, 1458224403911279498u },
- { 507629346944023544u, 1822780504889099373u }, { 5246222702107417334u, 2278475631111374216u },
- { 3278889188817135834u, 1424047269444608885u }, { 8710297504448807696u, 1780059086805761106u }
-};
-
-#endif // RYU_D2S_FULL_TABLE_H
deleted file mode 100644
@@ -1,321 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-
-// Runtime compiler options:
-// -DRYU_DEBUG Generate verbose debugging output to stdout.
-
-
-
-#ifdef RYU_DEBUG
-#endif
-
-
-#define FLOAT_MANTISSA_BITS 23
-#define FLOAT_EXPONENT_BITS 8
-#define FLOAT_BIAS 127
-
-// A floating decimal representing m * 10^e.
-typedef struct floating_decimal_32 {
- uint32_t mantissa;
- // Decimal exponent's range is -45 to 38
- // inclusive, and can fit in a short if needed.
- int32_t exponent;
- bool sign;
-} floating_decimal_32;
-
-static inline floating_decimal_32 f2d(const uint32_t ieeeMantissa, const uint32_t ieeeExponent, const bool ieeeSign) {
- int32_t e2;
- uint32_t m2;
- if (ieeeExponent == 0) {
- // We subtract 2 so that the bounds computation has 2 additional bits.
- e2 = 1 - FLOAT_BIAS - FLOAT_MANTISSA_BITS - 2;
- m2 = ieeeMantissa;
- } else {
- e2 = (int32_t) ieeeExponent - FLOAT_BIAS - FLOAT_MANTISSA_BITS - 2;
- m2 = (1u << FLOAT_MANTISSA_BITS) | ieeeMantissa;
- }
- const bool even = (m2 & 1) == 0;
- const bool acceptBounds = even;
-
-#ifdef RYU_DEBUG
- printf("-> %u * 2^%d\n", m2, e2 + 2);
-#endif
-
- // Step 2: Determine the interval of valid decimal representations.
- const uint32_t mv = 4 * m2;
- const uint32_t mp = 4 * m2 + 2;
- // Implicit bool -> int conversion. True is 1, false is 0.
- const uint32_t mmShift = ieeeMantissa != 0 || ieeeExponent <= 1;
- const uint32_t mm = 4 * m2 - 1 - mmShift;
-
- // Step 3: Convert to a decimal power base using 64-bit arithmetic.
- uint32_t vr, vp, vm;
- int32_t e10;
- bool vmIsTrailingZeros = false;
- bool vrIsTrailingZeros = false;
- uint8_t lastRemovedDigit = 0;
- if (e2 >= 0) {
- const uint32_t q = log10Pow2(e2);
- e10 = (int32_t) q;
- const int32_t k = FLOAT_POW5_INV_BITCOUNT + pow5bits((int32_t) q) - 1;
- const int32_t i = -e2 + (int32_t) q + k;
- vr = mulPow5InvDivPow2(mv, q, i);
- vp = mulPow5InvDivPow2(mp, q, i);
- vm = mulPow5InvDivPow2(mm, q, i);
-#ifdef RYU_DEBUG
- printf("%u * 2^%d / 10^%u\n", mv, e2, q);
- printf("V+=%u\nV =%u\nV-=%u\n", vp, vr, vm);
-#endif
- if (q != 0 && (vp - 1) / 10 <= vm / 10) {
- // We need to know one removed digit even if we are not going to loop below. We could use
- // q = X - 1 above, except that would require 33 bits for the result, and we've found that
- // 32-bit arithmetic is faster even on 64-bit machines.
- const int32_t l = FLOAT_POW5_INV_BITCOUNT + pow5bits((int32_t) (q - 1)) - 1;
- lastRemovedDigit = (uint8_t) (mulPow5InvDivPow2(mv, q - 1, -e2 + (int32_t) q - 1 + l) % 10);
- }
- if (q <= 9) {
- // The largest power of 5 that fits in 24 bits is 5^10, but q <= 9 seems to be safe as well.
- // Only one of mp, mv, and mm can be a multiple of 5, if any.
- if (mv % 5 == 0) {
- vrIsTrailingZeros = multipleOfPowerOf5_32(mv, q);
- } else if (acceptBounds) {
- vmIsTrailingZeros = multipleOfPowerOf5_32(mm, q);
- } else {
- vp -= multipleOfPowerOf5_32(mp, q);
- }
- }
- } else {
- const uint32_t q = log10Pow5(-e2);
- e10 = (int32_t) q + e2;
- const int32_t i = -e2 - (int32_t) q;
- const int32_t k = pow5bits(i) - FLOAT_POW5_BITCOUNT;
- int32_t j = (int32_t) q - k;
- vr = mulPow5divPow2(mv, (uint32_t) i, j);
- vp = mulPow5divPow2(mp, (uint32_t) i, j);
- vm = mulPow5divPow2(mm, (uint32_t) i, j);
-#ifdef RYU_DEBUG
- printf("%u * 5^%d / 10^%u\n", mv, -e2, q);
- printf("%u %d %d %d\n", q, i, k, j);
- printf("V+=%u\nV =%u\nV-=%u\n", vp, vr, vm);
-#endif
- if (q != 0 && (vp - 1) / 10 <= vm / 10) {
- j = (int32_t) q - 1 - (pow5bits(i + 1) - FLOAT_POW5_BITCOUNT);
- lastRemovedDigit = (uint8_t) (mulPow5divPow2(mv, (uint32_t) (i + 1), j) % 10);
- }
- if (q <= 1) {
- // {vr,vp,vm} is trailing zeros if {mv,mp,mm} has at least q trailing 0 bits.
- // mv = 4 * m2, so it always has at least two trailing 0 bits.
- vrIsTrailingZeros = true;
- if (acceptBounds) {
- // mm = mv - 1 - mmShift, so it has 1 trailing 0 bit iff mmShift == 1.
- vmIsTrailingZeros = mmShift == 1;
- } else {
- // mp = mv + 2, so it always has at least one trailing 0 bit.
- --vp;
- }
- } else if (q < 31) { // TODO(ulfjack): Use a tighter bound here.
- vrIsTrailingZeros = multipleOfPowerOf2_32(mv, q - 1);
-#ifdef RYU_DEBUG
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- }
- }
-#ifdef RYU_DEBUG
- printf("e10=%d\n", e10);
- printf("V+=%u\nV =%u\nV-=%u\n", vp, vr, vm);
- printf("vm is trailing zeros=%s\n", vmIsTrailingZeros ? "true" : "false");
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
-
- // Step 4: Find the shortest decimal representation in the interval of valid representations.
- int32_t removed = 0;
- uint32_t output;
- if (vmIsTrailingZeros || vrIsTrailingZeros) {
- // General case, which happens rarely (~4.0%).
- while (vp / 10 > vm / 10) {
-#ifdef __clang__ // https://bugs.llvm.org/show_bug.cgi?id=23106
- // The compiler does not realize that vm % 10 can be computed from vm / 10
- // as vm - (vm / 10) * 10.
- vmIsTrailingZeros &= vm - (vm / 10) * 10 == 0;
-#else
- vmIsTrailingZeros &= vm % 10 == 0;
-#endif
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) (vr % 10);
- vr /= 10;
- vp /= 10;
- vm /= 10;
- ++removed;
- }
-#ifdef RYU_DEBUG
- printf("V+=%u\nV =%u\nV-=%u\n", vp, vr, vm);
- printf("d-10=%s\n", vmIsTrailingZeros ? "true" : "false");
-#endif
- if (vmIsTrailingZeros) {
- while (vm % 10 == 0) {
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) (vr % 10);
- vr /= 10;
- vp /= 10;
- vm /= 10;
- ++removed;
- }
- }
-#ifdef RYU_DEBUG
- printf("%u %d\n", vr, lastRemovedDigit);
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- if (vrIsTrailingZeros && lastRemovedDigit == 5 && vr % 2 == 0) {
- // Round even if the exact number is .....50..0.
- lastRemovedDigit = 4;
- }
- // We need to take vr + 1 if vr is outside bounds or we need to round up.
- output = vr + ((vr == vm && (!acceptBounds || !vmIsTrailingZeros)) || lastRemovedDigit >= 5);
- } else {
- // Specialized for the common case (~96.0%). Percentages below are relative to this.
- // Loop iterations below (approximately):
- // 0: 13.6%, 1: 70.7%, 2: 14.1%, 3: 1.39%, 4: 0.14%, 5+: 0.01%
- while (vp / 10 > vm / 10) {
- lastRemovedDigit = (uint8_t) (vr % 10);
- vr /= 10;
- vp /= 10;
- vm /= 10;
- ++removed;
- }
-#ifdef RYU_DEBUG
- printf("%u %d\n", vr, lastRemovedDigit);
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- // We need to take vr + 1 if vr is outside bounds or we need to round up.
- output = vr + (vr == vm || lastRemovedDigit >= 5);
- }
- const int32_t exp = e10 + removed;
-
-#ifdef RYU_DEBUG
- printf("V+=%u\nV =%u\nV-=%u\n", vp, vr, vm);
- printf("O=%u\n", output);
- printf("EXP=%d\n", exp);
-#endif
-
- floating_decimal_32 fd;
- fd.exponent = exp;
- fd.mantissa = output;
- fd.sign = ieeeSign;
- return fd;
-}
-
-static inline int to_chars(const floating_decimal_32 v, char* const result) {
- // Step 5: Print the decimal representation.
- int index = 0;
- if (v.sign) {
- result[index++] = '-';
- }
-
- uint32_t output = v.mantissa;
- const uint32_t olength = decimalLength9(output);
-
-#ifdef RYU_DEBUG
- printf("DIGITS=%u\n", v.mantissa);
- printf("OLEN=%u\n", olength);
- printf("EXP=%u\n", v.exponent + olength);
-#endif
-
- // Print the decimal digits.
- // The following code is equivalent to:
- // for (uint32_t i = 0; i < olength - 1; ++i) {
- // const uint32_t c = output % 10; output /= 10;
- // result[index + olength - i] = (char) ('0' + c);
- // }
- // result[index] = '0' + output % 10;
- uint32_t i = 0;
- while (output >= 10000) {
-#ifdef __clang__ // https://bugs.llvm.org/show_bug.cgi?id=38217
- const uint32_t c = output - 10000 * (output / 10000);
-#else
- const uint32_t c = output % 10000;
-#endif
- output /= 10000;
- const uint32_t c0 = (c % 100) << 1;
- const uint32_t c1 = (c / 100) << 1;
- memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
- memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
- i += 4;
- }
- if (output >= 100) {
- const uint32_t c = (output % 100) << 1;
- output /= 100;
- memcpy(result + index + olength - i - 1, DIGIT_TABLE + c, 2);
- i += 2;
- }
- if (output >= 10) {
- const uint32_t c = output << 1;
- // We can't use memcpy here: the decimal dot goes between these two digits.
- result[index + olength - i] = DIGIT_TABLE[c + 1];
- result[index] = DIGIT_TABLE[c];
- } else {
- result[index] = (char) ('0' + output);
- }
-
- // Print decimal point if needed.
- if (olength > 1) {
- result[index + 1] = '.';
- index += olength + 1;
- } else {
- ++index;
- }
-
- // Print the exponent.
- result[index++] = 'e';
- int32_t exp = v.exponent + (int32_t) olength - 1;
- if (exp < 0) {
- result[index++] = '-';
- exp = -exp;
- } else {
- result[index++] = '+';
- }
-
- memcpy(result + index, DIGIT_TABLE + 2 * exp, 2);
- index += 2;
-
- return index;
-}
-
-floating_decimal_32 floating_to_fd32(float f) {
- // Step 1: Decode the floating-point number, and unify normalized and subnormal cases.
- const uint32_t bits = float_to_bits(f);
-
-#ifdef RYU_DEBUG
- printf("IN=");
- for (int32_t bit = 31; bit >= 0; --bit) {
- printf("%u", (bits >> bit) & 1);
- }
- printf("\n");
-#endif
-
- // Decode bits into sign, mantissa, and exponent.
- const bool ieeeSign = ((bits >> (FLOAT_MANTISSA_BITS + FLOAT_EXPONENT_BITS)) & 1) != 0;
- const uint32_t ieeeMantissa = bits & ((1u << FLOAT_MANTISSA_BITS) - 1);
- const uint32_t ieeeExponent = (bits >> FLOAT_MANTISSA_BITS) & ((1u << FLOAT_EXPONENT_BITS) - 1);
-
- // Case distinction; exit early for the easy cases.
- if (ieeeExponent == ((1u << FLOAT_EXPONENT_BITS) - 1u) || (ieeeExponent == 0 && ieeeMantissa == 0)) {
- __builtin_abort();
- }
-
- const floating_decimal_32 v = f2d(ieeeMantissa, ieeeExponent, ieeeSign);
- return v;
-}
deleted file mode 100644
@@ -1,124 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-#ifndef RYU_F2S_INTRINSICS_H
-#define RYU_F2S_INTRINSICS_H
-
-// Defines RYU_32_BIT_PLATFORM if applicable.
-
-#if defined(RYU_FLOAT_FULL_TABLE)
-
-
-#else
-
-#if defined(RYU_OPTIMIZE_SIZE)
-#else
-#endif
-#define FLOAT_POW5_INV_BITCOUNT (DOUBLE_POW5_INV_BITCOUNT - 64)
-#define FLOAT_POW5_BITCOUNT (DOUBLE_POW5_BITCOUNT - 64)
-
-#endif
-
-static inline uint32_t pow5factor_32(uint32_t value) {
- uint32_t count = 0;
- for (;;) {
- assert(value != 0);
- const uint32_t q = value / 5;
- const uint32_t r = value % 5;
- if (r != 0) {
- break;
- }
- value = q;
- ++count;
- }
- return count;
-}
-
-// Returns true if value is divisible by 5^p.
-static inline bool multipleOfPowerOf5_32(const uint32_t value, const uint32_t p) {
- return pow5factor_32(value) >= p;
-}
-
-// Returns true if value is divisible by 2^p.
-static inline bool multipleOfPowerOf2_32(const uint32_t value, const uint32_t p) {
- // __builtin_ctz doesn't appear to be faster here.
- return (value & ((1u << p) - 1)) == 0;
-}
-
-// It seems to be slightly faster to avoid uint128_t here, although the
-// generated code for uint128_t looks slightly nicer.
-static inline uint32_t mulShift32(const uint32_t m, const uint64_t factor, const int32_t shift) {
- assert(shift > 32);
-
- // The casts here help MSVC to avoid calls to the __allmul library
- // function.
- const uint32_t factorLo = (uint32_t)(factor);
- const uint32_t factorHi = (uint32_t)(factor >> 32);
- const uint64_t bits0 = (uint64_t)m * factorLo;
- const uint64_t bits1 = (uint64_t)m * factorHi;
-
-#if defined(RYU_32_BIT_PLATFORM)
- // On 32-bit platforms we can avoid a 64-bit shift-right since we only
- // need the upper 32 bits of the result and the shift value is > 32.
- const uint32_t bits0Hi = (uint32_t)(bits0 >> 32);
- uint32_t bits1Lo = (uint32_t)(bits1);
- uint32_t bits1Hi = (uint32_t)(bits1 >> 32);
- bits1Lo += bits0Hi;
- bits1Hi += (bits1Lo < bits0Hi);
- if (shift >= 64) {
- // s2f can call this with a shift value >= 64, which we have to handle.
- // This could now be slower than the !defined(RYU_32_BIT_PLATFORM) case.
- return (uint32_t)(bits1Hi >> (shift - 64));
- } else {
- const int32_t s = shift - 32;
- return (bits1Hi << (32 - s)) | (bits1Lo >> s);
- }
-#else // RYU_32_BIT_PLATFORM
- const uint64_t sum = (bits0 >> 32) + bits1;
- const uint64_t shiftedSum = sum >> (shift - 32);
- assert(shiftedSum <= UINT32_MAX);
- return (uint32_t) shiftedSum;
-#endif // RYU_32_BIT_PLATFORM
-}
-
-static inline uint32_t mulPow5InvDivPow2(const uint32_t m, const uint32_t q, const int32_t j) {
-#if defined(RYU_FLOAT_FULL_TABLE)
- return mulShift32(m, FLOAT_POW5_INV_SPLIT[q], j);
-#elif defined(RYU_OPTIMIZE_SIZE)
- // The inverse multipliers are defined as [2^x / 5^y] + 1; the upper 64 bits from the double lookup
- // table are the correct bits for [2^x / 5^y], so we have to add 1 here. Note that we rely on the
- // fact that the added 1 that's already stored in the table never overflows into the upper 64 bits.
- uint64_t pow5[2];
- double_computeInvPow5(q, pow5);
- return mulShift32(m, pow5[1] + 1, j);
-#else
- return mulShift32(m, DOUBLE_POW5_INV_SPLIT[q][1] + 1, j);
-#endif
-}
-
-static inline uint32_t mulPow5divPow2(const uint32_t m, const uint32_t i, const int32_t j) {
-#if defined(RYU_FLOAT_FULL_TABLE)
- return mulShift32(m, FLOAT_POW5_SPLIT[i], j);
-#elif defined(RYU_OPTIMIZE_SIZE)
- uint64_t pow5[2];
- double_computePow5(i, pow5);
- return mulShift32(m, pow5[1], j);
-#else
- return mulShift32(m, DOUBLE_POW5_SPLIT[i][1], j);
-#endif
-}
-
-#endif // RYU_F2S_INTRINSICS_H
deleted file mode 100644
@@ -1,305 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-
-// Runtime compiler options:
-// -DRYU_DEBUG Generate verbose debugging output to stdout.
-
-
-
-
-#ifdef RYU_DEBUG
-static char* s(uint128_t v) {
- int len = decimalLength(v);
- char* b = (char*) malloc((len + 1) * sizeof(char));
- for (int i = 0; i < len; i++) {
- const uint32_t c = (uint32_t) (v % 10);
- v /= 10;
- b[len - 1 - i] = (char) ('0' + c);
- }
- b[len] = 0;
- return b;
-}
-#endif
-
-#define ONE ((uint128_t) 1)
-
-struct floating_decimal_128 generic_binary_to_decimal(
- const uint128_t ieeeMantissa, const uint32_t ieeeExponent, const bool ieeeSign,
- const uint32_t mantissaBits, const uint32_t exponentBits, const bool explicitLeadingBit) {
-#ifdef RYU_DEBUG
- printf("IN=");
- for (int32_t bit = 127; bit >= 0; --bit) {
- printf("%u", (uint32_t) ((bits >> bit) & 1));
- }
- printf("\n");
-#endif
-
- const uint32_t bias = (1u << (exponentBits - 1)) - 1;
-
- if (ieeeExponent == 0 && ieeeMantissa == 0) {
- struct floating_decimal_128 fd;
- fd.mantissa = 0;
- fd.exponent = 0;
- fd.sign = ieeeSign;
- return fd;
- }
- if (ieeeExponent == ((1u << exponentBits) - 1u)) {
- struct floating_decimal_128 fd;
- fd.mantissa = explicitLeadingBit ? ieeeMantissa & ((ONE << (mantissaBits - 1)) - 1) : ieeeMantissa;
- fd.exponent = FD128_EXCEPTIONAL_EXPONENT;
- fd.sign = ieeeSign;
- return fd;
- }
-
- int32_t e2;
- uint128_t m2;
- // We subtract 2 in all cases so that the bounds computation has 2 additional bits.
- if (explicitLeadingBit) {
- // mantissaBits includes the explicit leading bit, so we need to correct for that here.
- if (ieeeExponent == 0) {
- e2 = 1 - bias - mantissaBits + 1 - 2;
- } else {
- e2 = ieeeExponent - bias - mantissaBits + 1 - 2;
- }
- m2 = ieeeMantissa;
- } else {
- if (ieeeExponent == 0) {
- e2 = 1 - bias - mantissaBits - 2;
- m2 = ieeeMantissa;
- } else {
- e2 = ieeeExponent - bias - mantissaBits - 2;
- m2 = (ONE << mantissaBits) | ieeeMantissa;
- }
- }
- const bool even = (m2 & 1) == 0;
- const bool acceptBounds = even;
-
-#ifdef RYU_DEBUG
- printf("-> %s %s * 2^%d\n", ieeeSign ? "-" : "+", s(m2), e2 + 2);
-#endif
-
- // Step 2: Determine the interval of legal decimal representations.
- const uint128_t mv = 4 * m2;
- // Implicit bool -> int conversion. True is 1, false is 0.
- const uint32_t mmShift =
- (ieeeMantissa != (explicitLeadingBit ? ONE << (mantissaBits - 1) : 0))
- || (ieeeExponent == 0);
-
- // Step 3: Convert to a decimal power base using 128-bit arithmetic.
- uint128_t vr, vp, vm;
- int32_t e10;
- bool vmIsTrailingZeros = false;
- bool vrIsTrailingZeros = false;
- if (e2 >= 0) {
- // I tried special-casing q == 0, but there was no effect on performance.
- // This expression is slightly faster than max(0, log10Pow2(e2) - 1).
- const uint32_t q = log10Pow2(e2) - (e2 > 3);
- e10 = q;
- const int32_t k = FLOAT_128_POW5_INV_BITCOUNT + pow5bits(q) - 1;
- const int32_t i = -e2 + q + k;
- uint64_t pow5[4];
- generic_computeInvPow5(q, pow5);
- vr = mulShift(4 * m2, pow5, i);
- vp = mulShift(4 * m2 + 2, pow5, i);
- vm = mulShift(4 * m2 - 1 - mmShift, pow5, i);
-#ifdef RYU_DEBUG
- printf("%s * 2^%d / 10^%d\n", s(mv), e2, q);
- printf("V+=%s\nV =%s\nV-=%s\n", s(vp), s(vr), s(vm));
-#endif
- // floor(log_5(2^128)) = 55, this is very conservative
- if (q <= 55) {
- // Only one of mp, mv, and mm can be a multiple of 5, if any.
- if (mv % 5 == 0) {
- vrIsTrailingZeros = multipleOfPowerOf5(mv, q - 1);
- } else if (acceptBounds) {
- // Same as min(e2 + (~mm & 1), pow5Factor(mm)) >= q
- // <=> e2 + (~mm & 1) >= q && pow5Factor(mm) >= q
- // <=> true && pow5Factor(mm) >= q, since e2 >= q.
- vmIsTrailingZeros = multipleOfPowerOf5(mv - 1 - mmShift, q);
- } else {
- // Same as min(e2 + 1, pow5Factor(mp)) >= q.
- vp -= multipleOfPowerOf5(mv + 2, q);
- }
- }
- } else {
- // This expression is slightly faster than max(0, log10Pow5(-e2) - 1).
- const uint32_t q = log10Pow5(-e2) - (-e2 > 1);
- e10 = q + e2;
- const int32_t i = -e2 - q;
- const int32_t k = pow5bits(i) - FLOAT_128_POW5_BITCOUNT;
- const int32_t j = q - k;
- uint64_t pow5[4];
- generic_computePow5(i, pow5);
- vr = mulShift(4 * m2, pow5, j);
- vp = mulShift(4 * m2 + 2, pow5, j);
- vm = mulShift(4 * m2 - 1 - mmShift, pow5, j);
-#ifdef RYU_DEBUG
- printf("%s * 5^%d / 10^%d\n", s(mv), -e2, q);
- printf("%d %d %d %d\n", q, i, k, j);
- printf("V+=%s\nV =%s\nV-=%s\n", s(vp), s(vr), s(vm));
-#endif
- if (q <= 1) {
- // {vr,vp,vm} is trailing zeros if {mv,mp,mm} has at least q trailing 0 bits.
- // mv = 4 m2, so it always has at least two trailing 0 bits.
- vrIsTrailingZeros = true;
- if (acceptBounds) {
- // mm = mv - 1 - mmShift, so it has 1 trailing 0 bit iff mmShift == 1.
- vmIsTrailingZeros = mmShift == 1;
- } else {
- // mp = mv + 2, so it always has at least one trailing 0 bit.
- --vp;
- }
- } else if (q < 127) { // TODO(ulfjack): Use a tighter bound here.
- // We need to compute min(ntz(mv), pow5Factor(mv) - e2) >= q-1
- // <=> ntz(mv) >= q-1 && pow5Factor(mv) - e2 >= q-1
- // <=> ntz(mv) >= q-1 (e2 is negative and -e2 >= q)
- // <=> (mv & ((1 << (q-1)) - 1)) == 0
- // We also need to make sure that the left shift does not overflow.
- vrIsTrailingZeros = multipleOfPowerOf2(mv, q - 1);
-#ifdef RYU_DEBUG
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- }
- }
-#ifdef RYU_DEBUG
- printf("e10=%d\n", e10);
- printf("V+=%s\nV =%s\nV-=%s\n", s(vp), s(vr), s(vm));
- printf("vm is trailing zeros=%s\n", vmIsTrailingZeros ? "true" : "false");
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
-
- // Step 4: Find the shortest decimal representation in the interval of legal representations.
- uint32_t removed = 0;
- uint8_t lastRemovedDigit = 0;
- uint128_t output;
-
- while (vp / 10 > vm / 10) {
- vmIsTrailingZeros &= vm % 10 == 0;
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) (vr % 10);
- vr /= 10;
- vp /= 10;
- vm /= 10;
- ++removed;
- }
-#ifdef RYU_DEBUG
- printf("V+=%s\nV =%s\nV-=%s\n", s(vp), s(vr), s(vm));
- printf("d-10=%s\n", vmIsTrailingZeros ? "true" : "false");
-#endif
- if (vmIsTrailingZeros) {
- while (vm % 10 == 0) {
- vrIsTrailingZeros &= lastRemovedDigit == 0;
- lastRemovedDigit = (uint8_t) (vr % 10);
- vr /= 10;
- vp /= 10;
- vm /= 10;
- ++removed;
- }
- }
-#ifdef RYU_DEBUG
- printf("%s %d\n", s(vr), lastRemovedDigit);
- printf("vr is trailing zeros=%s\n", vrIsTrailingZeros ? "true" : "false");
-#endif
- if (vrIsTrailingZeros && (lastRemovedDigit == 5) && (vr % 2 == 0)) {
- // Round even if the exact numbers is .....50..0.
- lastRemovedDigit = 4;
- }
- // We need to take vr+1 if vr is outside bounds or we need to round up.
- output = vr +
- ((vr == vm && (!acceptBounds || !vmIsTrailingZeros)) || (lastRemovedDigit >= 5));
- const int32_t exp = e10 + removed;
-
-#ifdef RYU_DEBUG
- printf("V+=%s\nV =%s\nV-=%s\n", s(vp), s(vr), s(vm));
- printf("O=%s\n", s(output));
- printf("EXP=%d\n", exp);
-#endif
-
- struct floating_decimal_128 fd;
- fd.mantissa = output;
- fd.exponent = exp;
- fd.sign = ieeeSign;
- return fd;
-}
-
-static inline int copy_special_str(char * const result, const struct floating_decimal_128 fd) {
- if (fd.mantissa) {
- memcpy(result, "NaN", 3);
- return 3;
- }
- if (fd.sign) {
- result[0] = '-';
- }
- memcpy(result + fd.sign, "Infinity", 8);
- return fd.sign + 8;
-}
-
-int generic_to_chars(const struct floating_decimal_128 v, char* const result) {
- if (v.exponent == FD128_EXCEPTIONAL_EXPONENT) {
- return copy_special_str(result, v);
- }
-
- // Step 5: Print the decimal representation.
- int index = 0;
- if (v.sign) {
- result[index++] = '-';
- }
-
- uint128_t output = v.mantissa;
- const uint32_t olength = decimalLength(output);
-
-#ifdef RYU_DEBUG
- printf("DIGITS=%s\n", s(v.mantissa));
- printf("OLEN=%u\n", olength);
- printf("EXP=%u\n", v.exponent + olength);
-#endif
-
- for (uint32_t i = 0; i < olength - 1; ++i) {
- const uint32_t c = (uint32_t) (output % 10);
- output /= 10;
- result[index + olength - i] = (char) ('0' + c);
- }
- result[index] = '0' + (uint32_t) (output % 10); // output should be < 10 by now.
-
- // Print decimal point if needed.
- if (olength > 1) {
- result[index + 1] = '.';
- index += olength + 1;
- } else {
- ++index;
- }
-
- // Print the exponent.
- result[index++] = 'e';
- int32_t exp = v.exponent + olength - 1;
- if (exp < 0) {
- result[index++] = '-';
- exp = -exp;
- } else
- result[index++] = '+';
-
- uint32_t elength = decimalLength(exp);
- if (elength == 1)
- ++elength;
- for (uint32_t i = 0; i < elength; ++i) {
- const uint32_t c = exp % 10;
- exp /= 10;
- result[index + elength - 1 - i] = (char) ('0' + c);
- }
- index += elength;
- return index;
-}
deleted file mode 100644
@@ -1,514 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-#ifndef RYU_GENERIC128_H
-#define RYU_GENERIC128_H
-
-#define FLOAT_128_POW5_INV_BITCOUNT 249
-#define FLOAT_128_POW5_BITCOUNT 249
-#define POW5_TABLE_SIZE 56
-
-// These tables are ~4.5 kByte total, compared to ~160 kByte for the full tables.
-
-// There's no way to define 128-bit constants in C, so we use little-endian
-// pairs of 64-bit constants.
-static const uint64_t GENERIC_POW5_TABLE[POW5_TABLE_SIZE][2] = {
- { 1u, 0u },
- { 5u, 0u },
- { 25u, 0u },
- { 125u, 0u },
- { 625u, 0u },
- { 3125u, 0u },
- { 15625u, 0u },
- { 78125u, 0u },
- { 390625u, 0u },
- { 1953125u, 0u },
- { 9765625u, 0u },
- { 48828125u, 0u },
- { 244140625u, 0u },
- { 1220703125u, 0u },
- { 6103515625u, 0u },
- { 30517578125u, 0u },
- { 152587890625u, 0u },
- { 762939453125u, 0u },
- { 3814697265625u, 0u },
- { 19073486328125u, 0u },
- { 95367431640625u, 0u },
- { 476837158203125u, 0u },
- { 2384185791015625u, 0u },
- { 11920928955078125u, 0u },
- { 59604644775390625u, 0u },
- { 298023223876953125u, 0u },
- { 1490116119384765625u, 0u },
- { 7450580596923828125u, 0u },
- { 359414837200037393u, 2u },
- { 1797074186000186965u, 10u },
- { 8985370930000934825u, 50u },
- { 8033366502585570893u, 252u },
- { 3273344365508751233u, 1262u },
- { 16366721827543756165u, 6310u },
- { 8046632842880574361u, 31554u },
- { 3339676066983768573u, 157772u },
- { 16698380334918842865u, 788860u },
- { 9704925379756007861u, 3944304u },
- { 11631138751360936073u, 19721522u },
- { 2815461535676025517u, 98607613u },
- { 14077307678380127585u, 493038065u },
- { 15046306170771983077u, 2465190328u },
- { 1444554559021708921u, 12325951644u },
- { 7222772795108544605u, 61629758220u },
- { 17667119901833171409u, 308148791101u },
- { 14548623214327650581u, 1540743955509u },
- { 17402883850509598057u, 7703719777548u },
- { 13227442957709783821u, 38518598887744u },
- { 10796982567420264257u, 192592994438723u },
- { 17091424689682218053u, 962964972193617u },
- { 11670147153572883801u, 4814824860968089u },
- { 3010503546735764157u, 24074124304840448u },
- { 15052517733678820785u, 120370621524202240u },
- { 1475612373555897461u, 601853107621011204u },
- { 7378061867779487305u, 3009265538105056020u },
- { 18443565265187884909u, 15046327690525280101u }
-};
-
-static const uint64_t GENERIC_POW5_SPLIT[89][4] = {
- { 0u, 0u, 0u, 72057594037927936u },
- { 0u, 5206161169240293376u, 4575641699882439235u, 73468396926392969u },
- { 3360510775605221349u, 6983200512169538081u, 4325643253124434363u, 74906821675075173u },
- { 11917660854915489451u, 9652941469841108803u, 946308467778435600u, 76373409087490117u },
- { 1994853395185689235u, 16102657350889591545u, 6847013871814915412u, 77868710555449746u },
- { 958415760277438274u, 15059347134713823592u, 7329070255463483331u, 79393288266368765u },
- { 2065144883315240188u, 7145278325844925976u, 14718454754511147343u, 80947715414629833u },
- { 8980391188862868935u, 13709057401304208685u, 8230434828742694591u, 82532576417087045u },
- { 432148644612782575u, 7960151582448466064u, 12056089168559840552u, 84148467132788711u },
- { 484109300864744403u, 15010663910730448582u, 16824949663447227068u, 85795995087002057u },
- { 14793711725276144220u, 16494403799991899904u, 10145107106505865967u, 87475779699624060u },
- { 15427548291869817042u, 12330588654550505203u, 13980791795114552342u, 89188452518064298u },
- { 9979404135116626552u, 13477446383271537499u, 14459862802511591337u, 90934657454687378u },
- { 12385121150303452775u, 9097130814231585614u, 6523855782339765207u, 92715051028904201u },
- { 1822931022538209743u, 16062974719797586441u, 3619180286173516788u, 94530302614003091u },
- { 12318611738248470829u, 13330752208259324507u, 10986694768744162601u, 96381094688813589u },
- { 13684493829640282333u, 7674802078297225834u, 15208116197624593182u, 98268123094297527u },
- { 5408877057066295332u, 6470124174091971006u, 15112713923117703147u, 100192097295163851u },
- { 11407083166564425062u, 18189998238742408185u, 4337638702446708282u, 102153740646605557u },
- { 4112405898036935485u, 924624216579956435u, 14251108172073737125u, 104153790666259019u },
- { 16996739107011444789u, 10015944118339042475u, 2395188869672266257u, 106192999311487969u },
- { 4588314690421337879u, 5339991768263654604u, 15441007590670620066u, 108272133262096356u },
- { 2286159977890359825u, 14329706763185060248u, 5980012964059367667u, 110391974208576409u },
- { 9654767503237031099u, 11293544302844823188u, 11739932712678287805u, 112553319146000238u },
- { 11362964448496095896u, 7990659682315657680u, 251480263940996374u, 114756980673665505u },
- { 1423410421096377129u, 14274395557581462179u, 16553482793602208894u, 117003787300607788u },
- { 2070444190619093137u, 11517140404712147401u, 11657844572835578076u, 119294583757094535u },
- { 7648316884775828921u, 15264332483297977688u, 247182277434709002u, 121630231312217685u },
- { 17410896758132241352u, 10923914482914417070u, 13976383996795783649u, 124011608097704390u },
- { 9542674537907272703u, 3079432708831728956u, 14235189590642919676u, 126439609438067572u },
- { 10364666969937261816u, 8464573184892924210u, 12758646866025101190u, 128915148187220428u },
- { 14720354822146013883u, 11480204489231511423u, 7449876034836187038u, 131439155071681461u },
- { 1692907053653558553u, 17835392458598425233u, 1754856712536736598u, 134012579040499057u },
- { 5620591334531458755u, 11361776175667106627u, 13350215315297937856u, 136636387622027174u },
- { 17455759733928092601u, 10362573084069962561u, 11246018728801810510u, 139311567287686283u },
- { 2465404073814044982u, 17694822665274381860u, 1509954037718722697u, 142039123822846312u },
- { 2152236053329638369u, 11202280800589637091u, 16388426812920420176u, 72410041352485523u },
- { 17319024055671609028u, 10944982848661280484u, 2457150158022562661u, 73827744744583080u },
- { 17511219308535248024u, 5122059497846768077u, 2089605804219668451u, 75273205100637900u },
- { 10082673333144031533u, 14429008783411894887u, 12842832230171903890u, 76746965869337783u },
- { 16196653406315961184u, 10260180891682904501u, 10537411930446752461u, 78249581139456266u },
- { 15084422041749743389u, 234835370106753111u, 16662517110286225617u, 79781615848172976u },
- { 8199644021067702606u, 3787318116274991885u, 7438130039325743106u, 81343645993472659u },
- { 12039493937039359765u, 9773822153580393709u, 5945428874398357806u, 82936258850702722u },
- { 984543865091303961u, 7975107621689454830u, 6556665988501773347u, 84560053193370726u },
- { 9633317878125234244u, 16099592426808915028u, 9706674539190598200u, 86215639518264828u },
- { 6860695058870476186u, 4471839111886709592u, 7828342285492709568u, 87903640274981819u },
- { 14583324717644598331u, 4496120889473451238u, 5290040788305728466u, 89624690099949049u },
- { 18093669366515003715u, 12879506572606942994u, 18005739787089675377u, 91379436055028227u },
- { 17997493966862379937u, 14646222655265145582u, 10265023312844161858u, 93168537870790806u },
- { 12283848109039722318u, 11290258077250314935u, 9878160025624946825u, 94992668194556404u },
- { 8087752761883078164u, 5262596608437575693u, 11093553063763274413u, 96852512843287537u },
- { 15027787746776840781u, 12250273651168257752u, 9290470558712181914u, 98748771061435726u },
- { 15003915578366724489u, 2937334162439764327u, 5404085603526796602u, 100682155783835929u },
- { 5225610465224746757u, 14932114897406142027u, 2774647558180708010u, 102653393903748137u },
- { 17112957703385190360u, 12069082008339002412u, 3901112447086388439u, 104663226546146909u },
- { 4062324464323300238u, 3992768146772240329u, 15757196565593695724u, 106712409346361594u },
- { 5525364615810306701u, 11855206026704935156u, 11344868740897365300u, 108801712734172003u },
- { 9274143661888462646u, 4478365862348432381u, 18010077872551661771u, 110931922223466333u },
- { 12604141221930060148u, 8930937759942591500u, 9382183116147201338u, 113103838707570263u },
- { 14513929377491886653u, 1410646149696279084u, 587092196850797612u, 115318278760358235u },
- { 2226851524999454362u, 7717102471110805679u, 7187441550995571734u, 117576074943260147u },
- { 5527526061344932763u, 2347100676188369132u, 16976241418824030445u, 119878076118278875u },
- { 6088479778147221611u, 17669593130014777580u, 10991124207197663546u, 122225147767136307u },
- { 11107734086759692041u, 3391795220306863431u, 17233960908859089158u, 124618172316667879u },
- { 7913172514655155198u, 17726879005381242552u, 641069866244011540u, 127058049470587962u },
- { 12596991768458713949u, 15714785522479904446u, 6035972567136116512u, 129545696547750811u },
- { 16901996933781815980u, 4275085211437148707u, 14091642539965169063u, 132082048827034281u },
- { 7524574627987869240u, 15661204384239316051u, 2444526454225712267u, 134668059898975949u },
- { 8199251625090479942u, 6803282222165044067u, 16064817666437851504u, 137304702024293857u },
- { 4453256673338111920u, 15269922543084434181u, 3139961729834750852u, 139992966499426682u },
- { 15841763546372731299u, 3013174075437671812u, 4383755396295695606u, 142733864029230733u },
- { 9771896230907310329u, 4900659362437687569u, 12386126719044266361u, 72764212553486967u },
- { 9420455527449565190u, 1859606122611023693u, 6555040298902684281u, 74188850200884818u },
- { 5146105983135678095u, 2287300449992174951u, 4325371679080264751u, 75641380576797959u },
- { 11019359372592553360u, 8422686425957443718u, 7175176077944048210u, 77122349788024458u },
- { 11005742969399620716u, 4132174559240043701u, 9372258443096612118u, 78632314633490790u },
- { 8887589641394725840u, 8029899502466543662u, 14582206497241572853u, 80171842813591127u },
- { 360247523705545899u, 12568341805293354211u, 14653258284762517866u, 81741513143625247u },
- { 12314272731984275834u, 4740745023227177044u, 6141631472368337539u, 83341915771415304u },
- { 441052047733984759u, 7940090120939869826u, 11750200619921094248u, 84973652399183278u },
- { 3436657868127012749u, 9187006432149937667u, 16389726097323041290u, 86637336509772529u },
- { 13490220260784534044u, 15339072891382896702u, 8846102360835316895u, 88333593597298497u },
- { 4125672032094859833u, 158347675704003277u, 10592598512749774447u, 90063061402315272u },
- { 12189928252974395775u, 2386931199439295891u, 7009030566469913276u, 91826390151586454u },
- { 9256479608339282969u, 2844900158963599229u, 11148388908923225596u, 93624242802550437u },
- { 11584393507658707408u, 2863659090805147914u, 9873421561981063551u, 95457295292572042u },
- { 13984297296943171390u, 1931468383973130608u, 12905719743235082319u, 97326236793074198u },
- { 5837045222254987499u, 10213498696735864176u, 14893951506257020749u, 99231769968645227u }
-};
-
-// Unfortunately, the results are sometimes off by one or two. We use an additional
-// lookup table to store those cases and adjust the result.
-static const uint64_t POW5_ERRORS[156] = {
- 0x0000000000000000u, 0x0000000000000000u, 0x0000000000000000u, 0x9555596400000000u,
- 0x65a6569525565555u, 0x4415551445449655u, 0x5105015504144541u, 0x65a69969a6965964u,
- 0x5054955969959656u, 0x5105154515554145u, 0x4055511051591555u, 0x5500514455550115u,
- 0x0041140014145515u, 0x1005440545511051u, 0x0014405450411004u, 0x0414440010500000u,
- 0x0044000440010040u, 0x5551155000004001u, 0x4554555454544114u, 0x5150045544005441u,
- 0x0001111400054501u, 0x6550955555554554u, 0x1504159645559559u, 0x4105055141454545u,
- 0x1411541410405454u, 0x0415555044545555u, 0x0014154115405550u, 0x1540055040411445u,
- 0x0000000500000000u, 0x5644000000000000u, 0x1155555591596555u, 0x0410440054569565u,
- 0x5145100010010005u, 0x0555041405500150u, 0x4141450455140450u, 0x0000000144000140u,
- 0x5114004001105410u, 0x4444100404005504u, 0x0414014410001015u, 0x5145055155555015u,
- 0x0141041444445540u, 0x0000100451541414u, 0x4105041104155550u, 0x0500501150451145u,
- 0x1001050000004114u, 0x5551504400141045u, 0x5110545410151454u, 0x0100001400004040u,
- 0x5040010111040000u, 0x0140000150541100u, 0x4400140400104110u, 0x5011014405545004u,
- 0x0000000044155440u, 0x0000000010000000u, 0x1100401444440001u, 0x0040401010055111u,
- 0x5155155551405454u, 0x0444440015514411u, 0x0054505054014101u, 0x0451015441115511u,
- 0x1541411401140551u, 0x4155104514445110u, 0x4141145450145515u, 0x5451445055155050u,
- 0x4400515554110054u, 0x5111145104501151u, 0x565a655455500501u, 0x5565555555525955u,
- 0x0550511500405695u, 0x4415504051054544u, 0x6555595965555554u, 0x0100915915555655u,
- 0x5540001510001001u, 0x5450051414000544u, 0x1405010555555551u, 0x5555515555644155u,
- 0x5555055595496555u, 0x5451045004415000u, 0x5450510144040144u, 0x5554155555556455u,
- 0x5051555495415555u, 0x5555554555555545u, 0x0000000010005455u, 0x4000005000040000u,
- 0x5565555555555954u, 0x5554559555555505u, 0x9645545495552555u, 0x4000400055955564u,
- 0x0040000000000001u, 0x4004100100000000u, 0x5540040440000411u, 0x4565555955545644u,
- 0x1140659549651556u, 0x0100000410010000u, 0x5555515400004001u, 0x5955545555155255u,
- 0x5151055545505556u, 0x5051454510554515u, 0x0501500050415554u, 0x5044154005441005u,
- 0x1455445450550455u, 0x0010144055144545u, 0x0000401100000004u, 0x1050145050000010u,
- 0x0415004554011540u, 0x1000510100151150u, 0x0100040400001144u, 0x0000000000000000u,
- 0x0550004400000100u, 0x0151145041451151u, 0x0000400400005450u, 0x0000100044010004u,
- 0x0100054100050040u, 0x0504400005410010u, 0x4011410445500105u, 0x0000404000144411u,
- 0x0101504404500000u, 0x0000005044400400u, 0x0000000014000100u, 0x0404440414000000u,
- 0x5554100410000140u, 0x4555455544505555u, 0x5454105055455455u, 0x0115454155454015u,
- 0x4404110000045100u, 0x4400001100101501u, 0x6596955956966a94u, 0x0040655955665965u,
- 0x5554144400100155u, 0xa549495401011041u, 0x5596555565955555u, 0x5569965959549555u,
- 0x969565a655555456u, 0x0000001000000000u, 0x0000000040000140u, 0x0000040100000000u,
- 0x1415454400000000u, 0x5410415411454114u, 0x0400040104000154u, 0x0504045000000411u,
- 0x0000001000000010u, 0x5554000000001040u, 0x5549155551556595u, 0x1455541055515555u,
- 0x0510555454554541u, 0x9555555555540455u, 0x6455456555556465u, 0x4524565555654514u,
- 0x5554655255559545u, 0x9555455441155556u, 0x0000000051515555u, 0x0010005040000550u,
- 0x5044044040000000u, 0x1045040440010500u, 0x0000400000040000u, 0x0000000000000000u
-};
-
-static const uint64_t GENERIC_POW5_INV_SPLIT[89][4] = {
- { 0u, 0u, 0u, 144115188075855872u },
- { 1573859546583440065u, 2691002611772552616u, 6763753280790178510u, 141347765182270746u },
- { 12960290449513840412u, 12345512957918226762u, 18057899791198622765u, 138633484706040742u },
- { 7615871757716765416u, 9507132263365501332u, 4879801712092008245u, 135971326161092377u },
- { 7869961150745287587u, 5804035291554591636u, 8883897266325833928u, 133360288657597085u },
- { 2942118023529634767u, 15128191429820565086u, 10638459445243230718u, 130799390525667397u },
- { 14188759758411913794u, 5362791266439207815u, 8068821289119264054u, 128287668946279217u },
- { 7183196927902545212u, 1952291723540117099u, 12075928209936341512u, 125824179589281448u },
- { 5672588001402349748u, 17892323620748423487u, 9874578446960390364u, 123407996258356868u },
- { 4442590541217566325u, 4558254706293456445u, 10343828952663182727u, 121038210542800766u },
- { 3005560928406962566u, 2082271027139057888u, 13961184524927245081u, 118713931475986426u },
- { 13299058168408384786u, 17834349496131278595u, 9029906103900731664u, 116434285200389047u },
- { 5414878118283973035u, 13079825470227392078u, 17897304791683760280u, 114198414639042157u },
- { 14609755883382484834u, 14991702445765844156u, 3269802549772755411u, 112005479173303009u },
- { 15967774957605076027u, 2511532636717499923u, 16221038267832563171u, 109854654326805788u },
- { 9269330061621627145u, 3332501053426257392u, 16223281189403734630u, 107745131455483836u },
- { 16739559299223642282u, 1873986623300664530u, 6546709159471442872u, 105676117443544318u },
- { 17116435360051202055u, 1359075105581853924u, 2038341371621886470u, 103646834405281051u },
- { 17144715798009627550u, 3201623802661132408u, 9757551605154622431u, 101656519392613377u },
- { 17580479792687825857u, 6546633380567327312u, 15099972427870912398u, 99704424108241124u },
- { 9726477118325522902u, 14578369026754005435u, 11728055595254428803u, 97789814624307808u },
- { 134593949518343635u, 5715151379816901985u, 1660163707976377376u, 95911971106466306u },
- { 5515914027713859358u, 7124354893273815720u, 5548463282858794077u, 94070187543243255u },
- { 6188403395862945512u, 5681264392632320838u, 15417410852121406654u, 92263771480600430u },
- { 15908890877468271457u, 10398888261125597540u, 4817794962769172309u, 90492043761593298u },
- { 1413077535082201005u, 12675058125384151580u, 7731426132303759597u, 88754338271028867u },
- { 1486733163972670293u, 11369385300195092554u, 11610016711694864110u, 87050001685026843u },
- { 8788596583757589684u, 3978580923851924802u, 9255162428306775812u, 85378393225389919u },
- { 7203518319660962120u, 15044736224407683725u, 2488132019818199792u, 83738884418690858u },
- { 4004175967662388707u, 18236988667757575407u, 15613100370957482671u, 82130858859985791u },
- { 18371903370586036463u, 53497579022921640u, 16465963977267203307u, 80553711981064899u },
- { 10170778323887491315u, 1999668801648976001u, 10209763593579456445u, 79006850823153334u },
- { 17108131712433974546u, 16825784443029944237u, 2078700786753338945u, 77489693813976938u },
- { 17221789422665858532u, 12145427517550446164u, 5391414622238668005u, 76001670549108934u },
- { 4859588996898795878u, 1715798948121313204u, 3950858167455137171u, 74542221577515387u },
- { 13513469241795711526u, 631367850494860526u, 10517278915021816160u, 73110798191218799u },
- { 11757513142672073111u, 2581974932255022228u, 17498959383193606459u, 143413724438001539u },
- { 14524355192525042817u, 5640643347559376447u, 1309659274756813016u, 140659771648132296u },
- { 2765095348461978538u, 11021111021896007722u, 3224303603779962366u, 137958702611185230u },
- { 12373410389187981037u, 13679193545685856195u, 11644609038462631561u, 135309501808182158u },
- { 12813176257562780151u, 3754199046160268020u, 9954691079802960722u, 132711173221007413u },
- { 17557452279667723458u, 3237799193992485824u, 17893947919029030695u, 130162739957935629u },
- { 14634200999559435155u, 4123869946105211004u, 6955301747350769239u, 127663243886350468u },
- { 2185352760627740240u, 2864813346878886844u, 13049218671329690184u, 125211745272516185u },
- { 6143438674322183002u, 10464733336980678750u, 6982925169933978309u, 122807322428266620u },
- { 1099509117817174576u, 10202656147550524081u, 754997032816608484u, 120449071364478757u },
- { 2410631293559367023u, 17407273750261453804u, 15307291918933463037u, 118136105451200587u },
- { 12224968375134586697u, 1664436604907828062u, 11506086230137787358u, 115867555084305488u },
- { 3495926216898000888u, 18392536965197424288u, 10992889188570643156u, 113642567358547782u },
- { 8744506286256259680u, 3966568369496879937u, 18342264969761820037u, 111460305746896569u },
- { 7689600520560455039u, 5254331190877624630u, 9628558080573245556u, 109319949786027263u },
- { 11862637625618819436u, 3456120362318976488u, 14690471063106001082u, 107220694767852583u },
- { 5697330450030126444u, 12424082405392918899u, 358204170751754904u, 105161751436977040u },
- { 11257457505097373622u, 15373192700214208870u, 671619062372033814u, 103142345693961148u },
- { 16850355018477166700u, 1913910419361963966u, 4550257919755970531u, 101161718304283822u },
- { 9670835567561997011u, 10584031339132130638u, 3060560222974851757u, 99219124612893520u },
- { 7698686577353054710u, 11689292838639130817u, 11806331021588878241u, 97313834264240819u },
- { 12233569599615692137u, 3347791226108469959u, 10333904326094451110u, 95445130927687169u },
- { 13049400362825383933u, 17142621313007799680u, 3790542585289224168u, 93612312028186576u },
- { 12430457242474442072u, 5625077542189557960u, 14765055286236672238u, 91814688482138969u },
- { 4759444137752473128u, 2230562561567025078u, 4954443037339580076u, 90051584438315940u },
- { 7246913525170274758u, 8910297835195760709u, 4015904029508858381u, 88322337023761438u },
- { 12854430245836432067u, 8135139748065431455u, 11548083631386317976u, 86626296094571907u },
- { 4848827254502687803u, 4789491250196085625u, 3988192420450664125u, 84962823991462151u },
- { 7435538409611286684u, 904061756819742353u, 14598026519493048444u, 83331295300025028u },
- { 11042616160352530997u, 8948390828345326218u, 10052651191118271927u, 81731096615594853u },
- { 11059348291563778943u, 11696515766184685544u, 3783210511290897367u, 80161626312626082u },
- { 7020010856491885826u, 5025093219346041680u, 8960210401638911765u, 78622294318500592u },
- { 17732844474490699984u, 7820866704994446502u, 6088373186798844243u, 77112521891678506u },
- { 688278527545590501u, 3045610706602776618u, 8684243536999567610u, 75631741404109150u },
- { 2734573255120657297u, 3903146411440697663u, 9470794821691856713u, 74179396127820347u },
- { 15996457521023071259u, 4776627823451271680u, 12394856457265744744u, 72754940025605801u },
- { 13492065758834518331u, 7390517611012222399u, 1630485387832860230u, 142715675091463768u },
- { 13665021627282055864u, 9897834675523659302u, 17907668136755296849u, 139975126841173266u },
- { 9603773719399446181u, 10771916301484339398u, 10672699855989487527u, 137287204938390542u },
- { 3630218541553511265u, 8139010004241080614u, 2876479648932814543u, 134650898807055963u },
- { 8318835909686377084u, 9525369258927993371u, 2796120270400437057u, 132065217277054270u },
- { 11190003059043290163u, 12424345635599592110u, 12539346395388933763u, 129529188211565064u },
- { 8701968833973242276u, 820569587086330727u, 2315591597351480110u, 127041858141569228u },
- { 5115113890115690487u, 16906305245394587826u, 9899749468931071388u, 124602291907373862u },
- { 15543535488939245974u, 10945189844466391399u, 3553863472349432246u, 122209572307020975u },
- { 7709257252608325038u, 1191832167690640880u, 15077137020234258537u, 119862799751447719u },
- { 7541333244210021737u, 9790054727902174575u, 5160944773155322014u, 117561091926268545u },
- { 12297384708782857832u, 1281328873123467374u, 4827925254630475769u, 115303583460052092u },
- { 13243237906232367265u, 15873887428139547641u, 3607993172301799599u, 113089425598968120u },
- { 11384616453739611114u, 15184114243769211033u, 13148448124803481057u, 110917785887682141u },
- { 17727970963596660683u, 1196965221832671990u, 14537830463956404138u, 108787847856377790u },
- { 17241367586707330931u, 8880584684128262874u, 11173506540726547818u, 106698810713789254u },
- { 7184427196661305643u, 14332510582433188173u, 14230167953789677901u, 104649889046128358u }
-};
-
-static const uint64_t POW5_INV_ERRORS[154] = {
- 0x1144155514145504u, 0x0000541555401141u, 0x0000000000000000u, 0x0154454000000000u,
- 0x4114105515544440u, 0x0001001111500415u, 0x4041411410011000u, 0x5550114515155014u,
- 0x1404100041554551u, 0x0515000450404410u, 0x5054544401140004u, 0x5155501005555105u,
- 0x1144141000105515u, 0x0541500000500000u, 0x1104105540444140u, 0x4000015055514110u,
- 0x0054010450004005u, 0x4155515404100005u, 0x5155145045155555u, 0x1511555515440558u,
- 0x5558544555515555u, 0x0000000000000010u, 0x5004000000000050u, 0x1415510100000010u,
- 0x4545555444514500u, 0x5155151555555551u, 0x1441540144044554u, 0x5150104045544400u,
- 0x5450545401444040u, 0x5554455045501400u, 0x4655155555555145u, 0x1000010055455055u,
- 0x1000004000055004u, 0x4455405104000005u, 0x4500114504150545u, 0x0000000014000000u,
- 0x5450000000000000u, 0x5514551511445555u, 0x4111501040555451u, 0x4515445500054444u,
- 0x5101500104100441u, 0x1545115155545055u, 0x0000000000000000u, 0x1554000000100000u,
- 0x5555545595551555u, 0x5555051851455955u, 0x5555555555555559u, 0x0000400011001555u,
- 0x0000004400040000u, 0x5455511555554554u, 0x5614555544115445u, 0x6455156145555155u,
- 0x5455855455415455u, 0x5515555144555545u, 0x0114400000145155u, 0x0000051000450511u,
- 0x4455154554445100u, 0x4554150141544455u, 0x65955555559a5965u, 0x5555555854559559u,
- 0x9569654559616595u, 0x1040044040005565u, 0x1010010500011044u, 0x1554015545154540u,
- 0x4440555401545441u, 0x1014441450550105u, 0x4545400410504145u, 0x5015111541040151u,
- 0x5145051154000410u, 0x1040001044545044u, 0x4001400000151410u, 0x0540000044040000u,
- 0x0510555454411544u, 0x0400054054141550u, 0x1001041145001100u, 0x0000000140000000u,
- 0x0000000014100000u, 0x1544005454000140u, 0x4050055505445145u, 0x0011511104504155u,
- 0x5505544415045055u, 0x1155154445515554u, 0x0000000000004555u, 0x0000000000000000u,
- 0x5101010510400004u, 0x1514045044440400u, 0x5515519555515555u, 0x4554545441555545u,
- 0x1551055955551515u, 0x0150000011505515u, 0x0044005040400000u, 0x0004001004010050u,
- 0x0000051004450414u, 0x0114001101001144u, 0x0401000001000001u, 0x4500010001000401u,
- 0x0004100000005000u, 0x0105000441101100u, 0x0455455550454540u, 0x5404050144105505u,
- 0x4101510540555455u, 0x1055541411451555u, 0x5451445110115505u, 0x1154110010101545u,
- 0x1145140450054055u, 0x5555565415551554u, 0x1550559555555555u, 0x5555541545045141u,
- 0x4555455450500100u, 0x5510454545554555u, 0x1510140115045455u, 0x1001050040111510u,
- 0x5555454555555504u, 0x9954155545515554u, 0x6596656555555555u, 0x0140410051555559u,
- 0x0011104010001544u, 0x965669659a680501u, 0x5655a55955556955u, 0x4015111014404514u,
- 0x1414155554505145u, 0x0540040011051404u, 0x1010000000015005u, 0x0010054050004410u,
- 0x5041104014000100u, 0x4440010500100001u, 0x1155510504545554u, 0x0450151545115541u,
- 0x4000100400110440u, 0x1004440010514440u, 0x0000115050450000u, 0x0545404455541500u,
- 0x1051051555505101u, 0x5505144554544144u, 0x4550545555515550u, 0x0015400450045445u,
- 0x4514155400554415u, 0x4555055051050151u, 0x1511441450001014u, 0x4544554510404414u,
- 0x4115115545545450u, 0x5500541555551555u, 0x5550010544155015u, 0x0144414045545500u,
- 0x4154050001050150u, 0x5550511111000145u, 0x1114504055000151u, 0x5104041101451040u,
- 0x0010501401051441u, 0x0010501450504401u, 0x4554585440044444u, 0x5155555951450455u,
- 0x0040000400105555u, 0x0000000000000001u,
-};
-
-// Returns e == 0 ? 1 : ceil(log_2(5^e)); requires 0 <= e <= 32768.
-static inline uint32_t pow5bits(const int32_t e) {
- assert(e >= 0);
- assert(e <= 1 << 15);
- return (uint32_t) (((e * 163391164108059ull) >> 46) + 1);
-}
-
-static inline void mul_128_256_shift(
- const uint64_t* const a, const uint64_t* const b, const uint32_t shift, const uint32_t corr, uint64_t* const result) {
- assert(shift > 0);
- assert(shift < 256);
- const uint128_t b00 = ((uint128_t) a[0]) * b[0]; // 0
- const uint128_t b01 = ((uint128_t) a[0]) * b[1]; // 64
- const uint128_t b02 = ((uint128_t) a[0]) * b[2]; // 128
- const uint128_t b03 = ((uint128_t) a[0]) * b[3]; // 196
- const uint128_t b10 = ((uint128_t) a[1]) * b[0]; // 64
- const uint128_t b11 = ((uint128_t) a[1]) * b[1]; // 128
- const uint128_t b12 = ((uint128_t) a[1]) * b[2]; // 196
- const uint128_t b13 = ((uint128_t) a[1]) * b[3]; // 256
-
- const uint128_t s0 = b00; // 0 x
- const uint128_t s1 = b01 + b10; // 64 x
- const uint128_t c1 = s1 < b01; // 196 x
- const uint128_t s2 = b02 + b11; // 128 x
- const uint128_t c2 = s2 < b02; // 256 x
- const uint128_t s3 = b03 + b12; // 196 x
- const uint128_t c3 = s3 < b03; // 324 x
-
- const uint128_t p0 = s0 + (s1 << 64); // 0
- const uint128_t d0 = p0 < b00; // 128
- const uint128_t q1 = s2 + (s1 >> 64) + (s3 << 64); // 128
- const uint128_t d1 = q1 < s2; // 256
- const uint128_t p1 = q1 + (c1 << 64) + d0; // 128
- const uint128_t d2 = p1 < q1; // 256
- const uint128_t p2 = b13 + (s3 >> 64) + c2 + (c3 << 64) + d1 + d2; // 256
-
- if (shift < 128) {
- const uint128_t r0 = corr + ((p0 >> shift) | (p1 << (128 - shift)));
- const uint128_t r1 = ((p1 >> shift) | (p2 << (128 - shift))) + (r0 < corr);
- result[0] = (uint64_t) r0;
- result[1] = (uint64_t) (r0 >> 64);
- result[2] = (uint64_t) r1;
- result[3] = (uint64_t) (r1 >> 64);
- } else if (shift == 128) {
- const uint128_t r0 = corr + p1;
- const uint128_t r1 = p2 + (r0 < corr);
- result[0] = (uint64_t) r0;
- result[1] = (uint64_t) (r0 >> 64);
- result[2] = (uint64_t) r1;
- result[3] = (uint64_t) (r1 >> 64);
- } else {
- const uint128_t r0 = corr + ((p1 >> (shift - 128)) | (p2 << (256 - shift)));
- const uint128_t r1 = (p2 >> (shift - 128)) + (r0 < corr);
- result[0] = (uint64_t) r0;
- result[1] = (uint64_t) (r0 >> 64);
- result[2] = (uint64_t) r1;
- result[3] = (uint64_t) (r1 >> 64);
- }
-}
-
-// Computes 5^i in the form required by Ryu, and stores it in the given pointer.
-static inline void generic_computePow5(const uint32_t i, uint64_t* const result) {
- const uint32_t base = i / POW5_TABLE_SIZE;
- const uint32_t base2 = base * POW5_TABLE_SIZE;
- const uint64_t* const mul = GENERIC_POW5_SPLIT[base];
- if (i == base2) {
- result[0] = mul[0];
- result[1] = mul[1];
- result[2] = mul[2];
- result[3] = mul[3];
- } else {
- const uint32_t offset = i - base2;
- const uint64_t* const m = GENERIC_POW5_TABLE[offset];
- const uint32_t delta = pow5bits(i) - pow5bits(base2);
- const uint32_t corr = (uint32_t) ((POW5_ERRORS[i / 32] >> (2 * (i % 32))) & 3);
- mul_128_256_shift(m, mul, delta, corr, result);
- }
-}
-
-// Computes 5^-i in the form required by Ryu, and stores it in the given pointer.
-static inline void generic_computeInvPow5(const uint32_t i, uint64_t* const result) {
- const uint32_t base = (i + POW5_TABLE_SIZE - 1) / POW5_TABLE_SIZE;
- const uint32_t base2 = base * POW5_TABLE_SIZE;
- const uint64_t* const mul = GENERIC_POW5_INV_SPLIT[base]; // 1/5^base2
- if (i == base2) {
- result[0] = mul[0] + 1;
- result[1] = mul[1];
- result[2] = mul[2];
- result[3] = mul[3];
- } else {
- const uint32_t offset = base2 - i;
- const uint64_t* const m = GENERIC_POW5_TABLE[offset]; // 5^offset
- const uint32_t delta = pow5bits(base2) - pow5bits(i);
- const uint32_t corr = (uint32_t) ((POW5_INV_ERRORS[i / 32] >> (2 * (i % 32))) & 3) + 1;
- mul_128_256_shift(m, mul, delta, corr, result);
- }
-}
-
-static inline uint32_t pow5Factor(uint128_t value) {
- for (uint32_t count = 0; value > 0; ++count) {
- if (value % 5 != 0) {
- return count;
- }
- value /= 5;
- }
- return 0;
-}
-
-// Returns true if value is divisible by 5^p.
-static inline bool multipleOfPowerOf5(const uint128_t value, const uint32_t p) {
- // I tried a case distinction on p, but there was no performance difference.
- return pow5Factor(value) >= p;
-}
-
-// Returns true if value is divisible by 2^p.
-static inline bool multipleOfPowerOf2(const uint128_t value, const uint32_t p) {
- return (value & ((((uint128_t) 1) << p) - 1)) == 0;
-}
-
-static inline uint128_t mulShift(const uint128_t m, const uint64_t* const mul, const int32_t j) {
- assert(j > 128);
- uint64_t a[2];
- a[0] = (uint64_t) m;
- a[1] = (uint64_t) (m >> 64);
- uint64_t result[4];
- mul_128_256_shift(a, mul, j, 0, result);
- return (((uint128_t) result[1]) << 64) | result[0];
-}
-
-static inline uint32_t decimalLength(const uint128_t v) {
- static uint128_t LARGEST_POW10 = (((uint128_t) 5421010862427522170ull) << 64) | 687399551400673280ull;
- uint128_t p10 = LARGEST_POW10;
- for (uint32_t i = 39; i > 0; i--) {
- if (v >= p10) {
- return i;
- }
- p10 /= 10;
- }
- return 1;
-}
-
-// Returns floor(log_10(2^e)).
-static inline uint32_t log10Pow2(const int32_t e) {
- // The first value this approximation fails for is 2^1651 which is just greater than 10^297.
- assert(e >= 0);
- assert(e <= 1 << 15);
- return (uint32_t) ((((uint64_t) e) * 169464822037455ull) >> 49);
-}
-
-// Returns floor(log_10(5^e)).
-static inline uint32_t log10Pow5(const int32_t e) {
- // The first value this approximation fails for is 5^2621 which is just greater than 10^1832.
- assert(e >= 0);
- assert(e <= 1 << 15);
- return (uint32_t) ((((uint64_t) e) * 196742565691928ull) >> 48);
-}
-
-#endif // RYU_GENERIC128_H
deleted file mode 100644
@@ -1,55 +0,0 @@
-// Copyright 2018 Ulf Adams
-//
-// The contents of this file may be used under the terms of the Apache License,
-// Version 2.0.
-//
-// (See accompanying file LICENSE-Apache or copy at
-// http://www.apache.org/licenses/LICENSE-2.0)
-//
-// Alternatively, the contents of this file may be used under the terms of
-// the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE-Boost or copy at
-// https://www.boost.org/LICENSE_1_0.txt)
-//
-// Unless required by applicable law or agreed to in writing, this software
-// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied.
-#ifndef RYU_GENERIC_128_H
-#define RYU_GENERIC_128_H
-
-
-// NOTE: These symbols are declared extern "C" upstream, but we don't want that
-// because it'd override the internal linkage of the anonymous namespace into
-// which this header is included.
-
-// This is a generic 128-bit implementation of float to shortest conversion
-// using the Ryu algorithm. It can handle any IEEE-compatible floating-point
-// type up to 128 bits. In order to use this correctly, you must use the
-// appropriate *_to_fd128 function for the underlying type - DO NOT CAST your
-// input to another floating-point type, doing so will result in incorrect
-// output!
-//
-// For any floating-point type that is not natively defined by the compiler,
-// you can use generic_binary_to_decimal to work directly on the underlying bit
-// representation.
-
-#define FD128_EXCEPTIONAL_EXPONENT 0x7FFFFFFF
-
-// A floating decimal representing (-1)^s * m * 10^e.
-struct floating_decimal_128 {
- uint128_t mantissa;
- int32_t exponent;
- bool sign;
-};
-
-// Converts the given decimal floating point number to a string, writing to result, and returning
-// the number characters written. Does not terminate the buffer with a 0. In the worst case, this
-// function can write up to 53 characters.
-//
-// Maximal char buffer requirement:
-// sign + mantissa digits + decimal dot + 'E' + exponent sign + exponent digits
-// = 1 + 39 + 1 + 1 + 1 + 10 = 53
-int generic_to_chars(const struct floating_decimal_128 v, char* const result);
-
-
-#endif // RYU_GENERIC_128_H
new file mode 100644
@@ -0,0 +1,347 @@
+// Copyright 2018 Ulf Adams
+//
+// The contents of this file may be used under the terms of the Apache License,
+// Version 2.0.
+//
+// (See accompanying file LICENSE-Apache or copy at
+// http://www.apache.org/licenses/LICENSE-2.0)
+//
+// Alternatively, the contents of this file may be used under the terms of
+// the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE-Boost or copy at
+// https://www.boost.org/LICENSE_1_0.txt)
+//
+// Unless required by applicable law or agreed to in writing, this software
+// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.
+
+int
+get_length(const uint16_t v)
+{
+ return decimalLength9(v);
+}
+
+int
+get_length(const uint32_t v)
+{
+ return decimalLength9(v);
+}
+
+int
+get_length(const uint64_t v)
+{
+ if (v >= 10000000000000000L) { return 17; }
+ if (v >= 1000000000000000L) { return 16; }
+ if (v >= 100000000000000L) { return 15; }
+ if (v >= 10000000000000L) { return 14; }
+ if (v >= 1000000000000L) { return 13; }
+ if (v >= 100000000000L) { return 12; }
+ if (v >= 10000000000L) { return 11; }
+ if (v >= 1000000000L) { return 10; }
+ if (v >= 100000000L) { return 9; }
+ if (v >= 10000000L) { return 8; }
+ if (v >= 1000000L) { return 7; }
+ if (v >= 100000L) { return 6; }
+ if (v >= 10000L) { return 5; }
+ if (v >= 1000L) { return 4; }
+ if (v >= 100L) { return 3; }
+ if (v >= 10L) { return 2; }
+ return 1;
+}
+
+int
+get_length(const uint128_t v)
+{
+ uint128_t const LARGEST_POW10 = (((uint128_t) 5421010862427522170ull) << 64) | 687399551400673280ull;
+ uint128_t p10 = LARGEST_POW10;
+ for (uint32_t i = 39; i > 0; i--) {
+ if (v >= p10) {
+ return i;
+ }
+ p10 /= 10;
+ }
+ return 1;
+}
+
+int
+to_chars(const teju_jagua::s_decimal<uint16_t> v, char* const result) {
+
+ // Step 5: Print the decimal representation.
+ int index = 0;
+ if (v.is_negative) {
+ result[index++] = '-';
+ }
+
+ uint32_t output = v.absolute.mantissa;
+ const uint32_t olength = get_length(output);
+
+ // Print the decimal digits.
+ // The following code is equivalent to:
+ // for (uint32_t i = 0; i < olength - 1; ++i) {
+ // const uint32_t c = output % 10; output /= 10;
+ // result[index + olength - i] = (char) ('0' + c);
+ // }
+ // result[index] = '0' + output % 10;
+ uint32_t i = 0;
+ while (output >= 10000) {
+ const uint32_t c = output % 10000;
+ output /= 10000;
+ const uint32_t c0 = (c % 100) << 1;
+ const uint32_t c1 = (c / 100) << 1;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
+ memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
+ i += 4;
+ }
+ if (output >= 100) {
+ const uint32_t c = (output % 100) << 1;
+ output /= 100;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c, 2);
+ i += 2;
+ }
+ if (output >= 10) {
+ const uint32_t c = output << 1;
+ // We can't use memcpy here: the decimal dot goes between these two digits.
+ result[index + olength - i] = DIGIT_TABLE[c + 1];
+ result[index] = DIGIT_TABLE[c];
+ } else {
+ result[index] = (char) ('0' + output);
+ }
+
+ // Print decimal point if needed.
+ if (olength > 1) {
+ result[index + 1] = '.';
+ index += olength + 1;
+ } else {
+ ++index;
+ }
+
+ // Print the exponent.
+ result[index++] = 'e';
+ int32_t exp = v.absolute.exponent + (int32_t) olength - 1;
+ if (exp < 0) {
+ result[index++] = '-';
+ exp = -exp;
+ } else {
+ result[index++] = '+';
+ }
+
+ memcpy(result + index, DIGIT_TABLE + 2 * exp, 2);
+ index += 2;
+
+ return index;
+}
+
+int
+to_chars(const teju_jagua::s_decimal<uint32_t> v, char* const result) {
+
+ // Step 5: Print the decimal representation.
+ int index = 0;
+ if (v.is_negative) {
+ result[index++] = '-';
+ }
+
+ uint32_t output = v.absolute.mantissa;
+ const uint32_t olength = get_length(output);
+
+ // Print the decimal digits.
+ // The following code is equivalent to:
+ // for (uint32_t i = 0; i < olength - 1; ++i) {
+ // const uint32_t c = output % 10; output /= 10;
+ // result[index + olength - i] = (char) ('0' + c);
+ // }
+ // result[index] = '0' + output % 10;
+ uint32_t i = 0;
+ while (output >= 10000) {
+ const uint32_t c = output % 10000;
+ output /= 10000;
+ const uint32_t c0 = (c % 100) << 1;
+ const uint32_t c1 = (c / 100) << 1;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
+ memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
+ i += 4;
+ }
+ if (output >= 100) {
+ const uint32_t c = (output % 100) << 1;
+ output /= 100;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c, 2);
+ i += 2;
+ }
+ if (output >= 10) {
+ const uint32_t c = output << 1;
+ // We can't use memcpy here: the decimal dot goes between these two digits.
+ result[index + olength - i] = DIGIT_TABLE[c + 1];
+ result[index] = DIGIT_TABLE[c];
+ } else {
+ result[index] = (char) ('0' + output);
+ }
+
+ // Print decimal point if needed.
+ if (olength > 1) {
+ result[index + 1] = '.';
+ index += olength + 1;
+ } else {
+ ++index;
+ }
+
+ // Print the exponent.
+ result[index++] = 'e';
+ int32_t exp = v.absolute.exponent + (int32_t) olength - 1;
+ if (exp < 0) {
+ result[index++] = '-';
+ exp = -exp;
+ } else {
+ result[index++] = '+';
+ }
+
+ memcpy(result + index, DIGIT_TABLE + 2 * exp, 2);
+ index += 2;
+
+ return index;
+}
+
+int
+to_chars(const teju_jagua::s_decimal<uint64_t> v, char* const result) {
+
+ // Step 5: Print the decimal representation.
+ int index = 0;
+ if (v.is_negative) {
+ result[index++] = '-';
+ }
+
+ uint64_t output = v.absolute.mantissa;
+ const uint32_t olength = get_length(output);
+
+ // Print the decimal digits.
+ // The following code is equivalent to:
+ // for (uint32_t i = 0; i < olength - 1; ++i) {
+ // const uint32_t c = output % 10; output /= 10;
+ // result[index + olength - i] = (char) ('0' + c);
+ // }
+ // result[index] = '0' + output % 10;
+
+ uint32_t i = 0;
+ // We prefer 32-bit operations, even on 64-bit platforms.
+ // We have at most 17 digits, and uint32_t can store 9 digits.
+ // If output doesn't fit into uint32_t, we cut off 8 digits,
+ // so the rest will fit into uint32_t.
+ if ((output >> 32) != 0) {
+ // Expensive 64-bit division.
+ const uint64_t q = output / 100000000;
+ uint32_t output2 = ((uint32_t) output) - 100000000 * ((uint32_t) q);
+ output = q;
+
+ const uint32_t c = output2 % 10000;
+ output2 /= 10000;
+ const uint32_t d = output2 % 10000;
+ const uint32_t c0 = (c % 100) << 1;
+ const uint32_t c1 = (c / 100) << 1;
+ const uint32_t d0 = (d % 100) << 1;
+ const uint32_t d1 = (d / 100) << 1;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
+ memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
+ memcpy(result + index + olength - i - 5, DIGIT_TABLE + d0, 2);
+ memcpy(result + index + olength - i - 7, DIGIT_TABLE + d1, 2);
+ i += 8;
+ }
+ uint32_t output2 = (uint32_t) output;
+ while (output2 >= 10000) {
+ const uint32_t c = output2 % 10000;
+ output2 /= 10000;
+ const uint32_t c0 = (c % 100) << 1;
+ const uint32_t c1 = (c / 100) << 1;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c0, 2);
+ memcpy(result + index + olength - i - 3, DIGIT_TABLE + c1, 2);
+ i += 4;
+ }
+ if (output2 >= 100) {
+ const uint32_t c = (output2 % 100) << 1;
+ output2 /= 100;
+ memcpy(result + index + olength - i - 1, DIGIT_TABLE + c, 2);
+ i += 2;
+ }
+ if (output2 >= 10) {
+ const uint32_t c = output2 << 1;
+ // We can't use memcpy here: the decimal dot goes between these two digits.
+ result[index + olength - i] = DIGIT_TABLE[c + 1];
+ result[index] = DIGIT_TABLE[c];
+ } else {
+ result[index] = (char) ('0' + output2);
+ }
+
+ // Print decimal point if needed.
+ if (olength > 1) {
+ result[index + 1] = '.';
+ index += olength + 1;
+ } else {
+ ++index;
+ }
+
+ // Print the exponent.
+ result[index++] = 'e';
+ int32_t exp = v.absolute.exponent + (int32_t) olength - 1;
+ if (exp < 0) {
+ result[index++] = '-';
+ exp = -exp;
+ } else
+ result[index++] = '+';
+
+ if (exp >= 100) {
+ const int32_t c = exp % 10;
+ memcpy(result + index, DIGIT_TABLE + 2 * (exp / 10), 2);
+ result[index + 2] = (char) ('0' + c);
+ index += 3;
+ } else {
+ memcpy(result + index, DIGIT_TABLE + 2 * exp, 2);
+ index += 2;
+ }
+
+ return index;
+}
+
+int
+to_chars(const teju_jagua::s_decimal<uint128_t> v, char* const result) {
+
+ // Step 5: Print the decimal representation.
+ int index = 0;
+ if (v.is_negative) {
+ result[index++] = '-';
+ }
+
+ uint128_t output = v.absolute.mantissa;
+ const uint32_t olength = get_length(output);
+
+ for (uint32_t i = 0; i < olength - 1; ++i) {
+ const uint32_t c = (uint32_t) (output % 10);
+ output /= 10;
+ result[index + olength - i] = (char) ('0' + c);
+ }
+ result[index] = '0' + (uint32_t) (output % 10); // output should be < 10 by now.
+
+ // Print decimal point if needed.
+ if (olength > 1) {
+ result[index + 1] = '.';
+ index += olength + 1;
+ } else {
+ ++index;
+ }
+
+ // Print the exponent.
+ result[index++] = 'e';
+ int32_t exp = v.absolute.exponent + olength - 1;
+ if (exp < 0) {
+ result[index++] = '-';
+ exp = -exp;
+ } else
+ result[index++] = '+';
+
+ uint32_t elength = get_length(uint32_t(exp));
+ if (elength == 1)
+ ++elength;
+ for (uint32_t i = 0; i < elength; ++i) {
+ const uint32_t c = exp % 10;
+ exp /= 10;
+ result[index + elength - 1 - i] = (char) ('0' + c);
+ }
+ index += elength;
+ return index;
+}
new file mode 100644
@@ -0,0 +1,190 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/carriers.h
+ *
+ * A carrier stores the bit representation of a floating-point number, the
+ * payload, alongside meta-data about its format. It contains the following
+ * public members.
+ *
+ * Types:
+ *
+ * payload_t The payload type, i.e. an unsigned integer type
+ * of the same width as the floating-point type.
+ * u1_t The 1-limb type, i.e. an unsigned integer type
+ * at least as large as payload_t. (Used for
+ * mantissa calculations.)
+ *
+ * Static data:
+ *
+ * uint32_t mantissa_width Mantissa's width. (Including the implicit bit.)
+ * int32_t exponent_min Minimum exponent of the binary representation.
+ * bool sorted Does a < b for all uncentred values? As given
+ * by Tejú Jaguá's generator.
+ * https://github.com/cassioneri/teju_jagua
+ *
+ * Non-static data:
+ *
+ * payload_t payload The payload.
+ */
+
+#ifndef TEJU_JAGUA_CARRIERS_H
+#define TEJU_JAGUA_CARRIERS_H
+
+#include "helpers.h"
+#include "types.h"
+
+#include <cstdint>
+#include <type_traits>
+
+namespace teju_jagua
+{
+ /**
+ * @brief Base class for carriers of IEEE-754-like formats.
+ *
+ * In addition to compulsory carriers members, this class also contains the
+ * type member is_ieee754. Used for detection of IEEE-754-like formats.
+ *
+ * @tparam Payload The payload type.
+ * @tparam _mantissa_width Mantissa's width. (Including the implicit bit.)
+ * @tparam _sorted Does a < b for all uncentred values?
+ * @tparam UInt The 1-limb type.
+ *
+ * @pre is_uint_v<Payload> == true && is_uint_v<UInt> == true &&
+ * width_v<Payload> <= width_v<UInt> &&
+ * width_v<Payload> - _mantissa_width <= 32.
+ */
+ template <typename Payload, uint32_t _mantissa_width, bool _sorted,
+ typename UInt = Payload>
+ struct ieee754
+ {
+ static_assert(is_uint_v<Payload> && is_uint_v<UInt>,
+ "BUG: Invalid types.");
+ // Ensures exponents fit in int32_t.
+ static_assert(width_v<Payload> - _mantissa_width <= 32,
+ "BUG: Invalid widths.");
+
+ using payload_t = Payload;
+ using u1_t = UInt;
+ using is_ieee754 = std::true_type;
+
+ static uint32_t constexpr mantissa_width = _mantissa_width;
+ static int32_t constexpr exponent_min =
+ - pow2<uint32_t>(width_v<Payload> - mantissa_width - 1u)
+ - mantissa_width + 3u;
+ static bool constexpr sorted = _sorted;
+
+ payload_t payload;
+ };
+
+ /**
+ * @brief Carrier for IEEE-754's Binary16 format.
+ *
+ * https://en.wikipedia.org/wiki/Half-precision_floating-point_format
+ */
+ struct ieee754_binary16 : ieee754<uint16_t, 11u, true>
+ { };
+
+ /**
+ * @brief Carrier for IEEE-754's Binary32 format.
+ *
+ * https://en.wikipedia.org/wiki/Single-precision_floating-point_format
+ */
+ struct ieee754_binary32 : ieee754<uint32_t, 24u, false>
+ { };
+
+ /**
+ * @brief Carrier for IEEE-754's Binary64 format.
+ *
+ * https://en.wikipedia.org/wiki/Double-precision_floating-point_format
+ */
+ struct ieee754_binary64 : ieee754<uint64_t, 53u, false>
+ { };
+
+#if TEJU_JAGUA_SUPPORTS_UINT128
+
+ /**
+ * @brief Carrier for IEEE-754's Binary128 format.
+ *
+ * https://en.wikipedia.org/wiki/Quadruple-precision_floating-point_format
+ */
+ struct ieee754_binary128 : ieee754<uint128_t, 113u, false>
+ { };
+
+ /**
+ * @brief Carrier for the x86 extended-precision format.
+ *
+ * https://en.wikipedia.org/wiki/Extended_precision#x86_extended-precision_format
+ */
+ struct x86_extended
+ {
+ using payload_t = uint128_t;
+ using u1_t = uint128_t;
+
+ static uint32_t constexpr mantissa_width = 64u;
+ static int32_t constexpr exponent_min = -16446;
+ static bool constexpr sorted = false;
+
+ payload_t payload;
+ };
+
+ /**
+ * @brief Carrier for the IBM128 format.
+ *
+ * The IBM128 format, also known as double-double, is made of two parts,
+ * high and low, each of which is a valid IEEE-754's Binary64 number.
+ *
+ * It's neither easy nor convenient to implement a fully compliant overload
+ * of std::to_chars for IBM128. For this sake, we look at an IBM128 as if it
+ * was an IEEE-754 format with the same exponent of the high part, but twice
+ * the mantissa width (i.e. precision) of an IEEE-754's Binary64.
+ */
+ struct ibm128
+ {
+ using payload_t = uint128_t;
+ using u1_t = uint128_t;
+
+ [[nodiscard]] constexpr
+ uint64_t high() const
+ {
+ if constexpr (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ return uint64_t(payload);
+ else
+ return uint64_t(payload >> 64u);
+ }
+
+ [[nodiscard]] constexpr
+ uint64_t low() const
+ {
+ if constexpr (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ return uint64_t(payload >> 64u);
+ else
+ return uint64_t(payload);
+ }
+
+ static uint32_t constexpr mantissa_width =
+ 2u * ieee754_binary64::mantissa_width;
+ static int32_t constexpr exponent_min =
+ ieee754_binary64::exponent_min - ieee754_binary64::mantissa_width;
+ static bool constexpr sorted = false;
+
+ payload_t payload;
+ };
+
+#endif
+
+ /**
+ * @brief Carrier for the Brain Float format.
+ *
+ * Although, this is not an IEEE-754 format, it can be treated as such because
+ * it has the same encoding.
+ *
+ * https://en.wikipedia.org/wiki/Bfloat16_floating-point_format
+ */
+ struct bfloat16 : ieee754<uint16_t, 8u, false>
+ { };
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_CARRIERS_H
new file mode 100644
@@ -0,0 +1,227 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/div10.h
+ *
+ * Implementations of division by 10.
+ */
+
+#ifndef TEJU_JAGUA_DIV10_H
+#define TEJU_JAGUA_DIV10_H
+
+#include "helpers.h"
+#include "types.h"
+
+#include <bits/c++config.h>
+#include <cstdint>
+#include <type_traits>
+
+namespace teju_jagua
+{
+ namespace detail {
+
+ /**
+ * @brief Gets b / 10.
+ *
+ * @tparam Int The type of b.
+ * @param b The value of b.
+ *
+ * @returns b / 10.
+ */
+ template <typename Int>
+ [[nodiscard]] constexpr
+ Int
+ div10_1(Int const m)
+ {
+ return m / 10u;
+ }
+
+ // References:
+ //
+ // [NeriSchneider] Neri C, Schneider L. "Euclidean affine functions and
+ // their application to calendar algorithms." Softw Pract Exper. 2023;
+ // 53(4):937-970.
+ // https://onlinelibrary.wiley.com/doi/full/10.1002/spe.3172
+
+ /**
+ * @brief Provides information about Theorem 4 of [NeriSchneider] for
+ * calculating b / 10 with k = width_v<UInt>.
+ *
+ * @tparam UInt The type of b.
+ *
+ * @pre is_uint_v<UInt> is true and u2_t<UInt> is a complete type.
+ */
+ template <typename UInt>
+ struct
+ neri_schneider_div10_info
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ using u2_t = teju_jagua::u2_t<UInt>;
+ static auto constexpr d = 10u;
+ static auto constexpr k = width_v<UInt>;
+ static auto constexpr p2k = pow2<u2_t>(k);
+ static auto constexpr a = p2k / d + 1u;
+ static auto constexpr epsilon = static_cast<unsigned>(d - p2k % d);
+
+ [[nodiscard]] static constexpr
+ UInt get_U()
+ {
+ if constexpr (!std::is_class_v<UInt>)
+ return ((static_cast<UInt>(a) + epsilon - 1u) / epsilon) * d - 1u;
+ else
+ {
+ // When UInt is the class defined in "uint128_t.h", the division
+ // by epsilon above is not implemented. (Only by 5 and 10 are.)
+ // Therefore, we return the maximum value of uint128_t, so that
+ // a precondition like x <= U is true for all x of type uint128_t.
+ return uint128_t(-1);
+ }
+ }
+
+ static auto constexpr U = get_U();
+ static auto constexpr valid = epsilon <= a;
+
+ };
+
+ /**
+ * @brief Checks whether it's possible to use the algorithm described in
+ * Theorem 4 of [NeriSchneider] to calculate b / 10, where b is a
+ * decimal mantissa upper bound and k = width_v<UInt>.
+ *
+ * @tparam UInt The type of b.
+ * @tparam _mantissa_width The binary mantissa width of the floating-point
+ * format which b is calculated for.
+ *
+ * @pre is_uint_v<UInt> == true and u2_t<UInt> is a complete type.
+ *
+ * @returns true if it's possible to use the algorithm or false, otherwise.
+ */
+ template <typename UInt, uint32_t _mantissa_width>
+ [[nodiscard]] constexpr
+ bool
+ can_use_neri_schneider_div10()
+ {
+ auto constexpr mantissa_max = pow2<UInt>(_mantissa_width) - 1u;
+ auto constexpr b_max = 16 * mantissa_max + 8;
+ using info = neri_schneider_div10_info<UInt>;
+ // Since b < b_max, we test b_max <= U. (Instead of b_max < U.)
+ return info::valid && b_max <= info::U;
+ }
+
+ /**
+ * @brief Gets b / 10.
+ *
+ * @tparam UInt The type of b.
+ * @param b The value of b.
+ *
+ * @pre is_uint_v<UInt> == true, u2_t<UInt> is a complete type and the
+ * conditions of Theorem 4 of [NeriSchneider] to calculate b / 10 with
+ * k = width_v<UInt> hold.
+ *
+ * @returns b / 10.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ div10_2(UInt const b)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ using info = neri_schneider_div10_info<UInt>;
+ __glibcxx_assert(b < info::U);
+ return static_cast<UInt>((1u * info::a * b) >> info::k);
+ }
+
+ } // namespace detail
+
+ /**
+ * @brief Gets b / 10, where m is a decimal mantissa upper bound.
+ *
+ * @tparam _mantissa_width The binary mantissa width of the floating-point
+ * format which b is calculated for.
+ * @param b The value of b.
+ *
+ * @returns b / 10.
+ */
+ template <uint32_t _mantissa_width>
+ [[nodiscard]] inline constexpr
+ uint16_t
+ div10(uint16_t const b)
+ {
+ return detail::div10_1(b);
+ }
+
+ /**
+ * @brief Gets b / 10, where b is a decimal mantissa upper bound.
+ *
+ * @tparam _mantissa_width The binary mantissa width of the floating-point
+ * format which b is calculated for.
+ * @param b The value of b.
+ *
+ * @returns b / 10.
+ */
+ template <uint32_t _mantissa_width>
+ [[nodiscard]] inline constexpr
+ uint32_t
+ div10(uint32_t const b)
+ {
+ if constexpr (detail::can_use_neri_schneider_div10<uint32_t,
+ _mantissa_width>())
+ return detail::div10_2(b);
+ else
+ return detail::div10_1(b);
+ }
+
+ /**
+ * @brief Gets b / 10, where b is a decimal mantissa upper bound.
+ *
+ * @tparam _mantissa_width The binary mantissa width of the floating-point
+ * format which b is calculated for.
+ * @param b The value of b.
+ *
+ * @returns b / 10.
+ */
+ template <uint32_t _mantissa_width>
+ [[nodiscard]] inline constexpr
+ uint64_t
+ div10(uint64_t const b)
+ {
+ #if TEJU_JAGUA_SUPPORTS_UINT128
+ if constexpr (detail::can_use_neri_schneider_div10<uint64_t,
+ _mantissa_width>())
+ return detail::div10_2(b);
+ else
+ return detail::div10_1(b);
+ #else
+ return detail::div10_1(b);
+ #endif
+ }
+
+ #if TEJU_JAGUA_SUPPORTS_UINT128
+ /**
+ * @brief Gets b / 10, where b is a decimal mantissa upper bound.
+ *
+ * @tparam _mantissa_width The binary mantissa width of the floating-point
+ * format which b is calculated for.
+ * @param b The value of b.
+ *
+ * @returns b / 10.
+ */
+ template <uint32_t _mantissa_width>
+ [[nodiscard]] inline constexpr
+ uint128_t
+ div10(uint128_t const b)
+ {
+ return detail::div10_1(b);
+ }
+ #endif
+
+ // Deleted to prevent implicit conversions/promotions.
+ template <uint32_t _mantissa_width, typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ div10(UInt const b) = delete;
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_DIV10_H
new file mode 100644
@@ -0,0 +1,220 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/helpers.h
+ *
+ * Tejú Jaguá helpers.
+ */
+
+#ifndef TEJU_JAGUA_HELPERS_H
+#define TEJU_JAGUA_HELPERS_H
+
+#include "table16.h"
+#include "table32.h"
+#include "table64.h"
+#include "table128.h"
+#include "types.h"
+
+#include <bits/c++config.h>
+#include <cstdint>
+
+namespace teju_jagua
+{
+ /**
+ * @brief Gets 2^e as a given type.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam UInt The given type.
+ * @param e The exponent e.
+ *
+ * @pre is_uint_v<UInt> == true && e < width_v<UInt>.
+ *
+ * @returns 2^e.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ pow2(uint32_t const e)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ __glibcxx_assert(e < width_v<UInt>);
+ return UInt(1u) << e;
+ }
+
+ /**
+ * @brief Gets the k least-significant bits of n (i.e. n % 2^k.)
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Uint The type of n.
+ * @param n The value of n.
+ * @param k The value of k.
+ *
+ * @pre is_uint_v<UInt> == true && k < width_v<Uint>.
+ *
+ * @returns The k least-significant bits of n.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ lsb(UInt const n, uint32_t const k)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ __glibcxx_assert(k < width_v<UInt>);
+ return n % pow2<UInt>(k);
+ }
+
+ /**
+ * @brief Checks whether n is multiple of 2^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam UInt The type of n.
+ * @param e The exponent e.
+ * @param n The number n.
+ *
+ * @pre is_uint_v<UInt> == true && 0 <= e && e < width_v<UInt>.
+ *
+ * @returns true if n is multiple of 2^e or false, otherwise.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ bool
+ is_multiple_of_pow2(int32_t const e, UInt const n)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ __glibcxx_assert(0 <= e && uint32_t(e) < width_v<UInt>);
+ return (n >> e) << e == n;
+ }
+
+ /**
+ * @brief Checks whether n is multiple of 5^f.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam UInt The type of n.
+ * @param f The exponent f.
+ * @param n The number n.
+ *
+ * @pre is_uint_v<UInt> == true &&
+ * table<UInt>::can_test_divisibility_by_pow5(f) == true.
+ *
+ * @returns true if n is multiple of 5^f and false, otherwise.
+ */
+ template <typename UInt>
+ [[nodiscard]] static constexpr
+ bool
+ is_multiple_of_pow5(int32_t const f, UInt const n)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ __glibcxx_assert(table<UInt>::can_test_divisibility_by_pow5(f));
+ return table<UInt>::is_multiple_of_pow5(f, n);
+ }
+
+ /**
+ * @brief Rotates the bits of n by 1 position to the right.
+ *
+ * @tparam UInt The type of n.
+ * @param n The value of n.
+ *
+ * @pre is_uint_v<UInt> == true.
+ *
+ * @returns The value of n after the rotation.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ ror(UInt const n)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ return n << (width_v<UInt> - 1u) | n >> 1u;
+ }
+
+ // Bounds for the argument of log10_pow2 and log10_pow2_residual. (See their
+ // documentation.)
+ int32_t inline constexpr log10_pow2_min = -112'815;
+ int32_t inline constexpr log10_pow2_max = 112'815;
+
+ /**
+ * @brief Gets the largest integer f such that 10^f <= 2^e, i.e. the integer
+ * part of log_10(2^e).
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @param e The exponent e.
+ *
+ * @pre log10_pow2_min <= e && e <= log10_pow2_max.
+ *
+ * @returns The exponent f.
+ */
+ [[nodiscard]] inline constexpr
+ int32_t
+ log10_pow2(int32_t const e)
+ {
+ __glibcxx_assert(log10_pow2_min <= e && e <= log10_pow2_max);
+ uint64_t constexpr M = 1'292'913'987; // M ~= 2^32 * log_10(2)
+ return M * e >> 32u;
+ }
+
+ /**
+ * @brief Gets the residual r = e - e_0, where e_0 is the smallest integer
+ * such log10_pow2(e_0) == log10_pow2(e).
+ *
+ * @param e The value of e.
+ *
+ * @pre log10_pow2_min <= e && e <= log10_pow2_max.
+ *
+ * @returns The residual r.
+ */
+ [[nodiscard]] inline constexpr
+ uint32_t
+ log10_pow2_residual(int32_t const e)
+ {
+ __glibcxx_assert(log10_pow2_min <= e && e <= log10_pow2_max);
+ uint64_t constexpr M = 1'292'913'987;
+ return uint32_t(M * e) / M;
+ }
+
+ /**
+ * @brief Shortens the decimal representation of m * 10^f by removing trailing
+ * zeros from m and increasing f accordingly.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ * @param f The exponent f.
+ * @param m The mantissa m.
+ *
+ * @pre is_uint_v<Mantissa> == true && Mantissa(-1) % 5 == 0. (The latter
+ * condition holds if width_v<Mantissa> is in { 16, 32, 64, 128, 256,
+ * ... } = { 2^k, k >= 4 is integer }.)
+ *
+ * @returns The shortened representation.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ u_decimal<Mantissa>
+ remove_trailing_zeros(int32_t f, Mantissa m)
+ {
+ static_assert(is_uint_v<Mantissa>, "BUG: Invalid type.");
+ static_assert(Mantissa(-1) % 5 == 0,
+ "BUG: Invalid calculations of minv5 and bound.");
+
+ auto constexpr minv5 = Mantissa(-(Mantissa(-1) / 5u));
+ auto constexpr bound = Mantissa(Mantissa(-1) / 10u + 1u);
+
+ while (true)
+ {
+ Mantissa q = ror(Mantissa(1u * m * minv5));
+ if (q >= bound)
+ return {f, m};
+ ++f;
+ m = q;
+ }
+ }
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_HELPERS_H
new file mode 100644
@@ -0,0 +1,282 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/mshift.h
+ *
+ * Implementations of mshift (multiply and shift).
+ */
+
+#ifndef TEJU_JAGUA_MSHIFT_H
+#define TEJU_JAGUA_MSHIFT_H
+
+#include "helpers.h"
+#include "types.h"
+
+namespace teju_jagua
+{
+ namespace detail {
+
+ /**
+ * @brief Gets x + y and sets a carry flag if the addition wraps up.
+ *
+ * @tparam UInt The type of x, y and c.
+ * @param x The value of x.
+ * @param y The value of y.
+ * @param c The carry flag to be set.
+ *
+ * @pre is_uint_v<UInt> == true.
+ *
+ * @returns x + y.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ add_and_carry(UInt x, UInt const y, UInt& c) {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ x += y;
+ c = x < y;
+ return x;
+ }
+
+ /**
+ * @brief Gets m * M >> N, where N = 2 * width_v<decltype(m)>.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @tparam UInt The type of m and the two parts of M.
+ * @param m The number m.
+ * @param M The factor M split in its upper and lower parts.
+ *
+ * @pre is_uint_v<UInt> == true.
+ *
+ * @returns m * M >> N.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ mshift_1(UInt const m, parts<UInt> const M)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+
+ auto const [l, u] = M;
+
+ // Let y := 2^(N / 2), so that, x = y^2. Then:
+ // u := (n3 * y + n2) with n3 := u / y, n2 = u % y in [0, y[,
+ // l := (n1 * y + n0) with n1 := l / y, n0 = l % y in [0, y[,
+ // m := (m1 * y + m0) with m1 := m / y, m0 = m % y in [0, y[.
+
+ UInt const y = pow2<UInt>(width_v<UInt> / 2u);
+ UInt const n3 = u / y;
+ UInt const n2 = u % y;
+ UInt const n1 = l / y;
+ UInt const n0 = l % y;
+ UInt const m1 = m / y;
+ UInt const m0 = m % y;
+
+ // result, carry, temporary:
+ UInt r1, c, t;
+
+ // (u * x + l) * m
+ // = ((n3 * y + n2) * y^2 + (n1 * y + n0)) * (m1 * y + m0),
+ // = (n3 * y^3 + n2 * y^2 + n1 * y + n0) * (m1 * y + m0),
+ // = (n3 * m1) * y^4 + (n3 * m0 + n2 * m1) * y^3 +
+ // (n2 * m0 + n1 * m1) * y^2 + (n1 * m0 + n0 * m1) * y +
+ // (n0 * m0)
+
+ // order 0:
+ t = 1u * n0 * m0;
+ r1 = t / y;
+
+ // order 1:
+ r1 += 1u * n0 * m1; // This addition doesn't wraparound.
+ t = 1u * n1 * m0;
+ r1 = add_and_carry(r1, t, c);
+ r1 /= y;
+
+ // order 2:
+ r1 += 1u * n1 * m1 + 1u * c * y; // This addition doesn't wraparound.
+ t = 1u * n2 * m0;
+ r1 = add_and_carry(r1, t, c);
+ r1 /= y;
+
+ // order 3:
+ r1 += 1u * n2 * m1 + 1u * c * y; // This addition doesn't wraparound.
+ t = 1u * n3 * m0;
+ r1 = add_and_carry(r1, t, c);
+ r1 /= y;
+
+ // order 4:
+ r1 += 1u * n3 * m1 + 1u * c * y;
+
+ return r1;
+ }
+
+ /**
+ * @brief Gets m * M >> N, where N = 2 * width_v<decltype(m)>.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @tparam UInt The type of m and the two parts of M.
+ * @param m The number m.
+ * @param M The factor M split in its upper and lower parts.
+ *
+ * @pre is_uint_v<UInt> == true.
+ *
+ * @returns m * M >> N.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ mshift_2(UInt const m, parts<UInt> const M)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ using u1_t = UInt;
+ using u2_t = teju_jagua::u2_t<u1_t>;
+
+ auto constexpr width = width_v<u1_t>;
+ u2_t const s01 = (1u * u2_t(M.lower) * m) >> width;
+ u2_t const s1 = 1u * u2_t(M.upper) * m;
+ return UInt((s1 + s01) >> width);
+ }
+
+ /**
+ * @brief Gets m * M >> N, where N = 2 * width_v<decltype(m)>.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @tparam UInt The type of m and the two parts of M.
+ * @param m The number m.
+ * @param M The factor M split in its upper and lower parts.
+ *
+ * @pre is_uint_v<UInt> == true.
+ *
+ * @returns (m * M) >> N.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ mshift_4(UInt const m, parts<UInt> const M)
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ using u1_t = UInt;
+ using u4_t = teju_jagua::u4_t<u1_t>;
+
+ auto constexpr width = width_v<UInt>;
+ u4_t const n = (u4_t(M.upper) << width) | u4_t(M.lower);
+ return UInt(1u * n * m >> (2u * width));
+ }
+
+ } // namespace detail
+
+ /**
+ * @brief Gets m * M >> 32.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @param m The number m.
+ * @param M The number M split in its upper and lower parts.
+ *
+ * @returns m * M >> 32.
+ */
+ [[nodiscard]] inline constexpr
+ uint16_t
+ mshift(uint16_t const m, parts<uint16_t> const M)
+ {
+ return detail::mshift_4(m, M);
+ }
+
+ /**
+ * @brief Gets m * M >> 64.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @param m The number m.
+ * @param M The number M split in its upper and lower parts.
+ *
+ * @returns m * M >> 64.
+ */
+ [[nodiscard]] inline constexpr
+ uint32_t
+ mshift(uint32_t const m, parts<uint32_t> const M)
+ {
+ #if TEJU_JAGUA_SUPPORTS_UINT128
+ return detail::mshift_4(m, M);
+ #else
+ return detail::mshift_2(m, M);
+ #endif
+ }
+
+ /**
+ * @brief Gets m * M >> 128.
+ *
+ * @note m * M is calculated (as if) in infinity precision.
+ *
+ * @param m The number m.
+ * @param M The number M split in its upper and lower parts.
+ *
+ * @returns m * M >> 128.
+ */
+ [[nodiscard]] inline constexpr
+ uint64_t
+ mshift(uint64_t const m, parts<uint64_t> const M)
+ {
+ #if TEJU_JAGUA_SUPPORTS_UINT128
+ return detail::mshift_2(m, M);
+ #else
+ return detail::mshift_1(m, M);
+ #endif
+ }
+
+ #if TEJU_JAGUA_SUPPORTS_UINT128
+ /**
+ * @brief Gets m * M >> 256.
+ *
+ * @note m * M is calculated (as if) in infity precision.
+ *
+ * @param m The number m.
+ * @param M The number M split in its upper and lower parts.
+ *
+ * @returns m * M >> 256.
+ */
+ [[nodiscard]] inline constexpr
+ uint128_t
+ mshift(uint128_t const m, parts<uint128_t> const M)
+ {
+ return detail::mshift_1(m, M);
+ }
+ #endif
+
+ // Deleted to prevent implicit conversions/promotions.
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ mshift(UInt const m, parts<UInt> const M) = delete;
+
+ /**
+ * @brief Gets 2^k * M >> N, where N = 2 * width_v<UInt>.
+ *
+ * @note Here ^ denote exponentiation (not bitwise xor) and m * M is
+ * calculated (as if) in infinity precision.
+ *
+ * @tparam UInt The type of the two parts of M.
+ * @param k The exponent k.
+ * @param M The number M split in its upper and lower parts.
+ *
+ * @returns 2^k * U >> N.
+ */
+ template <typename UInt>
+ [[nodiscard]] constexpr
+ UInt
+ mshift_pow2(uint32_t const k, parts<UInt> const M)
+ {
+ auto constexpr width = width_v<UInt>;
+ int32_t const s = k - width;
+ if (s <= 0)
+ return M.upper >> -s;
+ return (M.upper << s) | (M.lower >> (width - s));
+ }
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_MSHIFT_H
new file mode 100644
@@ -0,0 +1,167 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/table.h
+ *
+ * Tables of mantissa conversion factors and modular inverses.
+ */
+
+#ifndef TEJU_JAGUA_TABLE_H
+#define TEJU_JAGUA_TABLE_H
+
+#include "types.h"
+
+#include <cstdint>
+
+namespace teju_jagua
+{
+ /**
+ * @brief Primary template for tables of mantissa conversion factors and
+ * modular inverses.
+ *
+ * Specialisations are provided for the following mantissa types: uint16_t,
+ * uint32_t, uint64_t and, in some platforms, int128_t.
+ *
+ * @tparam Mantissa The mantissa type.
+ */
+ template <typename Mantissa>
+ struct table_base;
+
+ /**
+ * @brief Upper and lower parts of 2-limb unsigned integers.
+ *
+ * @tparam UInt The type of multipliers' upper and lower parts.
+ *
+ * @pre is_uint_v<UInt> == true.
+ */
+ template <typename UInt>
+ struct parts
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+ static uint32_t constexpr width = width_v<UInt>;
+ UInt const lower;
+ UInt const upper;
+ };
+
+ /**
+ * @brief Modular inverse divisibility check.
+ *
+ * Given non-negative integers N and d, where d is odd in [0, 2^N[ (here 2^N
+ * denotes 2 raised to N), there exists m in [0, 2^N[ such that
+ *
+ * (m * d) % 2^N = 1.
+ *
+ * Such m is called the modular inverse -- minverse for short -- of d in
+ * [0, 2^N[. Furthermore, there exists a bound b in [0, 2^N[ such that, for
+ * all n in [0, 2^N[ we have:
+ *
+ * n % d = 0 <=> (n * m) % 2^N < b.
+ *
+ * Hence, the divisibility test on the left is equivalent to the check on the
+ * right which is thus, called minverse divisibility check.
+ *
+ * For a given d of type UInt with N = width_v<UInt>, this class stores m and
+ * b, and perform the minverse divisibility check.
+ *
+ * Neri C. "Quick Modular Calculations", Overload, 27(154):11-15, Dec 2019.
+ * https://accu.org/journals/overload/27/154/neri_2722/
+ *
+ * @tparam UInt The type of d, m and b.
+ *
+ * @pre is_uint_v<UInt> == true.
+ */
+ template <typename UInt>
+ struct minverse_check
+ {
+ static_assert(is_uint_v<UInt>, "BUG: Invalid type.");
+
+ /**
+ * @brief Check if n satisfies the minverse divisibility check.
+ *
+ * @param n The number n.
+ *
+ * @pre The values of minverse and bound are as in the class description.
+ *
+ * @returns true if n satisfies the minverse divisibility check or false,
+ * otherwise.
+ */
+ [[nodiscard]] constexpr
+ bool
+ operator()(UInt n) const {
+ return UInt(1u * n * minverse) <= bound;
+ }
+
+ UInt const minverse; // m in the class description.
+ UInt const bound; // b in the class description.
+ };
+
+ template <typename Mantissa>
+ struct table : table_base<Mantissa>
+ {
+ static_assert(is_uint_v<Mantissa>, "BUG: Invalid type.");
+
+ /**
+ * @brief Checks whether divisibility by 5^f is implemented.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @param f The exponent f.
+ *
+ * @returns true if divisibility by 5^f is implemented and false,
+ * otherwise.
+ */
+ [[nodiscard]] static constexpr
+ bool
+ can_test_divisibility_by_pow5(int32_t const f)
+ {
+ return 0 <= f &&
+ uint32_t(f) < std::size(table_base<Mantissa>::_is_multiple_of_pow5);
+ }
+
+ /**
+ * @brief Checks whether n is multiple of 5^f.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @param f The exponent f.
+ * @param n The number n.
+ *
+ * @pre can_test_divisibility_by_pow5(f) == true.
+ *
+ * @returns true if n is multiple of 5^f and false, otherwise.
+ */
+ [[nodiscard]] static constexpr
+ bool
+ is_multiple_of_pow5(int32_t const f, Mantissa const m)
+ {
+ __glibcxx_assert(can_test_divisibility_by_pow5(f));
+ return table_base<Mantissa>::_is_multiple_of_pow5[f](m);
+ }
+
+ /**
+ * @brief Gets the mantissa conversion factor for a given exponent from
+ * the corresponding one for larger mantissa widths.
+ *
+ * The value of the mantissa conversion factor for a given exponent can be
+ * found in the first bits of the corresponding mantissa conversion factor
+ * for the larger mantissa types. Using this function rather than looking
+ * up in the table for the given Mantissa, allows fore reduced storage.
+ *
+ * @param The given exponent.
+ *
+ * @returns The mantissa conversion factor.
+ */
+ [[nodiscard]] static constexpr
+ parts<Mantissa>
+ factor_from_larger_table(int32_t const f)
+ {
+ auto const factor = table<u2_t<Mantissa>>::factor(f);
+ auto const [lower /*unused*/, upper] = factor;
+ return { Mantissa(upper + 1u), Mantissa(upper >> width_v<Mantissa>) };
+ }
+ };
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TABLE_H
new file mode 100644
@@ -0,0 +1,10012 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/table128.h
+ *
+ * 128-bits mantissa conversion table.
+ */
+
+#ifndef TEJU_JAGUA_TABLE128_H
+#define TEJU_JAGUA_TABLE128_H
+
+#include "table.h"
+#include "types.h"
+
+#include <bits/c++config.h>
+#include <cstdint>
+#include <iterator>
+
+#if TEJU_JAGUA_SUPPORTS_UINT128
+ namespace teju_jagua
+ {
+ /**
+ * @brief Concatenates two uint64_t values into one uint128_t.
+ *
+ * @param upper The upper half.
+ * @param lower The lower half.
+ *
+ * @returns (upper << 64) | lower.
+ */
+ [[nodiscard]] static constexpr
+ uint128_t
+ cat(uint64_t const upper, uint64_t const lower)
+ {
+ return (uint128_t(upper) << 64u) | uint128_t(lower);
+ }
+
+ /**
+ * @brief 128-bits tables of mantissa conversion factors and modular
+ * inverses.
+ */
+ template <>
+ struct table_base<uint128_t>
+ {
+ /**
+ * @brief Gets the mantissa conversion factor for a given exponent.
+ *
+ * @param The given exponent.
+ *
+ * @returns The factor.
+ */
+ [[nodiscard]] static constexpr
+ parts<uint128_t>
+ factor(int32_t const f)
+ {
+ int32_t constexpr offset = -4966;
+ int32_t const i = f - offset;
+ __glibcxx_assert(0 <= i && uint32_t(i) < std::size(_factors));
+ return _factors[i];
+ }
+
+ private:
+
+ static parts<uint128_t> constexpr _factors[] =
+ {
+ { cat(0xd5ac45eddf014d24, 0xd2c5a14581f5713f), cat(0xcf34a273bb7ea9a3, 0xf4d36655a35ec0d4) }, // -4966
+ { cat(0xde236b24b26770ea, 0x4237b4379b2ac0ff), cat(0xa5c3b52962cbbae9, 0x90a91eaae9189a43) }, // -4965
+ { cat(0x181c55b6f51f8d88, 0x34f95cf948ef00cc), cat(0x849c90ede8a2fbee, 0x0d541888ba7a1503) }, // -4964
+ { cat(0xc02d55f188327c0d, 0x218efb2874b19ae0), cat(0xd42db4afda9e5fe3, 0x48868da790c354d1) }, // -4963
+ { cat(0x668aab27a028633d, 0xb4726286c3c148b3), cat(0xa9be2a26487eb31c, 0x3a053e1fa702aa41) }, // -4962
+ { cat(0x853bbc1fb3538297, 0xc38eb5389c9aa08f), cat(0x87cb54eb6d3228e3, 0x619dcb4c859bbb67) }, // -4961
+ { cat(0x3b92c6991eec0426, 0x05b121f42dc43418), cat(0xd94554abe1e9db05, 0x68fc787a6f5f923f) }, // -4960
+ { cat(0xfc756badb25669b8, 0x048db4c357d029ad), cat(0xadd110898187e26a, 0xba63939525e60e98) }, // -4959
+ { cat(0xc9f78957c1debaf9, 0x9d3e2a35dfd9baf1), cat(0x8b0da6d4679fe855, 0x61e942ddb7eb3ee0) }, // -4958
+ { cat(0x4325a88c69645e5c, 0x2ec9dd22ffc2c4b5), cat(0xde7c3e20a5cca6ef, 0x030ed162bfdecb01) }, // -4957
+ { cat(0x35b7ba09ede9e516, 0x8bd4b0e8cc9bd091), cat(0xb1fcfe8084a3b8bf, 0x35a5744effe56f34) }, // -4956
+ { cat(0x2af961a18b218412, 0x0976f3ed707ca6da), cat(0x8e63fecd36e96098, 0xf7b7903f331df290) }, // -4955
+ { cat(0x118f029c11cf39b6, 0x758b1fe24d943e2a), cat(0xe3d3314857dbcdc1, 0x8c58e6cb84fcb74d) }, // -4954
+ { cat(0x7472687cdb0c2e2b, 0x913c1981d7a9cb55), cat(0xb6428dd3797ca49a, 0xd6ad856f9d96f90a) }, // -4953
+ { cat(0x5d28539715a35822, 0xda967ace46216f77), cat(0x91ced7dc613083af, 0x12246abfb1459408) }, // -4952
+ { cat(0x950d528b55d2269e, 0x2a8a5e16d69be58b), cat(0xe94af2fa351a6c4b, 0x503a4465e86f5340) }, // -4951
+ { cat(0xdda442091174ebb1, 0xbba1e4df1216513c), cat(0xbaa25bfb5daebd09, 0x0cfb69eb20590f66) }, // -4950
+ { cat(0x7e1d01a0dac3efc1, 0x62e7ea4c0e7840fd), cat(0x954eaffc4af230d4, 0x0a62bb2280473f85) }, // -4949
+ { cat(0x302e69015e064c68, 0x9e3fdd467d8d34c7), cat(0xeee44cc6de504e20, 0x109df83733a5326f) }, // -4948
+ { cat(0x268b87344b383d20, 0x7e997dd1fe0a90a0), cat(0xbf1d0a38b1d9d819, 0xa6e4c6928fb75b8c) }, // -4947
+ { cat(0xeba2d2903c2cfdb3, 0x987acb0e64d54080), cat(0x98e4082d5b14ace1, 0x52509edba62c493c) }, // -4946
+ { cat(0x45d150e6c6ae62b8, 0xf3f7ab4a3aeecd99), cat(0xf4a00d155e877b02, 0x1d4dcaf909e0752e) }, // -4945
+ { cat(0x37daa71f05584efa, 0x5cc622a1c8bf0ae1), cat(0xc3b33daab205fc01, 0xb10b08c73b19f758) }, // -4944
+ { cat(0x2caeec18d1137261, 0xe3d1b54e3a326f1a), cat(0x9c8f64888e6b3001, 0x5a6f3a38fc14c5e0) }, // -4943
+ { cat(0xe117e027b4ebea36, 0x394f887d29ea4b5d), cat(0xfa7f0740e3deb335, 0x5d7ec38e60213c99) }, // -4942
+ { cat(0x4dacb352f72321c4, 0xfaa606ca87eea2b1), cat(0xc8659f671cb228f7, 0x7dff02d84ce763ae) }, // -4941
+ { cat(0x7156f5dbf8e8e7d0, 0xc884d23b9ff21bc1), cat(0xa0514c527d5b53f9, 0x3198cf1370b91c8b) }, // -4940
+ { cat(0xc1125e4993ed8640, 0xa06a41c94cc1afce), cat(0x804109db977c432d, 0xc1470c0f8d60e3a2) }, // -4939
+ { cat(0x34ea3075b97c0a01, 0x00aa02dbae02b2e2), cat(0xcd34dc928bfa0516, 0x020b467f489b05d1) }, // -4938
+ { cat(0x2a54f39161300800, 0xcd54cf1624cef582), cat(0xa42a4a0ed6619dab, 0x34d5d1ff6d48d174) }, // -4937
+ { cat(0x8843f60de759a000, 0xa443d8de83d8c468), cat(0x8355080bdeb47e22, 0x90ab0e65f1070df6) }, // -4936
+ { cat(0x406cbce30bc2999a, 0xa06c8e30d2f46d73), cat(0xd221a6796453fd04, 0x1aab4a3cb4d81657) }, // -4935
+ { cat(0x0056fd826fcee148, 0x8056d8270f29f129), cat(0xa81aeb94504330d0, 0x1555d4fd5d79ab79) }, // -4934
+ { cat(0x99df3135263f1aa0, 0x66abe01f3f54c0ee), cat(0x867befa9d9cf5a40, 0x111177311794892d) }, // -4933
+ { cat(0xc2feb521d6cb5dcd, 0x71130031feee017c), cat(0xd72cb2a95c7ef6cc, 0xe81bf1e825ba7515) }, // -4932
+ { cat(0x359890e7df0917d7, 0x8da8ccf4cbf19aca), cat(0xac23c22116cbf8a3, 0xece327eceafb90de) }, // -4931
+ { cat(0x5e13a71fe5a0dfdf, 0xa4870a5d6ff47bd5), cat(0x89b634e7456ffa1c, 0xbd8286572262da4b) }, // -4930
+ { cat(0x9685d83309016632, 0xa0d810957fed92ed), cat(0xdc56bb0ba24cc361, 0x2f373d5837049078) }, // -4929
+ { cat(0xded179c26d9ab828, 0x80acda113324758b), cat(0xb045626fb50a35e7, 0x58f8fde02c03a6c6) }, // -4928
+ { cat(0x18a7949b8ae22ced, 0x33bd7b40f5b6c46f), cat(0x8d044ebfc4082b1f, 0x7a60cb19bccfb89f) }, // -4927
+ { cat(0xc10c20f8de36ae48, 0x52c8c534bc57a0b2), cat(0xe1a07dffa00d11cb, 0xf70144f5fae5f431) }, // -4926
+ { cat(0x673ce72d7e922506, 0xa8a09dc3c9dfb3c1), cat(0xb48064cc800a74a3, 0x2c0103f7fbeb29c1) }, // -4925
+ { cat(0x85ca528acba81d9e, 0xed4d4b0307e62968), cat(0x9066b70a00085d4f, 0x5667365ffcbc2167) }, // -4924
+ { cat(0xa2dd50de12a695cb, 0x15487804d970423f), cat(0xe70abe766673c87e, 0xf0a523ccc79368a5) }, // -4923
+ { cat(0x4f1773e4dbb877d5, 0xaaa06003e1269b66), cat(0xb8d5652b85296d32, 0x5a1db63d6c75ed51) }, // -4922
+ { cat(0x72792983e2f9f977, 0xbbb380031a85491e), cat(0x93ddea893754575b, 0x7b4af83123918aa7) }, // -4921
+ { cat(0xb728426c9e5cc259, 0x2c52666b5da20e97), cat(0xec96440ebeed5892, 0x5ede59e838e8ddd8) }, // -4920
+ { cat(0x5f536856e51701e0, 0xf041eb8917b4d879), cat(0xbd45033eff2446db, 0x7f1847ecfa53e4ad) }, // -4919
+ { cat(0x4c42b9df1dac0180, 0xc034bc6dac90ad2d), cat(0x976a68ff32836be2, 0xcc136cbd950fea24) }, // -4918
+ { cat(0xe06ac2fe95e00267, 0x99edfa49141aaeaf), cat(0xf243db31ea6bdfd1, 0x46857ac8ee7fdd06) }, // -4917
+ { cat(0x4d22359877e66852, 0xe18b2ea0dce22559), cat(0xc1cfe28e55231974, 0x386ac8a0beccb0d2) }, // -4916
+ { cat(0x0a81c479f9852042, 0x4e08f21a4a4e8447), cat(0x9b0cb53eaa827ac3, 0x60556d4d65708d75) }, // -4915
+ { cat(0x10cfa0c328d5006a, 0x1674b69076e406d8), cat(0xf814553110d0c46b, 0xcd557baf08b41588) }, // -4914
+ { cat(0xa70c809c20aa66bb, 0x452a2ba6c58338ad), cat(0xc676aa8da70d69ef, 0xd7779625a0901139) }, // -4913
+ { cat(0x85a39a168088522f, 0x6a8822ebd135c6f1), cat(0x9ec5553e1f3dee59, 0x792c781e1a0cda94) }, // -4912
+ { cat(0xd5d2902400da1d18, 0xaa736b12e8560b1a), cat(0xfe088863652fe3c2, 0x5b7a59c9c347c420) }, // -4911
+ { cat(0x1175401ccd7b4a7a, 0x21f5ef42537808e2), cat(0xcb3a06b5ea8cb635, 0x15fb7b07cf6c9ce7) }, // -4910
+ { cat(0xdac4334a3dfc3b94, 0xe7f7f29b75f9a0b5), cat(0xa294d22b220a2b5d, 0xab2f959fd923b0b8) }, // -4909
+ { cat(0x7bd0290831969610, 0xb993287c5e614d5e), cat(0x8210a82281a1bc4a, 0xef59447fe0e95a2d) }, // -4908
+ { cat(0xc619db404f575681, 0x28eb73fa309baefc), cat(0xd01aa69d9c35fa11, 0x7ef53a6634a89048) }, // -4907
+ { cat(0x9e7b15cd0c45decd, 0xba55f661c07c8bfd), cat(0xa67bb87e169194da, 0xcbf761eb5d53a6a0) }, // -4906
+ { cat(0x4b95ab0a7037e571, 0x61de5eb499fd3cca), cat(0x852fc6cb454143e2, 0x3cc5e7ef7ddc854d) }, // -4905
+ { cat(0x78ef7810b38ca24f, 0x02fd645429952e10), cat(0xd5193e1208686c9d, 0x2e097318c960d548) }, // -4904
+ { cat(0x2d8c600d5c7081d8, 0xcf311d10214424da), cat(0xaa7a980e6d2056e4, 0x24d45c13d44d776d) }, // -4903
+ { cat(0x57a3800ab05a017a, 0x3f5a7da6810350ae), cat(0x8862133ebdb378b6, 0x83dd167643712c57) }, // -4902
+ { cat(0x590599aab3c33590, 0x655d95d734d21ab0), cat(0xda3685312f858df0, 0xd2fb57239f1b7a25) }, // -4901
+ { cat(0xad9e14888fcf5e0d, 0x1de477df5d74e227), cat(0xae9204275937a4c0, 0xa8c91282e5af94ea) }, // -4900
+ { cat(0x57b1aa06d972b1a4, 0x17e9f97f7df71b52), cat(0x8ba80352adc61d66, 0xed6da868b7bfaa55) }, // -4899
+ { cat(0x25e9100af5844f6c, 0xf30ff598c98b5eea), cat(0xdf733884493cfbd7, 0xe2490d745932aa22) }, // -4898
+ { cat(0xeb20d9a25e0372bd, 0x8f3ff7ad6e0918bb), cat(0xb2c2939d0763fcac, 0xb5073df6adc221b4) }, // -4897
+ { cat(0x88e71481e4cf8efe, 0x0c332c8abe6dad63), cat(0x8f020fb0d2b663bd, 0x5d9f64c557ce815d) }, // -4896
+ { cat(0xdb0b540307b27e63, 0x46b8474463e2af04), cat(0xe4d0191aeabd6c62, 0x2f656e088c7d9bc8) }, // -4895
+ { cat(0x48d5dccf395b984f, 0x6bc69f69e982259d), cat(0xb70ce0e2556456b4, 0xf2b78b3a09fe163a) }, // -4894
+ { cat(0x07117d72944946a5, 0xefd21921879b514a), cat(0x9270b3e84450455d, 0x8ef93c2e6e64de95) }, // -4893
+ { cat(0x3e826250ed420aa3, 0x19502835a5c54edd), cat(0xea4deca6d3b3a22f, 0x4b28604a4a3afdbb) }, // -4892
+ { cat(0x65351b73f101a21c, 0x1440202aeb043f17), cat(0xbb718a1f0fc2e825, 0xd5b9e6a1d4fbfe2f) }, // -4891
+ { cat(0x50f749298d9ae816, 0x7699b35588d03279), cat(0x95f46e7f3fcf201e, 0x4494b881772ffe8c) }, // -4890
+ { cat(0x1b2541dc15c4a68a, 0x575c5222748050c2), cat(0xefed7d9866183363, 0xa0edf402584cca7a) }, // -4889
+ { cat(0x15b767e3449d5208, 0x45e374e85d3373ce), cat(0xbff13146b8135c4f, 0xb3f19001e03d6ec8) }, // -4888
+ { cat(0x115f864f6a1774d3, 0x6b1c5d86b0f5f63f), cat(0x998dc105600f7d0c, 0x8ff47334b36458a0) }, // -4887
+ { cat(0xb565a3b24358baeb, 0xde93c8d7818989fe), cat(0xf5af9b3bcce594e0, 0xe653eb87856d5a99) }, // -4886
+ { cat(0x2ab7b62835e09589, 0x7edca0ac67a13b31), cat(0xc48c7c2fd71e10b3, 0xeb76560604577bae) }, // -4885
+ { cat(0x222c91b9c4b3aad4, 0x657d4d56b94dc8f4), cat(0x9d3d302645b1a6f6, 0x55f844d19d12c958) }, // -4884
+ { cat(0xd0474f8fa11f77ba, 0x3bfbaef1287c74ba), cat(0xfb9519d6d5e90b23, 0xbcc06e1c2e847559) }, // -4883
+ { cat(0x0d05d93fb4192c94, 0xfcc958c0ed305d62), cat(0xc94414abde5408e9, 0x63cd24e35869f77b) }, // -4882
+ { cat(0xa404adcc901423aa, 0x63d44700bdc04ab5), cat(0xa10343bcb1dcd3ed, 0xe970ea4f79ee5f95) }, // -4881
+ { cat(0x8336f17073434fbb, 0x831038cd6499d55d), cat(0x80cf6963c17d7657, 0xedf3eea5fb251944) }, // -4880
+ { cat(0x6b8b1be71ed2192c, 0x04e6c148a0f6222f), cat(0xce18a89f9bfbf08c, 0xafecb10991d4f53a) }, // -4879
+ { cat(0x5608e31f4bdb4756, 0x6a52343a1a5e81bf), cat(0xa4e086e6166326d6, 0xf323c0d474aa5dc8) }, // -4878
+ { cat(0x11a0b5b2a315d2ab, 0x8841c361aeb20166), cat(0x83e6d251ab828578, 0xc28300a9f6eeb16d) }, // -4877
+ { cat(0x1c3455ea9e895112, 0x739c6bcf7de99bd6), cat(0xd30aea1c459da25a, 0xd0d19aa98b178248) }, // -4876
+ { cat(0x169044bbb207740e, 0xc2e38972cb214978), cat(0xa8d588169e17b515, 0x73dae2213c12cea0) }, // -4875
+ { cat(0x78736a2fc19f900b, 0xcf1c6df56f4dd460), cat(0x871139abb1ac90dd, 0xf648b4e763423ee6) }, // -4874
+ { cat(0xc0b8a9e60298e679, 0x4b60afef187c8700), cat(0xd81b8f791c474e2f, 0xf07454a56b9d3170) }, // -4873
+ { cat(0x66fa2184cee0b861, 0x091a2658e0639f33), cat(0xace2d92db0390b59, 0x8d29dd5122e4278d) }, // -4872
+ { cat(0x8594e79d724d604d, 0xa0e1b84719e94c29), cat(0x8a4f14248cfa6f7a, 0xd754b10db58352d7) }, // -4871
+ { cat(0x3c21729583af007c, 0x349c5a0b5ca879db), cat(0xdd4b536dae5d7f2a, 0xf2211b49226bb7bf) }, // -4870
+ { cat(0x634df5446958cd30, 0x2a16ae6f7d5394af), cat(0xb1090f8af1e465bb, 0xf4e749074ebc92ff) }, // -4869
+ { cat(0xb5d7f769ede0a426, 0x88122525fddc76f3), cat(0x8da0d93bf4b6b7c9, 0x90b907390bca0f32) }, // -4868
+ { cat(0xefbff243163439d7, 0x401d083cc960be51), cat(0xe29af52cbabdf2dc, 0x1ac1a52812dce51d) }, // -4867
+ { cat(0x8c998e9c11c36179, 0x001739ca3ab3cb74), cat(0xb548c423c897f57c, 0xe23484200f171db1) }, // -4866
+ { cat(0x707ad87cdb02b460, 0xccdf616e955ca2c3), cat(0x9107034fd3acc463, 0xe82a034cd8df4af4) }, // -4865
+ { cat(0xe72af3faf80453ce, 0x14989be4222dd138), cat(0xe80b387fb9146d6c, 0xa6a99ee15afede53) }, // -4864
+ { cat(0xb8ef29959336a971, 0xaa13afe9b4f1742d), cat(0xb9a2939960dd2456, 0xebbae5811598b1dc) }, // -4863
+ { cat(0x93f287aadc2bbac1, 0x54dc8cbaf7279024), cat(0x94820fade7175045, 0x896251341146f4b0) }, // -4862
+ { cat(0x531da5de2d12c468, 0x87c747918b728039), cat(0xed9ce5e30b58806f, 0x4236e8534ed7ede7) }, // -4861
+ { cat(0xa8e484b1bda89d20, 0x6c9f6c746f8eccfb), cat(0xbe171e4f3c46cd25, 0xce925375d8acbe52) }, // -4860
+ { cat(0x53ea03c16486e419, 0xf07f89f6bfa570c9), cat(0x98127ea5c9d23db7, 0xd8750f917a23cb75) }, // -4859
+ { cat(0x1fdcd2cf073e39c3, 0x1a65a98acc3be7a7), cat(0xf350caa2dc8395f2, 0xf3ee7f4f29d2df22) }, // -4858
+ { cat(0x4cb0a8a59f64fb02, 0x7b8487a23cfcb953), cat(0xc2a708824a02de5b, 0xf65865d8ee424c1b) }, // -4857
+ { cat(0x0a26ed514c50c8ce, 0xc936d2e830ca2ddc), cat(0x9bb8d39b6e68b1e3, 0x2b79eb13f1cea349) }, // -4856
+ { cat(0x76a4aee87a1adae4, 0x752484a6b476afc6), cat(0xf927b8f8b0a78305, 0x125cab531c7dd20e) }, // -4855
+ { cat(0x5eea2586c8157be9, 0xf7506a1ef6c5596b), cat(0xc752fa608d52cf37, 0x41e3bc427d3174d8) }, // -4854
+ { cat(0x7f21b79f06779654, 0xc5d9ee7f2bd11456), cat(0x9f75951a0aa8a5c5, 0xce4fc9ceca8df713) }, // -4853
+ { cat(0xfe9c58fe70bf56ee, 0x095cb0cb794e86ef), cat(0xff228829aaa76fa2, 0xe3b2dc7e10e324eb) }, // -4852
+ { cat(0x987d13fec0991258, 0x077d5a3c610b9f26), cat(0xcc1ba0215552bfb5, 0x82f57d31a71c1d89) }, // -4851
+ { cat(0xe0640fff007a7513, 0x393114fd1a6fb285), cat(0xa3494ce77775662a, 0xcf2aca8e1f49b13a) }, // -4850
+ { cat(0xb3833fff33952a75, 0xc75a7730e1f2f537), cat(0x82a10a52c5f784ef, 0x0c223ba4e5d48dc8) }, // -4849
+ { cat(0x859ecccb85bb7722, 0xd890beb49cb7eebf), cat(0xd101aa1e098c07e4, 0xe036c5d4a2edafa7) }, // -4848
+ { cat(0x047f0a3c6afc5f4f, 0x13a6fef6e3c65899), cat(0xa734881807a33983, 0xe69237dd4f248c86) }, // -4847
+ { cat(0x69ff3b6388c9e5d8, 0xdc8598c5830513ad), cat(0x85c3a013394f6136, 0x520e93177283a39e) }, // -4846
+ { cat(0x4331f89f4143095a, 0xfa6f5ad59e6e85e2), cat(0xd605cceb8ee56856, 0xe9b0eb58b73905ca) }, // -4845
+ { cat(0x9c27fa1901026de2, 0x61f2af114b8b9e4e), cat(0xab37d722d8b786ab, 0xee2722ad5f60d16e) }, // -4844
+ { cat(0xe3532e7a673524b5, 0x1b288c0dd6094b72), cat(0x88f978e8ad5f9eef, 0xf1b8e88ab2b3dabe) }, // -4843
+ { cat(0x9eeb7d90a521d454, 0xf840e01623421250), cat(0xdb28c1744898fe4c, 0xb5f4a744511fc464) }, // -4842
+ { cat(0x7f22cada1db4a9dd, 0x936719ab4f680ea6), cat(0xaf53cdf6a07a650a, 0x2b2a1f69da7fd050) }, // -4841
+ { cat(0x32823be1b15d54b1, 0x42b8e155d9200bb8), cat(0x8c430b2bb3951da1, 0xbc21b2bb15330d0d) }, // -4840
+ { cat(0x1d9d2c9c4efbbab5, 0x378e3556283345f3), cat(0xe06b4512b8ee95cf, 0x93691df821eb4815) }, // -4839
+ { cat(0xe47dbd49d8c9622a, 0x92d82aab535c37f6), cat(0xb389040efa5877d9, 0x42ba7e601b22a010) }, // -4838
+ { cat(0xe9fe3107e0a11b55, 0x424688890f7cf992), cat(0x8fa0d00bfb79f97a, 0x9bc86519af4ee673) }, // -4837
+ { cat(0xdcc9e80c9a9b5eee, 0xd070da74e594c282), cat(0xe5ce19acc58ff590, 0xf940a1c2b217d71f) }, // -4836
+ { cat(0x7d6e533d487c4bf2, 0x405a485d84770202), cat(0xb7d8148a37a65e0d, 0x9433b49bc1acac19) }, // -4835
+ { cat(0x31250f6439fd098e, 0x99e1d37e03926802), cat(0x931343a1c61eb1a4, 0x768fc3afce23bce1) }, // -4834
+ { cat(0x1b6e7f06c32e75b0, 0xf6361f3005b70ccf), cat(0xeb5205cfa3644f6d, 0x8a7f9f7fb0392e35) }, // -4833
+ { cat(0x7c58659f028b915a, 0x5e91b28cd15f3d73), cat(0xbc419e3fb5e9d924, 0x6ecc7f9959c7582a) }, // -4832
+ { cat(0xc9e0514c02094115, 0x18748ed70de5cac2), cat(0x969ae4ffc4bb141d, 0x2570661447d2acee) }, // -4831
+ { cat(0xdc9a1bacd00ece88, 0x2720e48b496faad0), cat(0xf0f7d4cc6df8202e, 0xa24d702072eaae4a) }, // -4830
+ { cat(0x4a14e2f0a6723ed3, 0x5280b6d5d4595573), cat(0xc0c643d6be6019be, 0xe83df34d28bbbea2) }, // -4829
+ { cat(0x6e771bf3b85b6575, 0xdb9a2bde437aaac3), cat(0x9a3836456519ae32, 0x5364c2a42096321b) }, // -4828
+ { cat(0x7d8b5fec5a2bd589, 0x5f5d12fd38c4446b), cat(0xf6c056d56e8f7d1d, 0x523ad1069a89e9c5) }, // -4827
+ { cat(0x646f7ff04823113a, 0xb2b0dbfdc70369ef), cat(0xc566abddf20c6417, 0x74fbda6baed4bb04) }, // -4826
+ { cat(0xe9f2ccc039b5a762, 0x288d7ccb059c54bf), cat(0x9debbcb18e705012, 0xc3fcaebc8bdd6269) }, // -4825
+ { cat(0x0feae1338f890bd0, 0x40e26144d5c6edff), cat(0xfcac611c171a19b7, 0x9ffab12dac956a43) }, // -4824
+ { cat(0xd988b4293fa0d640, 0x33e84dd0ab058b32), cat(0xca2380e345ae7af9, 0x4cc88dbe23aabb68) }, // -4823
+ { cat(0xe13a29ba994d7833, 0x5cb9d7da226ad5c2), cat(0xa1b600b5d1586261, 0x0a3a0afe82eefc53) }, // -4822
+ { cat(0x80fb549547712cf5, 0xe3c7dfe1b522449b), cat(0x815e66f7daad1b80, 0xd4fb3bfecf2596a9) }, // -4821
+ { cat(0x019220eed8b514bc, 0x9fa63302bb6a075e), cat(0xcefd718c9114f8ce, 0x2191f997b1d5bddc) }, // -4820
+ { cat(0x67a81a58ad5daa30, 0x7fb828cefc54d2b2), cat(0xa5978e0a0daa60a4, 0xe7a7fadfc177cb16) }, // -4819
+ { cat(0x86201513bde48826, 0xcc9353d8c9dd755b), cat(0x84793e6e71551a1d, 0x861ffbe6345fd5ab) }, // -4818
+ { cat(0xd699bb52c96da6a4, 0x7a8552f4762f222b), cat(0xd3f530b0b554f695, 0xa3665fd6ba32ef78) }, // -4817
+ { cat(0xdee162a8a1248550, 0x6204425d2b58e823), cat(0xa990f3c09110c544, 0x82b84cabc828bf93) }, // -4816
+ { cat(0x18b44eed4db6d10d, 0x1b369b7dbc47201c), cat(0x87a72966da73d103, 0x9bc6a3bca0209943) }, // -4815
+ { cat(0xc1207e487c57b4e1, 0xc5242bfc6071ccf9), cat(0xd90b75715d861b38, 0xf93dd2c7669a8ed1) }, // -4814
+ { cat(0xcdb39839fd12f71b, 0x041ceffd19f4a3fb), cat(0xada2c45ab13815c7, 0x2dcb0f05ebaed8a7) }, // -4813
+ { cat(0xd7c2e02e640f2c15, 0x9ce3f330e190832f), cat(0x8ae89d155a93449f, 0x57d5a59e56257a1f) }, // -4812
+ { cat(0xf2d166b0a0184688, 0xfb0651e7cf4d9eb1), cat(0xde40fb555db86dcb, 0xbfbc3c3089d59032) }, // -4811
+ { cat(0x5bdab88d4ce0386d, 0x959ea7eca5d7b228), cat(0xb1cd95dde4938b09, 0x66303026d4aad9c2) }, // -4810
+ { cat(0x7caefa0aa3e6938a, 0xde188656eb12f4ed), cat(0x8e3e117e507608d4, 0x51c0268576ef149b) }, // -4809
+ { cat(0x6117f6776ca41f44, 0x968da3be44eb217a), cat(0xe3968263b3f00e20, 0x82cd0a6f24b1ba92) }, // -4808
+ { cat(0xe7465ec5f0834c36, 0xded7b631d0bc1ac8), cat(0xb61201e95cc00b4d, 0x3570d525b6f49541) }, // -4807
+ { cat(0x85d1e56b26cf702b, 0xe5795e8e40967bd3), cat(0x91a801877d666f70, 0xf78d77515f2a1101) }, // -4806
+ { cat(0x094fd5783e18b379, 0x6f28974a00f0c61f), cat(0xe90ccf3f2f0a4be7, 0xf27bf21bcb76819c) }, // -4805
+ { cat(0x6dd9779364e08f94, 0x58ed45d4cd8d6b4c), cat(0xba70a5cc25a1d653, 0x286328163c5ece16) }, // -4804
+ { cat(0x57e12c75ea4d3fa9, 0xe0bdd1770ad7890a), cat(0x9526eb09b7b4ab75, 0xb9e8ecde96b23e78) }, // -4803
+ { cat(0xbfcead8976e1ff76, 0x3462e8be77bf41a9), cat(0xeea4ab42bf8778bc, 0x5ca7e164245063f3) }, // -4802
+ { cat(0x9972246df8b4cc5e, 0x904f20985fcc3487), cat(0xbeea229bcc6c6096, 0xb0864de9b6a6b65c) }, // -4801
+ { cat(0xe1281d24c6f709e5, 0x403f4d46b309c39f), cat(0x98bb4ee309f04d45, 0x5a050b215eebc516) }, // -4800
+ { cat(0x01d9c83ad7f1a96e, 0xcd32153deb42d298), cat(0xf45ee49e764d486e, 0xf66e783564ac6e8b) }, // -4799
+ { cat(0xce47d362465aedf2, 0x3dc1aa97ef68a87a), cat(0xc37f1d4b91d76d25, 0x91f1f9c45089f208) }, // -4798
+ { cat(0xa50642b505158b28, 0x3167bbacbf86ed2e), cat(0x9c65b1094179241e, 0x0e5b2e36a6d4c1a0) }, // -4797
+ { cat(0xa1a39dee6e88dea6, 0xb572c5e132717b7d), cat(0xfa3c4e75358ea030, 0x16f849f10aee029a) }, // -4796
+ { cat(0x4e1c7e58586d7eeb, 0xc45bd180f52795fe), cat(0xc8303ec42ad88026, 0x78c6a18da2580215) }, // -4795
+ { cat(0xa4e39846ad246589, 0x69e30e00c41fab32), cat(0xa026989cef1399b8, 0x609ee7a481e001aa) }, // -4794
+ { cat(0xb71c79d2241d1e07, 0x87e8d8009ce6228e), cat(0x801ee07d8c0fae2d, 0x1a18b95067e667bb) }, // -4793
+ { cat(0x8b60c2e9d361c9a5, 0xa641599a94a36a7d), cat(0xccfe33fc134c49e1, 0xc35ac21a3fd70c5f) }, // -4792
+ { cat(0xa2b3cf2175e7d484, 0x8501147baa1c5531), cat(0xa3fe8ffcdc3d07e7, 0xcf7bce7b6645a37f) }, // -4791
+ { cat(0x4ef63f4df7ecaa03, 0x9d9a76c954e3775a), cat(0x83320cca49ca6cb9, 0x72c971fc51d14f99) }, // -4790
+ { cat(0x7e56cbaff3144338, 0xfc2a57a887d25890), cat(0xd1e9ae107610adf5, 0x8475832d4fb54c28) }, // -4789
+ { cat(0x65123c8cc2769c2d, 0x968846206ca846da), cat(0xa7ee24d9f80d57f7, 0x9d2acf5772f77020) }, // -4788
+ { cat(0x1da830709b92168a, 0xded36b4d23b9d248), cat(0x86581d7b2cd77992, 0xe4223f7928c5f34d) }, // -4787
+ { cat(0xfc404d80f8e9bdaa, 0xfe1f121505f61d40), cat(0xd6f3625eae258f51, 0x6d0398c1dad65214) }, // -4786
+ { cat(0xc9cd0acd93ee3155, 0x9818db4404c4e433), cat(0xabf5e84bbe8472a7, 0x8a6947017bdea810) }, // -4785
+ { cat(0xa170d5714324f444, 0x79ad7c366a371cf6), cat(0x899186a2fed05bb9, 0x3b876c012fe55340) }, // -4784
+ { cat(0x358155820507ed3a, 0x5c48c6bd76be94bc), cat(0xdc1c0a9e648092c1, 0xf8d8acceb3088534) }, // -4783
+ { cat(0xc467779b37398a95, 0x16a09efdf89876fd), cat(0xb0166ee51d33a89b, 0x2d7a23d88f3a0429) }, // -4782
+ { cat(0xd052c615c5c7a210, 0xdee6e597fa139264), cat(0x8cdebf1db0f6207c, 0x2461b646d8fb3687) }, // -4781
+ { cat(0xe6ead6893c729ce7, 0xcb0b08f329b8ea39), cat(0xe16464fc4e569a60, 0x3a35f0715b2b8a72) }, // -4780
+ { cat(0x8588aba0fd287d86, 0x3c08d3f5bafa54fb), cat(0xb45050c9d845484c, 0xfb5e59f448efa1f5) }, // -4779
+ { cat(0x9e06efb3fdb9fe04, 0xfcd3dcc4959510c9), cat(0x904040a179d106a3, 0xfc4b7b29d3f2e7f7) }, // -4778
+ { cat(0x633e4c532f8ffcd4, 0xc7b9613a88ee8141), cat(0xe6cd34358fb4d76c, 0xc6df2b761feb0cbf) }, // -4777
+ { cat(0xe8fea375bfa663dd, 0x6c944dc86d8b9a9a), cat(0xb8a429c472f712bd, 0x6be5bc5e7fef3d65) }, // -4776
+ { cat(0xed9882c49951e97d, 0xf076a4a057a2e215), cat(0x93b687d05bf8dbca, 0xbcb7c9e53325cab7) }, // -4775
+ { cat(0x15c0d13a8ee97596, 0x4d8aa1008c37d022), cat(0xec573fb3c65af944, 0x61260fd51ea2ddf3) }, // -4774
+ { cat(0x449a40fba5879145, 0x0ad54d9a09c6401b), cat(0xbd12995c9eaf2dd0, 0x4db80caa7ee8b18f) }, // -4773
+ { cat(0x6a1500c951394104, 0x08aaa47b3b050016), cat(0x9742144a188c24a6, 0xa4933d553253c13f) }, // -4772
+ { cat(0x768801421b8ece6c, 0xdaaaa0c52b3b3356), cat(0xf20353a9c0e03aa4, 0x3a852eeeb6ec6865) }, // -4771
+ { cat(0xc5399a9b493f0b8a, 0x4888809dbc2f5c45), cat(0xc19c42ee33e69550, 0x2ed0f2589256b9ea) }, // -4770
+ { cat(0x042e15490765a2d5, 0x06d39a17c9bf7d04), cat(0x9ae368be8febaaa6, 0x8bda5b7a0eabc7ef) }, // -4769
+ { cat(0x39e35541a56f6aee, 0x715290260f98c806), cat(0xf7d24130e645ddd7, 0x462a2bf67ddfa64b) }, // -4768
+ { cat(0x2e4f7767b78c558b, 0x8ddba684d947066b), cat(0xc641cdc0b837e4ac, 0x3821bcc5317fb83c) }, // -4767
+ { cat(0x8b72c5ec92d6aad6, 0x0b161ed0add26b89), cat(0x9e9b0b00935fea23, 0x601afd6a8dffc696) }, // -4766
+ { cat(0xdf1e097a848aaaf0, 0x11bcfe1aafb71275), cat(0xfdc4de6752331038, 0x99c4c8aa7ccc70f0) }, // -4765
+ { cat(0x18e4d46203a22259, 0xa7ca64e2262c0ec4), cat(0xcb03e51f74f5a693, 0xae3706eeca3d2727) }, // -4764
+ { cat(0x471d76b4cfb4e847, 0xb96eb71b51bcd89d), cat(0xa26984192a5e1edc, 0x8b5f38bf0830ec1f) }, // -4763
+ { cat(0x6c17922a3fc3ed06, 0x2df22c15dafd7a17), cat(0x81ee0347551818b0, 0x6f7f6098d35a567f) }, // -4762
+ { cat(0xacf28376cc6cae70, 0x498379bc91959025), cat(0xcfe3387221c02780, 0xb265675aebc3bd98) }, // -4761
+ { cat(0xbd8ecf923d23bec0, 0x3acf9496dade0cea), cat(0xa64f605b4e3352cd, 0x5b8452af2302fe13) }, // -4760
+ { cat(0xfe0bd941ca82ff00, 0x2f0c76df157e70bb), cat(0x850c4d15d8290f0a, 0xaf9d0ef28268cb42) }, // -4759
+ { cat(0x3012f53610d19800, 0x4b4724982263e792), cat(0xd4e07b5626a81811, 0x18fb4b1d9d74786b) }, // -4758
+ { cat(0xf3425dc4da414666, 0xa29f5079b51cb942), cat(0xaa4d2f781eece00d, 0xad95d5b14ac39388) }, // -4757
+ { cat(0x8f684b03e1cdd1eb, 0xb54c40615db09435), cat(0x883dbf934bf0b33e, 0x2477de276f02dc6d) }, // -4756
+ { cat(0x4bda119fcfafb645, 0xeee067022f80ed21), cat(0xd9fc65b879811ec9, 0xd3f2fd0be4d160af) }, // -4755
+ { cat(0x3cae747fd9595e9e, 0x58b3859b5933f0e7), cat(0xae63849394674bd4, 0xa98f30d650a7808c) }, // -4754
+ { cat(0x63bec3997aade54b, 0x7a2937af7a8ff3ec), cat(0x8b82d0761052a310, 0x87a5c0ab73b933a3) }, // -4753
+ { cat(0x05fe05c25de30878, 0xc37525e590e65313), cat(0xdf37b3f01a1dd1b4, 0x0c3c6778b928529f) }, // -4752
+ { cat(0x9e64d1684b1c06c7, 0x02c41e5140b84276), cat(0xb292f659ae7e415c, 0xd696b92d60ed0ee5) }, // -4751
+ { cat(0x4b83dab9d5b0056c, 0x02367ea766f9cec5), cat(0x8edbf847becb677d, 0x787894244d8a7251) }, // -4750
+ { cat(0x78d2f78fbc4cd579, 0x9d23fdd8a4c2e46e), cat(0xe49326d931457262, 0x5a5a86a07c10b6e8) }, // -4749
+ { cat(0xc70f2c72fd0a4461, 0x4a83317a1d68b6be), cat(0xb6dc1f14276ac1e8, 0x48486bb39673c586) }, // -4748
+ { cat(0xd27289f5973b69e7, 0x6ecf5ac81786f898), cat(0x9249b27685ef0186, 0xa039efc2dec3046b) }, // -4747
+ { cat(0x50b743228b92430b, 0xe47ef7a68c0b275a), cat(0xea0f83f0d64b35a4, 0x338fe604979e6d79) }, // -4746
+ { cat(0xa6f902820941cf3c, 0xb6cbf95209a285e2), cat(0xbb3f9cc0ab6f5e1c, 0xf60cb803ac7ebdfa) }, // -4745
+ { cat(0xb8c73534d434a5ca, 0x2bd6610e6e1b9e4e), cat(0x95cc7d66ef8c4b4a, 0x5e709336239897fb) }, // -4744
+ { cat(0x8e0b885486baa2dd, 0x12f09b4a49c5ca16), cat(0xefad95717f46dedd, 0x63e751f038f4265f) }, // -4743
+ { cat(0xd80939dd38954f17, 0x425a15d507d16e78), cat(0xbfbe112799057f17, 0x831f74c02d901eb2) }, // -4742
+ { cat(0x466dc7e42d443f45, 0xceae77dd9fdabec7), cat(0x9964da86140465ac, 0x68e5f70024734bc2) }, // -4741
+ { cat(0xa3e2d96d1539fed6, 0x177d8c95cc91313e), cat(0xf56e2a7020070913, 0xdb098b336d854603) }, // -4740
+ { cat(0xb64f1457442e6578, 0x12cad6de3d40f432), cat(0xc45821f34cd26da9, 0x7c07a28f8ad104cf) }, // -4739
+ { cat(0xf83f43790358512c, 0xdbd578b1ca9a5cf5), cat(0x9d134e5c3d752487, 0x966c820c6f0d9d72) }, // -4738
+ { cat(0x8d32058e6bc081e1, 0x5fbbf44faa9094ba), cat(0xfb5216f9fbeea0d8, 0xf0ad9ce0b1af6251) }, // -4737
+ { cat(0xd75b37a5230067e7, 0x7fc9903fbba6dd62), cat(0xc90e78c7fcbee713, 0xf3be171a27bf81da) }, // -4736
+ { cat(0xac48f950e8cd1fec, 0x663ad9cc961f1782), cat(0xa0d8609ffd6585a9, 0x8fcb45ae8632ce48) }, // -4735
+ { cat(0xf03a610d870a7ff0, 0x51c8ae3d44e5ac68), cat(0x80ad1a1997846aee, 0x0ca29e253828a506) }, // -4734
+ { cat(0x805d6815a4dd9980, 0x82dab06207d5e0a6), cat(0xcde1c35c25a0ab16, 0x7a9dc9d526a76e71) }, // -4733
+ { cat(0xcd178677b717ae00, 0x68aef3819fde4d51), cat(0xa4b49c49b7b3bc11, 0xfbb16e441eec585a) }, // -4732
+ { cat(0xa412d1f95f4624cd, 0x208bf6014cb1d774), cat(0x83c3b03af95c9674, 0xc95abe9ce589e048) }, // -4731
+ { cat(0xa01e1cc23209d47b, 0x674656687ab62587), cat(0xd2d2b3918efa8a54, 0x755dfdc7d5a966da) }, // -4730
+ { cat(0x19b1b09b5b3b1062, 0xb90511ed2ef81e06), cat(0xa8a88fa7a5953b76, 0xc44b316caaedebe2) }, // -4729
+ { cat(0x7af48d4915c8d9e8, 0x94040e5758c67e6b), cat(0x86ed3fb951442f92, 0x36a28df088be564e) }, // -4728
+ { cat(0x91874874efa7c30d, 0xb9a016f227a3fd78), cat(0xd7e1ff8ee86d18e9, 0xf104164da796f07d) }, // -4727
+ { cat(0x413906c3f2ec9c0a, 0xfae678c1b94ffdf9), cat(0xacb4cc72538a7a54, 0xc0d011d7b9458d31) }, // -4726
+ { cat(0x9a9405698f23b008, 0xc8b8609afaa664c8), cat(0x8a2a3d2842d52eaa, 0x33d9a7dfc76ad75a) }, // -4725
+ { cat(0x5db9a2427e9f800e, 0x0df3cdc4c43d6e0c), cat(0xdd1061da04884aa9, 0xec8f72ffa577bef7) }, // -4724
+ { cat(0x7e2e1b68654c6671, 0xa4c30b03d03124d6), cat(0xb0d9e7e19d39d554, 0xbd3f8f32eac6325f) }, // -4723
+ { cat(0xfe8b49205109eb8e, 0x1d68d59ca68db712), cat(0x8d7b1fe7b0fb1110, 0x97660c28bbd1c1e5) }, // -4722
+ { cat(0xfdaba833b4dcac16, 0x957488faa415f1b6), cat(0xe25e9972b4c4e81a, 0x8bd679dac61c696f) }, // -4721
+ { cat(0xcaefb9c2f716f012, 0x112a072ee9ab27c5), cat(0xb5187ac22a372015, 0x3cab94af04e3878c) }, // -4720
+ { cat(0x6f262e359278c00e, 0x74219f58baef5304), cat(0x90e06234ee928010, 0xfd56108c03e9393d) }, // -4719
+ { cat(0xb1d6b055b72799b0, 0xb9cf655ac4b21e6d), cat(0xe7cd69ee4a84001b, 0x2ef01a799fdb8ec8) }, // -4718
+ { cat(0x8e4559de2c1fae26, 0xfb0c51156a281857), cat(0xb971218b6ed00015, 0xbf267b947fe2d8a0) }, // -4717
+ { cat(0xd8377b18234c8b52, 0x627040ddee8679df), cat(0x945a813c58a66677, 0xcc1ec943998246e6) }, // -4716
+ { cat(0x8d2591c0387a7883, 0xd0b39afcb0d72965), cat(0xed5d9b93c10a3d8c, 0x79cadb9f5c03a4a4) }, // -4715
+ { cat(0x70eadb002d2ec6cf, 0xda2948ca27128784), cat(0xbde47c763408313d, 0x2e3be2e5e3361d50) }, // -4714
+ { cat(0x8d88af3357589f0c, 0xae876d6e85a86c6a), cat(0x97e9fd2b5cd35a97, 0x582fe8b7e8f81773) }, // -4713
+ { cat(0x15a77eb88bc0fe7a, 0xb0d8af173c40ad76), cat(0xf30ffb7894855dbe, 0xf37fdabfdb268bec) }, // -4712
+ { cat(0x4485fefa096731fb, 0xc0ad58df6366f12b), cat(0xc2732f93aa044aff, 0x2933156648eba323) }, // -4711
+ { cat(0x039e6594d4528e63, 0x008aad7f82b8c0ef), cat(0x9b8f5942ee69d598, 0xedc277850722e8e9) }, // -4710
+ { cat(0x05ca3c2153b74a38, 0x00dde2659df467e5), cat(0xf8e55b9e4a42ef5b, 0x1603f26e71d174a8) }, // -4709
+ { cat(0x37d4fce7762c3b60, 0x00b181eae4c38651), cat(0xc71de2e508358c48, 0xde698ebec1745d53) }, // -4708
+ { cat(0x2caa63ec5e89c919, 0x9a279b22509c6b74), cat(0x9f4b1bea6cf7a36d, 0x7ebad8989ac37ddc) }, // -4707
+ { cat(0xe1109fe09742db5c, 0x29d8f836e760abed), cat(0xfede9310ae59057b, 0xfdf7c0f42ad262f9) }, // -4706
+ { cat(0xb40d4cb3ac357c49, 0xbb13f9c585e6eff1), cat(0xcbe54273bead9dfc, 0xcb2c9a5cef0eb594) }, // -4705
+ { cat(0x900aa3c2f02ac9d4, 0x95a9949e04b8bff4), cat(0xa31dcec2fef14b30, 0xa28a151725a55e10) }, // -4704
+ { cat(0x4008830259bbd4aa, 0x115476e4d093ccc3), cat(0x827e3f02658dd5c0, 0x820810df5151180d) }, // -4703
+ { cat(0xccda6b36f5f95443, 0x4eed8b07b41fae05), cat(0xd0c9fe6a3c1622cd, 0x9cd9b498821b59ae) }, // -4702
+ { cat(0xa3e1ef5f2b2ddd02, 0xa58ad59fc34c8b37), cat(0xa707febb6344e8a4, 0x7d7af6e06815e158) }, // -4701
+ { cat(0xe9818c4c228b1735, 0x513bde19690a08f9), cat(0x859ffefc4f6a53b6, 0xcac8c5805344b446) }, // -4700
+ { cat(0x0f35ad469dab5855, 0x4ec63028a8100e5b), cat(0xd5cccb2d4bdd52be, 0x11413c00853aba0b) }, // -4699
+ { cat(0x7291576bb155e044, 0x3f04f353b9a671e2), cat(0xab0a3c243cb10efe, 0x743430006a9561a2) }, // -4698
+ { cat(0xf54112bc8dde4d03, 0x659d8f762e1ec182), cat(0x88d4fce9ca273f31, 0xf6902666bbaab481) }, // -4697
+ { cat(0xbb9b512dafca14d2, 0x3c2f4bf049cacf36), cat(0xdaee6176103ecb83, 0x2419d70ac5dded9c) }, // -4696
+ { cat(0x9615da8af30810a8, 0x3025d659d4a23f5f), cat(0xaf251ac4d9cbd602, 0x8347df3bd17e57b0) }, // -4695
+ { cat(0x11ab153bf5a00d53, 0x59b7deae43b4ff7f), cat(0x8c1daf03e16fde68, 0x69064c2fdacb795a) }, // -4694
+ { cat(0x1c44eec655cce21e, 0xf5f2fde39f87ff31), cat(0xe02f7e6c9be630a7, 0x0e7079e62adf2890) }, // -4693
+ { cat(0xe36a589eab0a4e7f, 0x2b28cb1c7f9fff5b), cat(0xb35931f07cb826ec, 0x0b8d2e51bbe5ba0c) }, // -4692
+ { cat(0x4f8846e555a1d865, 0xbc20a27d32e665e2), cat(0x8f7a8e59fd601f23, 0x3c70f1dafcb7c80a) }, // -4691
+ { cat(0xb273a4a2229c8d6f, 0x93676a61eb0a3c9d), cat(0xe590e3c32f0031d1, 0xfa4e4fc4c78c7343) }, // -4690
+ { cat(0xc1f61d4e8216d78c, 0x75ec551b226e96e4), cat(0xb7a71c9c2599c174, 0xc83ea6370609f5cf) }, // -4689
+ { cat(0x0191b10b9b45793d, 0x2b237748e85878b7), cat(0x92ec16e35147cdf7, 0x069884f8d1a19173) }, // -4688
+ { cat(0xcf4f81ac2ba25b95, 0x11d25874a6f3f457), cat(0xeb1357d21ba61658, 0x0a8da18e1c35b584) }, // -4687
+ { cat(0x3f72ce23561b7c77, 0x41751390858ff6ac), cat(0xbc0f7974e2eb4513, 0x3ba4813e7cf7c46a) }, // -4686
+ { cat(0xff8f0b4f7815fd2c, 0x345da9406ad99223), cat(0x9672c790b589040f, 0x62ea00feca5fd054) }, // -4685
+ { cat(0xff4b454bf35661e0, 0x53c90ecd77c2836b), cat(0xf0b7a5b455a8067f, 0x04a99b3143cc8087) }, // -4684
+ { cat(0xcc3c376ff5deb4b3, 0x763a723df9686923), cat(0xc092eaf6aaecd1ff, 0x36ee15c1030a006c) }, // -4683
+ { cat(0xa3635f8cc4b22a29, 0x2b61f4fe6120541c), cat(0x9a0f225eef23db32, 0x9258116735a199f0) }, // -4682
+ { cat(0x9f0565ae078376a8, 0x456987fd6833b9c6), cat(0xf67e9d64b1d2f850, 0xea26823ebc35c31a) }, // -4681
+ { cat(0x7f37848b3935f886, 0x9dee0664535c949f), cat(0xc5321783c1759373, 0xee8534fefcf7cf48) }, // -4680
+ { cat(0xcc2c6a08fa91939e, 0xe4be6b8375e3aa19), cat(0x9dc1ac69679142c3, 0x25375d98ca5fd906) }, // -4679
+ { cat(0x137a434190e8ec31, 0x6dfd78d256391027), cat(0xfc6913dbd8e86ad1, 0xd525628e10995b3e) }, // -4678
+ { cat(0x0f95029ada53f027, 0x8b312d7511c7401f), cat(0xc9eda97cad86bbdb, 0x10eab53e73ade298) }, // -4677
+ { cat(0x72dd9baf150ff352, 0xd5c0f12a749f6680), cat(0xa18aedfd579efcaf, 0x40bbc431f624b546) }, // -4676
+ { cat(0x5be47c8c10d98f75, 0x77cd8dbb907f8533), cat(0x813bf197794bfd59, 0x0096368e5e83c438) }, // -4675
+ { cat(0x2ca0c746815c18bb, 0xf2e27c5f4d98d51e), cat(0xcec64f58c2132ef4, 0xcdbd2416fd9fa05a) }, // -4674
+ { cat(0x8a1a39053449ad63, 0x28b5304c3e13ddb2), cat(0xa56b72ad680f58c3, 0xd7ca834597b2e6ae) }, // -4673
+ { cat(0x3b482d9dc36e244f, 0x53c426a364dcb15b), cat(0x8455f5578672ad69, 0x796ecf6adfc25225) }, // -4672
+ { cat(0x5ed9e296057d06e5, 0x52d371056e2de891), cat(0xd3bcbbbf3d8448a8, 0xc24ae577cc6a1d08) }, // -4671
+ { cat(0xb247e87804640584, 0x4242c0d124f186db), cat(0xa963c965cad03a20, 0x9b6f1df97054e406) }, // -4670
+ { cat(0xc1d320600383379d, 0x01cf00a750c138af), cat(0x87830784a2402e80, 0x7c58e4c78d10b66b) }, // -4669
+ { cat(0x361e9a3338d1f294, 0xcfb19aa54e01f44b), cat(0xd8d1a5a10399e400, 0xc6f4a13f481abd79) }, // -4668
+ { cat(0x5e7ee1c293db2877, 0x0c8e15510b34c36f), cat(0xad748480cfae5000, 0x9f2a1a99067bcac7) }, // -4667
+ { cat(0x4b98b49ba97c205f, 0x3d3e777408f702c0), cat(0x8ac39d33d9584000, 0x7f54e214052fd56c) }, // -4666
+ { cat(0x78f4542c426033cb, 0x9530bf200e580466), cat(0xde05c852f55a0000, 0xcbbb03533b7fbbe0) }, // -4665
+ { cat(0xfa5d1023684cf63c, 0x775a32800b799d1e), cat(0xb19e39dbf77b3333, 0xd62f35dc2f996319) }, // -4664
+ { cat(0x9517401c5370c4fd, 0x2c4828666f947db2), cat(0x8e182e4992c8f5c3, 0x11bf5e49bfade8e1) }, // -4663
+ { cat(0x21beccfa1f1ad4c8, 0x46d9da3d7f53fc4f), cat(0xe359e3a8eadb22d1, 0xb5fefd42cc49749c) }, // -4662
+ { cat(0x1aff0a61b27bdd6d, 0x057b14fdff766373), cat(0xb5e182ed88af4f0e, 0x2b326435703ac3b0) }, // -4661
+ { cat(0x48cc084e2863178a, 0x6ac8dd97ff91e929), cat(0x9181358ad3bf7271, 0xbc28502ac02f02f3) }, // -4660
+ { cat(0x414673b0409e8c10, 0xaadafc2665b641da), cat(0xe8cebc1152cbea4f, 0x9373b37799e4d185) }, // -4659
+ { cat(0x676b8fc033b209a6, 0xef1596851e2b67e2), cat(0xba3efcdaa8a321d9, 0x42c2f5f947ea4137) }, // -4658
+ { cat(0xb922d9668fc1a152, 0x58de12041822b982), cat(0x94ff30aeed4f4e47, 0x689bf7fa9fee9a92) }, // -4657
+ { cat(0xf5048f0a7f9c3550, 0x8e301cd359d128cf), cat(0xee651ab17bb216d8, 0xa75ff32a997dc41d) }, // -4656
+ { cat(0x90d0726ecc7cf773, 0xa4f34a42ae40ed73), cat(0xbeb7488dfc8e78ad, 0x52b328eee13169b1) }, // -4655
+ { cat(0xda405b8bd6ca5f8f, 0xb72908355833f129), cat(0x9892a07196d8608a, 0xa88f53f24dc1215a) }, // -4654
+ { cat(0x5d33c5ac8add65b2, 0xbea80d2226b981da), cat(0xf41dcd828af3cdaa, 0xa74bb983af9b6891) }, // -4653
+ { cat(0x175c9e23a24ab7c2, 0x32200a81b89467e2), cat(0xc34b0aced58fd7bb, 0xb90961362615ed41) }, // -4652
+ { cat(0x12b07e82e83bc634, 0xf4e66ece2d43864f), cat(0x9c3c08a577a6462f, 0xc73ab42b51ab2434) }, // -4651
+ { cat(0xb780ca6b0d2c7054, 0xbb0a4ae37b9f3d4a), cat(0xf9f9a76f25d6d6b2, 0xd85ded121c4506b9) }, // -4650
+ { cat(0x5f9a3b88d756c043, 0xc8d508b5fc7f643b), cat(0xc7faec58eb12455b, 0xe04b240e7d040561) }, // -4649
+ { cat(0x19482fa0ac45669c, 0xa0aa6d5e63991cfc), cat(0x9ffbf04722750449, 0x803c1cd864033781) }, // -4648
+ { cat(0xf5404c3446d570fa, 0x9aaa489705c1c7fa), cat(0xfff98071d0bb3a0f, 0x3393615a399ebf34) }, // -4647
+ { cat(0x91003cf69f11272e, 0xe221d3ac049b0662), cat(0xccc799f4a6fc2e72, 0x8fa91aae947eff5d) }, // -4646
+ { cat(0x0d99ca5ee5a7528b, 0xe81b0fbcd07c051b), cat(0xa3d2e19085968b8e, 0xd954155876cbff7e) }, // -4645
+ { cat(0x7147d518b7b90ed6, 0x5348d963d9fcd0e3), cat(0x830f1ada04786fa5, 0x7aa9aaad2bd665fe) }, // -4644
+ { cat(0x4ed954f4592817bd, 0x520e289fc32e1b04), cat(0xd1b1c49007271908, 0xc442aaaeac8a3cca) }, // -4643
+ { cat(0xa57aaa5d142012fd, 0xdb3e86e635be7c03), cat(0xa7c16a0cd285ada0, 0x9d02222556d4fd6e) }, // -4642
+ { cat(0x846221e41019a8cb, 0x15cb9f1e91653003), cat(0x863454d70ed157b3, 0xb0ce81b778aa6458) }, // -4641
+ { cat(0x6d69cfd34cf5dade, 0x8945cb641bd5199d), cat(0xd6ba215817b5591f, 0x814a69258ddd6d5a) }, // -4640
+ { cat(0x2454a642a3f7e24b, 0xa104a2b67caa7ae4), cat(0xabc81aacdfc4474c, 0x676eba84717df115) }, // -4639
+ { cat(0xe9dd51cee9931b6f, 0xb403b55eca21fbea), cat(0x896ce223e6369f70, 0x52befb9d2797f410) }, // -4638
+ { cat(0x0fc882e4a8eb5f19, 0x2005eefe10365fdd), cat(0xdbe169d309f0ff1a, 0x1dfe5f61d8f3201b) }, // -4637
+ { cat(0x7306cf1d53ef7f47, 0x4cd18bfe735eb317), cat(0xafe787dc07f3ff48, 0x17feb2b4ad8f4ce2) }, // -4636
+ { cat(0x28d23f4aa98c65d2, 0xa3dad66529188f46), cat(0x8cb9397cd3299906, 0x79988ef6f13f70b5) }, // -4635
+ { cat(0x41506544427a3c84, 0x395e23d50e8db209), cat(0xe1285bfaeb75c1a3, 0xf5c0e4be4ecbe788) }, // -4634
+ { cat(0xcdd9ea9d01fb639c, 0xfab1b6440ba48e6e), cat(0xb4204995892b014f, 0xf7cd83cb723cb939) }, // -4633
+ { cat(0x717b221734c91c7d, 0x955af8366fb6d858), cat(0x9019d477a0ef343f, 0xf971363c5b63c761) }, // -4632
+ { cat(0x4f2b69bebadb60c8, 0xeef7f38a4c57c08c), cat(0xe68fba59017eb9ff, 0xf581f06092393f02) }, // -4631
+ { cat(0xa5bc5498957c4d6d, 0x8bf98fa1d6ac9a0a), cat(0xb872fb7a679894cc, 0xc467f38074fa98ce) }, // -4630
+ { cat(0x1e3043ad44637124, 0x6ffad94e4556e1a2), cat(0x938f2f951fad43d7, 0x03865c66c3fbad72) }, // -4629
+ { cat(0xc9e6d2aed3d24ea0, 0xb32af54a088b029c), cat(0xec184c21cc486c8b, 0x38d6fa3e065f7be9) }, // -4628
+ { cat(0x6e5242257641d880, 0x8f55910806d59bb0), cat(0xbce03ce7d6a056d5, 0xc71261cb384c6321) }, // -4627
+ { cat(0xf1db681df834ad33, 0xa5de0da00577afc0), cat(0x9719ca531219df11, 0x6c0eb4a293704f4d) }, // -4626
+ { cat(0x4fc5736326baaeb9, 0x0963490008bf7f99), cat(0xf1c2dd51b68fcb4f, 0x134aba9db8b3b216) }, // -4625
+ { cat(0xa6378f8285622560, 0xd44f6d99a09932e1), cat(0xc168b10e2ba63c3f, 0x42a22ee493c2f4de) }, // -4624
+ { cat(0xb82c72ced11b511a, 0x4372be14807a8f1b), cat(0x9aba273e8951c9cc, 0x354e8bea0fcf2a4b) }, // -4623
+ { cat(0x59e0b7b14e921b5d, 0x38b7968733f74b5d), cat(0xf7903eca754fa946, 0xbbb0dfdce61843ac) }, // -4622
+ { cat(0x7b1a2c8dd874e2b0, 0xfa2c786c2992a2b1), cat(0xc60cff085dd95438, 0x9627197d84e03623) }, // -4621
+ { cat(0xfc14f07179f71bc0, 0xc8239389badbb55b), cat(0x9e70cc06b17aa9c6, 0xde85adfe03e691b5) }, // -4620
+ { cat(0xc687e71bf6582c67, 0xa69f5275f7c5eef7), cat(0xfd8146711bf7760a, 0xfda2affcd30a82bc) }, // -4619
+ { cat(0x053985aff84689ec, 0x854c41f7f96b2593), cat(0xcacdd1f4165f91a2, 0x64822663dc086897) }, // -4618
+ { cat(0x376137bff9d207f0, 0x6aa367f99455b7a9), cat(0xa23e419011e60e1b, 0x839b51e97cd386df) }, // -4617
+ { cat(0x92b42c9994a80659, 0xeee91ffadd115fba), cat(0x81cb67a674b80b49, 0x3615db2130a938b2) }, // -4616
+ { cat(0xb786adc287733d5c, 0xb174fff7c81bcc5d), cat(0xcfabd90a5459aba8, 0x56895e9b810ec11d) }, // -4615
+ { cat(0xc60557ced2c2977d, 0x5ac3fff96ce309e4), cat(0xa6231408437aefb9, 0xded44baf9a723417) }, // -4614
+ { cat(0xd19ddfd8a89bac64, 0x489cccc78a4f3b1d), cat(0x84e8dcd3692f262e, 0x4bdd0959485b5cdf) }, // -4613
+ { cat(0x1c2fcc8dda92ad6d, 0x40fae13f43b1f82e), cat(0xd4a7c7b8a84b704a, 0x12fb422873c56166) }, // -4612
+ { cat(0xb0263d3e4875578a, 0x9a624dcc3627f9be), cat(0xaa1fd2fa203c59d4, 0xdbfc34ed296ab451) }, // -4611
+ { cat(0x2684fdcb6d2aac6e, 0xe1e83e3cf81ffaff), cat(0x88197594e696ae43, 0xe3302a5754555d0e) }, // -4610
+ { cat(0x70d4c9457b777a4b, 0x030d30618cfff7fe), cat(0xd9c255bb0a8ab06c, 0x9eb376f2208894e3) }, // -4609
+ { cat(0x5a43d43795f92ea2, 0x68d759e7a3fff998), cat(0xae3511626ed559f0, 0x7ef5f8c1b3a0771c) }, // -4608
+ { cat(0xe1cfdcf944c75881, 0xed7914b94ffffae0), cat(0x8b5da781f24447f3, 0x98c4c7015c805f49) }, // -4607
+ { cat(0x3619618ed4722736, 0x48c1bac219999166), cat(0xdefc3f36506d3fec, 0x27a13e6894009876) }, // -4606
+ { cat(0x91ade7a576c1b8f8, 0x3a349568147adab8), cat(0xb26365c50d243323, 0x52e765207666e05e) }, // -4605
+ { cat(0xa7be52eac567c72c, 0xfb5d445343957bc7), cat(0x8eb5eb040a835c1c, 0x4252b74d2b85804b) }, // -4604
+ { cat(0x0c63b7de08a60b7b, 0x2bc86d5205bbf93e), cat(0xe45644d34405602d, 0x36eabee1df3c0079) }, // -4603
+ { cat(0x3d1c931806eb3c62, 0x896d24419e2ffa98), cat(0xb6ab6a429cd119bd, 0xc58898b4b29666c7) }, // -4602
+ { cat(0x974a0f466bef6382, 0x078a8367b1bffbad), cat(0x9222bb687d741497, 0xd13a13c3c211ebd2) }, // -4601
+ { cat(0xf2101870acb238d0, 0x0c10d23f82ccc5e1), cat(0xe9d12bda62535426, 0x1b901f9f9ce97950) }, // -4600
+ { cat(0x5b40138d56f4fa40, 0x09a70e9935709e4e), cat(0xbb0dbcaeb50f7684, 0xe2d9b2e617212dda) }, // -4599
+ { cat(0xaf66760aabf72e99, 0xa15272142ac07ea5), cat(0x95a496f22a72c537, 0x1be15beb45b424ae) }, // -4598
+ { cat(0x18a3f0111325175c, 0x3550b686aacd976e), cat(0xef6dbe5043ead524, 0xf968931209203ab1) }, // -4597
+ { cat(0xad4ff340dc1dac49, 0xc4409205557145f1), cat(0xbf8afea69cbbddb7, 0x2ded4274d419c88d) }, // -4596
+ { cat(0xf10cc29a49b156a1, 0x69cd419dddf437f4), cat(0x993bfeebb0964af8, 0xf18a9b90a9ae3a0a) }, // -4595
+ { cat(0x4e7ad0f6dc4ef102, 0x42e202962fed2653), cat(0xf52ccb12b423ab27, 0xe8ddc5b442b05cde) }, // -4594
+ { cat(0x0b9573f8b03f2735, 0x024e6878265751dc), cat(0xc423d5a8901c88ec, 0xba4b04903559e3e5) }, // -4593
+ { cat(0x6faac32d59cc1f5d, 0x9b71ed2ceb790e4a), cat(0x9ce977ba0ce3a0bd, 0x61d59d402aae4fea) }, // -4592
+ { cat(0xe5de05155c79cbc8, 0xf8b64847df2816dd), cat(0xfb0f25f67b05cdfb, 0xcfbc2ecd1116e643) }, // -4591
+ { cat(0xb7e4d0dde394a307, 0x2d5ea0397f53457d), cat(0xc8d8eb2b959e3e63, 0x0c968bd740df1e9c) }, // -4590
+ { cat(0x5fea40b182dd4f38, 0xf118802dff75d131), cat(0xa0ad88efaae4feb5, 0xa3aba3129a4c187d) }, // -4589
+ { cat(0x4cbb66f468b10c2d, 0x8dad3357ff917427), cat(0x808ad3f2ef1d9891, 0x4fbc8275483ce064) }, // -4588
+ { cat(0xe12bd7ed744e79e2, 0x7c48522665b586a5), cat(0xcdaaecb7e4fc274e, 0xe5fa6a5540616706) }, // -4587
+ { cat(0x80efdff129d86181, 0xfd06a81eb7c46bb8), cat(0xa488bd5fea6352a5, 0x84c85511004dec05) }, // -4586
+ { cat(0x33f3198dbb138134, 0xca6bb9b22c9d22f9), cat(0x83a0977feeb5dbb7, 0x9d6d10da66a4bcd1) }, // -4585
+ { cat(0x1feb5c15f81f3521, 0x43df8f837a9504c2), cat(0xd29a8bffe4562c58, 0xfbe1b490a43ac7b5) }, // -4584
+ { cat(0xe655e344c67f5db4, 0x364c72cf954403ce), cat(0xa87ba3331d11bd13, 0xfcb49073b6956c90) }, // -4583
+ { cat(0x1eab1c370532b15c, 0xf83d28a61103363f), cat(0x86c94f5c1741640f, 0xfd5d405c921123a7) }, // -4582
+ { cat(0xcaab605808511bc7, 0xf3950dd6819ebd31), cat(0xd7a87ef9becf067f, 0xfbc866fa834e9f71) }, // -4581
+ { cat(0x3bbc4d1339da7c9f, 0xf610d7dece18975a), cat(0xac86cbfaff0c0533, 0x2fd3859535d87f8e) }, // -4580
+ { cat(0x2fc9d74294aeca19, 0x91a71318a4e07915), cat(0x8a056ffbff3cd0f5, 0xbfdc6addc4ad32d8) }, // -4579
+ { cat(0xe60fbed0ede4768f, 0x4f71b8276e33f4ee), cat(0xdcd57ff998614e55, 0xffc71162d4485159) }, // -4578
+ { cat(0xeb3fcbda57e9f872, 0xa5f49352be8ff725), cat(0xb0aaccc7ad1aa511, 0x996c0de8a9d37447) }, // -4577
+ { cat(0x22996fe1dfee605b, 0xb7f6dc42320cc5b8), cat(0x8d55709fbdaeea74, 0x7abcd7ed54a929d3) }, // -4576
+ { cat(0x6a8f1969664a33c5, 0xf324939d1ce13c59), cat(0xe2224dcc62b17720, 0xc461597bbaa842eb) }, // -4575
+ { cat(0xeed8e1211ea1c304, 0xc283a94a7d80fd14), cat(0xb4e83e3d1bc12c1a, 0x36b447962eed0255) }, // -4574
+ { cat(0xbf13e74db21b026a, 0x35362108646730dd), cat(0x90b9cb6416342348, 0x2bc36c78258a6844) }, // -4573
+ { cat(0xcb530baf835e6a43, 0x88569b40a0a51afa), cat(0xe78fabd356b9d20d, 0x12d24726a2770d3a) }, // -4572
+ { cat(0xd5dc095935e521cf, 0xa045490080841595), cat(0xb93fbca9122e41a4, 0x0f0e9f521b9270fb) }, // -4571
+ { cat(0xde49a1142b1db4a6, 0x19d107339a034477), cat(0x9432fd540e8b67b6, 0x7272190e7c75272f) }, // -4570
+ { cat(0x96dc34ed11c92109, 0xc2e80b85c3386d8c), cat(0xed1e6220174572bd, 0x83e9c1b0c721d84c) }, // -4569
+ { cat(0xabe35d8a74a0e73b, 0x02533c6b02938ad6), cat(0xbdb1e819ac378efe, 0x032167c09f4e46a3) }, // -4568
+ { cat(0x231c4ad52a1a5295, 0x9b75c9ef3542d578), cat(0x97c1867af02c7264, 0xcf4dec9a190b6bb6) }, // -4567
+ { cat(0x6b6077bb76908422, 0x92560fe5220488c0), cat(0xf2cf3d9180471d6e, 0x187cadc35b457923) }, // -4566
+ { cat(0x55e6c62f920d3682, 0x0eab3fea819d3a33), cat(0xc23f6474669f4abe, 0x79fd57cf7c37941c) }, // -4565
+ { cat(0x11856b5941a42b9b, 0x3eef6655347dc829), cat(0x9b65e9f6b87f6efe, 0xc7fddfd9302c767d) }, // -4564
+ { cat(0x4f3bdef535d378f8, 0x64b23d5520c94042), cat(0xf8a30ff127324b31, 0x3ffc995b804723fb) }, // -4563
+ { cat(0x72964bf75e42c72d, 0x1d5b64441a3a99ce), cat(0xc6e8d98db8f508f4, 0x33307aaf99d2832f) }, // -4562
+ { cat(0x28783cc5e50238f0, 0xe4491d03482ee172), cat(0x9f20ae0afa5da0c3, 0x5c26c88c7b0ecf59) }, // -4561
+ { cat(0xda59fad63b36c181, 0x6d41c805404b0250), cat(0xfe9ab0119095ce05, 0x603e0dad91b14bc1) }, // -4560
+ { cat(0xe1e195782f5f0134, 0x5767d33766a26840), cat(0xcbaef3414077d804, 0x4cfe7157a7c10967) }, // -4559
+ { cat(0xb4b477935918cdc3, 0x791fdc2c521b8699), cat(0xa2f25c3433931336, 0xa3fec112ec9a6dec) }, // -4558
+ { cat(0x2a29f942adad7169, 0x2db31689db49387b), cat(0x825b7cf68fa8dc2b, 0xb665674256e1f18a) }, // -4557
+ { cat(0x76a98ed115e24f0e, 0xaf84f0dc920ec0c4), cat(0xd092618a7f749379, 0x23d57203be364f43) }, // -4556
+ { cat(0x5eee0bda77e83f3e, 0xf2d0c0b074d89a37), cat(0xa6db813b992a0f94, 0x1caac19c982b729c) }, // -4555
+ { cat(0xb258097b93203298, 0xc2409a26c3e07b5f), cat(0x857c6762e0ee72dc, 0xe3bbce16e022c216) }, // -4554
+ { cat(0x1d59a8c5b8338427, 0x9d3429d79fcd9231), cat(0xd593d89e34b0b7c7, 0xd2c6168b00379cf1) }, // -4553
+ { cat(0x177aed6af9c2d01f, 0xb0f687dfb30adb5b), cat(0xaadcad4b5d5a2c9f, 0xdbd1aba26692e3f4) }, // -4552
+ { cat(0x45fbf1226168a67f, 0xc0c5397fc26f15e2), cat(0x88b08aa2b114f07f, 0xe30e22e8520f1cc3) }, // -4551
+ { cat(0x3cc64e9d68a770cc, 0x67a1f59937182304), cat(0xdab411044e87e733, 0x04e36b0d50182e05) }, // -4550
+ { cat(0x309ea54aba1f8d70, 0x52e7f7adc5ace8d0), cat(0xaef674037206528f, 0x371c55a440135804) }, // -4549
+ { cat(0xf3b21dd561b2d78d, 0x0f1ff957d15720a6), cat(0x8bf85ccf8e6b753f, 0x5f49de1d000f799c) }, // -4548
+ { cat(0x1f8362ef02b7bf48, 0x1833288c8225010a), cat(0xdff3c7b27d78bb98, 0x9876302e667f28fb) }, // -4547
+ { cat(0xe602b58c022c9906, 0x79c286d6ce8400d5), cat(0xb3296c8ecac6fc7a, 0x1391c0251ecc20c8) }, // -4546
+ { cat(0x1e68913cce8a1405, 0x2e3538abd8699a44), cat(0x8f5456d8a238c9fb, 0x42db001db23ce707) }, // -4545
+ { cat(0x970db52e1743533b, 0x7d21f446270f5d39), cat(0xe553be2769f4765e, 0xd15e6695e9fb0b3e) }, // -4544
+ { cat(0xdf3e2a8b45cf75c9, 0x30e7f69e85a5e42e), cat(0xb77631b921905eb2, 0x4118521187fc08fe) }, // -4543
+ { cat(0x7f64eed5d172c4a0, 0xf3ecc54b9e1e5025), cat(0x92c4f4941ad9e55b, 0x6746a80e06633a65) }, // -4542
+ { cat(0x656e4aefb5846dce, 0x53146edf6363b36e), cat(0xead4ba86915ca22b, 0xd8710ce33d6b90a2) }, // -4541
+ { cat(0x512508bfc469f171, 0xdc1058b2b5e95c58), cat(0xbbdd62054116e823, 0x138da3e8fdefa6e8) }, // -4540
+ { cat(0x40ea6d6636bb278e, 0x49a6ad5bc4bab046), cat(0x964ab4d100df201c, 0x0fa48320cb261f20) }, // -4539
+ { cat(0x9b10af09f12b727d, 0x42a44892d45de6d7), cat(0xf07787b4ce31ccf9, 0xb2a0d1ce11d69833) }, // -4538
+ { cat(0xaf408c07f422c1fd, 0xcee9d3a8a9e4b8ac), cat(0xc05f9fc3d827d72e, 0x2880a7d80e45468f) }, // -4537
+ { cat(0xbf66d66cc34f0197, 0xd8bb0fba2183c6f0), cat(0x99e6196979b978f1, 0xba00864671d1053f) }, // -4536
+ { cat(0x323e23e1387e68f2, 0xf45e7f90359fa4b3), cat(0xf63cf5758f8f27e9, 0x299a7070b61b3b99) }, // -4535
+ { cat(0xf4fe831a939853f5, 0x904b99402ae61d5c), cat(0xc4fd912ad93f5320, 0xee1526c091af62e0) }, // -4534
+ { cat(0x5d9868e20fad0ff7, 0xa6a2e1002251b116), cat(0x9d97a7557a990f4d, 0x8b441f00748c4f1a) }, // -4533
+ { cat(0x2f5a4169b2ae7ff2, 0xa437ce669d4f81bd), cat(0xfc25d888c428187c, 0x12069800ba7a182a) }, // -4532
+ { cat(0x25e1cdee288b998e, 0xe9c63eb87dd93498), cat(0xc9b7e06d69b9ad30, 0x0e6baccd61fb4688) }, // -4531
+ { cat(0x1e4e3e58206fae0b, 0xee38322d317a9079), cat(0xa15fe6bdee2e2426, 0x71efbd711b2f6ba0) }, // -4530
+ { cat(0x7ea4feace6bfbe6f, 0xf1c68e8a8dfba6c8), cat(0x81198564be8b501e, 0xc18c978daf5922e6) }, // -4529
+ { cat(0x3107fde17132ca4c, 0xb60a7daa7cc5d7a5), cat(0xce8f3bd4641219ca, 0xcf4758e2b22837d7) }, // -4528
+ { cat(0x273997e78dc23b70, 0x91a1fe21fd6b12eb), cat(0xa53f6310500e7b08, 0xa5d2ad8228202cac) }, // -4527
+ { cat(0x529479860b01c926, 0xdae7fe819788dbef), cat(0x8432b5a6a671fc06, 0xeb0ef134ece68a23) }, // -4526
+ { cat(0xb753f5a344cfa83e, 0x2b0cca68f2749318), cat(0xd38455d770b6600b, 0x11b181ee47d7436b) }, // -4525
+ { cat(0x92a9914f6a3fb9cb, 0x55a3d520c1f6dc13), cat(0xa936ab12c091e66f, 0x415ace58397902bc) }, // -4524
+ { cat(0x0eee0dd921cc94a2, 0xaae9774d67f8b00f), cat(0x875eef4233a7eb8c, 0x3448a513612d9bca) }, // -4523
+ { cat(0x7e49afc1cfadba9d, 0xde42587bd98de67f), cat(0xd897e536b90cac13, 0x86daa1b89b7c2c76) }, // -4522
+ { cat(0x31d48c9b0c8afbb1, 0x7e9b79fcae0b1ecc), cat(0xad4650f8940a2342, 0xd24881607c6356c5) }, // -4521
+ { cat(0x8e43a3af3d3bfc8d, 0xfee2c7fd5808e570), cat(0x8a9ea72d433b4f68, 0xa83a0119fd1c456a) }, // -4520
+ { cat(0xe39f6c4b952cc749, 0x97d13ffbc00e3be6), cat(0xddcaa515385ee574, 0x405cce8ffb606f10) }, // -4519
+ { cat(0x1c7f89d610f09f6e, 0x130dccc96671c985), cat(0xb16eea77604beac3, 0x66b0a53ffc4d25a7) }, // -4518
+ { cat(0x49ffa1780d8d4c58, 0x0f3e3d6deb8e3ad1), cat(0x8df2552c4d09889c, 0x5226ea9996a41e1f) }, // -4517
+ { cat(0xa9990259af487a26, 0x7ec9fbe3127d2ae8), cat(0xe31d5513ae75a760, 0x8371775c2439c9cb) }, // -4516
+ { cat(0x547a6847bf6d2e85, 0x323b2fe8db975586), cat(0xb5b110dc8b9152b3, 0x9c5ac5e3502e3b09) }, // -4515
+ { cat(0xa9fb869fcc57586a, 0x8e95bfed7c791138), cat(0x915a73e3a2daa88f, 0xb0489e4f73582f3a) }, // -4514
+ { cat(0xa99270ffad588d77, 0x4a89331593f4e85a), cat(0xe890b96c37c440e5, 0xe6da96e58559e52a) }, // -4513
+ { cat(0xee0ec0cc8aad3df9, 0x086dc277a990b9e2), cat(0xba0d61235fd033eb, 0x1f1545846aae50ee) }, // -4512
+ { cat(0x8b3f00a3a2243194, 0x06be352c87a6fb1b), cat(0x94d780e919735cbc, 0x18ddd136bbbea725) }, // -4511
+ { cat(0xab980105d039e8ec, 0xd796bb7a72a4c4f8), cat(0xee259b0e8f1efac6, 0x8e2fb5245f9771d5) }, // -4510
+ { cat(0xefaccd9e402e53f0, 0xac7895fb8eea372d), cat(0xbe847c0ba5b26238, 0x71bfc41d1945f4aa) }, // -4509
+ { cat(0x8c8a3e1833584326, 0xf06077fc7254f8f1), cat(0x9869fcd61e284e93, 0x8e33034a7a9e5d55) }, // -4508
+ { cat(0x7a76c9c05226d1d7, 0xe700bffa5087f4b4), cat(0xf3dcc7bcfd0d4a85, 0xb0519edd90fd6222) }, // -4507
+ { cat(0xc85f07cd0e8574ac, 0xb8cd6661da065d5d), cat(0xc3170630ca71086a, 0xf3747f17a7311b4e) }, // -4506
+ { cat(0x6d18d30a72045d56, 0xfa3deb817b384ab1), cat(0x9c126b5a3b8da055, 0x8f9065ac85c0e2a5) }, // -4505
+ { cat(0xe1c151aa5006fbbe, 0x5d2fdf3591f3aab4), cat(0xf9b71229f8e29a22, 0x7f4d6f7a6f9b043b) }, // -4504
+ { cat(0xe7cddaeea66bfc98, 0x4a8cb291418fbbc3), cat(0xc7c5a82193e87b4e, 0xcc3df2c85948d02f) }, // -4503
+ { cat(0xb9717bf21ebcca13, 0x6ed6f541013fc969), cat(0x9fd1534e0fed2f72, 0x3cfe5bd37aa0a68c) }, // -4502
+ { cat(0xc24f2cb697947685, 0x7e24bb9b3532dbdb), cat(0xffb552167fe1e583, 0x94ca2c8591010a7a) }, // -4501
+ { cat(0x350c23c546105ed1, 0x31b6fc7c2a8f1649), cat(0xcc910e78664e5136, 0x10a1bd37a7340862) }, // -4500
+ { cat(0x5da34fd104d9e574, 0x27c596c9bba5ab6e), cat(0xa3a73ec6b83ea75e, 0x73b4975fb8f66d1b) }, // -4499
+ { cat(0x7e1c3fda6a47eac3, 0x530478a162eaef8b), cat(0x82ec3238936552b1, 0xf62a12b2fa5ebdaf) }, // -4498
+ { cat(0x6360662a43a6446b, 0xb80727689e44b278), cat(0xd179e9f41f08844f, 0xf043511e5d6462b2) }, // -4497
+ { cat(0x82b384ee9c850389, 0x6005b9207e9d5b93), cat(0xa794bb29b26d36a6, 0x59cf74184ab6b55b) }, // -4496
+ { cat(0x9bc2d0bee39d9c6d, 0xe66afa80654aafa9), cat(0x861095baf5242bb8, 0x47d929ad08922aaf) }, // -4495
+ { cat(0x92d14dfe38fc2d7c, 0xa3de5d9a3baab2a8), cat(0xd680ef918839df8d, 0x3fc1dc480db6aab2) }, // -4494
+ { cat(0xa8a771982d968aca, 0x1cb1e47b62eef553), cat(0xab9a594139c7e60a, 0x9967e36cd7c5555b) }, // -4493
+ { cat(0xba1f8e1357aba23b, 0x4a27e9fc4f25910f), cat(0x89484767616cb808, 0x7ab982bd796aaaaf) }, // -4492
+ { cat(0xf698e35225df69f8, 0x76a6432d4b6f4e7f), cat(0xdba6d8a568adf340, 0xc45c04625bdddde5) }, // -4491
+ { cat(0x5ee0b5db517f87f9, 0xf885028aa2bf71ff), cat(0xafb8ad51208b2900, 0x9d1669e8497e4b1e) }, // -4490
+ { cat(0x4be6f7e2a7993994, 0xc6d0ced54eff8e66), cat(0x8c93bdda806f5400, 0x7dab87ed07983c18) }, // -4489
+ { cat(0x463e596aa5c1f5ba, 0xd7b47e2217ff4a3c), cat(0xe0ec62f733e55333, 0xfc45a6480c26c68d) }, // -4488
+ { cat(0xd1cb7abbb7ce5e2f, 0x12f6cb4e79990830), cat(0xb3f04f2c2984428f, 0xfd048506701f053d) }, // -4487
+ { cat(0xdb092efc930b7e8c, 0x0f2bd5d8614739c0), cat(0x8ff37289bad0353f, 0xfd9d373859b26a97) }, // -4486
+ { cat(0x91a84b2db8126413, 0x4b795627020b8f9a), cat(0xe65250dc5e19eecc, 0xc8fb8b8d5c50aa8c) }, // -4485
+ { cat(0x41536f57c6751cdc, 0x3c6111b8ce6fa615), cat(0xb841da49e4e18bd7, 0x072fa2d77d0d553d) }, // -4484
+ { cat(0xcddc5913052a7d7c, 0xfd1a7493d85951aa), cat(0x9367e1d4b71ad645, 0x9f594f12ca7110fd) }, // -4483
+ { cat(0x162d5b51a1dd9594, 0xc82a541fc08ee910), cat(0xebd96954582af06f, 0x655bb1b7aa4e8196) }, // -4482
+ { cat(0xde8aaf74817e1143, 0xd355101966d8ba73), cat(0xbcadeddd13558d25, 0xeaafc15fbb720144) }, // -4481
+ { cat(0x186ef2c39acb4103, 0x0f7740145246fb90), cat(0x96f18b1742aad751, 0x888c9ab2fc5b3437) }, // -4480
+ { cat(0xf3e4b79f5e12019e, 0x7f253353b6d7f8e5), cat(0xf18278253777bee8, 0xda7a911e6091ed24) }, // -4479
+ { cat(0x2983c619180e67b1, 0xff50f5dc924660b8), cat(0xc1352cea92c63253, 0xe1fba74b8074bdb7) }, // -4478
+ { cat(0x21363814133eb95b, 0x32a72b16db6b8093), cat(0x9a90f0bba89e8ea9, 0x81961f6f99f6fe2c) }, // -4477
+ { cat(0x35238ceceb978ef8, 0x510b782492459a84), cat(0xf74e4df90dca7ddc, 0x0289cbe5c324c9e0) }, // -4476
+ { cat(0x90e93d8a5612d8c6, 0xa73c601d41d1486a), cat(0xc5d83e60d7d5317c, 0xced4a31e35b707e6) }, // -4475
+ { cat(0x40ba97a1de757a38, 0x85c9e67dce4106bb), cat(0x9e46984d79775aca, 0x3f10827e915f3985) }, // -4474
+ { cat(0xcdf75902fd88c38d, 0xa2dca3fc7d34d792), cat(0xfd3dc07bf58bc476, 0xcb4d9d974efec26e) }, // -4473
+ { cat(0x7192ad9bfe0702d7, 0xb57d4ffd30f712db), cat(0xca97cd2ff7a30392, 0x3c3e17ac3f323525) }, // -4472
+ { cat(0x8e0ef14998059bdf, 0xc4643ffdc0c5a8af), cat(0xa2130a8cc61c02db, 0x6364dfbcff5b5db7) }, // -4471
+ { cat(0x71a58dd4799e164c, 0x9d1cfffe33d153c0), cat(0x81a8d53d6b499be2, 0xb5ea4c9732af7e2c) }, // -4470
+ { cat(0x1c3c1620c2968a14, 0x2e94ccc9ec821f99), cat(0xcf74886245429304, 0x5643adbeb77f3047) }, // -4469
+ { cat(0x7cfcde809baba1a9, 0xbedd70a18a01b2e1), cat(0xa5f6d381d1020f36, 0xab6957cbc5ff59d2) }, // -4468
+ { cat(0xca63e533afbc8154, 0x98b126e7a19af581), cat(0x84c576017401a5c5, 0x55eddfd637ff7b0e) }, // -4467
+ { cat(0x109fd51f7f940220, 0xf44ea4a5cf5e559a), cat(0xd46f23358669093b, 0xbcafcc89f3325e7e) }, // -4466
+ { cat(0x0d4caa7f994334e7, 0x29d883b7d918447c), cat(0xa9f2829138540762, 0xfd59706e5c284b98) }, // -4465
+ { cat(0x3dd6eecc7a9c2a52, 0x87e0695fe0e036c9), cat(0x87f53540f9dcd2b5, 0x977ac05849b9d613) }, // -4464
+ { cat(0xfc8b17ad90f9dd50, 0xd9670effce338adc), cat(0xd9885534c2faeabc, 0x259133c075f62351) }, // -4463
+ { cat(0xca08dfbe0d94b10d, 0x7ab8d8cca4f608b0), cat(0xae06aa909bfbeefc, 0xeada8fcd2b2b4f74) }, // -4462
+ { cat(0x6e6d7fcb3e108da4, 0x622d7a3d50c4d3c0), cat(0x8b388873affcbf30, 0xbbe20ca422890c5d) }, // -4461
+ { cat(0xe3e26611fce74907, 0x037bf6c8813aec66), cat(0xdec0da52b32dfeb4, 0x5fd01439d0db46fb) }, // -4460
+ { cat(0xb64eb80e63ec3a6c, 0x02c9923a00fbf052), cat(0xb233e1dbc28b3229, 0xe640102e40af6bfc) }, // -4459
+ { cat(0x5ea5600b832361f0, 0x023adb619a6326a8), cat(0x8e8fe7e30208f4ee, 0x51ccd9be9a25effd) }, // -4458
+ { cat(0x976f00126b6bcfe6, 0x69f7c568f7050aa6), cat(0xe4197304d00e54b0, 0x82e15c6429d64cc8) }, // -4457
+ { cat(0x12bf3341ef89731e, 0xbb2c9ded926a6eeb), cat(0xb67ac26a400b76f3, 0x9be77d1cee450a3a) }, // -4456
+ { cat(0x42328f67f2d45c18, 0x95bd4b247521f256), cat(0x91fbcebb666f925c, 0x7cb930e3f1d0d4fb) }, // -4455
+ { cat(0x038418a65153c68d, 0xbc6211d3ee9cb6ef), cat(0xe992e45f0a4c1d60, 0xc78eb49fe94e2192) }, // -4454
+ { cat(0x69367a1ea7763871, 0x6381a7dcbee3c58c), cat(0xbadbe9e5a1d67de7, 0x060bc3b3210b4e0e) }, // -4453
+ { cat(0x542b94e552c4f9f4, 0x4f9aecb098b637a4), cat(0x957cbb1e1b11fe52, 0x6b3c9c8f4da2a4d8) }, // -4452
+ { cat(0x86ac216eead4c320, 0x7f5e4780f456bf6c), cat(0xef2df8302b4ffd50, 0xab942db215d107c0) }, // -4451
+ { cat(0x3889b458bbdd68e6, 0xcc4b6c6729deff8a), cat(0xbf57f9c022a66440, 0x894357c1ab0d9fcd) }, // -4450
+ { cat(0x2d3af6ad6317871f, 0x09d5f05287e5993b), cat(0x99132e334eeb8366, 0xd435dfce22714ca4) }, // -4449
+ { cat(0xe1f7f1156b58d831, 0xa9564d50d96f5b91), cat(0xf4eb7d1ee4ac0571, 0x538966169d821439) }, // -4448
+ { cat(0xb4c65a778913e027, 0xbaab710d7abf7c74), cat(0xc3ef974bea23378d, 0xdc6deb454ace7694) }, // -4447
+ { cat(0xc3d1e1f93a764cec, 0x9555f40ac899305d), cat(0x9cbfac3cbb4f5fa4, 0xb057ef6aa23ec543) }, // -4446
+ { cat(0x394fcff52a56e17a, 0x88898677a75b8095), cat(0xfacc46c792189907, 0x808cb24436cad539) }, // -4445
+ { cat(0x943fd990eeabe795, 0x3a079ec61f7c66dd), cat(0xc8a36bd2db46e0d2, 0xcd3d5b69c56f10fa) }, // -4444
+ { cat(0xa9ccae0d8bbcb944, 0x2e6c7f04e5fd1f18), cat(0xa082bca8af6be70f, 0x0a977c549df273fb) }, // -4443
+ { cat(0xee3d580ad6309436, 0x8b89ff371e6418e0), cat(0x806896ed59231f3f, 0x3bac6376e4c1f662) }, // -4442
+ { cat(0x7d2ef34489e7538a, 0x78dccb8b63d35aff), cat(0xcd7424aef504fecb, 0x92ad6bf16e0323d1) }, // -4441
+ { cat(0x30f25c36d4b90fa1, 0xfa4a3c6f830f7c00), cat(0xa45cea2590d0cbd6, 0x0ef123278b35b641) }, // -4440
+ { cat(0x5a5b7cf8aa2da61b, 0x2ea1c9f2cf3f9666), cat(0x837d881e0d73d644, 0xd8c0e8ec6f5e2b67) }, // -4439
+ { cat(0xf6f8c7f4437c3cf8, 0x4a9c76514b98f0a3), cat(0xd262736348b956d4, 0x8e0174ad7efd123e) }, // -4438
+ { cat(0x2bfa399035fcfd93, 0x6ee391daa2e0c083), cat(0xa84ec2b5d3c778aa, 0x0b345d5798ca74ff) }, // -4437
+ { cat(0x5661c7a691973142, 0xbf1c74aee8b3cd35), cat(0x86a5689176392d54, 0xd5c37ddfad6ec3ff) }, // -4436
+ { cat(0x23cfa5d74f584ed1, 0x31c72117dab94855), cat(0xd76f0db589f51554, 0x8938c965e24ad332) }, // -4435
+ { cat(0x830c84ac3f79d8a7, 0x5b05b413156106ab), cat(0xac58d7c46e5daaaa, 0x0760a11e4ea2428e) }, // -4434
+ { cat(0x35a39d56992e46ec, 0x48d15cdc111a6bbc), cat(0x89e0ac9d2517bbbb, 0x391a1a7ea54e9ba5) }, // -4433
+ { cat(0x8905c88a8eb0717a, 0x0e1bc7c681c3df93), cat(0xdc9aadc83b592c5e, 0xc1c35d976ee42c3b) }, // -4432
+ { cat(0x3a6b06d53ef38dfb, 0x3e7c9fd201697fa9), cat(0xb07bbe39c914237f, 0x016917ac58b689c9) }, // -4431
+ { cat(0x95226bddcbf60b2f, 0x65307fdb34546621), cat(0x8d2fcb616da9b5ff, 0x345412f046f86e3a) }, // -4430
+ { cat(0x21d0ac9613234518, 0xa1e732f853ba3d01), cat(0xe1e612357c42bccb, 0x86eceb1a0b2716c4) }, // -4429
+ { cat(0xe7da23ab42829dad, 0x4e528f2d0fc830cd), cat(0xb4b80e91303563d6, 0x058a55ae6f52789c) }, // -4428
+ { cat(0x1fe1b6229b9bb157, 0x71dba5bda639c0a4), cat(0x90933eda8cf78311, 0x9e08448b8c41fa17) }, // -4427
+ { cat(0x6635f0375f5f8225, 0x82f9092f705c676d), cat(0xe751fe2a7b259e82, 0x9673a0df46cff68b) }, // -4426
+ { cat(0x1e918cf9191934ea, 0xcf2da0f2c049ec58), cat(0xb90e64eec8eae535, 0x45294d7f6bd99209) }, // -4425
+ { cat(0xe5413d9414142a55, 0x728ae72899d4bd13), cat(0x940b83f23a55842a, 0x9dbaa465efe141a0) }, // -4424
+ { cat(0x086862868686aa22, 0x50de3ea75c8794eb), cat(0xecdf39839088d377, 0x62c43a3cb302029b) }, // -4423
+ { cat(0xa0538205386bbb4e, 0xa718321f7d3943ef), cat(0xbd7f61360d3a42c5, 0xe89cfb63c2680215) }, // -4422
+ { cat(0x8042ce6a938962a5, 0x5279c1b2ca943659), cat(0x97991a91a42e9bd1, 0x86e3fc4fceb99b44) }, // -4421
+ { cat(0xcd37b0aa85a89dd5, 0x50c2cf8477538a28), cat(0xf28e90e906b0f94f, 0x3e3993b2e45c2ba0) }, // -4420
+ { cat(0x0a92f3bb9e207e44, 0x409bd936c5dc6e86), cat(0xc20ba720d2272dd8, 0xfe947628b6b022e7) }, // -4419
+ { cat(0xa20f2962e4e6cb69, 0xcd497a9237e38b9f), cat(0x9b3c85b3db528b13, 0xfedd2b53c559b585) }, // -4418
+ { cat(0x367ea89e3b0adf0f, 0xaedbf750596c1297), cat(0xf860d5ec921dab53, 0x3161deec6ef5ef3c) }, // -4417
+ { cat(0x2b9886e4fc08b272, 0xf24992a6adf00edf), cat(0xc6b3de56db4aef75, 0xc11b18bd25918c30) }, // -4416
+ { cat(0xbc7a0583fcd3c1f5, 0x8ea1421ef18cd8b3), cat(0x9ef64b78af6f25f7, 0xcdaf46fdb7a7a359) }, // -4415
+ { cat(0x93f66f3994860322, 0x7dced031827af451), cat(0xfe56df277f183cbf, 0xaf7ed7fc590c388f) }, // -4414
+ { cat(0x0ff858fadd380281, 0xfe3f0cf468625d0e), cat(0xcb78b285ff4696ff, 0xbf98acc9e0d693a6) }, // -4413
+ { cat(0xd9937a624a933534, 0xcb65a3f6b9e84a72), cat(0xa2c6f537ff6babff, 0xcc7a23d4b3dedc84) }, // -4412
+ { cat(0xe142c84ea20f5dc3, 0xd5eae9922e536ec1), cat(0x8238c42ccc562333, 0x09fb4fdd5cb24a03) }, // -4411
+ { cat(0xced1407dd0189606, 0x231175b6b0857e02), cat(0xd05ad37ae089d1eb, 0x432bb2fbc783a99f) }, // -4410
+ { cat(0x0bda99fe4013ab38, 0x1c0df7c55a0464ce), cat(0xa6af0f95806e4189, 0x02895bfc9f9c87b3) }, // -4409
+ { cat(0xd6487b31ccdc88f9, 0xb00b2c9de19d1d72), cat(0x8558d94466be9ad4, 0x02077cca194a0628) }, // -4408
+ { cat(0xbd40c51c7afa74c2, 0xb345142fcf61c8b6), cat(0xd55af53a3dfdc486, 0x69a594768edcd6a7) }, // -4407
+ { cat(0xca9a3749fbfb909b, 0xc29da9bfd91b06f8), cat(0xaaaf2a94fe649d38, 0x548476c53f17121f) }, // -4406
+ { cat(0x087b5f6e632fa6e3, 0x0217baffe0e26bfa), cat(0x888c2210cb83b0f9, 0xdd36c56a98df41b3) }, // -4405
+ { cat(0x40c5657d6b7f716b, 0x368c5e66349d798f), cat(0xda79d01adf391b29, 0x61f13bddc16535eb) }, // -4404
+ { cat(0x009deacabc65f455, 0xc53d1851c3b12e0c), cat(0xaec7d9af18fa7c21, 0x1b276317cdea9189) }, // -4403
+ { cat(0x007e556efd1e5d11, 0x6a9746a7cfc0f1a4), cat(0x8bd3148c13fb9680, 0xe285e8dfd7eedad4) }, // -4402
+ { cat(0x00ca224b2e96fb4f, 0x10f20aa61934b5d2), cat(0xdfb820e01ff8f0ce, 0x373ca7cc8cb15e20) }, // -4401
+ { cat(0x9a3b4ea28babfc3f, 0x40c1a21e7a909175), cat(0xb2f9b3e67ffa5a3e, 0x9296eca3a3c11819) }, // -4400
+ { cat(0x7b62a54ed6233032, 0x9a3481b1fba6dac4), cat(0x8f2e2985332eae98, 0x75458a1c8300e014) }, // -4399
+ { cat(0x92376ee489d1e6b7, 0x5d20cf832c3e2ad3), cat(0xe516a8d51eb1175a, 0x553c102d9e67cced) }, // -4398
+ { cat(0x74f92583a174b892, 0xb0e70c68f031bbdc), cat(0xb74553ddb22745e1, 0xddc9a68ae51fd724) }, // -4397
+ { cat(0x90c751361ac3c6db, 0xc0b8d6ba59c16317), cat(0x929ddcb15b529e4e, 0x4b07b86f1db31283) }, // -4396
+ { cat(0xb4721b89c46c715f, 0x9ac157908f9bd1be), cat(0xea962de8921dca16, 0xde72c0b1c91e8405) }, // -4395
+ { cat(0xf6c1afa169f05ab2, 0xe234460d3fafdafe), cat(0xbbab57ed41b16e78, 0xb1f566f4a0e5366a) }, // -4394
+ { cat(0x92348c81218d155b, 0xe829d1a432f31598), cat(0x9622acbdce278b93, 0xc1911f2a1a50f855) }, // -4393
+ { cat(0x83874735027b555f, 0xd9dc82a05184ef5a), cat(0xf0377ac949d8df52, 0xcf4e98435d4e5a22) }, // -4392
+ { cat(0x3605d290cec91119, 0x7b16cee6a79d8c48), cat(0xc02c623aa17a4c42, 0x3f7213691771e1b5) }, // -4391
+ { cat(0x2b37dba70bd40dad, 0xfc123f1eec7e09d3), cat(0x99bd1b621ac83d01, 0xcc5b42ba7927e7c4) }, // -4390
+ { cat(0xab8c92a4dfb9af7c, 0xc68398317a6342eb), cat(0xf5fb5f035e0d2e69, 0x46f86ac3f50ca606) }, // -4389
+ { cat(0x893d421d7fc7bf97, 0x0536135ac84f68bc), cat(0xc4c918cf7e70f1ed, 0xd260556990d6eb38) }, // -4388
+ { cat(0xa0fdce7dffd2ffac, 0x042b42af06a5ed64), cat(0x9d6dad72cb8d8e57, 0xdb80445473df2293) }, // -4387
+ { cat(0x67fc7d96661e65e0, 0x06ab9de4d76fe239), cat(0xfbe2af1e127c16f2, 0xf8cd3a20b965041f) }, // -4386
+ { cat(0xecc9fe11eb4b84b3, 0x38894b1d79264e94), cat(0xc98225b1a863458f, 0x2d70fb4d611d9ce5) }, // -4385
+ { cat(0xbd6e64db22a2d08f, 0x606dd5b12db83edd), cat(0xa134eaf486b5d13f, 0x578d95d780e47d84) }, // -4384
+ { cat(0xfdf1ea48e8824072, 0xb38b115a8af9cbe4), cat(0x80f7225d38917432, 0xac7144ac671d3136) }, // -4383
+ { cat(0xfcb643a7da6a00b7, 0x85ab4ef744c2dfd3), cat(0xce5836fb8db586b7, 0x7a4ed4470b61e857) }, // -4382
+ { cat(0x3091cfb97b880092, 0xd155d8c5d09be642), cat(0xa5135f2fa4913892, 0xc83f1038d5e7ed13) }, // -4381
+ { cat(0xc074a62dfc6ccd42, 0x41117a37da1651cf), cat(0x840f7f5950742d42, 0x39cc0cfa44b98a75) }, // -4380
+ { cat(0xcd87704993e1486a, 0x01b590595cf082e4), cat(0xd34bfef54d86aed0, 0x5c79ae5d3ac27722) }, // -4379
+ { cat(0x0ad2c03adcb439ee, 0x67c4737ab0c068b7), cat(0xa90998c43e0558a6, 0xb061584a95685f4f) }, // -4378
+ { cat(0x3bdbccfbe3c3618b, 0x8636c2c88d66ba2c), cat(0x873ae09cfe6aad52, 0x26b446a211204c3f) }, // -4377
+ { cat(0xf95fae5fd2d235ac, 0x09f137a748a45d12), cat(0xd85e342e63dde21d, 0x0aba0a9ce833ad31) }, // -4376
+ { cat(0xc77fbeb30f0e9156, 0x6e5a92ec3a1d1742), cat(0xad1829beb64b1b4a, 0x6efb3bb0b9c2f0f4) }, // -4375
+ { cat(0x9f99655c0c0ba778, 0x58487589c81745cf), cat(0x8a79bafef83c15d5, 0x2595c95a2e358d90) }, // -4374
+ { cat(0x328f089346790bf3, 0xc073ef42d9bed617), cat(0xdd8f9197f3935621, 0xd5bc755d16bc15b4) }, // -4373
+ { cat(0xf53f3a0f6b94098f, 0xcd298c357aff11ac), cat(0xb13fa7acc2dc44e7, 0xde305de41230115c) }, // -4372
+ { cat(0x2a98fb3f89433ad9, 0x70ee09c46265a7bd), cat(0x8dcc8623cf169d86, 0x4b59e4b674f34117) }, // -4371
+ { cat(0x4427f865a86b915b, 0xe7e342d3d0a2a5fb), cat(0xe2e0d69fb1bdc8d6, 0xdef63abd87eb9b58) }, // -4370
+ { cat(0x03532d1e20560de3, 0x1fe902430d4eeb2f), cat(0xb580abb2f497d3df, 0x18c4fbcad322e2ad) }, // -4369
+ { cat(0x35dc241819de7182, 0x7fed9b68d77255bf), cat(0x9133bc8f2a130fe5, 0xad6a6308a8e8b557) }, // -4368
+ { cat(0xefc6a0268fca4f37, 0x3315c5748bea22cc), cat(0xe852c74b7684e63c, 0x48aa380ddb0deef1) }, // -4367
+ { cat(0xbfd219b873083f5f, 0x5c116ac3a321b570), cat(0xb9dbd2a2c5371e96, 0xa0882cd7e2718bf4) }, // -4366
+ { cat(0x9974e1605c069919, 0x167455694f4e2ac0), cat(0x94afdbb56a927ede, 0xe6d357131b8e0990) }, // -4365
+ { cat(0x28bb0233c670f4f4, 0xf0ba2242187d1133), cat(0xede62c557750cafe, 0x3e1ef1b82c1675b4) }, // -4364
+ { cat(0xed6268296b8d90c3, 0xf3c81b68139740f6), cat(0xbe51bd112c40a264, 0xfe7f27c689ab915c) }, // -4363
+ { cat(0xbde85354560ada36, 0x5ca015ecdc7900c5), cat(0x9841640dbd0081ea, 0x653286386e22dab0) }, // -4362
+ { cat(0xc973b886f0115d23, 0xc766897afa5b346d), cat(0xf39bd3492e673643, 0xd51da38d7d04911a) }, // -4361
+ { cat(0x078fc6d259a77db6, 0x391ed46261e29058), cat(0xc2e30f6dbeb8f836, 0x4417b60aca6a0daf) }, // -4360
+ { cat(0x060c9f0eae1f97c4, 0xfa7f104eb4b54046), cat(0x9be8d9249893f9c5, 0x03462b3bd521a48c) }, // -4359
+ { cat(0x09adcb4ab0328c6e, 0x5d981a17878866d6), cat(0xf9748ea0f41ff608, 0x053d11f95502a0e0) }, // -4358
+ { cat(0x3af16f6ef35ba38b, 0x7e134812d2d38578), cat(0xc790721a5ce65e6c, 0xd0fda7faaa6880b3) }, // -4357
+ { cat(0xfbf459258f7c82d5, 0xfe75d3424242d12d), cat(0x9fa6c1aeb0b84b8a, 0x40caecc888539a28) }, // -4356
+ { cat(0x93208ea27f2d9e23, 0x30bc8536d06ae848), cat(0xff7135e44df3ac10, 0x67ab14740d529041) }, // -4355
+ { cat(0x4280721b98f14b4f, 0x5a306a92405586a0), cat(0xcc5a9183718fbcd9, 0xec88dd29a4420d01) }, // -4354
+ { cat(0x6866c1afad8dd5d9, 0x14f3887500446bb3), cat(0xa37ba79c5ad963e1, 0x8a07175483680a67) }, // -4353
+ { cat(0x538567bfbe0b117a, 0x772939f73369efc3), cat(0x82c952e37be11cb4, 0x6e6c12aa02b9a1ec) }, // -4352
+ { cat(0x1f3bd932c9ab4f2a, 0x5841f65852431937), cat(0xd1421e38c634faba, 0x4a468443378f697a) }, // -4351
+ { cat(0x18fcadc23aef7288, 0x469b2b79db68e0f9), cat(0xa768182d6b5d9561, 0xd505369c2c72bac8) }, // -4350
+ { cat(0x7a63be34fbf2c206, 0x9ee2892e4920b3fb), cat(0x85ece02455e47781, 0x77375ee356c22f06) }, // -4349
+ { cat(0x909f96bb2cb79cd7, 0x649da84a0e9ab991), cat(0xd647cd06efd3f268, 0xbebefe388ad04b3d) }, // -4348
+ { cat(0xa6e6122f56f94a45, 0xea17b9d4d87bc7a7), cat(0xab6ca4058ca98eba, 0x323264fa08a6a297) }, // -4347
+ { cat(0x1f1e74f2abfaa1d1, 0x8812fb10ad2fd2ec), cat(0x8923b66ad6ee0bc8, 0x282850c806ebb546) }, // -4346
+ { cat(0x31ca54b7799102e8, 0xd9b7f81aaeb2eb13), cat(0xdb6c571157e3460d, 0x0d0d4e0cd7df8870) }, // -4345
+ { cat(0x27d51092c7a73587, 0x14932ce2255bef43), cat(0xaf89df41131c380a, 0x70d771a3dfe606c0) }, // -4344
+ { cat(0xb97740756c85c46c, 0x1075bd81b77cbf69), cat(0x8c6e4c340f49c66e, 0xc0ac5ae97feb3899) }, // -4343
+ { cat(0x5bf200bbe0d60713, 0x4d892f35f2613241), cat(0xe0b079ece542d717, 0x9aad5e426645275c) }, // -4342
+ { cat(0x7cc19a2fe7119f42, 0xa46dbf5e5b80f501), cat(0xb3c0618a510245ac, 0x7bbde501eb6a85e3) }, // -4341
+ { cat(0xca347b5985a7b29b, 0xb6be32b1e2cd90cd), cat(0x8fcd1ad50d9b6af0, 0x62fe50ce55eed182) }, // -4340
+ { cat(0xdd20c55c090c50f9, 0x2463844fd148e7af), cat(0xe614f7bb48f8ab1a, 0x37fd4e16efe4826a) }, // -4339
+ { cat(0x4a809de33a7040c7, 0x504f9d0ca76d8626), cat(0xb810c62f6d93bc14, 0xf99771abf31d3522) }, // -4338
+ { cat(0xd533b18295269a39, 0x0d0c7da3b9246b51), cat(0x93409e8c57a96343, 0xfadf8e2328e42a81) }, // -4337
+ { cat(0x551f826a883dc38e, 0x7b472f6c5b6d7882), cat(0xeb9a9746f2a89ed3, 0x2aff49d1db06aa69) }, // -4336
+ { cat(0xaa7f9b886cfe360b, 0x95d28c56af8ac6ce), cat(0xbc7bac38c2207f0f, 0x559907db159eeeba) }, // -4335
+ { cat(0xbb994939f0cb5e6f, 0xab0ed6abbfa238a5), cat(0x96c95693ce8065a5, 0xde140648de18befb) }, // -4334
+ { cat(0xc5c20ec31adefd7f, 0x7817bddf99038dd5), cat(0xf142241fb0cd6f6f, 0xc9b9a3a7c9c13192) }, // -4333
+ { cat(0x37ce7235af18cacc, 0x6012fe4c7a693e44), cat(0xc101b67fc0a45926, 0x3afae95307cdc142) }, // -4332
+ { cat(0xf971f4f7bf4708a3, 0x800f31d6c85431d0), cat(0x9a67c53300837a84, 0xfbfbeddc063e3434) }, // -4331
+ { cat(0x28b654bf9871a76c, 0x00184fbe0d5382e6), cat(0xf70c6eb800d25da1, 0x932cafc6706386bb) }, // -4330
+ { cat(0x86f843cc79f485f0, 0x001372fe710f9beb), cat(0xc5a38bc6670eb14e, 0x0f56f30526b60562) }, // -4329
+ { cat(0x38c69ca394c39e59, 0x99a928cb8da61656), cat(0x9e1c6fd1ec0bc10b, 0x3f78c26a855e6ab5) }, // -4328
+ { cat(0xc13dc76c2138fd5c, 0x290ea7ac15d68a23), cat(0xfcfa4c83134601ab, 0x98c13710d563ddee) }, // -4327
+ { cat(0x34316c5680fa6449, 0xba721fbcde453b4f), cat(0xca61d6cf429e67bc, 0x7a342c0d778317f2) }, // -4326
+ { cat(0xf68df04533fb836e, 0x2ec1b2fd7e9dc90c), cat(0xa1e7df0c354b8630, 0x61c356712c68dff4) }, // -4325
+ { cat(0x2ba4c0375cc935f1, 0xbf015bfdfee4a0d7), cat(0x81864c09c43c6b59, 0xe7cf785a89ed7ff7) }, // -4324
+ { cat(0xdf6e00589475231c, 0x64cef99664a10157), cat(0xcf3d467606c71229, 0x72e58d5da97bfff1) }, // -4323
+ { cat(0xb2be66ad4390e8e3, 0x83d8c7ab83b40113), cat(0xa5ca9ec4d238db54, 0x5bead77e212ffff4) }, // -4322
+ { cat(0x8efeb88a9c73ed82, 0xcfe09fbc695ccda9), cat(0x84a2189d74fa4910, 0x4988ac64e7599990) }, // -4321
+ { cat(0xb1978daa93ecaf37, 0xb300ff93dbc7af74), cat(0xd4368dc8bb2a0e80, 0x75a77a3b0bc28f4d) }, // -4320
+ { cat(0xf4793e220ff08c2c, 0x8f33ffa97c9fbf90), cat(0xa9c53e3a2f54d866, 0xc485fb626fced90a) }, // -4319
+ { cat(0x5d2dcb4e7326d68a, 0x0c29995463b2ffa7), cat(0x87d0fe94f2aa46b8, 0x9d37fc4ebfd8ada2) }, // -4318
+ { cat(0x951612171ea48a76, 0x79dc288705eb32a4), cat(0xd94e64218443a45a, 0x9526607dffc115d0) }, // -4317
+ { cat(0x4411a8127eea085e, 0xc7e3539f37ef5bb6), cat(0xadd8501ad0361d15, 0x441eb397ffcdab0d) }, // -4316
+ { cat(0x69a7b9a8658806b2, 0x3982a94c2cbf7c92), cat(0x8b137348a691b0dd, 0xd0188faccca488d7) }, // -4315
+ { cat(0x0f72c2a708d9a450, 0x5c0442137acbfa83), cat(0xde8585410a82b496, 0x19c0e5e1476da7bf) }, // -4314
+ { cat(0xa5f56885a0ae1d0d, 0x1669ce75fbd66202), cat(0xb2046a9a6ecef6de, 0x7b00b7e76c57b965) }, // -4313
+ { cat(0xb7f786d14d58173d, 0xab87d85e6311e802), cat(0x8e69eee1f23f2be5, 0x2f33c652bd12fab7) }, // -4312
+ { cat(0x2658d7b5488cf1fc, 0x45a626fd6b4fd99d), cat(0xe3dcb1698398463b, 0x7eb93d512e84c459) }, // -4311
+ { cat(0xb84712f76d3d8e63, 0x6aeb526455d97ae4), cat(0xb64a27879c79d1c9, 0x322dcaa7586a36ad) }, // -4310
+ { cat(0x2d05a8c5f0fe0b82, 0xbbef751d117ac8b6), cat(0x91d4ec6c7d2e416d, 0xc1be3bb913882bbe) }, // -4309
+ { cat(0xe1a2a7a31b30126a, 0xc64bee94e8c47457), cat(0xe954ad7a61e39be2, 0xcf96c5f4ec0d12c9) }, // -4308
+ { cat(0x1ae8861c15c00ebb, 0xd1d65877209d29df), cat(0xbaaa2461e7e94982, 0x3fabd190bcd7423b) }, // -4307
+ { cat(0xe2539e7cde333efc, 0xa7dead2c1a1754b3), cat(0x9554e9e7ecbaa134, 0xffbca7a6fd7901c8) }, // -4306
+ { cat(0x36ec30c7c9eb97fa, 0xa63115135cf2211d), cat(0xeeee430cadf76854, 0xcc610c3e625b360e) }, // -4305
+ { cat(0x2bf027063b22dffb, 0xb827440f7d8e80e4), cat(0xbf2502708b2c5377, 0x09e73cfeb515c4d8) }, // -4304
+ { cat(0x2326859e95b57ffc, 0x93529cd9313ecd84), cat(0x98ea685a08f042c5, 0xa185ca655dab03e0) }, // -4303
+ { cat(0x9ea408fdbc559994, 0x1eea948eb53148d2), cat(0xf4aa40900e4d37a2, 0x9c0943d562ab3966) }, // -4302
+ { cat(0xe55007316377ae10, 0x18bbaa0bc4276d75), cat(0xc3bb66d9a50a92e8, 0x7cd436444eef611e) }, // -4301
+ { cat(0x844005c11c5fbe73, 0x46fc880969b9245e), cat(0x9c95ebe150d54253, 0x97102b69d8bf80e5) }, // -4300
+ { cat(0x6d333c682d65fd85, 0x3e60d9a8a9283a2f), cat(0xfa897968815536ec, 0x24e6abdc8dff34a2) }, // -4299
+ { cat(0xbdc296b9bdeb3137, 0x651a47ba20ecfb59), cat(0xc86dfaba0110f8bc, 0xea522316d7ff5d4e) }, // -4298
+ { cat(0x3168789497ef5a92, 0xb7483961b3f0c914), cat(0xa057fbc800da6097, 0x21db4f4579991772) }, // -4297
+ { cat(0x5ab9fa10798c4875, 0x5f6cfab48ff3d410), cat(0x8046630667151a12, 0x817c3f6ac7adac5b) }, // -4296
+ { cat(0x5df65ce728e073ee, 0xff14c4541986201a), cat(0xcd3d6b3d71bb5cea, 0x68c6cbde0c4913c5) }, // -4295
+ { cat(0xb191e3ec20b38ff2, 0x65aa36a9ae04e67b), cat(0xa43122978e2f7d88, 0x53d23cb1a36da96a) }, // -4294
+ { cat(0x8e0e4ff01a293ff5, 0x1e21c5548b371ec9), cat(0x835a8212d825fe06, 0xa974fd5ae9248788) }, // -4293
+ { cat(0xe34a198029db9988, 0x303608874524fe0e), cat(0xd22a69b7c03cc9a4, 0x4254c89175073f40) }, // -4292
+ { cat(0x1c3b4799bb16146c, 0xf35e6d39041d980b), cat(0xa821ee2c99ca3ae9, 0xceaa3a0df738ff67) }, // -4291
+ { cat(0xb02f6c7afc11a9f0, 0xc2b1f0fa69b14670), cat(0x86818b56e16e9587, 0xd8882e719293ff85) }, // -4290
+ { cat(0x804be0c4c682a981, 0x37831b2a42b53d7f), cat(0xd735abbe357dbc0c, 0x8da6b0b5b753326f) }, // -4289
+ { cat(0xcd09809d6b9bbacd, 0xc6027c21cef76466), cat(0xac2aefcb5dfe300a, 0x0aebc0915f75c1f2) }, // -4288
+ { cat(0xa4079a178949623e, 0x3801fce7d8c5e9eb), cat(0x89bbf30917fe8cd4, 0xd58966dab2c49b28) }, // -4287
+ { cat(0x6cd8f68c0edbd063, 0x8ccffb0c8e097645), cat(0xdc5feb41bffdae21, 0x55a8a4911e075ea7) }, // -4286
+ { cat(0x23e0c53cd8afd9e9, 0x3d732f3d3e6df837), cat(0xb04cbc349997be81, 0x1153b6da7e6c4bb9) }, // -4285
+ { cat(0x4fe70430ad597b20, 0xfdf5bf6431f1935f), cat(0x8d0a302a14796534, 0x0ddc924865236fc7) }, // -4284
+ { cat(0xb30b39e77bc25e9b, 0x2fef98a04fe8ebcb), cat(0xe1a9e6a9ba5bd520, 0x162db6da3b6be60b) }, // -4283
+ { cat(0xc26f6185fc9b7ee2, 0x8cbfad4d0cba563c), cat(0xb487ebbafb7caa80, 0x11be2be1c9231e6f) }, // -4282
+ { cat(0x68591ad196e2cbe8, 0x70995770d6fb7830), cat(0x906cbc9595fd5533, 0x4164efe7d41c1859) }, // -4281
+ { cat(0xa6f4f7b5be37aca7, 0x1a8ef24e24c58d1a), cat(0xe71460ef566221eb, 0x9bd4b30c86935a28) }, // -4280
+ { cat(0x1f2a5fc4982c8a1f, 0x48725b71b70470e2), cat(0xb8dd1a5911e81b22, 0xe3108f3d3875e1ba) }, // -4279
+ { cat(0xe5bb7fd079bd3b4c, 0x39f515f49269f3e8), cat(0x93e415140e5348e8, 0xb5a6d8fdc6c4b494) }, // -4278
+ { cat(0x6f92661a5c61f879, 0xf654efedb70feca6), cat(0xeca021b9b0854174, 0x55d7c1960ad45421) }, // -4277
+ { cat(0x260eb81516b4c6c7, 0xf843f324927323b8), cat(0xbd4ce7c7c06a9ac3, 0x77dfce11a2437681) }, // -4276
+ { cat(0x84d89344122a389f, 0xf9cff5b6db8f4fc6), cat(0x9770b96c99eee235, 0xf97fd80e1b692b9a) }, // -4275
+ { cat(0x6e2752068376c0ff, 0xf6198924927ee60a), cat(0xf24df57a8fe49d23, 0x28cc8ce35f0eac2a) }, // -4274
+ { cat(0xbe85db38692bcd99, 0x91ae0750753251a2), cat(0xc1d7f7953fea174f, 0x53d6d71c4c0bbcee) }, // -4273
+ { cat(0x6537e29387563e14, 0x748b390d2a8ea7b5), cat(0x9b132c776654df72, 0xa978ac16a33c9725) }, // -4272
+ { cat(0x08596a85a556c9ba, 0x5411f4e1ddb10c54), cat(0xf81ead8bd6ee3251, 0x0f2779bdd1fa8b6f) }, // -4271
+ { cat(0xd37abb9e1ddf07c8, 0x434190b4b15a7043), cat(0xc67ef13cabf1c1da, 0x7285fafe41953c58) }, // -4270
+ { cat(0x75fbc94b4b18d306, 0x9c3473c3c115269c), cat(0x9ecbf430898e34ae, 0xc204c8cb67aa96ad) }, // -4269
+ { cat(0xbcc60edede8e1e70, 0xf9ed860601bb70fa), cat(0xfe13204da8e3877e, 0x033adadf0c442448) }, // -4268
+ { cat(0xfd6b3f18b20b4b8d, 0x94be04d19afc5a62), cat(0xcb42803e20b605fe, 0x68fbe24c09d01d06) }, // -4267
+ { cat(0x9788ff46f4d5d60a, 0xdd64d0a7af30484e), cat(0xa29b99cb4d5e6b31, 0xed964ea33b0ce405) }, // -4266
+ { cat(0x12d3ff6bf7117808, 0xb11d73b958f36d0b), cat(0x821614a2a44b88f4, 0xbe11d88295a3e99e) }, // -4265
+ { cat(0x848665798b4f2674, 0x4e9585f55b1f14df), cat(0xd02354376d45a7ed, 0xfce95a6a89064296) }, // -4264
+ { cat(0x9d38512e090c1ec3, 0x721137f77c18dd7f), cat(0xa682a9c5f1048657, 0xfd877b886d9e9bab) }, // -4263
+ { cat(0xe42d0dbe6da34bcf, 0x8e742cc5fce0b133), cat(0x8535549e5a6a0513, 0x31392fa057b21622) }, // -4262
+ { cat(0xa04815fd7c38794c, 0x172047a32e344eb7), cat(0xd52220fd5d766e85, 0x1b8eb29a25e9bd04) }, // -4261
+ { cat(0x8039ab31302d2dd6, 0x78e69fb5be903ef9), cat(0xaa81b3fde45ebed0, 0xe2d88ee1b7ee30d0) }, // -4260
+ { cat(0x002e228dc02424ab, 0x93ebb2f7cba698c7), cat(0x8867c331837eff0d, 0x8246d8b49324f3da) }, // -4259
+ { cat(0xcd169daf99d36ddf, 0x5312b7f2df70f472), cat(0xda3f9eb59f319815, 0x9d3e278751d4b95c) }, // -4258
+ { cat(0xd7454af2e175f17f, 0x75a89328b2c0c38e), cat(0xae994bc47f5ae011, 0x4a981f9f74aa2de3) }, // -4257
+ { cat(0xac376f28b45e5acc, 0x5e2075ba289a360c), cat(0x8badd636cc48b341, 0x0879b2e5f6ee8b1c) }, // -4256
+ { cat(0x46bf18412096f7ad, 0x636722c37429f012), cat(0xdf7c89f146dab868, 0x0d8f84a324b0de94) }, // -4255
+ { cat(0x6bcc13674d4592f1, 0x1c528235f687f342), cat(0xb2ca07f438aef9ec, 0xd7a603b5b6f3e543) }, // -4254
+ { cat(0xefd675ec3dd1425a, 0x7d0ece9192065c35), cat(0x8f08065cfa2594bd, 0x79519c915f298435) }, // -4253
+ { cat(0xb2f0bcad2fb536f7, 0x2e7e174f500a2d21), cat(0xe4d9a3c7f6a28795, 0x8ee8fa8231dc06bc) }, // -4252
+ { cat(0x5bf3ca24262a925f, 0x5864df72a66e8a81), cat(0xb71483065ee86c77, 0xa5872ece8e499efd) }, // -4251
+ { cat(0x165ca1b684eedb7f, 0x79ea4c5bb8586ece), cat(0x9276cf384bed2392, 0xead28bd871d47f31) }, // -4250
+ { cat(0x23c7692407e49265, 0x8fdd46f926f3e47c), cat(0xea57b1f3acae9f51, 0x77b746271c8731e8) }, // -4249
+ { cat(0xb63920e99fea0eb7, 0xa64a9f2db8c31d30), cat(0xbb795b2956f2190d, 0xf95f6b527d38f4b9) }, // -4248
+ { cat(0xc4fa80bae654d892, 0xeb6ee5be2d68e426), cat(0x95faaf54458e7a71, 0x944c55db9760c3c7) }, // -4247
+ { cat(0x07f7345e3d548db7, 0xdf17d5fd1574a03d), cat(0xeff77eed3c172a4f, 0x53ad562c25679fa6) }, // -4246
+ { cat(0x3992904b6443a493, 0x18dfde64112a19cb), cat(0xbff932576345bb72, 0xa9577823511fb2eb) }, // -4245
+ { cat(0xc7a8736f83695075, 0xad7fe51cda8814a2), cat(0x99942845e90495f5, 0x5445f9b5da7fc255) }, // -4244
+ { cat(0x0c40b8b26bdbb3ef, 0x7bffd4faf7402103), cat(0xf5b9da0974d42322, 0x206ff5efc3ff9d56) }, // -4243
+ { cat(0x3d0093c1efe2f659, 0x2fffdd959299b403), cat(0xc494ae6df7101c1b, 0x4d265e5969994aab) }, // -4242
+ { cat(0xfd9a0fce59825ead, 0xbfffe477a87af669), cat(0x9d43bebe5f40167c, 0x3db84b7abae10888) }, // -4241
+ { cat(0x2f5ce616f59d6449, 0x33330725da5e570e), cat(0xfb9f9796feccf0c6, 0xc926df2ac49b40db) }, // -4240
+ { cat(0x25e3eb45914ab6a0, 0xf5c26c1e484b78d8), cat(0xc94c794598a3f3d2, 0x3a857f556a15cd7c) }, // -4239
+ { cat(0x5183229e0dd55ee7, 0x2b01f01839d5fa46), cat(0xa109fa9e13b65ca8, 0x2ed132aabb44a463) }, // -4238
+ { cat(0xdacf4ee4d7dde585, 0xbc018ce02e44c838), cat(0x80d4c87e762b7d53, 0x58a75bbbc903b6b5) }, // -4237
+ { cat(0x5e187e3af2fca26f, 0x9335ae337d3ad9f3), cat(0xce2140ca56abfbb8, 0x8dd892c60e6c5789) }, // -4236
+ { cat(0x7e79fe958f3081f2, 0xdc2af1c2ca957b29), cat(0xa4e76708455662fa, 0x0b13a89e71f04607) }, // -4235
+ { cat(0x652e6544728d34c2, 0x49bbf49bd5446288), cat(0x83ec526d04451bfb, 0x3c0fba185b269e6c) }, // -4234
+ { cat(0x084a3ba0b748546a, 0x0f9320f9553a373f), cat(0xd313b714d3a1c65e, 0xc67f9026f83dca47) }, // -4233
+ { cat(0xd36e961a2c39dd21, 0xa60f4d94442e9299), cat(0xa8dc92770fb49eb2, 0x38660cebf9cb0838) }, // -4232
+ { cat(0xa92544e1bcfb174e, 0x1e72a4769cf20ee1), cat(0x8716db9272f6e55b, 0x6051a3effb08d360) }, // -4231
+ { cat(0x41d53b02c7f82549, 0xca5107242e5017ce), cat(0xd8249283eb24a22b, 0xcd4f6cb32b415234) }, // -4230
+ { cat(0x9b10fc0239935107, 0xd50d9f50250cdfd8), cat(0xacea0ecfef5081bc, 0xa43f8a28ef6774f6) }, // -4229
+ { cat(0x15a73001c7a90d9f, 0xdda47f7350d7197a), cat(0x8a54d8a6590d3496, 0xe9cc6e8725ec5d92) }, // -4228
+ { cat(0x55d84ccfa5db48ff, 0xc90732521af1c25c), cat(0xdd548dd6f4e1edbe, 0x42e0b0d83cad6283) }, // -4227
+ { cat(0x44ad0a3fb7e2a0cc, 0xa0d28ea8158e3516), cat(0xb1107178c3e7f165, 0x024d5a4696f11b9c) }, // -4226
+ { cat(0xd08a6e995fe880a3, 0xb3dba5534471c412), cat(0x8da6c12d69865ab7, 0x350aae9edf274949) }, // -4225
+ { cat(0x4daa4a8effda676c, 0x52f908853a4fa01d), cat(0xe2a46848a8d6f78b, 0x88111764983edba9) }, // -4224
+ { cat(0xd7bb6ed8ccaeb923, 0x759406d0fb72e67d), cat(0xb550536d53df2c6f, 0xa00dac5079cbe2ed) }, // -4223
+ { cat(0x7962bf13d6f22db5, 0xf7a99f0d95f58531), cat(0x910d0f8aa97f56bf, 0xb33e237394a31bf1) }, // -4222
+ { cat(0x289dfe8624b6af89, 0x8c429815bcbc084e), cat(0xe814e5aaa8cbbdff, 0x853038b8edd1c64f) }, // -4221
+ { cat(0x207e65381d5ef2d4, 0x70354677ca3006a5), cat(0xb9aa515553d63199, 0x3759c6fa57db050c) }, // -4220
+ { cat(0x19feb760177f28a9, 0xf35dd1f96e8cd21e), cat(0x948841110fde8e14, 0x2c47d261dfe26a70) }, // -4219
+ { cat(0x8ffdf23358cb7443, 0x1efc8328b0e1502f), cat(0xeda6ce81b2fdb020, 0x46d9509c996a43e6) }, // -4218
+ { cat(0x3ffe5b5c470929cf, 0x4bfd35ba271aa68c), cat(0xbe1f0b9af597c019, 0xd24773b07abb6985) }, // -4217
+ { cat(0x999849169f3a87d9, 0x09975e2e85aeeba4), cat(0x9818d61591463347, 0xdb6c5c8d2efc546a) }, // -4216
+ { cat(0x8f5a0e8a985da628, 0x0f5896b0d5e4ac39), cat(0xf35af0228209eba6, 0x2be0941517fa20aa) }, // -4215
+ { cat(0xd914d86ee04aeb53, 0x3f7a12271183bcfa), cat(0xc2af268201a18951, 0xbcb3a9aa7994e6ee) }, // -4214
+ { cat(0xadaa46bf19d5890f, 0x65fb41b8dacfca62), cat(0x9bbf52019ae7a10e, 0x308fbaeec7aa5258) }, // -4213
+ { cat(0xe2aa0acb5c88db4b, 0xd65ecf8e2ae6109c), cat(0xf9321ccf5e3f6816, 0xb4192b17a5dd508d) }, // -4212
+ { cat(0xb554d56f7d3a4909, 0x784bd93e88b80d4a), cat(0xc75b4a3f7e992012, 0x29adbc12eb1773a4) }, // -4211
+ { cat(0xf7771125fdc83a6d, 0xf9d647653a2cd76f), cat(0x9f7c3b65fee0e674, 0xee24967588df8fb6) }, // -4210
+ { cat(0xbf24e83cc9405d7c, 0xc2f0723b9047bf17), cat(0xff2d2bd6649b0a54, 0xb03a8a55a7cc1924) }, // -4209
+ { cat(0x98ea5363d4337dfd, 0x68c05b62d9d2ff46), cat(0xcc242311ea15a1dd, 0x59c86eaaeca34750) }, // -4208
+ { cat(0xe0bb75e9768f97fd, 0xed66af8247dbff6b), cat(0xa3501c0e54de1b17, 0x7b06beef23b5d2a6) }, // -4207
+ { cat(0x8095f7edf872dffe, 0x5785593506499923), cat(0x82a67cd843e4e279, 0x2f3898bf4fc4a885) }, // -4206
+ { cat(0xcdbcbfe3271e3330, 0x8c088ebb3d428e9d), cat(0xd10a615a063b03f5, 0x185a8dfee6077408) }, // -4205
+ { cat(0xd7ca331c1f4b5c26, 0xd66d3efc31020bb1), cat(0xa73b8114d1c8cff7, 0x46aed7ff1e6c5cd3) }, // -4204
+ { cat(0x130828e34c3c49b8, 0xab8a98c9c0ce6fc1), cat(0x85c93410a7d3d992, 0x9ef24665b1f04a43) }, // -4203
+ { cat(0x51a6a7d21393a927, 0x78ddc142ce171935), cat(0xd60eb9b43fb95c1d, 0xcb1d3d6f831a106b) }, // -4202
+ { cat(0x0e1eeca80fa9541f, 0x93e49a9bd8127a91), cat(0xab3efaf69961167e, 0x3c17645935ae7389) }, // -4201
+ { cat(0x71b256ecd954434c, 0x76507bafe00ec874), cat(0x88ff2f2bade74531, 0xc9ac50475e25293a) }, // -4200
+ { cat(0xe91d57e15bba0547, 0x23b3f919667e0d86), cat(0xdb31e512afd86eb6, 0x0f7a1a0bc9d50ec3) }, // -4199
+ { cat(0xba7ddfe77c94d105, 0xb629941451fe7138), cat(0xaf5b1da88cad255e, 0x72c814d63b10d89c) }, // -4198
+ { cat(0x2ecb1985fd43da6a, 0xf821434374cb8dc6), cat(0x8c48e486d6f0eab1, 0xf56cdd782f40ad4a) }, // -4197
+ { cat(0xe47828d662062a44, 0xc035386bee127c70), cat(0xe074a0d7be4e444f, 0xef14958d18677ba9) }, // -4196
+ { cat(0x1d2ced784e6b5503, 0xccf76056580ec9f4), cat(0xb39080ac983e9d0c, 0xbf43aad746b92fbb) }, // -4195
+ { cat(0x7dbd8ac6a522aa69, 0x70c5e6ab79a56e5d), cat(0x8fa6cd56e032173d, 0x65cfbbdf6bc75962) }, // -4194
+ { cat(0x2f95aad76e9ddd75, 0x813ca4458f6f16fa), cat(0xe5d7aef166b68b95, 0x6fb2c632460bc237) }, // -4193
+ { cat(0x8c77bbdf8bb17df7, 0x9a96e9d13f8c1262), cat(0xb7dfbf27855ed611, 0x26289e8e9e6fce92) }, // -4192
+ { cat(0xd6c62fe6095acb2c, 0x7babee40ffa341e8), cat(0x931965b9377f11a7, 0x51ba18721859720e) }, // -4191
+ { cat(0x57a37fd6755e11e0, 0xc5dfe39b329ecfd9), cat(0xeb5bd5f525981c3e, 0xe929c0b68d5be9b1) }, // -4190
+ { cat(0xac82ccab91180e4d, 0x6b1982e28ee57314), cat(0xbc4977f751467cff, 0x20ee33c53de3215a) }, // -4189
+ { cat(0x56cf0a22da79a50a, 0xbc1468b53f1df5aa), cat(0x96a12cc5da9eca65, 0xb3f1c30431828115) }, // -4188
+ { cat(0xf14b436af7290811, 0x2ced745531c98910), cat(0xf101e13c90fe10a2, 0xb982d1a04f3734ee) }, // -4187
+ { cat(0x8dd5cf88c5ba6cda, 0x8a57904427d46da6), cat(0xc0ce4dca0d980d4e, 0xfacf0e19d8f8f725) }, // -4186
+ { cat(0x0b1172d3d161f0ae, 0xd512d9d01fdd2485), cat(0x9a3ea4a1a479a43f, 0x2f0c0b47e0c72c1e) }, // -4185
+ { cat(0xab4f1e1fb5698117, 0xbb515c8032fb6da1), cat(0xf6caa102a0c2a065, 0x1813453fce0b79c9) }, // -4184
+ { cat(0x890c18195dee00df, 0xc90de399c262be1b), cat(0xc56ee7354d688050, 0xe00f6a9971a2c7d4) }, // -4183
+ { cat(0xa0d679ade4be6719, 0x6da4b6149b8231af), cat(0x9df252910aba0040, 0xb33f887ac14f0643) }, // -4182
+ { cat(0x9af0c2afd463d828, 0xaf6df020f8d04f7e), cat(0xfcb6ea81aac3339a, 0xb865a72acee4d6d2) }, // -4181
+ { cat(0xaf27022643831353, 0xbf8b2680c70d0c65), cat(0xca2beece2235c2e2, 0x2d1e1f557250abdb) }, // -4180
+ { cat(0x58ec01b8360275dc, 0x993c1ecd6c0a7051), cat(0xa1bcbf0b4e9168b4, 0xf0e4e5ddf50d5649) }, // -4179
+ { cat(0xad899af9c4cec4b0, 0x7a967f0abcd526a7), cat(0x8163cc090ba786f7, 0x271d84b190d7783a) }, // -4178
+ { cat(0x7c0f5e5c6e17a11a, 0x5dbd98112e21d772), cat(0xcf061341ac3f3e58, 0x3e95a11c1af259f7) }, // -4177
+ { cat(0x300c4b7d24dfb415, 0x17cae00dbe817928), cat(0xa59e75ce2365cb79, 0xcbaae749af2847f9) }, // -4176
+ { cat(0x8cd6a2ca83e629aa, 0x796f19a498679420), cat(0x847ec4a4e91e3c61, 0x6fbbec3af2869ffa) }, // -4175
+ { cat(0xe1576add9fd6a910, 0xc24b5c3a8d728699), cat(0xd3fe076e41c9fa35, 0x7f931391840a9990) }, // -4174
+ { cat(0x1aac557e19788740, 0x9b6f7cfba45b9ee1), cat(0xa99805f1ce3b2e91, 0x32dc0fa79cd547a7) }, // -4173
+ { cat(0xaef04464e12d3900, 0x7c5930c950494be7), cat(0x87acd18e3e95beda, 0x8f1672ec7d776c85) }, // -4172
+ { cat(0x4b1a0707ceaec19a, 0x608eb4754d42130c), cat(0xd914827d30ef97c4, 0x1823eb13fbf2473c) }, // -4171
+ { cat(0xa27b38d30bbf0148, 0x4d3ef6c43dce75a3), cat(0xadaa01fdc0bfac9c, 0xe01cbc0ffcc1d296) }, // -4170
+ { cat(0xe86293dc09659aa0, 0x3dcbf89cfe3ec483), cat(0x8aee67fe33cc8a17, 0x19b09673309b0ede) }, // -4169
+ { cat(0xda3752f9a8a29100, 0x62dff42e6397a0d1), cat(0xde4a3ffd1fada9be, 0x8f80f0b84dc4e497) }, // -4168
+ { cat(0x482c426153b540cd, 0x1be65cf1e9461a41), cat(0xb1d4fffdb2f15498, 0x72cd8d603e371d46) }, // -4167
+ { cat(0x6cf0351aa95dcd70, 0xe31eb0c1876b4834), cat(0x8e43fffe28c11079, 0xf5713de6982c176b) }, // -4166
+ { cat(0x7b19ee910efc7be7, 0xd1cab468d8aba6b9), cat(0xe39ffffd0e01b3f6, 0x5581fca426acf245) }, // -4165
+ { cat(0x627b2540d8c9fcb9, 0x74a229ed7a22ebc7), cat(0xb61999973e67c32b, 0x779b30835223f504) }, // -4164
+ { cat(0xb52f5100ad6e63c7, 0x9081bb2461b5896c), cat(0x91ae1478feb968ef, 0x92e28d35db4ff736) }, // -4163
+ { cat(0xbb7ee801157d6c72, 0x80cf91d3cf88dbe0), cat(0xe9168727fdf574b2, 0x849daebc92198b8a) }, // -4162
+ { cat(0x95ff2000ddfdf05b, 0x9a3fa7dca607164d), cat(0xba786c1ffe5df6f5, 0x36e48bca0e7ad608) }, // -4161
+ { cat(0xab328000b197f37c, 0x7b661fe3b805ab71), cat(0x952d234ccb7e5f2a, 0x92506fd4d86244d3) }, // -4160
+ { cat(0xdeb733344f598593, 0xf8a36639266f78b4), cat(0xeeae9ee14596feaa, 0x83b3e6215a36d485) }, // -4159
+ { cat(0xb22c28f6a5e137a9, 0x93b5eb60eb8c6090), cat(0xbef218b437abfeee, 0xcfc31e8114f8aa04) }, // -4158
+ { cat(0x282353f884b42c87, 0xa95e55e722d6b3a7), cat(0x98c1ad5cf956658b, 0xd968e53410c6ee6a) }, // -4157
+ { cat(0x4038865a6ded140c, 0x42308971d15785d7), cat(0xf46915618ef0a279, 0x5bdb08534e0b1710) }, // -4156
+ { cat(0x002d384857f0dcd6, 0x9b5a078e4112d179), cat(0xc387444e0bf3b52d, 0xe315a042a4d5ac0d) }, // -4155
+ { cat(0x99bdc6a0465a4a45, 0x4914d2d8340f0dfb), cat(0x9c6c36a4d65c90f1, 0x8277b36883de233d) }, // -4154
+ { cat(0x5c62d766d6f6dd3b, 0xa8215159ece4e32a), cat(0xfa46bdd48a2db4b5, 0x9d8c5240d2fd052f) }, // -4153
+ { cat(0xb04f12b8abf8b0fc, 0x86810de18a50b5bc), cat(0xc83897dd3b57c3c4, 0x7e09db670f30d0f2) }, // -4152
+ { cat(0x8d0c0efa232d5a63, 0x9ecda4b46ea6f7c9), cat(0xa02d464a95dfcfd0, 0x64d4af85a5c0a728) }, // -4151
+ { cat(0x70d67261b5bde1e9, 0x4bd7b6f6beebf96e), cat(0x8024383bab19730d, 0x1d76f2d15166ec20) }, // -4150
+ { cat(0xe7bd83cf892fcfdb, 0xac8c57f131798f16), cat(0xcd06c05f7828b814, 0xfbf184821bd7e033) }, // -4149
+ { cat(0x1fcacfd93a8ca649, 0x56d6acc0f4613f45), cat(0xa40566b2c686f9aa, 0x63279d34e31319c3) }, // -4148
+ { cat(0x7fd573142ed6eb6d, 0xdf1223cd904dcc37), cat(0x8337855bd2059488, 0x4f52e42a4f427b02) }, // -4147
+ { cat(0xcc88b8204af178af, 0xcb503948e6e2e058), cat(0xd1f26ef95008eda6, 0xe5516d107ed0c4d0) }, // -4146
+ { cat(0xd6d3c6803bf4608c, 0xa2a6943a524f19e0), cat(0xa7f5259440072485, 0x8441240d32409d73) }, // -4145
+ { cat(0xdf0fd2002ff6b3a3, 0xb552102ea83f47e7), cat(0x865db7a9ccd2839e, 0x0367500a8e9a178f) }, // -4144
+ { cat(0x64e61ccd198ab905, 0xeee9b37dd9fed971), cat(0xd6fc590fae1d9f63, 0x38a54cddb0f68c19) }, // -4143
+ { cat(0x1d84e3d747a22d9e, 0x58baf5fe47ff145a), cat(0xabfd140c8b4ae5e8, 0xfa1dd717c0c53ce1) }, // -4142
+ { cat(0xe46a4fdf6c81be18, 0x46fbf7fe9fff437c), cat(0x8997433d3c3beb20, 0xc817df4633d0fd80) }, // -4141
+ { cat(0x3a43b2ff1402c9c0, 0x7193266433320592), cat(0xdc253861f9f97834, 0x7359653d1fb4c8ce) }, // -4140
+ { cat(0x9502f598dccf07cd, 0x27a8eb835c280475), cat(0xb01dc6b4c7fac690, 0x5c478430e62a3a3e) }, // -4139
+ { cat(0xaa68c47a4a3f3970, 0xec8722cf7cecd05e), cat(0x8ce49ef706623873, 0x7d06035a51bb61cb) }, // -4138
+ { cat(0x10a7a0c3a9fec24e, 0x473e9e18c7e14d62), cat(0xe16dcb24d7038d85, 0x94d66bc3b5f89c79) }, // -4137
+ { cat(0x0d52e702ee65683e, 0x9f654b47064dd782), cat(0xb457d5b712693e04, 0x7711efcfc4c6e394) }, // -4136
+ { cat(0x710f1f358b845365, 0x4c5109059ea4ac68), cat(0x904644927520fe69, 0xf8db263fd09f1c76) }, // -4135
+ { cat(0xe81831ef45a0856e, 0xe081a808fdd4470d), cat(0xe6d6d41d8834ca43, 0x27c509ffb431c723) }, // -4134
+ { cat(0xb9acf4bf6ae6d125, 0x8067b9a0cb1038d7), cat(0xb8abdce46cf70835, 0xb96a6e6629c16c1c) }, // -4133
+ { cat(0x2e23f6ff88b8a751, 0x33862e1a3c0cfa46), cat(0x93bcb0b6bd926cf7, 0xc7885851bb01234a) }, // -4132
+ { cat(0xb0398b32745aa54e, 0xb8d6b029f9ae5d3c), cat(0xec611abdfc1d7b26, 0x0c0d5a1c5e683876) }, // -4131
+ { cat(0x8cfad5c1f6aeeaa5, 0x60abc021948b7dca), cat(0xbd1a7bcb301795b8, 0x09a44816b1ecf9f8) }, // -4130
+ { cat(0x0a62449b2bbf221d, 0xe6efcce7aa09316e), cat(0x97486308f3461160, 0x07b6a01227f0c7fa) }, // -4129
+ { cat(0xaa36d42b7931d02f, 0xd7e614a5dcdb824a), cat(0xf20d6b41853ce899, 0xa5f1001d0cb47329) }, // -4128
+ { cat(0xee924355fa8e4026, 0x4651aa1e4a493508), cat(0xc1a455ce0430ba14, 0x84c0cce40a29f5ba) }, // -4127
+ { cat(0xf20e9c44c871cceb, 0x6b7488183b6dc407), cat(0x9ae9de3e69c094dd, 0x3700a3e9a1bb2afb) }, // -4126
+ { cat(0xe9b0fa07a71c7b12, 0x45874026c57c6cd7), cat(0xf7dc96ca42cdbafb, 0x8b343975cf91de5f) }, // -4125
+ { cat(0x87c0c8061f49fc0e, 0x9e05ccebd1305712), cat(0xc64a123b68a49596, 0x08f6945e3fa7e519) }, // -4124
+ { cat(0x3967066b4c3b300b, 0xb19e3d897426ac0f), cat(0x9ea1a82f86ea1144, 0xd3f876b1cc8650e1) }, // -4123
+ { cat(0xc23e70abad2b8012, 0xb5c9fc0f203de017), cat(0xfdcf737f3e434ed4, 0x865a5782e0d6e7ce) }, // -4122
+ { cat(0x34fec0895756000e, 0xf7d4c9a5b364b346), cat(0xcb0c5c65cb690bdd, 0x384846024d78b972) }, // -4121
+ { cat(0x5d989a07791199a5, 0x9310a1515c508f6b), cat(0xa27049eb0920d64a, 0x936d04cea460945b) }, // -4120
+ { cat(0x17ad4805fa747aea, 0xdc0d4ddab04072bc), cat(0x81f36e55a0e711d5, 0x42bd9d721d1a1049) }, // -4119
+ { cat(0xf2aed9a32a53f7de, 0x2ce2162ab39a512d), cat(0xcfebe3bc34a4e955, 0x3795c8b694f68074) }, // -4118
+ { cat(0xc2257ae8eea99318, 0x23e811bbc2e1da8b), cat(0xa6564fc9c3b72110, 0xf944a09210c53390) }, // -4117
+ { cat(0x9b512f20beee0f46, 0x83200e2fcf1b153c), cat(0x8511d96e362c1a73, 0xfa9d4d41a7042940) }, // -4116
+ { cat(0x921b7e9acb167ed7, 0x383349e6182b552c), cat(0xd4e95be389e02a53, 0x2a9548690b39db9a) }, // -4115
+ { cat(0xdb4932156f453245, 0xc68f6e51acef7757), cat(0xaa544982d4b3550f, 0x554439eda294afae) }, // -4114
+ { cat(0xe2a0f4ddf29dc1d1, 0x6ba5f1daf0bf92ac), cat(0x88436e0243c2aa72, 0xaa9cfb2482108c8b) }, // -4113
+ { cat(0x3767ee2fea9602e8, 0xac3cb62b1acc1ddf), cat(0xda057cd06c6aaa51, 0x10fb2b6d9ce74746) }, // -4112
+ { cat(0xc5ecbe8cbbab3586, 0xf03091bc157017e6), cat(0xae6aca4056bbbb74, 0x0d95bc57b0b905d1) }, // -4111
+ { cat(0xd18a320a2fbc2ad2, 0x59c07496778cdfeb), cat(0x8b88a1cd122fc929, 0xa477c9dfc09404a7) }, // -4110
+ { cat(0xe8dd1cdd192d1150, 0x8f9a5423f27affdf), cat(0xdf4102e1b6b2db75, 0xd3f2dc9934200772) }, // -4109
+ { cat(0x53e417174757410d, 0x3faea9b65b95997f), cat(0xb29a68b49228af91, 0x765be3adc34cd2c2) }, // -4108
+ { cat(0x0fe9ac129f7900d7, 0x66255491e2de1466), cat(0x8ee1ed5d41ba260d, 0xf84982f1690a4235) }, // -4107
+ { cat(0x1975e01dcbf4ce25, 0x703bba8304968709), cat(0xe49caefb9c5d09af, 0xf3a8d18241aa0388) }, // -4106
+ { cat(0xe12b19b16ff70b51, 0x26962ecf36ded26d), cat(0xb6e3bf2fb04a6e26, 0x5c870e01ce219c6c) }, // -4105
+ { cat(0xb4227af459926f74, 0x1ede8bd8f8b241f1), cat(0x924fcc2626a1f1b8, 0x4a05a4ce3e8149f0) }, // -4104
+ { cat(0x869d9186f5b718b9, 0xcafdac8e5ab6cfe8), cat(0xea1946a371031c5a, 0x100907b064020fe7) }, // -4103
+ { cat(0x054adad25e2c13c7, 0xd597bd3eaef8a653), cat(0xbb476bb5f4027d14, 0xd9a0d2f38334d986) }, // -4102
+ { cat(0xd108af0eb1bcdc9f, 0xde12fdcbbf2d51dc), cat(0x95d2bc919001fdaa, 0x47b3dbf60290ae04) }, // -4101
+ { cat(0xb4dab1b11c6160ff, 0xc9b7fc7931e21c94), cat(0xefb7941c199cc910, 0x72b95ff0041ab007) }, // -4100
+ { cat(0xf7155af416b44d99, 0x6e2cc9fa8e4e7d43), cat(0xbfc610167ae3d40d, 0x28944cc003488cd2) }, // -4099
+ { cat(0x5f4448c3455d0ae1, 0x24f0a1953ea53102), cat(0x996b4011fbe97670, 0xed4370999c3a0a42) }, // -4098
+ { cat(0xfed3a79ed561ab01, 0xd4b435bb976eb4d0), cat(0xf57866832ca8bd81, 0x7b9f1a8f605cdd36) }, // -4097
+ { cat(0x65761fb2444e2267, 0xdd5cf7c945f22a40), cat(0xc46052028a20979a, 0xc94c153f804a4a92) }, // -4096
+ { cat(0x845e7fc1d03e81ec, 0xb1172ca104c1bb67), cat(0x9d19db353b4d4615, 0x6dd67766003b6edb) }, // -4095
+ { cat(0xa09732cfb3973647, 0x81beadce6e02c571), cat(0xfb5c91eec5487022, 0x49572570005f17c5) }, // -4094
+ { cat(0x8078f572f61291d2, 0xce3224a524cf045b), cat(0xc916db256aa059b5, 0x0778eac0004c1304) }, // -4093
+ { cat(0x0060c45bf80edb0f, 0x0b5b50841d7269e2), cat(0xa0df15b7888047c4, 0x05fa556666a3426a) }, // -4092
+ { cat(0x99e7037cc67248d8, 0xd5e2a6d0178ebb1b), cat(0x80b277c606cd0636, 0x6b2eaab8521c3521) }, // -4091
+ { cat(0x29719f2e0a50748e, 0x23043e19bf4ac4f8), cat(0xcdea593cd7ae7057, 0x11e4445a1cf9ee9c) }, // -4090
+ { cat(0x2127b28b3b739071, 0xb59cfe7aff6f03fa), cat(0xa4bb7a9712f1f378, 0xdb1d037b4a618bb0) }, // -4089
+ { cat(0xe752f53c2f8fa6c1, 0x5e1731fbff8c032f), cat(0x83c92edf425b292d, 0x7c1735fc3b813c8c) }, // -4088
+ { cat(0xd884bb937f4c3e02, 0x30251cc665acd1e4), cat(0xd2db7e3203c50eaf, 0x2cf1eff9f8cec747) }, // -4087
+ { cat(0x7a03c942cc3cfe68, 0x268417051e23db1d), cat(0xa8af982803040bbf, 0x5727f32e60a56c39) }, // -4086
+ { cat(0x619ca1023cfd9853, 0x5203459db1b648e4), cat(0x86f2e0200269a2ff, 0x78ecc28b80845694) }, // -4085
+ { cat(0x029434d06195c085, 0x50053c2f82bd416c), cat(0xd7eb0033370f6b32, 0x5b146a78cda08a87) }, // -4084
+ { cat(0x687690a6b477cd37, 0x7337635935643457), cat(0xacbc0028f8d9228e, 0xaf438860a4806ed2) }, // -4083
+ { cat(0xed2ba6ebc3930a92, 0xc292b5e0f7835d12), cat(0x8a300020c7141ba5, 0x5902d3808399f241) }, // -4082
+ { cat(0x7b790b12d284ddb7, 0x9db78967f26bc81d), cat(0xdd1999ce0b535f6e, 0xf4d1526738f65069) }, // -4081
+ { cat(0x95fa6f424203e492, 0xe492d453285639b1), cat(0xb0e147d8090f7f8b, 0xf70ddb85c72b7387) }, // -4080
+ { cat(0x119525ce9b365075, 0x83a8a9dc2044faf4), cat(0x8d8106466da5ffa3, 0x2c0b16049f55f606) }, // -4079
+ { cat(0x1c21d6175ebd4d88, 0xd2a7762d006e5e53), cat(0xe2680a0a49099905, 0x1344f00765565670) }, // -4078
+ { cat(0x49b4ab45e5643e07, 0x0eec5e8a66beb1dc), cat(0xb52008083a6e1404, 0x0f6a599f844511f3) }, // -4077
+ { cat(0x07c3bc37eab69805, 0xa589e53b85655b16), cat(0x90e66cd361f1a99c, 0xd921e14c69d0db29) }, // -4076
+ { cat(0x0c6c6059778a8cd5, 0xd5a96ec5a23bc4f0), cat(0xe7d714856982a8fa, 0xf5030213dc815ea8) }, // -4075
+ { cat(0xa389e6adf93ba3de, 0x44878bd14e963727), cat(0xb978dd37879bba62, 0x5d9c01a97d344bb9) }, // -4074
+ { cat(0x4fa18557fa961cb1, 0xd06c6fdaa544f8ec), cat(0x9460b0f9394961e8, 0x4ae33487975d0961) }, // -4073
+ { cat(0x19026ef32a89c782, 0xe713e62aa207f4ad), cat(0xed67818ec20f030d, 0x449eba728bc80f02) }, // -4072
+ { cat(0x7a6858c2886e3935, 0x85a984eee8065d57), cat(0xbdec67a5680c0271, 0x03b22ec2096cd8ce) }, // -4071
+ { cat(0x9520470206be942a, 0xd1546a58b99eb112), cat(0x97f052eab9a33527, 0x36282568078a470b) }, // -4070
+ { cat(0x5500719cd7975377, 0xb553dd5ac29781b7), cat(0xf31a1e445c38550b, 0x89d9d5733f43a4df) }, // -4069
+ { cat(0x44005ae3dfac42c6, 0x2aa97de23546015f), cat(0xc27b4b69e3604409, 0x3b14aac29902ea4c) }, // -4068
+ { cat(0x3666af1cb2f0356b, 0x555464b4f76b344c), cat(0x9b95d5ee4f80366d, 0xc8dd55687a68bb70) }, // -4067
+ { cat(0x570ab1c784b388ab, 0xbbba3abb257853ad), cat(0xf8efbcb07f338a49, 0x41622240c3dac580) }, // -4066
+ { cat(0x78d55b0603c2d3bc, 0x962e9562846042f1), cat(0xc726308d328fa1d4, 0x344e81cd697bd133) }, // -4065
+ { cat(0x93dde26b36357630, 0x7825444ed04d025a), cat(0x9f51c070f53fb4a9, 0xc3720171212fda8f) }, // -4064
+ { cat(0xec963711f05589e7, 0x26a206e4807b36f7), cat(0xfee933e7eecc5442, 0xd250024e9b7fc418) }, // -4063
+ { cat(0x23ab5f418d113b1f, 0x521b38b6cd2f5f2c), cat(0xcbedc31ff23d1035, 0x750ccea549330347) }, // -4062
+ { cat(0xe955e5ce0a742f4c, 0x41af60923dbf7f56), cat(0xa3249c198e97402a, 0xc40a3eeaa0f59c38) }, // -4061
+ { cat(0x211184a4d529bf70, 0x348c4d41caff9912), cat(0x8283b014721299bb, 0xd00832554d9149c7) }, // -4060
+ { cat(0x9b4f3aa1550f98b3, 0x8746e202de65c1b6), cat(0xd0d2b353e9b75c5f, 0xb34050887c1ba93e) }, // -4059
+ { cat(0xaf72954ddda613c2, 0xd29f1b357eb7ce2b), cat(0xa70ef5dcbaf916b2, 0xf5cd0d39fce2edcb) }, // -4058
+ { cat(0xbf8eddd7e484dc9b, 0xdbb27c2acbc63e89), cat(0x85a5917d6260def5, 0x9170d761971bf16f) }, // -4057
+ { cat(0xff4afc8ca0d4942c, 0x92b72d114609fda8), cat(0xd5d5b5956a3497ef, 0x4f1af235be931be5) }, // -4056
+ { cat(0x65d596d6e710768a, 0x0ef8f0da9e6e6486), cat(0xab115e1121c3acbf, 0x727bf4f7cba8e31e) }, // -4055
+ { cat(0x1e4478abec0d2ba1, 0xa593f3e21858506c), cat(0x88dab1a74e3623cc, 0x5b965d930953e8e5) }, // -4054
+ { cat(0xfd3a5aacace1df69, 0x08ecb969c08d4d79), cat(0xdaf782a549f03946, 0xf8f095b80eeca7d4) }, // -4053
+ { cat(0xca951556f0b4b2ba, 0x6d8a2dee33a43dfa), cat(0xaf2c68843b269438, 0xc726de2cd8bd5310) }, // -4052
+ { cat(0x087744458d5d5bc8, 0x57a1be5829503195), cat(0x8c2386d02f52102d, 0x6c1f1823e09775a7) }, // -4051
+ { cat(0x73f206d5aefbc60d, 0x5902ca26a8804f55), cat(0xe038d7b37ee9b37b, 0xe031c0396758bc3e) }, // -4050
+ { cat(0xc3280577bf2fd1a4, 0x47356e855399d911), cat(0xb360ac8f98baf5fc, 0xb35b002dec46fcfe) }, // -4049
+ { cat(0x35b99df965bfdae9, 0xd29125377614ada7), cat(0x8f808a0c7a2f2b30, 0x8f7c0024bd059732) }, // -4048
+ { cat(0xbc5c2ff56f995e42, 0xea81d52589baaf71), cat(0xe59a767a5d18451a, 0x7f2ccd0794d5beb6) }, // -4047
+ { cat(0x637cf32abfade502, 0x5534aa846e2ef2c1), cat(0xb7aec52eb0e03748, 0x65bd70d2dd77cbc5) }, // -4046
+ { cat(0x82ca5c2232f18401, 0xddc3bb9d24f25bce), cat(0x92f237588d802c39, 0xeafdf3dbe45fd637) }, // -4045
+ { cat(0x0476f9d051826ccf, 0xc9392c2ea183c616), cat(0xeb1d255a7c0046c3, 0x119652f96d66238c) }, // -4044
+ { cat(0x36c594a6a79b8a3f, 0xd42dbcf21acfd1ab), cat(0xbc1751153000389c, 0x0e11dbfabdeb4fa3) }, // -4043
+ { cat(0x5f0476ebb9493b66, 0x4357ca5b48a64156), cat(0x96790daa8cccfa16, 0x71a7e32efe55d94f) }, // -4042
+ { cat(0x64d3f17928752bd6, 0xd22610920dd6cef0), cat(0xf0c1af7747ae5cf0, 0xb5d96b7e63bc8ee5) }, // -4041
+ { cat(0xb70ff460ed2a8978, 0xa81e73a80b123f26), cat(0xc09af2c5d2f1e3f3, 0xc4adef984fca0bea) }, // -4040
+ { cat(0x2c0cc380bdbba12d, 0x534b8fb9a274ff52), cat(0x9a158f04a8c18329, 0x6a24bfad0ca1a322) }, // -4039
+ { cat(0xe0146c012f929b7b, 0xb878e5f5d0bb321c), cat(0xf688e4d441359ea8, 0xa9d465e1adcf6b69) }, // -4038
+ { cat(0xb343899a8c75492f, 0xc6c71e5e4095c1b0), cat(0xc53a50a9cdc47eed, 0x54a9eb1af172bc54) }, // -4037
+ { cat(0xc29c6e153d2aa0f3, 0x056c184b66de348d), cat(0x9dc84087d7d0658a, 0xaa2188e25ac23043) }, // -4036
+ { cat(0x6a93e3552eaa9b1e, 0x6f135a123e305415), cat(0xfc739a72f2e708dd, 0xdd02749d5e03806c) }, // -4035
+ { cat(0x220fe910f22215b1, 0xf275e1a831c04344), cat(0xc9f61528c2526d7e, 0x4a685d4ab19c66bd) }, // -4034
+ { cat(0x81a6540d8e81aaf4, 0xc1f7e7b9c1669c36), cat(0xa191aa8701db8acb, 0x6eb9e43bc149ebca) }, // -4033
+ { cat(0x0151dcd7a53488c3, 0xce5fec949ab87cf8), cat(0x81415538ce493bd5, 0xf22e502fcdd4bca2) }, // -4032
+ { cat(0xcee9615908540e06, 0x16ffe0edc45a618d), cat(0xceceeec14a0ec623, 0x1d16e6b2e2edfa9c) }, // -4031
+ { cat(0x3f211aada0433e6b, 0x459980be36aeb471), cat(0xa572589aa1a56b4f, 0x4a78b88f1bf1954a) }, // -4030
+ { cat(0x3280e2248035cb89, 0x047acd64f88bc38e), cat(0x845b7a154e1def72, 0xa1fa2d3f498e1108) }, // -4029
+ { cat(0x50ce36a0cd22df41, 0xa0c47bd4c0df9f49), cat(0xd3c5902216964bea, 0x9cc37b9875b01b40) }, // -4028
+ { cat(0xda3e921a3db57f67, 0xb3d063109a4c7f6e), cat(0xa96ad9b4dedea322, 0x1702c946c48ce299) }, // -4027
+ { cat(0xe1cba814fe2acc52, 0xf6404f407b7065f1), cat(0x8788ae2a4be54f4e, 0x78cf076bd070b547) }, // -4026
+ { cat(0x02df7354c9de13b7, 0xf066e533f8b3d64f), cat(0xd8dab043aca2187d, 0x8e180bdfb3e78873) }, // -4025
+ { cat(0xcf192910a17e762c, 0xc05250f6608fdea5), cat(0xad7bc03623b4e064, 0x71acd64c8fec6d28) }, // -4024
+ { cat(0xd8e0eda6e7985e8a, 0x33750d91e6d97eeb), cat(0x8ac96691b62a4d1d, 0x27bd783d3ff05753) }, // -4023
+ { cat(0x27ce490b0c26fda9, 0xebee7c1ca48f3177), cat(0xde0f0a82bd107b61, 0xd92f26c8664d5886) }, // -4022
+ { cat(0x1fd83a6f3cebfe21, 0x898b967d50728df9), cat(0xb1a5a20230d9fc4e, 0x4758ebd3850aad38) }, // -4021
+ { cat(0x7fe02ebf63effe81, 0x3ad611fdd9f53e61), cat(0x8e1e1b34f3e196a5, 0x05e0bca9373bbdc6) }, // -4020
+ { cat(0x66337dff064cca68, 0x5e234ffc8feeca35), cat(0xe3635ebb1fcf576e, 0x6fcdfaa8585f960a) }, // -4019
+ { cat(0x84f5fe659ea3d520, 0x4b4f733073256e91), cat(0xb5e91895b30c45f1, 0xf30b2eed137fab3b) }, // -4018
+ { cat(0x372b31eae54fddb3, 0x6f72c28d28eabeda), cat(0x918746de28d69e5b, 0x28d5bf240f9955c9) }, // -4017
+ { cat(0xbeab83116ee62f85, 0x7f1e04150e446490), cat(0xe8d87163748a96f8, 0x4155fea018f5560e) }, // -4016
+ { cat(0x988935a78beb5937, 0x98e4d010d836b6da), cat(0xba46c11c5d3babf9, 0xcdde654ce0c444d8) }, // -4015
+ { cat(0x13a0f7b93cbc475f, 0xad83d9a7135ef8ae), cat(0x95056749e42fbcc7, 0xd7e51dd71a369d7a) }, // -4014
+ { cat(0x85ce5928612d3eff, 0x7c06290b52318de3), cat(0xee6f0ba96d192e0c, 0x8ca1c95829f0fbf6) }, // -4013
+ { cat(0x9e3eadb9e7576599, 0x3004eda2a827a4b6), cat(0xbebf3c878a7a8b3d, 0x3d4e3aacee5a632b) }, // -4012
+ { cat(0x7e988afb1f791e14, 0x266a57b55352ea2b), cat(0x9898fd393b953c30, 0xfdd82ef0beaeb5bc) }, // -4011
+ { cat(0x975a77f8325b6353, 0x70aa25eeebb7dd12), cat(0xf427fb8ec5bb9381, 0x9626b1813117892d) }, // -4010
+ { cat(0xac485ff9c1e2b5dc, 0x5a21b7f2562cb0db), cat(0xc3532fa56afc7601, 0x44ebc13427460757) }, // -4009
+ { cat(0xf039e66167e8917d, 0x14e7c65b7823c0af), cat(0x9c428c845596c4cd, 0xd0bc9a901f6b3912) }, // -4008
+ { cat(0xb38fd7023fda8261, 0xbb0c709259d2cde5), cat(0xfa041406ef57a149, 0x4dfa90e698ab8e84) }, // -4007
+ { cat(0xf60cac01ccaeceb4, 0x95a38d41e1757184), cat(0xc8034338bf794dd4, 0x3e620d8546efa536) }, // -4006
+ { cat(0x91a3bcce3d58a55d, 0x4482d767e791279d), cat(0xa0029c2d65faa4a9, 0xcb81a46a9f261dc5) }, // -4005
+ { cat(0x0e1c970b6446eab1, 0x039bdf8652da8617), cat(0x8002168ab7fbb6ee, 0x3c67b6bbb284e49e) }, // -4004
+ { cat(0x49c758123a0b111b, 0x38f965a3b7c409bf), cat(0xccd02411265f8b16, 0xc70c5792b73b0763) }, // -4003
+ { cat(0x07d2acdb61a27415, 0xc72deae95fd007cc), cat(0xa3d9b6741eb2d5ab, 0xd270460ef8fc05e9) }, // -4002
+ { cat(0x39755715e7b529ab, 0x05be55877fd99fd6), cat(0x831491f67ef577bc, 0xa859d1a593fcd187) }, // -4001
+ { cat(0xc25558230c550f78, 0x093088d8cc8f6623), cat(0xd1ba8323fe558c61, 0x0d5c82a286614f3e) }, // -4000
+ { cat(0x6844468270440c60, 0x075a0713d6d91e83), cat(0xa7c868e99844704d, 0xa44a021b9eb43f65) }, // -3999
+ { cat(0xed036b9b8d033d19, 0x9f7b38dcabe0e536), cat(0x8639ed87ad038d0a, 0xe9d4ce7c7ef6991d) }, // -3998
+ { cat(0xe19f12927b3861c2, 0x98c527c77967d522), cat(0xd6c315a5e19f4811, 0x76214a60cb24282f) }, // -3997
+ { cat(0xb47f420ec8f9e7ce, 0xe09db96c611fddb5), cat(0xabcf4484b47f6cda, 0xc4e76eb3d5b6868c) }, // -3996
+ { cat(0x5d329b3f072e530b, 0xe6e49456b4197e2b), cat(0x89729d36f6cc5715, 0x6a52bef64492053d) }, // -3995
+ { cat(0xfb842b980b7d51ac, 0xa4a0ed57868f3044), cat(0xdbea9524be13be88, 0xaa1dfe56d41cd52e) }, // -3994
+ { cat(0x960356133c644156, 0xea1a577938728d03), cat(0xafeeddb6fe763206, 0xee7e6512434a4425) }, // -3993
+ { cat(0xde6911a8fd1d0112, 0x54e1df942d2870cf), cat(0x8cbf17c5985e8e6b, 0xf1feb741cf6e9cea) }, // -3992
+ { cat(0xfd74e90e61c801b6, 0xee363286aea71ae5), cat(0xe131bfa28d641713, 0x1ccabecfb24a94aa) }, // -3991
+ { cat(0x645d873eb4a0015f, 0x24f8286bbeec1584), cat(0xb427cc820ab678dc, 0x170898a6283baa22) }, // -3990
+ { cat(0xe9e46c322a199ab2, 0x83f9b9efcbf01137), cat(0x901fd6ce6ef860b0, 0x126d46eb5362ee81) }, // -3989
+ { cat(0x763a46b6a9c2911d, 0x9ff5f64c79801b8a), cat(0xe69957b0b18d6780, 0x1d7ba4abb89e4a69) }, // -3988
+ { cat(0xc4fb6bc5549ba74a, 0xe65e5ea394667c6f), cat(0xb87aac8d5ad78600, 0x17961d562d4b6eba) }, // -3987
+ { cat(0x372f896aaa161f6f, 0x1eb1e54fa9eb96bf), cat(0x939556d77bdf9e66, 0x7944e444f1092562) }, // -3986
+ { cat(0x2518dbdddcf0324b, 0x644fd54c43128acb), cat(0xec22248bf965ca3d, 0x8ed4a06e4e75089d) }, // -3985
+ { cat(0xb747164b17268ea2, 0xb6a6443d02753bd6), cat(0xbce81d3cc784a1ca, 0xd8aa19f1d85da07d) }, // -3984
+ { cat(0xc5d2783c12853ee8, 0x921e9cfd9b90fcab), cat(0x97201763d2d0816f, 0x13bb47f4ad17b397) }, // -3983
+ { cat(0x3c83f39350d53174, 0x1cfdc7fc2c1b2dde), cat(0xf1ccf239514d9be4, 0xec5ed9877b591f59) }, // -3982
+ { cat(0x639cc2dc40aa8df6, 0x7d97d3302348f17f), cat(0xc170c1c7743e1650, 0xbd18ae05fc474c47) }, // -3981
+ { cat(0x82e3cf169a220b2b, 0x97aca8f34f6d8dff), cat(0x9ac09b05f69811da, 0x30e08b37fd05d69f) }, // -3980
+ { cat(0x6b06182429d011df, 0x591441854be27ccb), cat(0xf79a91a3242682f6, 0xb49a785994d62432) }, // -3979
+ { cat(0x559e79b687d9a7e5, 0xe0dd01376fe863d6), cat(0xc615414f501ecf2b, 0xc3aec6ae10ab5028) }, // -3978
+ { cat(0x114b94920647b984, 0xb3e400f926538312), cat(0x9e776772a67f0c23, 0x02f2388b40890ced) }, // -3977
+ { cat(0xe878edb67072c26d, 0xeca0018ea3b8d1b5), cat(0xfd8bd8b770cb469e, 0x6b1d2745340e7b14) }, // -3976
+ { cat(0x5393f15ec05bcebe, 0x56e667a54fc70e2b), cat(0xcad646f92709054b, 0x88e41f6a900b95aa) }, // -3975
+ { cat(0xa943277f00497231, 0xdf1eb9510c9f3e89), cat(0xa24505941f3a6aa2, 0xd3e9b2bba66faaee) }, // -3974
+ { cat(0x8768ec6599d45b5b, 0x18e5610da3b2986d), cat(0x81d0d1434c2ebbb5, 0x76548efc85262258) }, // -3973
+ { cat(0x0bdb13d5c2ed5ef8, 0x27d56815d2b75a48), cat(0xcfb4820546b12c55, 0x8a20e4c73b7036f4) }, // -3972
+ { cat(0x3caf431168bde593, 0x53112011755f7b6d), cat(0xa62a019dd22756aa, 0xd4e71d6c2f8cf8c3) }, // -3971
+ { cat(0xfd59027453cb1e0f, 0x75a74cdac44c62be), cat(0x84ee67b174ec4555, 0x771f4abcf2d72d68) }, // -3970
+ { cat(0xfbc19d86ec783018, 0xbc3ee15e06e09dfc), cat(0xd4b0a5e8bb13a222, 0x5832112e515848a7) }, // -3969
+ { cat(0x96347e0589f9c013, 0xc9cbe77e6be6e4ca), cat(0xaa26eb2095a94e81, 0xe0280dbea779d3b9) }, // -3968
+ { cat(0x44f6cb37a19499a9, 0x6e3cb931efebea3b), cat(0x881f228077baa534, 0xb3533e321f94a961) }, // -3967
+ { cat(0x6e57ab8c35ba8f75, 0x7d2df51cb313105f), cat(0xd9cb6a6725f76eba, 0xb885305032877568) }, // -3966
+ { cat(0x584622d691620c5d, 0xfdbe5db08f42737f), cat(0xae3c551f5192befb, 0xc6d0f3735b9f9120) }, // -3965
+ { cat(0x79d1b578744e704b, 0x316517c0729b8f99), cat(0x8b63774c41423263, 0x0573f5f5e2e60db3) }, // -3964
+ { cat(0x5c82bbf3ed4a4d45, 0x1bd4f2cd842c18f4), cat(0xdf058bad3536b704, 0xd586565637d67c52) }, // -3963
+ { cat(0xb068965cbdd50a9d, 0xafdd8f0ad023472a), cat(0xb26ad6242a922c03, 0xde0511de9311fd0e) }, // -3962
+ { cat(0x59ed4516fe44087e, 0x264ad8d5734f6c22), cat(0x8ebbde835541bccf, 0xe4d0db1875a7fda5) }, // -3961
+ { cat(0x5caed4f196d340c9, 0xd6de27bbebb2469c), cat(0xe45fca6bbb9c614c, 0xa14e2b5a55d995d5) }, // -3960
+ { cat(0x7d58aa5adf0f6707, 0xdf181fc9895b6bb0), cat(0xb6b308562fb04dd6, 0xe771bc4844ae1177) }, // -3959
+ { cat(0x3113bb7be5a5ec06, 0x4c134ca13aaf895a), cat(0x9228d3782626a4ab, 0xec5afd069d580df9) }, // -3958
+ { cat(0x4e85f8c63c3cacd6, 0xe01ee101f77f4229), cat(0xe9daebf3703dd446, 0x46f7fb3dc88ce328) }, // -3957
+ { cat(0x3ed193d1c9ca23df, 0x19b24d9b2c65ce87), cat(0xbb15898f8cfe436b, 0x6bf995cb06d71c20) }, // -3956
+ { cat(0x3241430e3b081cb2, 0x7af50ae289eb0b9f), cat(0x95aad472d731cf89, 0x232e116f38ac1680) }, // -3955
+ { cat(0x50686b49f80cfab7, 0x2b21ab040fde78ff), cat(0xef77ba51584fb275, 0x0516824b8de02400) }, // -3954
+ { cat(0x40538907f9a3fbc5, 0xbc1aef36731860cc), cat(0xbf92fb7446a6285d, 0x9dab9b6fa4b35000) }, // -3953
+ { cat(0x3376073994832fd1, 0x6348bf5ec279e70a), cat(0x994262c36bb8204a, 0xe48949261d5c4000) }, // -3952
+ { cat(0x525671f5ba6b7fb5, 0x6ba798979d8fd80f), cat(0xf537046bdf8d0077, 0xd40edb702efa0000) }, // -3951
+ { cat(0xdb785b2afb8932f7, 0x8952e0794ad979a6), cat(0xc42c03897fa4005f, 0xdcd8af8cf2619999) }, // -3950
+ { cat(0x492d15bbfc6dc25f, 0xa10f19faa2479485), cat(0x9cf002d4661ccd19, 0x7d7a260a5b8147ae) }, // -3949
+ { cat(0x7514ef932d7c6a32, 0x9b4b5cc436d8eda1), cat(0xfb199e20a3614828, 0xc8c37010926872b0) }, // -3948
+ { cat(0x2a77260f5796bb5b, 0xaf6f7d69c57a57b4), cat(0xc8e14b4d4f810687, 0x0702c00d41ed288d) }, // -3947
+ { cat(0x885f51a5dfabc916, 0x25f2cabb0461dfc3), cat(0xa0b43c3dd9340538, 0xd26899a434bdba0a) }, // -3946
+ { cat(0xa04c41517fbca0de, 0x84c23bc8d04e4c9c), cat(0x809030317a90042d, 0x75207ae9c3cafb3b) }, // -3945
+ { cat(0x007a021bff943497, 0x3ad05fa7b3b07a93), cat(0xcdb3804f2a8006af, 0x21cd9176061191f9) }, // -3944
+ { cat(0x00619b4999435d45, 0xc8a6b2ec8fc06210), cat(0xa48f99d8eeccd225, 0xb4a4745e6b414194) }, // -3943
+ { cat(0x33814907adcf7dd1, 0x6d5228bd3fcd1b40), cat(0x83a614ad8bd70e84, 0x9083904b89010143) }, // -3942
+ { cat(0x526874d91618c94f, 0x1550412ecc7b5ecc), cat(0xd2a35448dfbe7da0, 0xe738e6df419b3538) }, // -3941
+ { cat(0x0eb9f71411ad6dd8, 0xddd9cdbf09fc4bd7), cat(0xa882a9d3e631fe1a, 0x5293ebe5ce15c42d) }, // -3940
+ { cat(0x722e5f4341578b13, 0xe4ae3e326e636fdf), cat(0x86ceee431e8e64e1, 0xdba98984a4de368a) }, // -3939
+ { cat(0xe9e3cb9ecef2781f, 0xd449fd1d7d6be631), cat(0xd7b17d3830e3d49c, 0x92a8dc076e305743) }, // -3938
+ { cat(0xee4fd618a58ec67f, 0xdd07fdb131231e8e), cat(0xac8dfdc68d83107d, 0x4220b005f1c045cf) }, // -3937
+ { cat(0xbea644e084723866, 0x4a6ccaf4274f4ba5), cat(0x8a0b316ba468d9fd, 0xce808cd18e336b0c) }, // -3936
+ { cat(0xfdd6d49a6d838d70, 0x771477ed0bb212a1), cat(0xdcdeb579070e2996, 0x173414827d1f11ad) }, // -3935
+ { cat(0x64abdd48579c7126, 0xc5a9f98a6fc1a881), cat(0xb0b22ac738d82144, 0xdf5cdd3530e5a7be) }, // -3934
+ { cat(0x1d564aa04616c0eb, 0xd154c7a1f301539b), cat(0x8d5b556c2d79b437, 0x1917175dc0b7b965) }, // -3933
+ { cat(0xc88a1100702467df, 0xb554729cb8021f5d), cat(0xe22bbbe048c2b9f1, 0xc1be8bc9345928a1) }, // -3932
+ { cat(0x3a080d99f3505319, 0x5ddd287d6001b2b1), cat(0xb4efc9803a35618e, 0x34986fd429e0ed4e) }, // -3931
+ { cat(0x2e6cd7ae5c40427a, 0xb17db9fde667c227), cat(0x90bfd46694f7813e, 0x9079f3102180bdd8) }, // -3930
+ { cat(0x4a47bf7d6066d0c4, 0x4f2f8ffca3d936a5), cat(0xe79953d754bf3530, 0xe72984e69c012fc0) }, // -3929
+ { cat(0xa1d2ff978052409d, 0x0c260cca1cadc551), cat(0xb9477645dd65c427, 0x1f546a5216675966) }, // -3928
+ { cat(0xb4a8cc793375007d, 0xa351a3d4e3be3774), cat(0x94392b6b17849cec, 0x1910550e7852adeb) }, // -3927
+ { cat(0x544147285254cd95, 0xd21c39549f96bf20), cat(0xed28457825a0fb13, 0x5b4d54e3f3b77cac) }, // -3926
+ { cat(0x769a9f537510a477, 0xdb49c776e6123280), cat(0xbdb9d12ceae72f42, 0xaf7110b65c92ca23) }, // -3925
+ { cat(0x2baee5dc5da6e9f9, 0x7c3b05f8b80e8ecd), cat(0x97c7da8a5585bf68, 0x8c5a73c516dbd4e9) }, // -3924
+ { cat(0x7917d62d62a4a98f, 0x2d2b3cc1267db148), cat(0xf2d95daa226f98a7, 0x46f71fa1be2c87db) }, // -3923
+ { cat(0xc74644f11bb6ee0c, 0x24229700eb97c106), cat(0xc2477e21b52613b9, 0x05927fb498239fe2) }, // -3922
+ { cat(0x390503f4162bf1a3, 0x501bac00bc796738), cat(0x9b6c64e7c41e762d, 0x9e0ecc9079b61982) }, // -3921
+ { cat(0xf4d4d3202379829e, 0xe692accdfa5bd85a), cat(0xf8ad6e3fa030bd15, 0xc9b1474d8f89c269) }, // -3920
+ { cat(0x5d770f4ce92e0218, 0xb875570b2eafe048), cat(0xc6f124ffb35a30de, 0x3af4390ad93b01ee) }, // -3919
+ { cat(0xb12c0c3d875801ad, 0x605ddf3c2559803a), cat(0x9f2750cc8f7b5a4b, 0x625cfa6f142f34be) }, // -3918
+ { cat(0xe84679fc0bc002af, 0x009631f9d55c005c), cat(0xfea54e1418c55d45, 0x6a2e5d7e86b1edfd) }, // -3917
+ { cat(0x536b94c9a3000225, 0x9a11c194aab0004a), cat(0xcbb771a9ad6ab104, 0x54f1e465388e57fe) }, // -3916
+ { cat(0x0f8943d48266681e, 0x14db0143bbc0003b), cat(0xa2f927baf1222736, 0xaa5b1d1dc6d84665) }, // -3915
+ { cat(0x72d436439b852018, 0x10af34362fccccfc), cat(0x8260ec958db4ec2b, 0xbb7c174b0579d1ea) }, // -3914
+ { cat(0x1e2056d2926e99c0, 0x1ab1ed237fae14c6), cat(0xd09b14227c54ad12, 0xc593587808c2e977) }, // -3913
+ { cat(0xb1b378a8752547cc, 0xe227f0e932f1aa38), cat(0xa6e27681fd108a75, 0x6adc46c66d68bac5) }, // -3912
+ { cat(0xf48f93b9f751063d, 0x81b98d875bf4882d), cat(0x8581f867fda6d52a, 0xbbe36bd1f120956a) }, // -3911
+ { cat(0x874c1f8ff21b3d2f, 0x35f5af3ef9874048), cat(0xd59cc0a662a48844, 0x5fd2461cb500ef11) }, // -3910
+ { cat(0xd2a34c732815ca8c, 0x2b2af298c79f66a0), cat(0xaae3cd51e883a036, 0xb30e9e7d5d9a58da) }, // -3909
+ { cat(0xdbb5d6c28677d53c, 0xef558ee09fb2b880), cat(0x88b63ddb20694cf8, 0x8f3ee53117aead7b) }, // -3908
+ { cat(0x5f89579da3f2eec7, 0xe555b16765eac0cd), cat(0xdabd2fc500a87b27, 0x4b97d51b59177bf9) }, // -3907
+ { cat(0x193aac7e1cc2589f, 0xeaaaf452b7ef00a4), cat(0xaefdbfd0cd5395b9, 0x09464415e0df9661) }, // -3906
+ { cat(0x142ef064e3cead4c, 0xbbbbf6a893259a1d), cat(0x8bfe330d710faafa, 0x6dd1d01180b2deb4) }, // -3905
+ { cat(0xb9e4b3d49fb11547, 0x92c657741ea2902e), cat(0xdffd1e7be8191190, 0xafb619b59ab7cab9) }, // -3904
+ { cat(0xc7ea2976e6274439, 0x423845f67ee87358), cat(0xb330e52fece0dada, 0x262b47c47bc63bc7) }, // -3903
+ { cat(0x6cbb545f1e85d02d, 0xce936b2b98b9f5e0), cat(0x8f5a50f323e7157b, 0x51bc3969fc9e9639) }, // -3902
+ { cat(0x145eed64fda2e6af, 0xb0ebdeac278fefcd), cat(0xe55d4e51d30b5592, 0x1c605bdcc764238f) }, // -3901
+ { cat(0xdd18bdea64825226, 0x27231889b93ff30a), cat(0xb77dd84175a2aadb, 0x49e6afe3d2b682d8) }, // -3900
+ { cat(0xb0e097eeb6cea81e, 0x85b5ad3afa998f3b), cat(0x92cb1367914eef15, 0xd4b88cb6422b9be0) }, // -3899
+ { cat(0x1b00f3178ae44030, 0xd5ef7b9190f5b1f8), cat(0xeade85728217e4ef, 0xbac0e1239d129301) }, // -3898
+ { cat(0x48cd8f4608b699c0, 0xab25fc7473f7c194), cat(0xbbe5378ece7983f2, 0xfbcd80e94a754267) }, // -3897
+ { cat(0x3a3e0c3806f87b00, 0x88eb305d29930143), cat(0x9650f93f0b94698f, 0x2fd79a543b9101ec) }, // -3896
+ { cat(0x5d30138cd7f3f800, 0xdb11e6fb75b80204), cat(0xf0818ecb45ba427e, 0xb2f29086c5b4cfe0) }, // -3895
+ { cat(0xe426760a465cc667, 0x15a7ebfc5e2cce6a), cat(0xc067a56f6afb6865, 0x5bf5406bd15d7319) }, // -3894
+ { cat(0x501ec4d50517051f, 0x448656637e8a3ebb), cat(0x99ec84592262b9ea, 0xaff766bca77df5ae) }, // -3893
+ { cat(0xe697a154d4f1a1cb, 0xa0d6f09f30dd312b), cat(0xf6473a2837045caa, 0xb325712dd8c98916) }, // -3892
+ { cat(0x85461aaa43f4816f, 0xb3df26e5c0b0f423), cat(0xc505c8202c037d55, 0x5c1df424ad6e0745) }, // -3891
+ { cat(0x376b4888365d3459, 0x5cb285849a2729b6), cat(0x9d9e39b356693111, 0x167e5cea245805d1) }, // -3890
+ { cat(0x58aba74056fb86f5, 0x611da26dc371dc55), cat(0xfc305c5223db81b4, 0xf0ca2e436d59a2e8) }, // -3889
+ { cat(0x7a22ec3378c938c4, 0x4db14ebe35f4b044), cat(0xc9c049db4fe2ce2a, 0x5a3b5835f1148253) }, // -3888
+ { cat(0xfb4f235c60a0fa36, 0xa48dd8982b2a269d), cat(0xa166a17c3fe8a4ee, 0xae95e02b27439b75) }, // -3887
+ { cat(0x2f7282b04d4d94f8, 0x83a4ad4688ee854b), cat(0x811ee7969986ea58, 0x8bab19bc1f69492b) }, // -3886
+ { cat(0xb250d11a1548ee5a, 0x6c3aaed7417da211), cat(0xce97d8f0f5a4aa27, 0x45de8f93657541de) }, // -3885
+ { cat(0x2840a74811072515, 0x2362257901314e74), cat(0xa54647272aea21b9, 0x04b20c75eac434b2) }, // -3884
+ { cat(0x2033b9067405b744, 0x1c4e8460cdc10b90), cat(0x843838ec2254e7c7, 0x36f4d6c4bbd02a28) }, // -3883
+ { cat(0x0052c1a3ecd5f206, 0x93b0d3ce1601ac19), cat(0xd38d27e036ee3fa5, 0x24baf13ac619dd0d) }, // -3882
+ { cat(0x66a89ae98a44c19e, 0xdc8d763e7801567b), cat(0xa93db9802bf1cc84, 0x1d625a956b47e40a) }, // -3881
+ { cat(0x52207bee0837014b, 0xe3a45e98600111fc), cat(0x87649466898e3d36, 0x7de8487789065008) }, // -3880
+ { cat(0x5033f97cd9f19bac, 0x9f6d64270001b660), cat(0xd8a0ed70dc16c857, 0x2fda0d8c0e70800d) }, // -3879
+ { cat(0x735cc79714c14956, 0xe5f11cec00015eb3), cat(0xad4d8ac0b01239df, 0x597b3e09a526ccd7) }, // -3878
+ { cat(0x8f7d6c78dd676ddf, 0x1e5a7d89999ab229), cat(0x8aa46f008cdb617f, 0x7ac8fe6e1db8a3df) }, // -3877
+ { cat(0x7f2f13f495724964, 0xfd5d95a8f5c45041), cat(0xddd3e4cdae2bcf32, 0x5e0e63e362c10632) }, // -3876
+ { cat(0x65bf432a11283ab7, 0x3117aaed9169d9ce), cat(0xb17650a48b563f5b, 0x7e71e982b5673828) }, // -3875
+ { cat(0x5165cf54da86955f, 0x5a79558adabb14a5), cat(0x8df84083a2ab65e2, 0xcb8e5468911f6020) }, // -3874
+ { cat(0x1bd61887c40a8898, 0x90c22277c45e876e), cat(0xe326cd9f6aabd637, 0xac16ed741b65669a) }, // -3873
+ { cat(0xe311ad3969a206e0, 0x73ce81f969e53925), cat(0xb5b8a47f8889782c, 0x89abf129af845214) }, // -3872
+ { cat(0x4f415761214e6be6, 0xc30b9b2dee50fa84), cat(0x916083993a079356, 0xd4898dbaf2d041aa) }, // -3871
+ { cat(0xe535589b687d7971, 0x381291e316e7f739), cat(0xe89a6c285cd8ebbe, 0x20dc15f7eae6cf76) }, // -3870
+ { cat(0x842aad4920646127, 0x600edb1c12532c2e), cat(0xba1523537d7a5631, 0xb3e344c6558572c5) }, // -3869
+ { cat(0xd022243a80504db9, 0x19a57c16750f568b), cat(0x94ddb5dc6461de8e, 0x29829d6b779df56a) }, // -3868
+ { cat(0x19d039f733b3af8e, 0x8f6f2cf0bb4bbdab), cat(0xee2f8960a09c9749, 0xdc042f1258fcbbde) }, // -3867
+ { cat(0xe17361928fc2f2d8, 0x72bf5726fc3c97bc), cat(0xbe8c6de6e6e3ac3b, 0x1669bf41e0ca2fe4) }, // -3866
+ { cat(0x81291adba6358f13, 0x8eff78ebfcfd4630), cat(0x987057ebebe95695, 0xab87cc34b3d4f31d) }, // -3865
+ { cat(0x350e915f7055b1b8, 0xe4cbf4acc7fba380), cat(0xf3e6f313130ef0ef, 0x78d946bab954b82f) }, // -3864
+ { cat(0x2a720de5f377c160, 0xb709908a39961c66), cat(0xc31f28dc0f3f2725, 0xfa476bc89443c68c) }, // -3863
+ { cat(0xeec1a4b7f5f96780, 0x926e0d3b6144e385), cat(0x9c18ed7cd8ff5284, 0xc8392306dd03053c) }, // -3862
+ { cat(0x4acf6df32328a59a, 0x83e3485f0207d26f), cat(0xf9c17bfaf4cbb73a, 0xd9f504d7c804d52e) }, // -3861
+ { cat(0xd572be5c1c20847b, 0x9cb5d37f34d30ebf), cat(0xc7cdfcc8c3d62c2f, 0x14c403dfd33710f1) }, // -3860
+ { cat(0x778efeb0168069fc, 0x7d5e42cc2a427232), cat(0x9fd7fd6d69782358, 0xdd699cb30f5f40c1) }, // -3859
+ { cat(0xf27e644cf0cd7660, 0xc896d146aa03e9ea), cat(0xffbffbe24259d227, 0xc8a8fab81898679b) }, // -3858
+ { cat(0x28651d0a5a3df84d, 0x6d45743888032188), cat(0xcc99964e9b7b0e86, 0x3a20c89346e052e3) }, // -3857
+ { cat(0xed1db0d514fe603d, 0xf1045cfa0668e7a0), cat(0xa3ae11d87c627204, 0xfb4d6d429f19dbe8) }, // -3856
+ { cat(0x2417c0aa7731e697, 0xf4037d94d1ed861a), cat(0x82f1a7e06381f4d0, 0xc90abdcee5ae4987) }, // -3855
+ { cat(0xa0260110beb63dbf, 0xecd26287b648d68f), cat(0xd182a633d26987b4, 0x74ddfc7e3c4a0f3e) }, // -3854
+ { cat(0x19b800da322b6499, 0x8a41e86c91d3ded9), cat(0xa79bb8297521395d, 0x2a4b3064fd080c32) }, // -3853
+ { cat(0x149333e1c1bc507a, 0xd50186bd41764be1), cat(0x86162cedf74dc77d, 0xbb6f59ea64067028) }, // -3852
+ { cat(0x8751ec9c692d4d91, 0x54cf3dfb9bf07968), cat(0xd689e17cbee2d8c9, 0x2be55caa39a3e6a6) }, // -3851
+ { cat(0xd2a7f07d20f10ada, 0xaa3f64c9498d2ded), cat(0xaba1813098b57a3a, 0x89844a21c7b6521e) }, // -3850
+ { cat(0x755326ca80c0d57b, 0xbb65ea3aa13dbe57), cat(0x894e00f3ad5dfb62, 0x079d081b062b74e5) }, // -3849
+ { cat(0x5551d7aa679aef2c, 0x5f0976c4352f96f2), cat(0xdbb00185e22ff89c, 0xd8fb402b3d1254a2) }, // -3848
+ { cat(0x444179551faf25bd, 0x18d45f035dbfabf5), cat(0xafc00137e826607d, 0x7a6299bc30db76e8) }, // -3847
+ { cat(0xd0346110e625b7ca, 0x7a437f35e499565d), cat(0x8c999a93201eb397, 0x951bae302715f8b9) }, // -3846
+ { cat(0x8053ce81703c5943, 0xf6d26523075bbd62), cat(0xe0f5c41e99cab8f2, 0x882c49e6a4eff45c) }, // -3845
+ { cat(0xcd0fd8678cfd1436, 0x5f0eb74f3916311b), cat(0xb3f7d0187b0893f5, 0x39bd07ebb7265d16) }, // -3844
+ { cat(0xa40cad1fa3fda9c5, 0x18d892a5c744f416), cat(0x8ff97346c8d3a990, 0xfafd9fefc5b84a78) }, // -3843
+ { cat(0x39ade1cc3995dc6e, 0x8e2751093ed4b9bc), cat(0xe65beba47485dc1b, 0x2b2f664c6f8d43f4) }, // -3842
+ { cat(0xc7be4e3cfade49f2, 0x0b52a73a98aa2e30), cat(0xb84989505d37e348, 0xef591ea38c710329) }, // -3841
+ { cat(0xd2fea4fd957ea18e, 0x6f75529546ee8b5a), cat(0x936e07737dc64f6d, 0x8c474bb609f40287) }, // -3840
+ { cat(0x1e643b2f559768e3, 0xe58884220b17455c), cat(0xebe33f1f2fa3b248, 0xe07212bcdcb99da6) }, // -3839
+ { cat(0x7eb695bf77ac53e9, 0x846d3681a279044a), cat(0xbcb5cc18f2e95b6d, 0x805b4230b0947e1e) }, // -3838
+ { cat(0x655ede32c6237654, 0x69f0f867b52d9d08), cat(0x96f7d67a5bede2be, 0x004901c08d439818) }, // -3837
+ { cat(0xd56496b7a36bf087, 0x0fe7f3d921e294d9), cat(0xf18c8a5d5fe30463, 0x33a802cdaed28cf3) }, // -3836
+ { cat(0xaab6def94f898d38, 0xd9865cadb4b543e1), cat(0xc13d3b7de64f36b5, 0xc2eccf0af2420a5c) }, // -3835
+ { cat(0xbbc57f2dd93ad760, 0xae0516f15d5dcfe8), cat(0x9a9762cb1ea5c55e, 0x358a3f3bf501a1e3) }, // -3834
+ { cat(0x92d598495b91589a, 0xb00824b5622fb30c), cat(0xf7589e11caa2d563, 0x88dd31f988029c9f) }, // -3833
+ { cat(0xa8aae03aafa77a15, 0x59a01d5de82628d6), cat(0xc5e07e74a21bdde9, 0x3a4a8e61399bb07f) }, // -3832
+ { cat(0x2088b362261f94dd, 0xe14ce44b201e8712), cat(0x9e4d31f6e8164b20, 0xfb6ed84dc7afc066) }, // -3831
+ { cat(0x00dab89d09cc2163, 0x0214a07833640b50), cat(0xfd484ff17356de9b, 0x2be48d493f7f9a3d) }, // -3830
+ { cat(0x6715607da1701ab5, 0x9b43b3935c50090d), cat(0xcaa03ff45c457ee2, 0x8983a43a9932e1ca) }, // -3829
+ { cat(0xec1119fe1ac0155e, 0x15cfc2dc49d9a0d7), cat(0xa219ccc37d046582, 0x079c83621428b4a1) }, // -3828
+ { cat(0xf00dae64e233444b, 0x44a6357d07e14d79), cat(0x81ae3d6930d05134, 0xd2e39c4e7686f6e7) }, // -3827
+ { cat(0x4ce2b0a169eba078, 0x6dd6bbfb3fcee25b), cat(0xcf7d2f0eb48081ee, 0x1e38fa17240b24a6) }, // -3826
+ { cat(0x0a4ef3b454bc8060, 0x57defcc8ffd8b515), cat(0xa5fdbf3ef6cd34be, 0x7e93fb45b66f5085) }, // -3825
+ { cat(0x6ea58fc376fd3380, 0x464bfd6d997a2a78), cat(0x84caff65923dc3cb, 0x9876629e2b8c406a) }, // -3824
+ { cat(0x176f4c6bf1951f33, 0xa3acc8af5bf6aa59), cat(0xd477ff08e9fc6c78, 0xf3f09dc9df46cd77) }, // -3823
+ { cat(0x12bf70565addb28f, 0xb623d3bf7cc55514), cat(0xa9f998d3ee6389fa, 0x5cc07e3b1905712c) }, // -3822
+ { cat(0xdbcc59deaf17c20c, 0x91b642ff97044410), cat(0x87fae0a98b82d4c8, 0x4a33982f47378dbc) }, // -3821
+ { cat(0x2c7a29644b59367a, 0x82bd37ff5806d34d), cat(0xd9916775ac0487a6, 0xdd1f59e53ebf492e) }, // -3820
+ { cat(0xf061bab6a2adc52e, 0xcefdc665e00575d7), cat(0xae0dec5e2336d2eb, 0xe41914b76565d424) }, // -3819
+ { cat(0x59e7c8921bbe3758, 0xa597d1eb199df7df), cat(0x8b3e56b1b5c57589, 0x834743c5eab7dcea) }, // -3818
+ { cat(0x5ca60db692c9f227, 0x6f594fde8f632632), cat(0xdeca244f893bef42, 0x6ba5393caabfc7dd) }, // -3817
+ { cat(0x4a1e715edbd4c1b9, 0x25e10cb20c4f51c1), cat(0xb23b503fa0fcbf68, 0x561dc763bbcc9fe4) }, // -3816
+ { cat(0xa1b1f44be3109afa, 0x84b40a2809d90e34), cat(0x8e95d9cc80ca32b9, 0xde7e391c963d4cb6) }, // -3815
+ { cat(0x691cba1304e75e5d, 0xa12010400fc1b054), cat(0xe422f6140143845c, 0x97305b60f0621457) }, // -3814
+ { cat(0x20e3c80f371f7eb1, 0x4db340333fce26a9), cat(0xb6825e76676936b0, 0x78f37c4d8d1b4379) }, // -3813
+ { cat(0xb3e96cd8f8e5fef4, 0x3e290028ffd81eee), cat(0x9201e52b85edc559, 0xfa5c63713daf692d) }, // -3812
+ { cat(0x1fdbe15b27d664b9, 0xfd0e66a7ffc0317d), cat(0xe99ca1df3cafa229, 0x9093d24ec918a849) }, // -3811
+ { cat(0xe6498115b9785094, 0xca71ebb999668dfd), cat(0xbae3b4b296f2e821, 0x407641d8a0e086a0) }, // -3810
+ { cat(0xeb6e00de2df9da10, 0xa1f4bc947ab87198), cat(0x9582f6f5458f201a, 0x99f834ad4d806bb3) }, // -3809
+ { cat(0xabe33496aff629b4, 0x365460ed91271c25), cat(0xef37f1886f4b6690, 0xf659ede2159a45ec) }, // -3808
+ { cat(0x564f5d455991baf6, 0x91dd1a57a7527ceb), cat(0xbf5ff46d25d5eba7, 0x2b7b24b4de1504bd) }, // -3807
+ { cat(0x783f7dd114749592, 0x0e4a7b7952a863ef), cat(0x991990575177efb8, 0xef95b6f71810d097) }, // -3806
+ { cat(0x8d3262e820ba88e9, 0xb0772bf5510d6cb2), cat(0xf4f5b3bee8bfe5f4, 0xb28924be8ce7b425) }, // -3805
+ { cat(0xd75b82534d620721, 0x59f8eff7740abd5b), cat(0xc3f7c2ff209984c3, 0xc207509870b95cea) }, // -3804
+ { cat(0xdf7c6842a44e6c1a, 0xae60bff929a23116), cat(0x9cc63598e6e13703, 0x019f73ad26fab0bb) }, // -3803
+ { cat(0xff2d739dd3b0acf7, 0x7d67998ea90381bc), cat(0xfad6bc27d7cebe6b, 0x35cbec483e5de792) }, // -3802
+ { cat(0xcc245c7e42f3bd92, 0xcab947a55402ce30), cat(0xc8abc9b9797231ef, 0x5e3cbd06984b1fa8) }, // -3801
+ { cat(0xa35049fe9bf63142, 0x3bc76c84433571c0), cat(0xa0896e2dfac1c18c, 0x4b63ca6bad08e620) }, // -3800
+ { cat(0xb5d9d4cbaff82768, 0x2fd2bd369c2ac167), cat(0x806df1be62349ad6, 0xa2b63b89573a51b3) }, // -3799
+ { cat(0xbc8fbadf7ff37240, 0x4c8461f0f9de023e), cat(0xcd7cb5fd69edc48a, 0x9df05f42252a1c52) }, // -3798
+ { cat(0x63a62f1933292833, 0x7069e7f3fb1801cb), cat(0xa463c4cabb249d3b, 0xb18d1901b754e375) }, // -3797
+ { cat(0x4fb825adc287535c, 0x59ee532995acce3c), cat(0x838303d56283b0fc, 0x8e0a7a67c5dd82c4) }, // -3796
+ { cat(0x1926a2af9da5522d, 0x5cb0850f55e149f9), cat(0xd26b39556a6c4e60, 0xe343f70c6fc8d13a) }, // -3795
+ { cat(0x7a854ef2e48441bd, 0xe3c06a72ab1aa194), cat(0xa855c7778856a51a, 0x4f699270596d742e) }, // -3794
+ { cat(0x2ed10bf5839d0164, 0xb633885bbc154e10), cat(0x86ab05f939deea7b, 0x72badb8d14579025) }, // -3793
+ { cat(0x17b4dfef38fb356d, 0xf05273c5f9bbb01a), cat(0xd778098ec2fe43f8, 0xb7915f48208c19d5) }, // -3792
+ { cat(0x462a4cbf60c8f78b, 0x26a85c9e6162f348), cat(0xac6007a568cb6993, 0xc60de5d34d3ce177) }, // -3791
+ { cat(0x04eea3cc4d6d92d5, 0xb886b07eb44f2907), cat(0x89e66c8453d5ee0f, 0xd1a4b7dc3dca4df9) }, // -3790
+ { cat(0xa17dd2e07be28489, 0x273de731207ea80a), cat(0xdca3e0d3b95649b2, 0xe9078c9396107cc1) }, // -3789
+ { cat(0x81317580631b9d3a, 0x85cb1f5a8065533b), cat(0xb0831a42faab6e28, 0xba6c707611a6ca34) }, // -3788
+ { cat(0x34279133827c7dc8, 0x6b08e5e200510f63), cat(0x8d35ae9bfbbc5820, 0x95238d2b41523b5d) }, // -3787
+ { cat(0xb9d8e8526a60c940, 0xab416fd00081b237), cat(0xe1ef7dc65f93c034, 0x21d27b786883922e) }, // -3786
+ { cat(0x617a537521e70766, 0xef678ca666ce282c), cat(0xb4bf97d1e60fccf6, 0x81752f9386cfa825) }, // -3785
+ { cat(0xe7950f90e7ec05eb, 0xf2b93d51ebd82024), cat(0x9099464184d970c5, 0x345dbfa938a6201d) }, // -3784
+ { cat(0x3f54e5b4a6466fdf, 0xeac1fbb6462699d2), cat(0xe75ba39c07c24e08, 0x53c932a85aa36696) }, // -3783
+ { cat(0x32aa515d51d1f319, 0x889b2fc504ebae42), cat(0xb9161c7cd301d806, 0xa96dc2204882b878) }, // -3782
+ { cat(0x8eeea77ddb0e5c14, 0x6d48f30403efbe9b), cat(0x9411b063dc01799e, 0xedf16819d39bc6c6) }, // -3781
+ { cat(0x4b177262f816f9ba, 0x4874b8066cb2ca92), cat(0xece91a3960025c31, 0x7cb5735c85c60ad7) }, // -3780
+ { cat(0x6f45f51bf9abfafb, 0x6d2a2cd1f08f0875), cat(0xbd87482de66849c1, 0x30912916d16b3bdf) }, // -3779
+ { cat(0x5904c41661566262, 0xbdbb570e5a0c06c4), cat(0x979f6cf185203b00, 0xf3a754124122964c) }, // -3778
+ { cat(0x8e6e068a355703d1, 0x2f9224e3c3467139), cat(0xf298ae4f3b66c4ce, 0x52a55350683756e0) }, // -3777
+ { cat(0xa524d2082aac030d, 0xbfa81d83029ec0fb), cat(0xc213bea5c91f03d8, 0x421ddc40535f78b3) }, // -3776
+ { cat(0x841d74d3555668d7, 0xcc867e02687f00c9), cat(0x9b42feeb074c0313, 0x6817e366a9192d5c) }, // -3775
+ { cat(0x069587b8888a4159, 0x473d966a40cb3474), cat(0xf86b31780bacd1b8, 0xa68c9f0aa8284894) }, // -3774
+ { cat(0x6baad2fa06d50114, 0x38fe11ee9a3c29f6), cat(0xc6bc27933c8a4160, 0x853d4c088686a076) }, // -3773
+ { cat(0x562242619f10cda9, 0xc731a7f214fcee5f), cat(0x9efcec75ca08344d, 0x37643cd39ed219f8) }, // -3772
+ { cat(0xf036d09c31b47c42, 0xd84f731cee617d64), cat(0xfe617a56100d207b, 0x8bd39485cae9c326) }, // -3771
+ { cat(0x59c573b027c3969b, 0xe03f8f4a584dfdea), cat(0xcb812eab400a8062, 0xd642dd37d587cf52) }, // -3770
+ { cat(0xe16ac2f35302dee3, 0x19cc72a1e03e64bb), cat(0xa2cdbeef666ecd1b, 0xde9be42caad30c41) }, // -3769
+ { cat(0x4def025c4268b24f, 0x47d6c21b19cb83c9), cat(0x823e32591ebf0a7c, 0xb2165023bbdc09ce) }, // -3768
+ { cat(0x497e6a2d370dea18, 0x72f13691c2df3941), cat(0xd06383c1cacb43fa, 0xb68a19d2c62cdc7d) }, // -3767
+ { cat(0x3acb88242c0b21ad, 0x28c0f8749be5c768), cat(0xa6b603016f09032e, 0xf86e7b0f04f0b064) }, // -3766
+ { cat(0xc8a2d350233c1af0, 0xed672d2a16516c53), cat(0x855e68cdf26d9c25, 0x938b95a59d8d59e9) }, // -3765
+ { cat(0x4104854d052cf7e7, 0xe23eaea9bd4f13b8), cat(0xd563dae31d7c2d08, 0xec128908fc155ca9) }, // -3764
+ { cat(0x00d06aa40423f986, 0x4e988bbafdd8dc93), cat(0xaab648b5b1302407, 0x2342073a63444a21) }, // -3763
+ { cat(0x670d221cd01cc79e, 0xa546d62f317a4a0f), cat(0x8891d3c48dc01cd2, 0x829b38fb829d081a) }, // -3762
+ { cat(0xd81503614cfad8fd, 0xd53e237eb590767f), cat(0xda82ec6daf99c7b7, 0x375ec1926a94d9c3) }, // -3761
+ { cat(0x467735e770c8ad97, 0xddcb4f9891405ecc), cat(0xaecf238af2e16c92, 0x92b234752210ae36) }, // -3760
+ { cat(0x052c2b1f8d6d57ac, 0xb16f72e074337f0a), cat(0x8bd8e93bf58123a8, 0x755b5d2a81a6f1c5) }, // -3759
+ { cat(0x0846ab65af155914, 0x4f18b7cd86b8cb42), cat(0xdfc1752cbc01d2a7, 0x222bc84402a4b608) }, // -3758
+ { cat(0x39d222b7bf444743, 0x727a2ca46bc70902), cat(0xb3012a8a30017552, 0x81bca0366883c4d3) }, // -3757
+ { cat(0xfb0e822c99036c35, 0xf52e8a1d2305a0ce), cat(0x8f3422082667910e, 0xce30802b86cfd0a8) }, // -3756
+ { cat(0xf81736adc19f1389, 0x884a769504d5ce17), cat(0xe520367370a5b4e4, 0x7d1a66ac0ae61aa7) }, // -3755
+ { cat(0x2cdf5ef167b27607, 0xa03b9210d0ab0b45), cat(0xb74cf85c5a1e2a50, 0x64151ef008b81553) }, // -3754
+ { cat(0x8a4c4bf452f52b39, 0x4cfc74da4088d5d1), cat(0x92a3f9e37b4b550d, 0x1cddb259a0934442) }, // -3753
+ { cat(0xaa13acba1e5511f5, 0x47fa54906741561b), cat(0xea9ff638c54554e1, 0xc7c91d5c341ed39d) }, // -3752
+ { cat(0x54dc8a2e7eaa74c4, 0x3995107385cdde7c), cat(0xbbb32b609dd110b4, 0x9fd4177cf67f0fb1) }, // -3751
+ { cat(0x43e3a1becbbb909c, 0xfadda6c2d1717eca), cat(0x9628ef807e40da2a, 0x19767930c53272f4) }, // -3750
+ { cat(0xd305cf97ac5f4dc7, 0xf7c90ad14f1bfe10), cat(0xf0417f33fd349043, 0x5bf0c1e7a1ea5186) }, // -3749
+ { cat(0xdc04a612f04c3e39, 0x93073bdaa5affe73), cat(0xc03465c330f6d9cf, 0x7cc09b1fb4bb746b) }, // -3748
+ { cat(0xb003b80f26a364fa, 0xdc05c97bb7bffec2), cat(0x99c3849c272be172, 0xca33af4c9095f6bc) }, // -3747
+ { cat(0xe66c59b1d76bd4c4, 0x933c7592bf99979d), cat(0xf605a0f9d8463584, 0x76b9187a80eff12d) }, // -3746
+ { cat(0x1ebd148e45efdd6a, 0x0f63914232e14618), cat(0xc4d14d94ad04f79d, 0x2bc746c867265a8b) }, // -3745
+ { cat(0x7efdaa0b6b264abb, 0x3f82da9b5be76b46), cat(0x9d743e108a6a5fb0, 0xefd29f06b8eb7ba2) }, // -3744
+ { cat(0x3195dcdf11d6ddf8, 0x659e2a922ca57870), cat(0xfbed301a7710991b, 0x1950fe7127df2c37) }, // -3743
+ { cat(0x27ab1718db124b2d, 0x1e18220e8a1df9f3), cat(0xc98a8ce1f8da1415, 0xadda65275318f02c) }, // -3742
+ { cat(0x862278e0af41d5bd, 0xb1ace80ba1b194c3), cat(0xa13ba3e7fa481011, 0x57e1ea85dc13f356) }, // -3741
+ { cat(0x381b93e6f29b1164, 0x8e23ecd61af47702), cat(0x80fc831ffb6cd9a7, 0x7981886b16765c45) }, // -3740
+ { cat(0xc02c1fd7ea91b56d, 0xb0397af02b20be6a), cat(0xce60d1ccc57af5d8, 0xc268da44f0bd606e) }, // -3739
+ { cat(0xccf0197988749124, 0x8cfac8c022809855), cat(0xa51a41709dfbf7e0, 0x9b871503f3cab38b) }, // -3738
+ { cat(0xd7267ac7a05d40ea, 0x0a623a334ecd46aa), cat(0x84150126e4c9931a, 0x1605aa698fd55c6f) }, // -3737
+ { cat(0x583d913f66fb9b10, 0x109d29ebb1487110), cat(0xd354cea4a14284f6, 0x89a2aa427fbbc719) }, // -3736
+ { cat(0xacfe0dcc5262e273, 0x407dbb22f439f40d), cat(0xa910a550810203f8, 0x6e1bbb68662fd27a) }, // -3735
+ { cat(0x5731a4a3751be85c, 0x3397c8e8c361900a), cat(0x874084406734cff9, 0xf1afc92051bfdb95) }, // -3734
+ { cat(0x8b82a105882ca6f9, 0xec260e41389c19aa), cat(0xd8673a00a5214cc3, 0x1c4c750082cc9288) }, // -3733
+ { cat(0xd6021a6ad356ebfb, 0x2351a500fa167aef), cat(0xad1f619a1db43d68, 0xe3705d9a023d4206) }, // -3732
+ { cat(0xab34e1ef0f78bcc8, 0xe90e1d9a61ab958c), cat(0x8a7f814817c36453, 0xe926b14801ca9b38) }, // -3731
+ { cat(0xab87cfe4e58dfadb, 0x0e7cfc2a35df55ac), cat(0xdd98ced9bf9f06ec, 0xa83de8733610f85a) }, // -3730
+ { cat(0x22d30cb71e0b2f15, 0xa530c9bb5e4c448a), cat(0xb1470be16618d256, 0xecfe538f5e73f9e2) }, // -3729
+ { cat(0xe8a8d6f8e4d5bf44, 0x842707c9183d03a1), cat(0x8dd26fe784e0a845, 0x8a650fa5e52994b4) }, // -3728
+ { cat(0x410e24c16e22cba0, 0xd371a60e8d2e6c35), cat(0xe2ea4ca5a16773a2, 0x770819096ea8edee) }, // -3727
+ { cat(0x00d81d678b4f094d, 0x75f484d870f1f02b), cat(0xb5883d514dec5c81, 0xf8d3473abeed8b25) }, // -3726
+ { cat(0x33e01786090c0771, 0x2b2a03e05a5b2689), cat(0x9139caa77189e39b, 0x2d75d295658ad5b7) }, // -3725
+ { cat(0xb9668c09a8133f1b, 0x78433966f6f83da7), cat(0xe85c77724f4305c5, 0x158950ef08de22be) }, // -3724
+ { cat(0x611ed66e200f65af, 0x9368fab8c5936486), cat(0xb9e392c1d9026b04, 0x113aa725a0b1b565) }, // -3723
+ { cat(0x80e5785819a5eaf2, 0xdc53fbc70475ea05), cat(0x94b60f017a68559c, 0xda955284808e2ab7) }, // -3722
+ { cat(0x34a25a268f6fde51, 0x60865fa4d3efdcd4), cat(0xedf018025d73bc2e, 0x2a8884073416aabf) }, // -3721
+ { cat(0xc3b514eba5f31841, 0x1a051950a98cb0aa), cat(0xbe59acceb1296358, 0x2206d005c3455565) }, // -3720
+ { cat(0x9c90dd89518f469a, 0x7b374773bad6f3bb), cat(0x9847bd7227544f79, 0xb4d240049c377784) }, // -3719
+ { cat(0x60e7c8dbb5b20a90, 0xc5253f1f9157ec5e), cat(0xf3a5fbe9d886e58f, 0x87b6ccd42d258c07) }, // -3718
+ { cat(0x1a5307162af4d540, 0x9db765b2daacbd18), cat(0xc2eb2fee46d2513f, 0x9fc570a9bdb7a339) }, // -3717
+ { cat(0xaea8d278225d7766, 0xe492b7c2488a30e0), cat(0x9bef598b6bdb7432, 0xe6378d5497c61c2d) }, // -3716
+ { cat(0xb10e1d8d03c8bf0b, 0x07512603a7438167), cat(0xf97ef5abdfc586b7, 0xd6bf4887593cf9e2) }, // -3715
+ { cat(0xc0d817a40306ff3c, 0x05da84cfb902cdec), cat(0xc798c4897fd13893, 0x1232a06c4763fb1b) }, // -3714
+ { cat(0x33e012e99c0598fc, 0xd17b9d72fa68a4bd), cat(0x9fad6a0799742d42, 0x74f54d236c4ffc16) }, // -3713
+ { cat(0xb96684a8f9a28e61, 0x4f2c2f1e5d743ac7), cat(0xff7bdcd8f586aed0, 0xbb2215057a199356) }, // -3712
+ { cat(0x2deb9d53fae871e7, 0x7289bf4b7df6956c), cat(0xcc631713f79ef240, 0x95b4dd9dfb47a912) }, // -3711
+ { cat(0xbe56177662538e52, 0xc207cc3c64c54457), cat(0xa38278dcc618c1cd, 0x4490b14b2f6c8741) }, // -3710
+ { cat(0x31de792b81dc71db, 0xce6ca36383d10379), cat(0x82cec71704e09b0a, 0x9d408dd5bf8a05ce) }, // -3709
+ { cat(0xe963f5126960b62c, 0x7d7a9f059fb4d25b), cat(0xd14ad824d49a91aa, 0x95341622cc100949) }, // -3708
+ { cat(0xbab65da8544d5e89, 0xfdfbb26ae62a41e2), cat(0xa76f1350aa154155, 0x4429ab4f09a66dd4) }, // -3707
+ { cat(0xfbc517b9dd0ab207, 0xfe62f52251bb67e8), cat(0x85f275da21aa9aaa, 0x9cee22a5a151f176) }, // -3706
+ { cat(0x2c6e8c5c94dde9a6, 0x63d18836e92bd973), cat(0xd650bc9035ddc444, 0x2e49d109021cb58b) }, // -3705
+ { cat(0xf058704a10b187b8, 0x4fdad35f20efe129), cat(0xab73ca0cf7e49d03, 0x583b0da0ce7d5e08) }, // -3704
+ { cat(0x26ad26a1a6f46c93, 0x731575e5b3f31a87), cat(0x89296e70c6507d9c, 0x4695a480a5311807) }, // -3703
+ { cat(0x3de1d7690b20adb8, 0xb822563c531e90d8), cat(0xdb757d813d4d95c6, 0xd755d401084e8cd8) }, // -3702
+ { cat(0x31817920d5b3be2d, 0x601b7830427eda47), cat(0xaf913134310ade38, 0xac44a99a6d0ba3e0) }, // -3701
+ { cat(0x8e012db3de2964f1, 0x19af9359cecbe1d2), cat(0x8c74275cf408b1c6, 0xf036ee1524094fe6) }, // -3700
+ { cat(0x7cceaf8630423b1b, 0x5c4c1ef617ac9c83), cat(0xe0b9d894b9a782d7, 0xe6be49bb6cdbb30a) }, // -3699
+ { cat(0x30a55938269b627c, 0x49d67f2b4623b069), cat(0xb3c7e076faec68ac, 0xb8983afc571628d5) }, // -3698
+ { cat(0x26eaadc685491b96, 0xa17865bc381c8d21), cat(0x8fd319f8c8bd208a, 0x2d469596ac11ba44) }, // -3697
+ { cat(0x0b11160a6edb5f57, 0x68c0a2c6c02dae9b), cat(0xe61e8ff47461cda9, 0xe20a88f1134f906d) }, // -3696
+ { cat(0x6f40de6ebf15e5df, 0x8700823899be2549), cat(0xb8187329f6b4a487, 0xe8086d8da90c738a) }, // -3695
+ { cat(0xbf67185898de517f, 0x9f339b607afe843a), cat(0x9346c287f890839f, 0xecd38ad7ba705c6e) }, // -3694
+ { cat(0xff0b5a275afd4f32, 0x98529233f7fda05d), cat(0xeba46a73274d9f66, 0x47b8de25f71a2d7d) }, // -3693
+ { cat(0xff3c481f7bfdd8f5, 0x46a874f65ffe19e4), cat(0xbc83885c1f714c51, 0xd2fa4b51927b5797) }, // -3692
+ { cat(0x98fd067f9664ad91, 0x055390c5199814b7), cat(0x96cfa049b2c109db, 0x0f2ea2a7a862ac79) }, // -3691
+ { cat(0xc194d7328a3aaf4e, 0x6eec1ad4f5c02124), cat(0xf14c33a91e01a95e, 0x7eb1043f73d113f5) }, // -3690
+ { cat(0xce10ac286e95590b, 0x8bf015772b001a83), cat(0xc109c2edb19aede5, 0x3227369929740ff7) }, // -3689
+ { cat(0xa4da23538baaada2, 0xd659aac5bc001536), cat(0x9a6e358af47bf184, 0x281f5ee0edf6732c) }, // -3688
+ { cat(0xa15d0552791115d1, 0x56f5de092ccceebc), cat(0xf716bc11872cb5a0, 0x40323167e323eb7a) }, // -3687
+ { cat(0xb44a6aa860da77da, 0xabf7e4d423d72564), cat(0xc5abc9a79f56f7b3, 0x668e8decb5b655fb) }, // -3686
+ { cat(0x29d522204d7b9315, 0x565fea434fdf511d), cat(0x9e2307b94c4592f5, 0xeba53e56f7c51196) }, // -3685
+ { cat(0x42ee9d007bf8eb55, 0x56ffdd387fcbb4fa), cat(0xfd04d9287a08eb23, 0x12a1fd57f2d4e8f0) }, // -3684
+ { cat(0x68bee400632d8911, 0x12664a93996fc3fb), cat(0xca6a475394d3ef4f, 0x421b311328aa53f3) }, // -3683
+ { cat(0x2098b666b5be0740, 0xdb85087614596996), cat(0xa1ee9f7610a98c3f, 0x6815c0dc20884329) }, // -3682
+ { cat(0xb3ad5eb89164d29a, 0x493739f8104787ab), cat(0x818bb2c4da213cff, 0x8677cd7ce6d368ed) }, // -3681
+ { cat(0x52aefdf41bd4842a, 0x0ebec326807272ab), cat(0xcf45ead490352e65, 0xa3f2e2617152417c) }, // -3680
+ { cat(0xa88bfe5ce31069bb, 0x3eff0285338ec223), cat(0xa5d188aa0cf75851, 0x4ff581e78ddb6796) }, // -3679
+ { cat(0x86d665171c0d2162, 0x98cc0204293f01b6), cat(0x84a7a0880a5f79da, 0xa65e01860b15ec78) }, // -3678
+ { cat(0x0af0a1be9348356a, 0x8e13366d0ecb35ef), cat(0xd43f67401098c2f7, 0x709668d6782313f4) }, // -3677
+ { cat(0x3bf3b49875d35dee, 0xd80f5ebda56f5e59), cat(0xa9cc5299a6e09bf9, 0x26deba452ce8dcc3) }, // -3676
+ { cat(0x965c9079f7dc4b25, 0x79a5e56484591847), cat(0x87d6a87aebe6e32d, 0xb8b22e9dbd871702) }, // -3675
+ { cat(0xf0941a5cbfc6dea2, 0x5c3ca23a6d5b5a0b), cat(0xd95773f7dfd7d1e2, 0xc11d1762c8d824d0) }, // -3674
+ { cat(0x5a101516ffd24bb5, 0x1696e82ebde2ae70), cat(0xaddf8ff97fdfdb1b, 0xcdb0df823a4683da) }, // -3673
+ { cat(0x480cddabffdb6fc4, 0x1212535897e88b8d), cat(0x8b193ffaccb315af, 0xd7c0b2ce95053648) }, // -3672
+ { cat(0xa67afc46662be606, 0x8350855a8ca745ad), cat(0xde8eccc47ab822b2, 0xf2cdeae421a1f073) }, // -3671
+ { cat(0x852f303851bcb805, 0x35da04487085d158), cat(0xb20bd70395601bc2, 0x5bd7ef1ce7b4c05c) }, // -3670
+ { cat(0x3758f3604163c66a, 0x917b36a05a04a779), cat(0x8e6fdf361119afce, 0xafdff27d862a337d) }, // -3669
+ { cat(0x588e52339bd2d710, 0xe8c52433c33aa58f), cat(0xe3e631f01b5c4c7d, 0xe6331d95a376b8c8) }, // -3668
+ { cat(0x46d841c2e30f1273, 0xed6a835c9c2eead9), cat(0xb651c18ce2b03d31, 0x84f5b14482c560a0) }, // -3667
+ { cat(0x9f1367cf1c0c0ec3, 0x245535e3b02588ad), cat(0x91db013d8226975a, 0xd0c48dd0689de6e6) }, // -3666
+ { cat(0x64ebd94b60134ad1, 0xd3bb896c4d08daaf), cat(0xe95e686269d75891, 0x4e07494d742fd7d7) }, // -3665
+ { cat(0x50bcadd5e675d574, 0xa962d456a4071559), cat(0xbab1ed1b87df7a0d, 0xd805d43df68cacac) }, // -3664
+ { cat(0x73ca24ab1ec4aac3, 0xbab576abb66c1114), cat(0x955b2416064c61a4, 0xacd17697f8708a23) }, // -3663
+ { cat(0x1fa9d444fe07779f, 0x9122577923e01b53), cat(0xeef839bcd6e09c3a, 0xae1bf0f3271a769f) }, // -3662
+ { cat(0x4c87dd03fe6c5fb2, 0xda81df941cb3490f), cat(0xbf2cfafd78b3b02e, 0xf1aff3f5b8e1f87f) }, // -3661
+ { cat(0xd6d3173665237fc2, 0x4867e61016f5d40c), cat(0x98f0c8cac6f6268b, 0xf48cc32afa4e6065) }, // -3660
+ { cat(0xf151bebd6e9f32d0, 0x73d97019be562013), cat(0xf4b47477a4bd0a79, 0x87479eab2a1700a2) }, // -3659
+ { cat(0xc10e3231254c28a6, 0xc31459ae31de800f), cat(0xc3c3905fb6fda1fa, 0xd29fb222881266e8) }, // -3658
+ { cat(0xcda4f4f41dd686eb, 0xcf437af1c17eccd9), cat(0x9c9c737fc597b4c8, 0xa87fc1b539a85253) }, // -3657
+ { cat(0xe2a187ecfc8a7179, 0x4b9f2b1c68cae15b), cat(0xfa93ebffa28c5474, 0x40cc6921f5da1d52) }, // -3656
+ { cat(0xe881398a63a1f461, 0x094c227d20a24de3), cat(0xc87656661ba376c3, 0x6709edb4c4ae7ddb) }, // -3655
+ { cat(0x539a946eb61b29e7, 0x3aa34eca8081d7e9), cat(0xa05eab84e2e92bcf, 0x85a18af703becb16) }, // -3654
+ { cat(0xa94876bef815bb1f, 0x621c3f0866ce4654), cat(0x804bbc6a4f20efd9, 0x37b46f2c02ff08de) }, // -3653
+ { cat(0xa873f1318cef91cb, 0xd02d31a70ae3a3b9), cat(0xcd45fa43b1ce4c8e, 0xbf8718466b31a7ca) }, // -3652
+ { cat(0x205cc0f470bfa7d6, 0x402427b8d582e961), cat(0xa437fb695b0b7072, 0x32d279d1ef5aeca2) }, // -3651
+ { cat(0x19e3cd905a32ecab, 0x668352fa4468bab4), cat(0x835ffc5448d5f38e, 0x8f0ec7db25e256e8) }, // -3650
+ { cat(0xf63948e6f6b7e112, 0x3d9eeb2a070df786), cat(0xd2332d53a7bcb8e4, 0x1817a62b6fd08b0c) }, // -3649
+ { cat(0x5e943a525ef980db, 0x647f228805a4c605), cat(0xa828f10fb963c71c, 0xe012eb55f30d3c0a) }, // -3648
+ { cat(0xb2102ea84bfacd7c, 0x5065b5399e1d6b37), cat(0x8687273fc78305b0, 0xb34255de5c0a966e) }, // -3647
+ { cat(0xb6804aa6dff7af2d, 0x4d6f885c302f11f2), cat(0xd73ea532d8d1a2b4, 0x5203bc96f9aa8a4a) }, // -3646
+ { cat(0xf866a21f1992f28a, 0xa45939e359bf418e), cat(0xac321dc2470e1bc3, 0x74cfca1261553b6e) }, // -3645
+ { cat(0x93854e7f47a8c208, 0x837a94b5e165ce0c), cat(0x89c1b16838d81635, 0xf70ca1a84dddc925) }, // -3644
+ { cat(0x1f3bb0cba5dad00d, 0x9f2a878968a2e345), cat(0xdc691bd9f48cf056, 0x581435da162fa83c) }, // -3643
+ { cat(0x18fc8d6fb7e2400a, 0xe5bb9fa120824f6b), cat(0xb0541647f6d726ab, 0x79a9c4ae78262030) }, // -3642
+ { cat(0xe0ca0abfc64e99a2, 0x5162e61a80683f89), cat(0x8d1011d32bdf5222, 0xc7bb03bec684e68c) }, // -3641
+ { cat(0x014344660a175c36, 0xe89e3cf733d9ff41), cat(0xe1b34fb846321d04, 0x72c4d2cad73b0a7b) }, // -3640
+ { cat(0x3435d051a1ac49c5, 0x86e4fd928fe19901), cat(0xb48f72f9d1c1b0d0, 0x5bd0a8a245c8d52f) }, // -3639
+ { cat(0x29c4a6a7b489d49e, 0x0583fe0ed9814734), cat(0x9072c261749af3d9, 0xe30d53b504a0aa8c) }, // -3638
+ { cat(0x7607710c540fba96, 0x6f39967e28ced853), cat(0xe71e03cf20f7ec8f, 0xd1aeec54d4344413) }, // -3637
+ { cat(0xc4d2c0d6a9a62ede, 0xbf614531ba3f1376), cat(0xb8e4cfd8e72cbd3f, 0xdaf256aa435d0342) }, // -3636
+ { cat(0x370f00abbaeb58b2, 0x32b4375afb65a92b), cat(0x93ea3fe0b8f09766, 0x48c1deee9c4a6902) }, // -3635
+ { cat(0x8b4b3445f7def450, 0x51205891923c41de), cat(0xeca9ffcdf4b42570, 0x746964b0fa10a803) }, // -3634
+ { cat(0x0908f69e5fe59040, 0x40e6ad4141c9ce4b), cat(0xbd54cca4c3c35126, 0xc38783c0c80d5336) }, // -3633
+ { cat(0x6da0c54b7fead9cd, 0x00b88a9a9b07d83c), cat(0x97770a1d69690db8, 0x9c6c696706710f5e) }, // -3632
+ { cat(0x49013babffde2948, 0x0127442a91a626c7), cat(0xf258102f0f0e7c5a, 0x93e0a8a4d71b4bca) }, // -3631
+ { cat(0xa0cdc956664b5439, 0x9a85d0220e1e856c), cat(0xc1e00cf27271fd15, 0x431a2083df49096e) }, // -3630
+ { cat(0xe70b077851d5dcfa, 0xe204a681a4e5378a), cat(0x9b19a3f5285b30dd, 0xcf481a0319073abe) }, // -3629
+ { cat(0x0b44d8c082efc7f7, 0xd00770cf6e3b8c0f), cat(0xf82906550d5eb496, 0x18735cd1c1a52acb) }, // -3628
+ { cat(0x0903e09a02596cc6, 0x4005f3d924fc700c), cat(0xc68738440ab22a11, 0xad29170e3484223c) }, // -3627
+ { cat(0x6d9cb3ae68478a38, 0x3337f64750c9f33d), cat(0x9ed29369a22821a7, 0xbdba78d82a034e96) }, // -3626
+ { cat(0x48fab9170d3f438d, 0x1ebff0721adcb861), cat(0xfe1db8a90373690c, 0x62c3f48d10054a8a) }, // -3625
+ { cat(0xd3fbc745a4329c70, 0xe56659f4e24a2d1b), cat(0xcb4afa20cf8f873d, 0x1bcff6d740043ba1) }, // -3624
+ { cat(0x0ffc9f6ae9c216c0, 0xb78514c3e83b5749), cat(0xa2a261b3d93f9f64, 0x163ff8ac3336961b) }, // -3623
+ { cat(0xd996e5ef21681233, 0xc604109cb9c912a1), cat(0x821b815cadcc7f83, 0x44fffa235c2bab48) }, // -3622
+ { cat(0xc28b097e9bd9b6b9, 0x3cd34dc78fa81dce), cat(0xd02c022de2e0cc05, 0x3b3329d22d12aba7) }, // -3621
+ { cat(0x9ba26dfee314922d, 0xca42a49fa62017d8), cat(0xa6899b57e8b3d66a, 0x95c287db574222ec) }, // -3620
+ { cat(0x494ebe658276db57, 0xd5021d4c84e6797a), cat(0x853ae2acba297855, 0x449b9fe2ac34e8bd) }, // -3619
+ { cat(0xdbb130a26a57c559, 0x54d02ee0d4a3f58f), cat(0xd52b044790425a22, 0x075f663779ee412e) }, // -3618
+ { cat(0xe2f426e855130447, 0x770cf24d76e9913f), cat(0xaa88d039403514e8, 0x05e5eb5f94be9a8b) }, // -3617
+ { cat(0xb5901f20440f369f, 0x9270c1d792547433), cat(0x886d7361002a7720, 0x04b7ef7faa32153c) }, // -3616
+ { cat(0x88e69833a0185765, 0xb71acfbf50872051), cat(0xda48b89b33772500, 0x078cb265dd1ceec7) }, // -3615
+ { cat(0xd3ebacf619ad12b7, 0xc5af0c990d38e6a7), cat(0xaea093af5c5f50cc, 0xd2d6f51e4a7d8bd2) }, // -3614
+ { cat(0xdcbc8a5e7af0dbc6, 0x37bf3d473dc71eec), cat(0x8bb3a95916b2a70a, 0x424590e508646fdb) }, // -3613
+ { cat(0xc79410972b1af93d, 0x25fec871fc71cb13), cat(0xdf85dbc1bdeaa4dd, 0x36d5b4a1a707195f) }, // -3612
+ { cat(0x06100d45bc159430, 0xeb3239f4c9f4a276), cat(0xb2d17c9afe5550b0, 0xf8aaf6e7b8d27ab3) }, // -3611
+ { cat(0x04d9a437c9aadcf3, 0xef5b6190a19081f8), cat(0x8f0dfd48cb7773c0, 0xc6ef2bec93db955c) }, // -3610
+ { cat(0xd48f6d260f77c7ec, 0xb22bcf4dcf4d9cc0), cat(0xe4e32edadf258601, 0x3e4b797a862c222c) }, // -3609
+ { cat(0xaa0c5751a5f96cbd, 0x5b563f7172a47d66), cat(0xb71c257be5b79e67, 0x65092dfb9e89b4f0) }, // -3608
+ { cat(0x8809df7484c78a31, 0x15de99278ee9fdec), cat(0x927ceac98492e51f, 0x840757fc7ed490c0) }, // -3607
+ { cat(0xd9a965873ad8dd1b, 0x5630f50c17dcc979), cat(0xea6177a8d41e3b65, 0xa00bbffa64874e00) }, // -3606
+ { cat(0xae211e05c8ad7daf, 0x78272a7013170794), cat(0xbb812c8710182f84, 0x80096661ea05d800) }, // -3605
+ { cat(0x8b4db19e3a24648c, 0x601f552675ac0610), cat(0x9600f06c0ce02603, 0x99a11eb4bb37e000) }, // -3604
+ { cat(0xdee2b5c9f6a0a0e0, 0x99cbbb70bc467019), cat(0xf00180ace166a338, 0xf5ce978791f30000) }, // -3603
+ { cat(0x4be8916e5ee6e71a, 0x14a2fc5a303859ae), cat(0xc00133bd811ee8fa, 0x5e3edf9fa7f5999a) }, // -3602
+ { cat(0x0986dabeb252527b, 0x43b596ae8cf9e158), cat(0x999a8fcacdb253fb, 0x7e98b2e61ff7ae15) }, // -3601
+ { cat(0xdc0af79783b6ea5e, 0xd2bc244a7b29688c), cat(0xf5c419447c50865f, 0x30f451703325e354) }, // -3600
+ { cat(0x7cd592df9c925518, 0xa896836ec8eded3d), cat(0xc49ce10396a6d1e5, 0xc0c37459c284b5dd) }, // -3599
+ { cat(0x9711424c7d41ddad, 0x53ab9c58a0be5764), cat(0x9d4a4d9c788574b7, 0xcd6929e1686a2b17) }, // -3598
+ { cat(0xbe8203ad95362f7b, 0xb91293c101308bd3), cat(0xfbaa15c7273bedf2, 0xe241dc9bda437825) }, // -3597
+ { cat(0x6534cfbe10f825fc, 0x940edc9a675a0976), cat(0xc954de38ec2ff18f, 0x1b67e3afe1cf9351) }, // -3596
+ { cat(0xea90a631a72ceb30, 0x76724a151f7b3ac5), cat(0xa110b1c723598e0c, 0x15ecb6264e3fa90d) }, // -3595
+ { cat(0x8873b827b8f0bc26, 0xc5283b44192f6237), cat(0x80da27d282ae0b3c, 0xde56f81ea4ffba71) }, // -3594
+ { cat(0x40b926a5f4b4603e, 0x08405ed35b7f038b), cat(0xce29d950d1167861, 0x63be59caa1992a4f) }, // -3593
+ { cat(0xcd60ebb7f6f6b364, 0xd366b242af98cfa3), cat(0xa4ee4773da78604d, 0xe96514a21ae0eea5) }, // -3592
+ { cat(0x0ab3efc65f2bc2b7, 0x0f855b688c7a3fb5), cat(0x83f1d2c3152d19d7, 0xedea76e81580beeb) }, // -3591
+ { cat(0xddecb2d6feac6abe, 0x7f3bc57413f6cc55), cat(0xd31c846b5514f626, 0x497724a688cdfe44) }, // -3590
+ { cat(0xe4bd5bdf32238898, 0x65c96ac3432bd6ab), cat(0xa8e39d22aa772b51, 0xd45f50853a3e6503) }, // -3589
+ { cat(0x1d64497f5b4fa079, 0xeb07889c35bcabbc), cat(0x871c7db5552c22a7, 0xdd190d3761cb8403) }, // -3588
+ { cat(0xfbd3a8cbc54c33f6, 0x44d8da93892ddf93), cat(0xd82d95eeeead043f, 0xc82815256945a004) }, // -3587
+ { cat(0x630fba3c9dd68ff8, 0x3713e20fa0f17fa9), cat(0xacf144bf25573699, 0x6cecddb7876ae66a) }, // -3586
+ { cat(0xb5a62e96e4aba660, 0x2c0fe80c80c132ed), cat(0x8a5a9d65b778f87a, 0xbd8a4af9392251ee) }, // -3585
+ { cat(0x8909e424a112a3cd, 0x134ca67a679b84af), cat(0xdd5dc8a2bf27f3f7, 0x95aa118ec1d08317) }, // -3584
+ { cat(0xa0d4b683b40ee970, 0xdc3d51fb861603bf), cat(0xb117d3b565b98ff9, 0x44880e0bce4068df) }, // -3583
+ { cat(0x4d76f8695cd8bac0, 0xb0310e62d1ab3633), cat(0x8daca95deafad994, 0x36d33e6fd8338719) }, // -3582
+ { cat(0xe257f3dbc7c12acd, 0xe6b4e3d14f7856b7), cat(0xe2addbc977f7c286, 0xbe1eca4c8d1f3e8e) }, // -3581
+ { cat(0x4eacc31639675571, 0x855d830dd92d122c), cat(0xb557e307932c9b9e, 0xfe7f083d3db29872) }, // -3580
+ { cat(0x0bbd68de9452aac1, 0x377e02717a8a74f0), cat(0x91131c060f56e2e5, 0x9865a030fe2879f5) }, // -3579
+ { cat(0x12c8a7ca86eaaace, 0xbf3003e8c410bb1a), cat(0xe81e933ce557d16f, 0x5a3c338196a72988) }, // -3578
+ { cat(0x423a1fd538bbbbd8, 0x98f33653d00d627b), cat(0xb9b20f63eaaca78c, 0x483029347885bad3) }, // -3577
+ { cat(0x9b61b310fa2fc97a, 0x13f5c50fd9a44ec9), cat(0x948e72b65556ec70, 0x39c020f6c6d16242) }, // -3576
+ { cat(0xc5691e81904c7590, 0x1fefa1b2f5d3b141), cat(0xedb0b78a2224ad80, 0x5c669b24714f039d) }, // -3575
+ { cat(0x37874b9ad9d6c473, 0x4cbfb48f2b0fc101), cat(0xbe26f93b4e83be00, 0x49ebaf505aa59c7e) }, // -3574
+ { cat(0x2c6c3c7be1789d29, 0x0a32f6d8ef3fcd9a), cat(0x981f2dc90b9c9800, 0x3b22f2a6aeeae398) }, // -3573
+ { cat(0xe0ad2d93025a950e, 0x76b7f15b186615c4), cat(0xf365160e78fa8ccd, 0x2b6b1dd77e449f59) }, // -3572
+ { cat(0x808a8adc01e210d8, 0x5ef98de279eb449d), cat(0xc2b744d860c870a4, 0x22bc17df9836e5e1) }, // -3571
+ { cat(0x33a208b00181a713, 0x7f2e0b1b94bc36e4), cat(0x9bc5d0ad1a39f3b6, 0x8230131946925181) }, // -3570
+ { cat(0xb90341199c02a4eb, 0xfeb011c5bac6be39), cat(0xf93c8114f6c31f8a, 0x69e684f53db6e8ce) }, // -3569
+ { cat(0x60cf6747b0021d89, 0x988cdb04956bcb61), cat(0xc7639a772bcf4c6e, 0xbb1ed0c4315f20a5) }, // -3568
+ { cat(0x80a5ec39599b4ad4, 0x7a0a48d077896f81), cat(0x9f82e1f8efd909f2, 0x2f4bda368de5b3b7) }, // -3567
+ { cat(0xcdd646c228f877ba, 0x5cdd414d8c0f18ce), cat(0xff37cff4b2f4dcb6, 0xb212f6bdafd5ec58) }, // -3566
+ { cat(0x0b11d234ed9392fb, 0x7d7dcdd7a33f470b), cat(0xcc2ca65d5bf716f8, 0x8e7592315977f047) }, // -3565
+ { cat(0x6f4174f724760f2f, 0x9797d7dfb5cc38d6), cat(0xa356eb7de32c1260, 0x71f7a8277ac659d2) }, // -3564
+ { cat(0x59012a5f505e728c, 0x7946464c91702d78), cat(0x82abef97e8f00eb3, 0x8e5fb9b92f0514a8) }, // -3563
+ { cat(0x5b35109880971dad, 0x8ed6d6e0e8b37bf3), cat(0xd11318f30e4ce452, 0x7d65f5f51808210d) }, // -3562
+ { cat(0x7c2a73ad33ac17be, 0x0bdf124d86f5fcc2), cat(0xa7427a5c0b70b6a8, 0x64519190e00680d7) }, // -3561
+ { cat(0xc9bb8fbdc2f012fe, 0x6fe5a83e05919702), cat(0x85cec849a2c09220, 0x50414140b3386712) }, // -3560
+ { cat(0xa92c192f9e4ceb30, 0xb3090d3008e8f19c), cat(0xd617a6dc379a8366, 0xe6cececdeb8d71b7) }, // -3559
+ { cat(0xba89adbfb1d7228d, 0x5c073dc00720c14a), cat(0xab461f1692e202b8, 0xb8a5723e560ac15f) }, // -3558
+ { cat(0x6207be32f4ac1ba4, 0x499f64999f4d676f), cat(0x8904e5aba8b4cefa, 0x2d512831de6f0119) }, // -3557
+ { cat(0x033f96b7ede02c3a, 0x0f656dc2987bd8b1), cat(0xdb3b0912a787b190, 0x4881d9e963e4ce8f) }, // -3556
+ { cat(0x0299455ff1802361, 0xa5eabe3546c97a27), cat(0xaf626da8860627a6, 0xa067e187831d720c) }, // -3555
+ { cat(0x35476ab32799b5e7, 0xb7eefe91056dfb52), cat(0x8c4ebe206b381fb8, 0x80531ad2cf4ac1a3) }, // -3554
+ { cat(0x88724451d8f5efd9, 0x264b30e808aff884), cat(0xe07dfd00ab8cff8d, 0x9a1e91514baacf6b) }, // -3553
+ { cat(0xd38e9d0e472b2647, 0x51d5c0b9a08cc6d0), cat(0xb397fd9a22d732d7, 0xae7edaa76fbbd922) }, // -3552
+ { cat(0xa93ee40b6c228505, 0xdb1166fae6d70573), cat(0x8faccae1b578f579, 0x58657bb9262fe0e8) }, // -3551
+ { cat(0x41fe39abe0373b3c, 0x91b57191715808b8), cat(0xe5e1449c558e558e, 0xf3d592c1d6b30174) }, // -3550
+ { cat(0xce64faefe69295ca, 0x0e2ac1412779a093), cat(0xb7e76a16aad84472, 0x5caadbce455c0129) }, // -3549
+ { cat(0xa51d958cb87544a1, 0xa4ef0100ec614d43), cat(0x931f881222469d28, 0x4a224971d1166754) }, // -3548
+ { cat(0x082f55adf3eed435, 0xd4b19b34ad687b9e), cat(0xeb65a6836a0a950d, 0x436a0f1c81bd7221) }, // -3547
+ { cat(0xa025de24c3257691, 0x76f47c2a24539618), cat(0xbc515202bb3baa71, 0x02bb3f4a01645b4d) }, // -3546
+ { cat(0x19b7e4ea35b7920d, 0xf8c396881d0fab46), cat(0x96a774cefc2fbb8d, 0x9bc8ff6e67837c3e) }, // -3545
+ { cat(0xc2bfd4a9ef8c1ce3, 0x279f57402e7f7870), cat(0xf10bee17f9e5f8e2, 0x92db324a3f38c6c9) }, // -3544
+ { cat(0x356643bb2609b0b5, 0xb94c45ccf1ff938d), cat(0xc0d658132e5193e8, 0x757c283b65c7056e) }, // -3543
+ { cat(0x5deb696284d48d5e, 0x2dd69e3d8e660fa4), cat(0x9a4513428b747653, 0x9130202f849f378b) }, // -3542
+ { cat(0x2fdf0f0407ba7bc9, 0xe2f0fd2f4a3ce5d3), cat(0xf6d4eb9dabed8a1f, 0x4eb366b26dcb8c12) }, // -3541
+ { cat(0x597f3f366c952fd4, 0xb58d97590830b7dc), cat(0xc57722e4898ad4e5, 0xd88f855b8b093cdb) }, // -3540
+ { cat(0x7acc3291f0775976, 0xf7a47914068d5fe4), cat(0x9df8e8b6d46f10b7, 0xe072d11608d430af) }, // -3539
+ { cat(0x9146b74fe7255bf1, 0x8c3a5b533daeffd2), cat(0xfcc17457ba4b4df3, 0x00b7b4f00e204de5) }, // -3538
+ { cat(0xa76bc5d985b77cc1, 0x3cfb7c4297bf330f), cat(0xca345d12fb6f718f, 0x33c62a59a4e6a4b7) }, // -3537
+ { cat(0xb92304ae0492ca34, 0x30c9303546328f3f), cat(0xa1c37da8c925f472, 0x8fd1bb7aea521d5f) }, // -3536
+ { cat(0x60e8d08b36dbd4f6, 0x8d6dc02a9e8ed8ff), cat(0x81693153d41e5d28, 0x730e2f958841b119) }, // -3535
+ { cat(0x017480debe2c87f0, 0xe24933776417c198), cat(0xcf0eb552ecfd61da, 0x51b04c22739c4e8f) }, // -3534
+ { cat(0x9ac39a4bcb56d327, 0x1b6dc2c5e9ac9ae0), cat(0xa5a55ddbf0cab4ae, 0xa7c03ce85c7d0ba5) }, // -3533
+ { cat(0x1569483ca2abdc1f, 0x49249bd187bd48b3), cat(0x84844b165a3bc3be, 0xec99ca537d30d61e) }, // -3532
+ { cat(0xbbdba6c76aac9365, 0x41d42c8272c87452), cat(0xd406de8a29f93931, 0x7a8faa1f2eb489c9) }, // -3531
+ { cat(0xc97c856c5556dc51, 0x01768a01f56d29db), cat(0xa99f186e87fa9427, 0x953fbb4c255d3b07) }, // -3530
+ { cat(0xa1306abd111249da, 0x679208019124217c), cat(0x87b279f20662101f, 0xaa9962a35117626c) }, // -3529
+ { cat(0x9b80aac81b50762a, 0x3f500ccf4ea03594), cat(0xd91d8fe9a3d019cc, 0x44289dd21b589d7a) }, // -3528
+ { cat(0x4933bbd3490d2b54, 0xff733d72a54cf7a9), cat(0xadb13fee1ca67b09, 0xd0207e41af7a1795) }, // -3527
+ { cat(0xd429630f6da422aa, 0x65f5cac21dd72c88), cat(0x8af43324e3b8626e, 0x4019fe9af2c812dd) }, // -3526
+ { cat(0xed0f04e57c39d110, 0xa322de0362f1e0d9), cat(0xde538507d2c09d7d, 0x335cca9184735162) }, // -3525
+ { cat(0xbda59d846361740d, 0x4f4f1802b58e4d7a), cat(0xb1dc6a6ca89a1797, 0x5c4a3ba79d290de8) }, // -3524
+ { cat(0x31514ad04f8129a4, 0x3f72799bc471d795), cat(0x8e49eebd53ae7945, 0xe36e961fb0eda4ba) }, // -3523
+ { cat(0x4ee877b3b26842a0, 0x6583f5c6071c8c21), cat(0xe3a97dfbb917286f, 0xd24a89cc4e490790) }, // -3522
+ { cat(0xa586c6295b869bb3, 0x8469916b38e3a34e), cat(0xb62131962dac2059, 0x75086e3d0b6d9fa6) }, // -3521
+ { cat(0xead238211605495c, 0x69ee0def60b61c3e), cat(0x91b427ab57bce6ad, 0xf739f1ca6f8ae61e) }, // -3520
+ { cat(0xde1d269b566edbc7, 0x0fe3497f01236064), cat(0xe9203f788c617116, 0x585cb610b277d697) }, // -3519
+ { cat(0xb1b0ebaf7858afd2, 0x731c3acc00e919e9), cat(0xba8032c6d6b45a78, 0x46b091a6f52cabac) }, // -3518
+ { cat(0x8e2722f2c6ad5975, 0x28e3623ccd8747ee), cat(0x95335bd2455d152d, 0x055a0e1f2a8a22f0) }, // -3517
+ { cat(0xb03e9e513de228bb, 0x749f03947c0ba649), cat(0xeeb892ea0894eeae, 0x6ef67cfeaa769e4d) }, // -3516
+ { cat(0x26987ea764b4ed62, 0xc3b26943966fb83b), cat(0xbefa0f21a0772558, 0x58c530cbbb92183e) }, // -3515
+ { cat(0xb879feec5090bde8, 0x9c8eba9c7859602f), cat(0x98c80c1ae6c5b779, 0xe09dc0a2fc74e031) }, // -3514
+ { cat(0x5a5ccb13b41ac974, 0x2db12a93f3c2337e), cat(0xf4734691713c58c3, 0x00fc676b2d87cd1c) }, // -3513
+ { cat(0x484a3c0fc348a129, 0xbe27554329682932), cat(0xc38f6ba78dc9e09c, 0x00c9ec55be063db0) }, // -3512
+ { cat(0x6d08300c9c3a1a87, 0xcb52aa9c212020f5), cat(0x9c72bc860b07e6e3, 0x33d4bd1164d1caf3) }, // -3511
+ { cat(0xae7380142d29c40c, 0x7884442d01cd0188), cat(0xfa512da344d9716b, 0x86212e823ae944b8) }, // -3510
+ { cat(0x8b8f99a9bdbb033d, 0x2d369cf0ce3d9ad3), cat(0xc840f14f6a478def, 0x9e80f201c8ba9d60) }, // -3509
+ { cat(0xa2d947bafe2f35ca, 0x8a9217270b647bdc), cat(0xa033f43f88393e59, 0x4b9a5b34a0954ab3) }, // -3508
+ { cat(0x4f14396264f2916e, 0xd541ac1f3c506317), cat(0x80299032d360fead, 0xd61515c3b3aaa229) }, // -3507
+ { cat(0x7e86c23707ea824a, 0xeecf79cb93b3d1bd), cat(0xcd0f4d1e1f01977c, 0x89bb5605ec4436a8) }, // -3506
+ { cat(0x65389b5f3988683b, 0xf23f94a2dc8fdafe), cat(0xa40c3db1b267ac63, 0xa162ab37f0369220) }, // -3505
+ { cat(0xb7607c4c2e06b9c9, 0x8e9943b57d3fe265), cat(0x833cfe27c1ec89e9, 0x4de888f98cf874e6) }, // -3504
+ { cat(0xbf00c6e049a45c75, 0xb0f5392261ffd0a1), cat(0xd1fb303f9cada975, 0x49740e5c14c0bb0a) }, // -3503
+ { cat(0x98cd6be6a15049f7, 0xc0c42db51b330d4e), cat(0xa7fc26994a248791, 0x07900b7cdd66fc08) }, // -3502
+ { cat(0xad71231ee7736e5f, 0xcd69be2a7c28d772), cat(0x866352143b506c74, 0x060cd5fd7debfcd3) }, // -3501
+ { cat(0x1581d1cb0bebe3cc, 0x7bdc63772d0e2582), cat(0xd70550205ee713ec, 0xd67aeffbfcacc7b9) }, // -3500
+ { cat(0xde0174a26fefe970, 0x6316b5f8f0d81e02), cat(0xac044019e585a98a, 0x452f2663308a3960) }, // -3499
+ { cat(0x7e679081f3265459, 0xe8def7fa5a467e68), cat(0x899d0014b79e213b, 0x6a8c1eb5c06e944d) }, // -3498
+ { cat(0x63d8e73651d6ed5c, 0xa7cb265d5d3d970c), cat(0xdc2e66878c30352b, 0xddacfdef9a4a86e2) }, // -3497
+ { cat(0x4fe0b8f84178bde3, 0xb96f51e44a97ac0a), cat(0xb0251ed2d68cf756, 0x4af0cb2615086be8) }, // -3496
+ { cat(0xa64d60c69ac6fe4f, 0xc78c41836edfbcd5), cat(0x8cea7f0f120a5f78, 0x3bf3d5b810d38986) }, // -3495
+ { cat(0xa3af013dc47196e6, 0x0c139c057e32c7bb), cat(0xe17731b1b676ff26, 0xc652ef8ce7b8dc0a) }, // -3494
+ { cat(0x1c8c00fe36c14584, 0xd676166acb5bd2fc), cat(0xb45f5af491f8cc1f, 0x050f260a52fa49a2) }, // -3493
+ { cat(0xb07000cb5f01046a, 0x452b45223c497596), cat(0x904c48c3a7fa3ce5, 0x9da5b8084261d481) }, // -3492
+ { cat(0xb3e667abcb34d3dd, 0x3b786e9d2d4255bd), cat(0xe6e0746c3ff6c7d5, 0xc90926739d695402) }, // -3491
+ { cat(0x8feb862308f70fe4, 0x2f938bb0f101de31), cat(0xb8b3905699923977, 0xd40751f617877668) }, // -3490
+ { cat(0xa65604e8d3f8d983, 0x5942d6272734b1c1), cat(0x93c2d9dee141c793, 0x1005db2b4605f853) }, // -3489
+ { cat(0x0a233b0e1ff48f38, 0x8ed156a50b8782ce), cat(0xec6af63168693f51, 0xb33c91ded66ff3b9) }, // -3488
+ { cat(0x3b4f6271b32a0c2d, 0x3f0ddeea6f9f9bd8), cat(0xbd225e8ded20ff74, 0x8f63a7e578598fc7) }, // -3487
+ { cat(0xc90c4ec15c21a357, 0x65a4b2552619497a), cat(0x974eb20b241a65f6, 0xd91c86512d147305) }, // -3486
+ { cat(0x74e07e022d029ef2, 0x3c3ab6eea35ba8c3), cat(0xf21783450690a324, 0x8e940a1b7b53eb3c) }, // -3485
+ { cat(0xf719fe68240218c1, 0xc9c8925882afba35), cat(0xc1ac690405408283, 0xa5433b492f7655c9) }, // -3484
+ { cat(0xf8e198535001ad67, 0xd4a075139bbfc82b), cat(0x9af054033766cecf, 0xb768fc3a8c5eab07) }, // -3483
+ { cat(0x8e35c0854ccf7bd9, 0x5433ee85c5ffa6ab), cat(0xf7e6ecd1f23e17b2, 0xbf0e605dad6444d9) }, // -3482
+ { cat(0xa4f7cd3770a5fcad, 0xdcf6586b04cc8555), cat(0xc652570e5b64dfc2, 0x3271e6b157836a47) }, // -3481
+ { cat(0xb72ca42c5a1e63be, 0x4a5ead226a3d3778), cat(0x9ea845a515ea4c9b, 0x5b8e52277935ee9f) }, // -3480
+ { cat(0xbeadd37a29ca3930, 0x76fde1d0a9fb8bf2), cat(0xfdda090823107a92, 0x2c16e9d8c1efe432) }, // -3479
+ { cat(0x3224a92e87d4fa8d, 0x2bfe4e4087fc6ff5), cat(0xcb14d40682739541, 0xbcdf217a34bfe9c2) }, // -3478
+ { cat(0xf4ea20f20643fba4, 0x2331d8339ffd265e), cat(0xa277100535294434, 0x9718e794f6ffee34) }, // -3477
+ { cat(0x90bb4d8e6b69961c, 0xe8f4acf6199751e5), cat(0x81f8d99dc421035d, 0x45ad8610c5998b5d) }, // -3476
+ { cat(0xe79215b0abdc2361, 0x74baae568f588307), cat(0xcff48f62d3680562, 0x0915a34e08f5abc8) }, // -3475
+ { cat(0xb941aaf3bcb01c4d, 0xf6fbbeaba5e068d3), cat(0xa65d3f8242b99de8, 0x074482a4d3f7bca0) }, // -3474
+ { cat(0x2dce225c96f349d7, 0xf8c965561e4d20a9), cat(0x85176601cefae4b9, 0x9f6a021d765fca1a) }, // -3473
+ { cat(0x4949d09424b87626, 0x5adbd55696e1cdda), cat(0xd4f23ccfb1916df5, 0xcbdcd02f23cc7690) }, // -3472
+ { cat(0x076e407683c6c4eb, 0x7be31112124e3e48), cat(0xaa5b63d95adabe5e, 0x3cb0a68c1ca3920d) }, // -3471
+ { cat(0xd2be99f8696bd0bc, 0x631c0da80ea4fea0), cat(0x88491cade248984b, 0x63c0853ce3b60e70) }, // -3470
+ { cat(0xb7975cc0a8ac812d, 0x6b6015d9b107fdcd), cat(0xda0e94496a0dc078, 0x9f9a6ec7d2bce3e7) }, // -3469
+ { cat(0x2c79170086f06757, 0x8919ab148d9ffe3e), cat(0xae72103abb3e3393, 0xb2e1f2397563e986) }, // -3468
+ { cat(0x56c7459a058d1f79, 0x3a7aef43a47ffe98), cat(0x8b8e73622f64f60f, 0xc24e5b612ab6546b) }, // -3467
+ { cat(0xbe0ba29008e1cbf5, 0x2a5e4b9f6d999759), cat(0xdf4a5236b23b234c, 0x6a16f89b778a20ab) }, // -3466
+ { cat(0x31a2e8733a4e3cc4, 0x21e5094c57ae12ae), cat(0xb2a1db5ef4fc1c3d, 0x21abfa15f93b4d56) }, // -3465
+ { cat(0x8e1bed28fb71ca36, 0x818407704624dbbe), cat(0x8ee7e2b25d967cfd, 0xb48994de60fc3dde) }, // -3464
+ { cat(0xe35fe1db2be9438a, 0x68d33f1a09d492ca), cat(0xe4a63783c8f0c7fc, 0x540f549701939630) }, // -3463
+ { cat(0x82b31b15bcba9c6e, 0xba4298e1a176dbd5), cat(0xb6eb5f9ca0c09ffd, 0x100c43ac0142de8d) }, // -3462
+ { cat(0x9bc27c1163c87d25, 0x61cee0b4812be311), cat(0x9255e616e7007ffd, 0xa670362334357ed7) }, // -3461
+ { cat(0x2c6a601bd2da61d5, 0x694b0120ceac9e81), cat(0xea2309be3e67332f, 0x70b389d1ed22648c) }, // -3460
+ { cat(0x56bb801642484e44, 0x543c00e70bbd4b9a), cat(0xbb4f3afe98528f59, 0x26f607db241b83a3) }, // -3459
+ { cat(0x122f99ab6839d836, 0xa9c99a526fcaa2e2), cat(0x95d8fbfee0420c47, 0x525e6caf501602e9) }, // -3458
+ { cat(0x837f5c45738fc057, 0x760f5d50b2ddd169), cat(0xefc1933166d013a5, 0x5097144bb3566b0e) }, // -3457
+ { cat(0x9c65e36ac2d966ac, 0x5e72b10d5be4a788), cat(0xbfce0f5ab8a6761d, 0xda1276a2f5debc0b) }, // -3456
+ { cat(0x49eb1c5568adebbd, 0x185bc0d77cb6ec6d), cat(0x9971a5e22d51f817, 0xe1a85ee8c4b23009) }, // -3455
+ { cat(0xdcab6088a77cac61, 0xc092ce259457e0ad), cat(0xf582a3037bb659bf, 0xcf73cb0e0783800e) }, // -3454
+ { cat(0xb0891a06ec63bd1b, 0x007571b7a9dfe6f1), cat(0xc46882692fc51499, 0x72c308d80602ccd8) }, // -3453
+ { cat(0xf3a0e19f2382fdaf, 0x339127c6217febf4), cat(0x9d206854263743ad, 0xf568d3e004cf0a46) }, // -3452
+ { cat(0x85ce35cb6c04c918, 0x5281d93d02664653), cat(0xfb670d5370586c49, 0x88a7b9666e181071) }, // -3451
+ { cat(0x9e3e916f899d6dad, 0x0ece476401eb6b76), cat(0xc91f3ddc59e056a1, 0x3a1fc78524e00d27) }, // -3450
+ { cat(0x4b65412607b1248a, 0x723e9f8334bc55f8), cat(0xa0e5cb16ae4d121a, 0x94e6393750b33db9) }, // -3449
+ { cat(0x6f84341e6c8db6d5, 0x28321935c3c9de60), cat(0x80b7d5abbea40e7b, 0xaa51c75f73c297c7) }, // -3448
+ { cat(0xb26d2030adaf8aee, 0xa6b68ebc6c76309a), cat(0xcdf2ef7931067d92, 0xaa1c723252d0f2d8) }, // -3447
+ { cat(0xf52419c08af2d58b, 0xb8920bc9f05e8d48), cat(0xa4c2592dc0d1fe0e, 0xee7d28284240c246) }, // -3446
+ { cat(0x2a8347cd3bf577a2, 0xfa0e6fd4c04ba43a), cat(0x83ceadbe33db31a5, 0x8b9753536833ce9f) }, // -3445
+ { cat(0x44053faec6558c37, 0xf67d7fbacd45d38f), cat(0xd2e4493052f84f6f, 0x45beebb8a6b94a98) }, // -3444
+ { cat(0x699dcc8bd1de09c6, 0x5ecacc957104a93f), cat(0xa8b6a0f3759372bf, 0x6aff22fa1efaa213) }, // -3443
+ { cat(0xbae4a3a30e4b3b05, 0x18a23d445a6a2100), cat(0x86f880c2c475f565, 0xef328261b2621b42) }, // -3442
+ { cat(0xf7d43904e3ab91a1, 0xc103953a2a4367ff), cat(0xd7f40137a0bcbbd6, 0x4b8403cf83d02b9d) }, // -3441
+ { cat(0xc64360d0b622dae7, 0xcd9c7761bb691fff), cat(0xacc3342c8096fcab, 0x6f9ccfd9364022e4) }, // -3440
+ { cat(0x9e9c4d73c4e8af1f, 0xd7b05f8162ba7fff), cat(0x8a35c356cd4596ef, 0x8c7d73142b668250) }, // -3439
+ { cat(0xfdc6e252d4a77e99, 0x591a32689df73332), cat(0xdd22d2247ba28b18, 0xe0c8b8204570d080) }, // -3438
+ { cat(0x97d24ea8aa1f987a, 0xadae8eba17f8f5c2), cat(0xb0e8a81d2fb53c13, 0xe706f9b36ac0a6cd) }, // -3437
+ { cat(0x4641d886ee7fad2e, 0xf158722e7993f7ce), cat(0x8d86ece4262a9676, 0x526bfaf5ef008571) }, // -3436
+ { cat(0x0a02f40b1732aeb1, 0x82271d1728ecbfb0), cat(0xe2717b06a3775723, 0xb7132b231800d582) }, // -3435
+ { cat(0x3b359008df5bbef4, 0x681f4a78ed8a32f3), cat(0xb527959ee92c45b6, 0x2c0f55b5accd779b) }, // -3434
+ { cat(0xfc2ad9a0b2afcbf6, 0xb9b2a1fa57a1c25c), cat(0x90ec77b254236af8, 0x233f77c48a3df948) }, // -3433
+ { cat(0x60448f67844c798a, 0xc2b769908c3603c7), cat(0xe7e0bf83b9d244c0, 0x38658c6da9fcc20e) }, // -3432
+ { cat(0xe69d3f860370613b, 0xcef92140702b3639), cat(0xb98099362e41d099, 0xc6b7a38aee63ce71) }, // -3431
+ { cat(0xb87dcc6b35f380fc, 0xa5941a99f355c4fa), cat(0x9466e0f8250173ae, 0x3892e93bf1e971f4) }, // -3430
+ { cat(0x8d9613debcb8ce61, 0x08ecf75cb8893b2a), cat(0xed7167f36e68b916, 0xc0eb0ec64fdbe987) }, // -3429
+ { cat(0x0ade764bca2d71e7, 0x3a572c4a2d3a95bb), cat(0xbdf4532925209412, 0x33ef3f050cafee06) }, // -3428
+ { cat(0xd57ec5096e8ac185, 0xc845bd08242ede2f), cat(0x97f6a8edb74d4341, 0xc325cc040a265804) }, // -3427
+ { cat(0xbbfe080f174468d6, 0x0d3c61a6a04afd18), cat(0xf324417c587b9ecf, 0x9ea2e00676a3c007) }, // -3426
+ { cat(0xc998067279038711, 0xa4304e1ee6a26414), cat(0xc2836796ad2fb23f, 0xb21be66b921c999f) }, // -3425
+ { cat(0x3ae0052860cf9f41, 0x5026a4e5854eb676), cat(0x9b9c52def0f2f4ff, 0xc1afeb8941b07ae6) }, // -3424
+ { cat(0xc499a1da347f6535, 0x4d0aa16f3bb123f0), cat(0xf8fa1e318184bb32, 0xcf7fdf4202b3f7d6) }, // -3423
+ { cat(0x9d47b4ae9065ea91, 0x0a6ee78c2fc0e98d), cat(0xc72e7e8e0136fc28, 0xa5ffe5ce688ff978) }, // -3422
+ { cat(0x4a9fc3bed9eb220d, 0xa1f252d68c9a5471), cat(0x9f58653e675f3020, 0x84ccb7d853a6612d) }, // -3421
+ { cat(0xddcc6c648fde9ce2, 0x9cb6eaf0e0f6ed81), cat(0xfef3d530a56519cd, 0xa1478c8d52a3ceae) }, // -3420
+ { cat(0x4b09f05073187d82, 0x16f8bbf3e72bf134), cat(0xcbf64426eab747d7, 0xb4393d3ddbb63ef2) }, // -3419
+ { cat(0xd5a18d0d28e06468, 0x1260965cb8eff42a), cat(0xa32b69b8bbc5d312, 0xf69430fe495e98c1) }, // -3418
+ { cat(0x77b470d753e6b6b9, 0xa84d4516fa599022), cat(0x828921609637dc0f, 0x2ba9c0cb6de54701) }, // -3417
+ { cat(0x8c53e7beeca4578f, 0x73aed4f1908f4d02), cat(0xd0db689a89f2f9b1, 0xdf7601457ca20b35) }, // -3416
+ { cat(0x3d0fec98bd50460c, 0x5c8bdd8e0d3f70cf), cat(0xa715ed486e5bfaf4, 0xb2c4cdd13081a291) }, // -3415
+ { cat(0x640cbd46fdd9d1a3, 0x7d3cb13e70ff8d72), cat(0x85ab2439f1e32f2a, 0x289d717426ce1ba7) }, // -3414
+ { cat(0x6ce12ed7fc8fb5d2, 0x61fab530b4cc1583), cat(0xd5dea05cb6384b76, 0xa7624f203e1692a5) }, // -3413
+ { cat(0x8a4dbf133072f7db, 0x81955dc090a34469), cat(0xab18804a2b603c5e, 0xec4ea5b364dedbb7) }, // -3412
+ { cat(0x083e3275c05bf97c, 0x67aab166da1c36bb), cat(0x88e066a1bc4cfd18, 0xbd0bb7c2b718afc6) }, // -3411
+ { cat(0xa6c9ea56009328c7, 0x0c444f0af6938ac4), cat(0xdb00a435fa14c827, 0x94df8c6abe8de609) }, // -3410
+ { cat(0x1f07eeab33a8ed6c, 0x09d03f3bf876089d), cat(0xaf33b69194dd6cec, 0x77193d22320b1e6e) }, // -3409
+ { cat(0xe59ff2228fba5789, 0xa17365c99391a07d), cat(0x8c295edadd7df0bd, 0x2c1430e82808e524) }, // -3408
+ { cat(0x6f6650374c5d58dc, 0x35856fa8ec1c33fc), cat(0xe042315e2f2fe795, 0x1353817373416ea1) }, // -3407
+ { cat(0x8c51d9c5d6b113e3, 0x5e045953f0168ffd), cat(0xb368277e8c2652dd, 0xa90f9ac2c29abee7) }, // -3406
+ { cat(0x70417b04abc0dcb5, 0xe4d0477659aba664), cat(0x8f8685fed6850f17, 0xba72e235687bcbec) }, // -3405
+ { cat(0x1a025e6ddf9afabc, 0xa14d3f23c2ac3d6c), cat(0xe5a40997bda1b1bf, 0x90b7d05573f94647) }, // -3404
+ { cat(0xe19b7ebe4c7bfbca, 0x1aa4328302236457), cat(0xb7b66e12fe1af499, 0x40930d1129943838) }, // -3403
+ { cat(0x4e15fefea3966308, 0x15502868ce82b6ac), cat(0x92f8580f31af2a14, 0x33a8d740ee102cfa) }, // -3402
+ { cat(0xe35664ca9f5704d9, 0xbbb373dae4045779), cat(0xeb26f34b82b1dced, 0x1f748b9b168047f6) }, // -3401
+ { cat(0x1c451d6ee5df3714, 0x9629297be99d12c7), cat(0xbc1f2909355b1724, 0x192a0948decd065f) }, // -3400
+ { cat(0x7d04178beb18f8dd, 0x44edbac987b0dbd3), cat(0x967f54075de278e9, 0xadbb3aa0b23d9eb2) }, // -3399
+ { cat(0x94d358dfde8e5afb, 0xa17c5e0f3f815fb7), cat(0xf0cbb9a56303f4a9, 0x15f85dcde9fc311d) }, // -3398
+ { cat(0xdd75e0b31871e262, 0xe796b1a5cc677fc6), cat(0xc0a2faeab59cc3ba, 0x77f9e4a4bb30274a) }, // -3397
+ { cat(0xe45e4d5c138e4eb5, 0x861227b7d6b93305), cat(0x9a1bfbeef7b09c95, 0x2cc7ea1d628cec3b) }, // -3396
+ { cat(0xa096e22cec16e455, 0xa3503f8c8ac1eb3b), cat(0xf6932cb18c4dc755, 0x1473102f0414ad2c) }, // -3395
+ { cat(0xb3abe823f0125044, 0x82a6993d3bce55c9), cat(0xc5428a27a3716c44, 0x105c0cf269aa2423) }, // -3394
+ { cat(0x8fbcb9b659a84036, 0xceebadca963eab07), cat(0x9dced4ec82c12369, 0xa6b00a5b87bb501c) }, // -3393
+ { cat(0x192df5f08f7399f1, 0x4b12afaa89fdde71), cat(0xfc7e217a6ace9f0f, 0x7119aa2c0c5ee694) }, // -3392
+ { cat(0x1424c4c072c2e18d, 0xd5a88c886e64b1f4), cat(0xc9fe812ebbd87f3f, 0x8dae21bcd6b25210) }, // -3391
+ { cat(0x43509d66c235813e, 0x4486d6d38b83c190), cat(0xa19867589646cc32, 0xd7be8163def50e73) }, // -3390
+ { cat(0xcf73b11f01c46765, 0x039f1242d6030140), cat(0x8146b913ab6bd68f, 0x12fecde97f2a71f5) }, // -3389
+ { cat(0x4bec4e9802d3d8a1, 0x9f64ea04899e6867), cat(0xced78e85df12f0e4, 0xeb3149759843e989) }, // -3388
+ { cat(0xa3237213357646e7, 0xb2b7219d3ae52052), cat(0xa5793ed17f425a50, 0xbc276df7ad03213a) }, // -3387
+ { cat(0x8282c1a8f791d252, 0xf55f4e176250e6a8), cat(0x8460ff0dff684840, 0x9685f192f0cf4dc8) }, // -3386
+ { cat(0xd0d135db25b61d51, 0x88987cf236e7d773), cat(0xd3ce64e33240739a, 0x8a6fe8eb1ae54940) }, // -3385
+ { cat(0xa70dc4af515e7dda, 0xd3ad30c1c58645f6), cat(0xa971ea4f5b66c2e2, 0x085987227beaa100) }, // -3384
+ { cat(0x1f3e36f2a77ecb15, 0x762427016ad1d192), cat(0x878e550c491f024e, 0x6d146c1b96554d9a) }, // -3383
+ { cat(0xfec9f1843f3144ef, 0x236d0b3577b61c1c), cat(0xd8e3bb46db64d07d, 0x7b53e02c23bbaf5c) }, // -3382
+ { cat(0xcbd4c13698f43725, 0xb5f0d5c45fc4e34a), cat(0xad82fc38af83d9fd, 0xfc4319bce962f2b0) }, // -3381
+ { cat(0x097700f87a5cf8ea, 0xf7f3de36b303e908), cat(0x8acf302d593647fe, 0x6368e163ede8c227) }, // -3380
+ { cat(0x0f24ce5a5d618e44, 0xbfec96bdeb3974d9), cat(0xde184d155b8a0cca, 0x38a7cf06497469d8) }, // -3379
+ { cat(0x7283d8484ab471d0, 0x998a123188fac3e1), cat(0xb1ad0a777c6e70a1, 0xc6eca59ea129ee46) }, // -3378
+ { cat(0xc203136d08905b0d, 0x47a1a827a0c89cb4), cat(0x8e24085f96bec081, 0x6bf0847ee754be9e) }, // -3377
+ { cat(0x366b52480db3c4e2, 0x0c35d9d90140fab9), cat(0xe36cda328acacd9b, 0xdfe73a64a5546431) }, // -3376
+ { cat(0x91ef7506715c9d81, 0xa35e47e0cdcd9561), cat(0xb5f0ae8ed56f0ae3, 0x1985c8508443835a) }, // -3375
+ { cat(0x418c5d9ec116e467, 0xb5e5064d7171444e), cat(0x918d58724458d582, 0x7ad16d0d369c6915) }, // -3374
+ { cat(0x027a2f646824a0a5, 0xefd4d6e24f1ba07c), cat(0xe8e2271d3a27bc03, 0xf7b57b485760a822) }, // -3373
+ { cat(0x9b94f2b6b9b6e6eb, 0x2643df1b727c8064), cat(0xba4e85b0fb52fccf, 0xf95dfc39df808681) }, // -3372
+ { cat(0x7c7728922e2bebef, 0x51cfe5af8eca0050), cat(0x950b9e272f75970c, 0xc77e63617f9a0534) }, // -3371
+ { cat(0x93f1da837d131318, 0x82e63c4c17a99a19), cat(0xee78fd0b7f228b47, 0xa5970568cc29a1ed) }, // -3370
+ { cat(0x4327e202ca75a8e0, 0x68b8303cdfbae1ae), cat(0xbec730d5ff4ed5d2, 0xeadf378709bae7f1) }, // -3369
+ { cat(0x35b9819bd52aed80, 0x53c68cfd7fc8b48b), cat(0x989f5a44cc3f1175, 0x88b292d26e2f1ff4) }, // -3368
+ { cat(0x8928cf5fbb77e266, 0xec70e195994120de), cat(0xf4322a07ad31b588, 0xdab75150b04b6653) }, // -3367
+ { cat(0x6dba3f7fc92cb51f, 0x238d81447a9a80b2), cat(0xc35b54d2f0f4913a, 0x4892a773c03c51dc) }, // -3366
+ { cat(0x57c832cca0f090e5, 0xb60acdd0621533c2), cat(0x9c4910a8c0c3a761, 0xd3a885f6336374b0) }, // -3365
+ { cat(0xf2d9eae10180e7d5, 0xf011494d69bb8602), cat(0xfa0e810e01390bcf, 0xb90da323856bede6) }, // -3364
+ { cat(0x8f14bbe734671fde, 0x59a76dd787c93802), cat(0xc80b9a719a940972, 0xfa714f4f9deff185) }, // -3363
+ { cat(0xa5aa2fec29ec197e, 0xae1f8b12d3076002), cat(0xa009485ae210078f, 0x2ec10c3fb18cc137) }, // -3362
+ { cat(0x1e21bff02189adfe, 0xf1b2d5a8a8d2b335), cat(0x80076d1581a66c72, 0x8bcda36627a3cdc6) }, // -3361
+ { cat(0xc9cf998035a91664, 0xb5eaef7441511eba), cat(0xccd8ae88cf70ad84, 0x12e29f09d9061609) }, // -3360
+ { cat(0xa172e1335e20deb6, 0xf7ef25f69aa74bc8), cat(0xa3e08ba0a5f3be03, 0x424ee5a17a6b44d4) }, // -3359
+ { cat(0x8128b429181a4bc5, 0x9325b7f87bb9096d), cat(0x831a094d518fcb35, 0xcea584812ebc3710) }, // -3358
+ { cat(0xcea786a82690793c, 0x1ea2bff3f9280f15), cat(0xd1c342154f4c7856, 0x176f3a684ac6be80) }, // -3357
+ { cat(0x0bb93886854060fc, 0xe54efff660ecd8dd), cat(0xa7cf68110c3d2d11, 0xac58fb86a2389867) }, // -3356
+ { cat(0x6fc7606b9dcd1a63, 0xeaa59991e723e0b1), cat(0x863f867409ca8a74, 0x89e0c93881c6e052) }, // -3355
+ { cat(0x7fa567129614f706, 0x443c28e971d3011b), cat(0xd6cc0a5342ddaa54, 0x0fce0ec0cfa49a1d) }, // -3354
+ { cat(0xcc84527544dd926b, 0x69c9ba545b0f3416), cat(0xabd66ea9024aeea9, 0xa63e7233d9507b4a) }, // -3353
+ { cat(0xd6d041f76a4adb89, 0x216e2ea9e2729012), cat(0x897858873508beee, 0x1e985b5cadd9fc3b) }, // -3352
+ { cat(0x57b39cbf1077c5a8, 0x357d1776371db34f), cat(0xdbf3c0d854dacb16, 0x975a2bc77c8ff9f9) }, // -3351
+ { cat(0x46294a3273930486, 0x9130df91c5b15c3f), cat(0xaff633e043e23c12, 0x12ae896c63a66194) }, // -3350
+ { cat(0x6b543b5b8fa8d06b, 0xa75a4c749e277d00), cat(0x8cc4f64d031b6341, 0xa88ba12382eb8143) }, // -3349
+ { cat(0xdeed2bc5b2a7b3df, 0x722a13edc9d8c7ff), cat(0xe13b23ae6b5f0535, 0xda7901d26b12686b) }, // -3348
+ { cat(0xe58a896af552f64c, 0x5b54dcbe3b13d333), cat(0xb42f4fbebc4c042b, 0x152d9b0ebc0eb9ef) }, // -3347
+ { cat(0x1e086def2aa8c509, 0xe2aa4a31c8dca8f5), cat(0x9025d96563700355, 0xaa8ae272300bc7f3) }, // -3346
+ { cat(0x6340afe5110e080f, 0xd11076b60e2ddb22), cat(0xe6a2f56f05800555, 0xddab03e9e6793feb) }, // -3345
+ { cat(0xb5cd59840da4d33f, 0xda73922b3e8b15b5), cat(0xb8825df26accd111, 0x7e226987eb943322) }, // -3344
+ { cat(0xf7d77ad00aea4299, 0x7b8fa822986f4491), cat(0x939b7e5b88a3da74, 0x64e8546cbc768f4e) }, // -3343
+ { cat(0x5958c4801176d0f5, 0x927f736a8d7ed41b), cat(0xec2bfd5f41062a53, 0xd4a6ed7ac724187e) }, // -3342
+ { cat(0x477a36ccdac573f7, 0xa865f5eed798a9af), cat(0xbceffde5cd9e8843, 0x10858ac89f501398) }, // -3341
+ { cat(0xd2c82bd7156ac32c, 0x86b7f7f24613baf2), cat(0x972664b7d7b2069c, 0x0d37a23a190cdc79) }, // -3340
+ { cat(0x1e0d12f1bbde0514, 0x0abff31d3cec5e50), cat(0xf1d7078c8c500a93, 0x48590390281493f6) }, // -3339
+ { cat(0xe4d7425afcb19da9, 0xa23328e430bd1840), cat(0xc178d2d6d6a66edc, 0x39e0cfa68676dcc4) }, // -3338
+ { cat(0xea45ceaf308e17ba, 0xe828ed835a30e034), cat(0x9ac70f124551f249, 0xc7e70c85385f1703) }, // -3337
+ { cat(0x43a2e44b80e3592b, 0x0d0e48d229e7cd1f), cat(0xf7a4e4ea08831d42, 0xd971ada1f3cb5806) }, // -3336
+ { cat(0x02e8b6a2cd82adbc, 0x0a71d3db54b970e6), cat(0xc61d83ee6d35b102, 0x478e24818fd5e005) }, // -3335
+ { cat(0x0253c54f0acef163, 0x3b8e4315dd61271e), cat(0x9e7e0325242af401, 0xd2d81d3473118004) }, // -3334
+ { cat(0xd086087e77b18238, 0x5f4a04efc89b71ca), cat(0xfd966b6ea044b99c, 0x848cfb871e82666c) }, // -3333
+ { cat(0x406b39fec6279b60, 0x4c3b37263a15f4a2), cat(0xcadebc588036fae3, 0x9d3d9605b201eb8a) }, // -3332
+ { cat(0x66bc2e656b52e2b3, 0x702f5f51c8119081), cat(0xa24bc9e06692624f, 0xb0fe119e2801893b) }, // -3331
+ { cat(0x8563585122a8b55c, 0x59bf7f74a00e0d34), cat(0x81d63b19eba84ea6, 0x2731a7b1b99ad42f) }, // -3330
+ { cat(0x3bd226e837745560, 0x8f98cbedcce34854), cat(0xcfbd2b5cac407dd6, 0xa51c3f82c291537f) }, // -3329
+ { cat(0xfca81f202c5d111a, 0x0c7a3cbe3d82a043), cat(0xa630ef7d5699fe45, 0x50e3660235410f98) }, // -3328
+ { cat(0x96ece5b356b0da7b, 0x3d2e96fe979bb369), cat(0x84f3f2caabae6504, 0x40b5eb34f7673fad) }, // -3327
+ { cat(0x24ae3c52244e2a5e, 0xc84a8b30f292b8a7), cat(0xd4b9847779170806, 0xcdefdebb2571ff7c) }, // -3326
+ { cat(0x83be96a81d0b5518, 0xa03ba28d8edbc6ec), cat(0xaa2e0392c745a005, 0x718cb22f5127ff96) }, // -3325
+ { cat(0x36321220173c4413, 0xb362e8713f1638bd), cat(0x8824cfa89f6ae66a, 0xc13d5b590db99945) }, // -3324
+ { cat(0x89e9b699bec6d352, 0xb89e40b531bd2795), cat(0xd9d47f743244a3de, 0x01fbc55b4928f53b) }, // -3323
+ { cat(0x07ee2bae3238a90e, 0xfa1833c427ca8611), cat(0xae439929c1d08318, 0x0196377c3a872a96) }, // -3322
+ { cat(0xd324efbe8e93ba72, 0x61acf636863b9e74), cat(0x8b6947549b0d35ac, 0xce11c5fcfb9f5544) }, // -3321
+ { cat(0x8507e5fdb0ec5d83, 0xcf7b238a705f63ec), cat(0xdf0ed8875e7b8914, 0x7ce93cc7f8feeed4) }, // -3320
+ { cat(0x6a6cb7fe27237e03, 0x0c6282d526b2b657), cat(0xb27246d2b1fc6da9, 0xfd8763d32d98bf10) }, // -3319
+ { cat(0x21f09331b8e9319c, 0x09e868aa855bc512), cat(0x8ec1d24227fd2487, 0xfe05e975be13cc0d) }, // -3318
+ { cat(0x9cb41eb5f4a84f60, 0x0fda4110d55fa1b7), cat(0xe4695069d995073f, 0xfcd64255fcec79ae) }, // -3317
+ { cat(0xb09018919086a5e6, 0x731500da444c815f), cat(0xb6baa6bb147738ff, 0xfd7835119723948b) }, // -3316
+ { cat(0x26d9ad41406bb7eb, 0x8f4400ae9d0a0119), cat(0x922eebc8dd2c2d99, 0x97935da7ac1c76d6) }, // -3315
+ { cat(0x3e29153533df8cac, 0x186ccde42e766828), cat(0xe9e4ac7495137c28, 0xf28562a5e02d8af0) }, // -3314
+ { cat(0xfe87442a8fe60a23, 0x46bd7183585eb9b9), cat(0xbb1d56c3aa75fced, 0x8ed11bb7e68ad58c) }, // -3313
+ { cat(0xcb9f69bba651a1b5, 0xd231279c46b22e2e), cat(0x95b1123621f7fd8a, 0xd8a7495feba24470) }, // -3312
+ { cat(0x78ff0f92a3b5cf89, 0x504ea5c6d7837d16), cat(0xef81b6bd03266277, 0xc10ba8997903a0b4) }, // -3311
+ { cat(0x2d98d9421c9172d4, 0x403eeb057935fdab), cat(0xbf9af89735b84ec6, 0x340953adfa694d5d) }, // -3310
+ { cat(0x57ad7a9b4a0df576, 0x99cbef37942b3156), cat(0x9948c6df5e2d0bd1, 0xc33aa957fb877117) }, // -3309
+ { cat(0x25e25dc5434988bd, 0xc2dfe525b9deb556), cat(0xf5413e32304812e9, 0x385ddbbff8d8b4f2) }, // -3308
+ { cat(0x84b517d102a13a31, 0x68b31db7c7e55ddf), cat(0xc43431c1c039a8ba, 0x937e496660ad5d8e) }, // -3307
+ { cat(0x6a2a7974021a94f4, 0x53c27e2c9feab17f), cat(0x9cf68e3499c7ba2e, 0xdc6507851a244ad8) }, // -3306
+ { cat(0x76aa5becd02a87ed, 0x52d0c9e0ffdde8cb), cat(0xfb2416ba8fa5f6b1, 0x60a1a5a1c36d448d) }, // -3305
+ { cat(0xf888498a40220657, 0x7573d4b3ffe4ba3c), cat(0xc8e9abc872eb2bc1, 0x1a1aeae7cf8a9d3d) }, // -3304
+ { cat(0xfa06a13b66819eac, 0x5df643c3331d61ca), cat(0xa0baefd38f228967, 0x481588b972d54a97) }, // -3303
+ { cat(0xfb3880fc52014bbd, 0x17f83635c27de7d5), cat(0x80958ca93f4ed452, 0xa0113a2df5776edf) }, // -3302
+ { cat(0x5ec0ce60833545fb, 0x598d2389372fd954), cat(0xcdbc1441fee486ea, 0x99b529e32258b166) }, // -3301
+ { cat(0x189a3eb39c2a9e62, 0xae0a82d42c264776), cat(0xa496769b32506bee, 0xe15dbb1c1b7a2785) }, // -3300
+ { cat(0xe07b655c7ceee51b, 0xbe6ecf102351d2c5), cat(0x83ab9215c1d9eff2, 0x4de495b015fb52d0) }, // -3299
+ { cat(0x9a5f0893fb17d4f9, 0x30b14b4d054fb7a2), cat(0xd2ac1cef9c8fe650, 0x7ca0ef80232bb7b4) }, // -3298
+ { cat(0x7b7f3a0ffc1310c7, 0x5a276f70d10c92e8), cat(0xa889b0bfb0731ea6, 0xca1a59334f562c90) }, // -3297
+ { cat(0x62cc2e73300f409f, 0x7b52bf8d740a0f20), cat(0x86d48d6626c27eeb, 0xd4e1e0f5d911bd40) }, // -3296
+ { cat(0x9e137d8519b200ff, 0x2bb798e253434b66), cat(0xd7ba7bd6a46a64ac, 0x87cfce56281c6200) }, // -3295
+ { cat(0x7e75fe04148e6732, 0x895fad81dc35d5eb), cat(0xac952fdee9eeb6f0, 0x6ca63eab5349e800) }, // -3294
+ { cat(0xcb91980343a51f5b, 0xa119579b169177f0), cat(0x8a10f318bb255f26, 0xbd51cbbc42a18666) }, // -3293
+ { cat(0x78e8f3386c3b655f, 0x68288c2b574f264c), cat(0xdce7eb5ac508983d, 0xfbb612c6d10270a4) }, // -3292
+ { cat(0x60ba5c2d2362b77f, 0x8686d68912a5b83d), cat(0xb0b989156a6d4697, 0xfc91a89f0d9b8d50) }, // -3291
+ { cat(0xb3c849bdb5e892cc, 0x6b9f1207421e2cfe), cat(0x8d613a7788576bac, 0xca0e207f3e160aa6) }, // -3290
+ { cat(0x52da0f95efda847a, 0x45cb500b9cfd14c9), cat(0xe2352a58da257914, 0x767d00cb9689aaa4) }, // -3289
+ { cat(0xdbe1a6118caed061, 0xd16f733c7d9743d4), cat(0xb4f75513e1b79410, 0x5eca6709453aeee9) }, // -3288
+ { cat(0xe31aeb413d58a6b4, 0xa78c5c3064790310), cat(0x90c5dda9815fa9a6, 0xb23b85a1042f2587) }, // -3287
+ { cat(0xd1c4ab9b955aa454, 0x3f46f9e7072804e6), cat(0xe7a2fc4268990f71, 0x1d2c0901a04b6f3f) }, // -3286
+ { cat(0x0e36efafaaaee9dc, 0xff6bfb1f38ecd0b8), cat(0xb94f3035207a72c0, 0xe4233a67b36f8c33) }, // -3285
+ { cat(0x0b5f2626222587e3, 0xff8995b293f0a6fa), cat(0x943f59c419fb8f00, 0xb682951fc2bfa35c) }, // -3284
+ { cat(0x456509d69d08d96c, 0xcc0f55ea864dd7f6), cat(0xed322939c32c1801, 0x240421cc6acc3893) }, // -3283
+ { cat(0x6ab73b12173a478a, 0x3cd911886b717991), cat(0xbdc1ba949c234667, 0x50034e3d223cfa0f) }, // -3282
+ { cat(0x222c2f41ac2e9fa1, 0xca474139ef8dfadb), cat(0x97ce2edd49b5d1ec, 0x4002a4fdb4fd94d9) }, // -3281
+ { cat(0x9d137ecf79e4329c, 0x76d8685cb27cc491), cat(0xf2e37e2edc561cad, 0x33376e62bb2f548e) }, // -3280
+ { cat(0x1742cbd92e50287d, 0x2be0537d5b9703a7), cat(0xc24f98257d11b08a, 0x8f5f8b822f591072) }, // -3279
+ { cat(0xdf68a314250ced30, 0xefe6a93116126953), cat(0x9b72e01dfda7c06e, 0xd9193c6825e0d9f4) }, // -3278
+ { cat(0x98a76b536e7b151b, 0x19710eb4f01d7551), cat(0xf8b7ccfcc90c6717, 0xc1c1fa403c9af654) }, // -3277
+ { cat(0x7a1f890f8b95aa7c, 0x145a722a59b12aa7), cat(0xc6f970ca3a705279, 0x67ce61ccfd48c510) }, // -3276
+ { cat(0xfb4c6da609448863, 0x437b8e8847c0eeec), cat(0x9f2df3d4fb8d0ec7, 0x863eb4a3fdd3d0d9) }, // -3275
+ { cat(0xc54715d6753a73d2, 0x05927da6d934b17a), cat(0xfeafec87f8e1b13f, 0x3d31210662ec815c) }, // -3274
+ { cat(0x376c11785dc85ca8, 0x04753152475d5ac8), cat(0xcbbff06cc71af432, 0x975a80d1e8bd344a) }, // -3273
+ { cat(0xf923412d17d37d53, 0x36c4277505e448a0), cat(0xa2fff38a38e25cf5, 0x45e200a7ed6429d4) }, // -3272
+ { cat(0xfa829a8a7975fddc, 0x2bd01f90d1836d4d), cat(0x82665c6e93e84a5d, 0xd1819a1ff11cee43) }, // -3271
+ { cat(0xc4042a7728bcc960, 0x4619cc1ae8d2487b), cat(0xd0a3c717530d43c9, 0x4f35c3664e94b06c) }, // -3270
+ { cat(0x699ceec5ba30a119, 0xd1ae3ce253db6d2f), cat(0xa6e96c12a8d7696d, 0xd8f7cf850baa26bd) }, // -3269
+ { cat(0xbae3f237c826e747, 0xdaf1ca4ea97c5759), cat(0x858789a88712babe, 0x472ca6040954ebca) }, // -3268
+ { cat(0x5e39838c7371720c, 0x9182dd4aa8c6f228), cat(0xd5a5a90da4eac463, 0xa5143cd342217944) }, // -3267
+ { cat(0xe4facfa38f8df4d6, 0xdacf176eed6bf4ed), cat(0xaaeaeda483ef0382, 0xea76970f681ac769) }, // -3266
+ { cat(0xb72f0c82d93e5d78, 0xaf0c12bf24565d8a), cat(0x88bbf150698c02cf, 0x21f878d920156c54) }, // -3265
+ { cat(0xbeb1ad9e2863c8c1, 0x18135131d3bd6277), cat(0xdac64ee70f466ae5, 0x032727c1ccef13ba) }, // -3264
+ { cat(0x3227be18204fd3cd, 0xacdc40f4a9644ec5), cat(0xaf050bec0c385584, 0x0285b967d725a962) }, // -3263
+ { cat(0x5b52fe79b3730fd7, 0xbd7d00c3bab6a56b), cat(0x8c040989a3604469, 0x9b9e2decac1e211b) }, // -3262
+ { cat(0x5eeb30c2b8b81959, 0x2f2e679f91243bde), cat(0xe00675a90566d3dc, 0x2c30497aacfd01c5) }, // -3261
+ { cat(0x7f228d6893c67aad, 0xbf5852e60db6964b), cat(0xb3385e20d11f0fe3, 0x568d07955730ce37) }, // -3260
+ { cat(0xff4ed786dc9ec88a, 0xff79dbeb3e2bab6f), cat(0x8f604b4d7418d982, 0xaba40611128d71c5) }, // -3259
+ { cat(0x987e25a4943140de, 0x658fc6453045df18), cat(0xe566dee2535af59d, 0xdf6cd681b748b609) }, // -3258
+ { cat(0xad31b7b6dcf433e5, 0x1e0c9e9dc037e5ad), cat(0xb7857f1b75e25e17, 0xe5f0ab9af906f807) }, // -3257
+ { cat(0xbdc15fc57d902984, 0x180a187e335feaf1), cat(0x92d1327c5e4eb1ac, 0xb7f3bc7bfa6bf99f) }, // -3256
+ { cat(0x62ceffa26280426c, 0xf3435a63856644b4), cat(0xeae850c6fd4ab5e1, 0x2652c72cc3dff5cc) }, // -3255
+ { cat(0xe8a5994eb5336857, 0x2902aeb60451d090), cat(0xbbed0d6bfdd55e4d, 0xb84238f09cb32b09) }, // -3254
+ { cat(0xed5147722a8f86ac, 0x20cef22b36a7da0d), cat(0x96573deffe444b71, 0x6034fa5a16f5bc07) }, // -3253
+ { cat(0xaee872504418d779, 0xce17e9debdd95ce2), cat(0xf08b964cca06df1b, 0xcd21909024bc600c) }, // -3252
+ { cat(0x58b9f50d034712c7, 0xd813217efe477d81), cat(0xc06fab70a19f18e3, 0x0a8140735096b33d) }, // -3251
+ { cat(0x46fb2a70cf6c0f06, 0x4675b46598393134), cat(0x99f2ef8d4e18e0b5, 0xa201005c40788f64) }, // -3250
+ { cat(0xd7f843e7b2467e70, 0x70bc53d5c05b81ed), cat(0xf6517f487cf49abc, 0x366800939a5a7f06) }, // -3249
+ { cat(0x132d031fc1d1fec0, 0x5a30431166af9b24), cat(0xc50dff6d30c3aefc, 0xf85333a94848659f) }, // -3248
+ { cat(0x75bd9c1967db3233, 0x7b59cf411ef2e284), cat(0x9da4cc575a362597, 0x2d0f5c876d06b7b2) }, // -3247
+ { cat(0xef95c68f0c91e9eb, 0xf88fb201cb1e3739), cat(0xfc3ae08bc389d5be, 0xae7efa72480abf83) }, // -3246
+ { cat(0x8c77d20c0a0e54bc, 0xc6d95b34a27e9294), cat(0xc9c8b3a302d4aafe, 0xf1ff2ec1d33bcc69) }, // -3245
+ { cat(0x705fdb3cd4d843ca, 0x38ade29081fedbaa), cat(0xa16d5c8268aa2265, 0x8e65bf0175c97054) }, // -3244
+ { cat(0x59e648fd7713696e, 0x93be4eda0198afbb), cat(0x81244a01ed54e851, 0x3eb7cc012b078d10) }, // -3243
+ { cat(0x297074c8be85757d, 0xb9307e299c277f91), cat(0xcea076697bbb0d4e, 0xcabfacceab3f481a) }, // -3242
+ { cat(0x878d2a3a32045dfe, 0x2dc064ee1685ffa7), cat(0xa54d2b87962f3dd8, 0xa232f0a555cc39ae) }, // -3241
+ { cat(0x393dbb61c19d17fe, 0x8b0050be786b32ec), cat(0x843dbc6c7825cb13, 0xb4f58d5111702e25) }, // -3240
+ { cat(0x8ec92bcf9c2e8cca, 0x78008130c0ab84ad), cat(0xd395fa4726a2de85, 0xee55aee81be6b03b) }, // -3239
+ { cat(0x0bd4230c7cf20a3b, 0x93339a8d66ef9d57), cat(0xa944c838ebb57ed1, 0x8b77bf2016522696) }, // -3238
+ { cat(0xa3101c09fd8e6e96, 0x0f5c7ba452594aac), cat(0x876a39c722f798a7, 0xa2c6328011db5211) }, // -3237
+ { cat(0x04e693432f4a4a89, 0xb22d92a083c21114), cat(0xd8a9f60b6b25c10c, 0x37a384001c921ce9) }, // -3236
+ { cat(0xd0b875cf59083ba1, 0x5b57a88069680da9), cat(0xad54c4d5ef51673c, 0xf94f9ccce3a81720) }, // -3235
+ { cat(0x40939172ada02fb4, 0x4912ed3387867154), cat(0x8aaa37118c411f63, 0xfaa6170a4fb9ac1a) }, // -3234
+ { cat(0x00ec1beaaf66b2ba, 0x0e84aeb8d8d71bba), cat(0xdddd24e8e0683239, 0x9109be76e5f5e02a) }, // -3233
+ { cat(0x9a567cbbbf855bc8, 0x0b9d5893e0ac162f), cat(0xb17db720b3868e94, 0x7407cb9251918021) }, // -3232
+ { cat(0xaeab96fc99377ca0, 0x094aad431a2344f2), cat(0x8dfe2c1a29387210, 0x5cd30941dadacce7) }, // -3231
+ { cat(0x1778f1942858c766, 0x7544486b5d053b1d), cat(0xe330469041f3e9b3, 0xc7b80ecfc49147d9) }, // -3230
+ { cat(0xac60c143537a391e, 0xc436a055e4042f4a), cat(0xb5c0387367f6548f, 0xd2f9a57303a76cad) }, // -3229
+ { cat(0x89e70102a92e9418, 0x9cf88044b669bf6f), cat(0x9166938f865eaa0c, 0xa8c7b78f361f8a24) }, // -3228
+ { cat(0x430b34d10eb0ecf4, 0x2e5a66d4570f98b1), cat(0xe8a41f4c0a311014, 0x413f8c185698dd07) }, // -3227
+ { cat(0x026f5d740bc0bd90, 0x25151f1045a613c1), cat(0xba1ce5d66e8da676, 0x9a993ce045471739) }, // -3226
+ { cat(0x685917900966fe0c, 0xea774c0d0484dc9a), cat(0x94e3eb11f20aeb92, 0x154763e69dd278fa) }, // -3225
+ { cat(0x73c1bf4cdbd7fce1, 0x7725467b3a6e2dc3), cat(0xee39781cb677df50, 0x220bd30a961d8e5d) }, // -3224
+ { cat(0xf634990a4979971a, 0xc5b76b95c858249c), cat(0xbe946016f85fe5d9, 0xb4d6426ede7e0b7d) }, // -3223
+ { cat(0xf82a14083ac7ac15, 0x6af922de39e01d4a), cat(0x9876b345937feb14, 0x90ab6858b1fe6f97) }, // -3222
+ { cat(0xc04353405e0c4688, 0xab2837c9f6336210), cat(0xf3f11ed5b8ccab54, 0x1aabda278330b28c) }, // -3221
+ { cat(0x669c4299e4d69ed3, 0xbc202ca191c2b4d9), cat(0xc3274bde2d708910, 0x1556481f9c26f53d) }, // -3220
+ { cat(0x1ee3687b1d787f0f, 0xc9b356e7a7cef714), cat(0x9c1f6fe4f126d40c, 0xdddea01949b8c431) }, // -3219
+ { cat(0x97d240c4fbf3fe7f, 0xa91ef172a617f1ba), cat(0xf9cbe63b1b715347, 0xc964335ba927a04e) }, // -3218
+ { cat(0xaca833d0c98ffecc, 0x874bf45bb81327c8), cat(0xc7d651c8e2c10f6c, 0xa11cf5e2edb94d0b) }, // -3217
+ { cat(0x56ecf640a13fff0a, 0x05d65d162cdc1fd3), cat(0x9fdea7d3e89a72bd, 0x4db0c4b58afaa409) }, // -3216
+ { cat(0xf17b239a9b999810, 0x0956fb56ae2cffb8), cat(0xffcaa61fda90b795, 0x491ad455ab2aa00e) }, // -3215
+ { cat(0x8dfc1c7bafae1340, 0x0778c91224f0cc94), cat(0xcca21e7fe20d5faa, 0xa0e24377bc2219a5) }, // -3214
+ { cat(0x3e6349fc8c8b4299, 0x9f93d40e83f3d6dd), cat(0xa3b4e5331b3de622, 0x1a4e9c5fc9b4e151) }, // -3213
+ { cat(0xcb82a196d6d5cee1, 0x4c76433ecff6457d), cat(0x82f71dc27c3184e8, 0x150bb04ca15d810d) }, // -3212
+ { cat(0x78d1028af15617ce, 0xe0bd38647ff06f2f), cat(0xd18b62d0c6b5a173, 0x54df807a9bc8ce7c) }, // -3211
+ { cat(0x2d740208c111aca5, 0x809760506659f28c), cat(0xa7a2b573d22ae78f, 0x77193395496d71fd) }, // -3210
+ { cat(0x8ac334d3cda7bd51, 0x33ac4d0d1eae5ba3), cat(0x861bc45ca82252d9, 0x2c1429443abdf4ca) }, // -3209
+ { cat(0x779ebaec7c3f954e, 0xb913ae7b644a2c38), cat(0xd692d3c7736a1e28, 0x4686a86d2ac987aa) }, // -3208
+ { cat(0x5fb22f239699443e, 0xfa76252f836e89c7), cat(0xaba8a96c5c54e4ed, 0x053886bdbbd46c88) }, // -3207
+ { cat(0x7fc1bf4fabadd032, 0x61f81dbf9c586e39), cat(0x8953babd16aa50bd, 0x9dc6d231631056d3) }, // -3206
+ { cat(0xff9c654c45e2e6b7, 0x032695ff608d7d27), cat(0xdbb92ac82443b462, 0x960ae9e89e808aeb) }, // -3205
+ { cat(0x9949eaa36b1bebc5, 0x9c1ede65e6d79752), cat(0xafc7556ce9cfc382, 0x11a254ba1866d589) }, // -3204
+ { cat(0x143b221c55afefd1, 0x49b24b84b8ac790f), cat(0x8c9f778a54a63601, 0xa7b51094e052446e) }, // -3203
+ { cat(0x5391d02d55e64c82, 0x0f83ac078de0c1b1), cat(0xe0ff25aa2109f002, 0xa5ee80ee33b6d3e3) }, // -3202
+ { cat(0x42db0cf111850a01, 0xa602f0060b1a348e), cat(0xb3ff5154e73b2668, 0x84becd8b5c92431c) }, // -3201
+ { cat(0x357c0a5a746a6e67, 0xb802599e6f482a0b), cat(0x8fff7443ec2f51ed, 0x36ff0ad5e3a835b0) }, // -3200
+ { cat(0x22601090ba43e3d9, 0x266a28fd7ed9dcde), cat(0xe66586d3137ee97b, 0x8b31aaefd2a6bc4d) }, // -3199
+ { cat(0x1b800d4095031cad, 0xb854ed9798ae4a4b), cat(0xb85138a8dc658796, 0x08f488bfdbb896a4) }, // -3198
+ { cat(0xe2ccd766dd9c16f1, 0x6043f14613bea1d6), cat(0x93742d53e3846c78, 0x072a06ffe2fa121c) }, // -3197
+ { cat(0x6ae158a495c68b1b, 0xcd398209b93102f0), cat(0xebed155305a0ad8c, 0xd8433e6637f68361) }, // -3196
+ { cat(0x558113b6de386f49, 0x70face6e2dc0cf26), cat(0xbcbdaaa8d14d57a3, 0xe035cb84f99202b4) }, // -3195
+ { cat(0x446742f8b1c6bf6d, 0xf3fbd858249a3f52), cat(0x96fe2220a77112e9, 0x802b09372e0e6890) }, // -3194
+ { cat(0xd3d86b2782d798af, 0xecc626f36dc39883), cat(0xf1969d010be81e42, 0x66ab41f1e34a40e6) }, // -3193
+ { cat(0x431388ec68ac7a26, 0x5704ebf5f16946cf), cat(0xc1454a673cb9b1ce, 0xb889018e4f6e9a52) }, // -3192
+ { cat(0x0276072386f061b8, 0x459d89918dedd23f), cat(0x9a9dd51f63c7c172, 0x2d3a67a50c587b75) }, // -3191
+ { cat(0x9d89a505a4b3cf8d, 0x3c2f42827cafb6cc), cat(0xf762ee989fa60250, 0x485d72a1ad5a5f21) }, // -3190
+ { cat(0xe46e1d9e1d5ca60a, 0x968c3535308c923d), cat(0xc5e8bee07fb801d9, 0xd37df54e24484c1a) }, // -3189
+ { cat(0x838b4ae4e44a1e6e, 0xded690f75a0a0e97), cat(0x9e53cbe6cc9334ae, 0x42cb2aa4e9d37015) }, // -3188
+ { cat(0x9f4544a16d4363e4, 0x97bdb4bef6767dbe), cat(0xfd52dfd7adb8544a, 0x0478443b0fb8b355) }, // -3187
+ { cat(0x190436e78a9c4fea, 0x12fe2a325ec53165), cat(0xcaa8b312f160436e, 0x69f9d02f3fc6f5de) }, // -3186
+ { cat(0x7a69c586087d0cbb, 0x4264ee8eb2375ab7), cat(0xa2208f425ab36925, 0x2194a68c3305917e) }, // -3185
+ { cat(0xc8549e04d3973d62, 0x9b83f20bc1c5e22c), cat(0x81b3a5ceaef5edb7, 0x4e10853cf59e0dfe) }, // -3184
+ { cat(0x4087633aec252f04, 0x2c065012cfa3037a), cat(0xcf85d6177e564925, 0x49b4086188fce331) }, // -3183
+ { cat(0x006c4f625684259c, 0xf0050cdbd94f35fb), cat(0xa604ab45feab6db7, 0x6e29a04e0730b5c1) }, // -3182
+ { cat(0x0056a5e84536847d, 0x8cd0d71647729196), cat(0x84d08904cbbc57c5, 0xf1bae6a4d28d5e34) }, // -3181
+ { cat(0x66f10973a1f0d3fc, 0x14815823a5841c23), cat(0xd480db3adf93bfa3, 0x1c5e3dd484156386) }, // -3180
+ { cat(0xebf4078fb4c0a996, 0x76cde01c8469b01c), cat(0xaa00af624c7632e8, 0xe37e97dd367782d1) }, // -3179
+ { cat(0x8990060c909a2145, 0x2bd7e67d36baf34a), cat(0x88008c4ea391c253, 0xe93213175ec60241) }, // -3178
+ { cat(0xa8e670141a90353b, 0x795970c857918542), cat(0xd99a7a176c1c6a1f, 0xdb8351befe099d35) }, // -3177
+ { cat(0xed8526767ba690fc, 0x61145a39dfa79dcf), cat(0xae152e792349ee7f, 0xe2cf7498cb3ae42a) }, // -3176
+ { cat(0x579db85ec9520d96, 0xb410482e4c8617d9), cat(0x8b44252db5d4becc, 0xb572c3ad6f625022) }, // -3175
+ { cat(0xbf62c097a88348f1, 0x201a0d16e0d68c8d), cat(0xded36eaf8954647a, 0xbbead2af189d4d03) }, // -3174
+ { cat(0xff8233ac86cf6d8d, 0xb3480a78b3ded6d8), cat(0xb242bef2d4438395, 0x63224225ad4aa402) }, // -3173
+ { cat(0xff9b5c8a0572be0a, 0xf5d33b93c318abe0), cat(0x8e9bcbf5769c6944, 0x4f4e9b51576ee99b) }, // -3172
+ { cat(0x98f8941008b79677, 0xefb85f52d1c112ff), cat(0xe42c7988bdc70ed3, 0xb2175ee88be4a8f9) }, // -3171
+ { cat(0xe0c6dcd9a092dec6, 0x59604c4241674266), cat(0xb689fad3cb05a576, 0x2812b253a31d53fa) }, // -3170
+ { cat(0xb3d24a47b3a8b238, 0x47803d01cdec351f), cat(0x9207fbdca26aeac4, 0xecdbc1dc827ddcc8) }, // -3169
+ { cat(0x1fb6dd3f85dab6c0, 0x7266c802e3138831), cat(0xe9a65fc76a44aad4, 0xae2c6960d0c96141) }, // -3168
+ { cat(0x4c924a9937e22bcd, 0x2852399be8dc6cf4), cat(0xbaeb7fd2bb6a2243, 0xbe89ede70d6de767) }, // -3167
+ { cat(0xa3a83badc64e8970, 0xed0e947cba49f0c3), cat(0x9589330efc54e836, 0x3207f185a457ec52) }, // -3166
+ { cat(0xd2a6c5e2d6e40f1b, 0x14e420c790764e05), cat(0xef41eb4b2d54a6bd, 0x1cd9826f6d597a1d) }, // -3165
+ { cat(0x0eebd18245833f48, 0xdd834d6c7391d804), cat(0xbf67ef6f5776ebca, 0x7d7acebf8aadfb4b) }, // -3164
+ { cat(0xa5897468379c32a0, 0xb135d789f60e466a), cat(0x991ff2bf792befd5, 0x312f0bcc6ef195d5) }, // -3163
+ { cat(0x3c0f20a6bf605101, 0x1b8958dcbce3a3dc), cat(0xf4ffeacbf5131955, 0x1b7e794717e8efbc) }, // -3162
+ { cat(0xc9a5b3b89919da67, 0x493aad7d63e94fe3), cat(0xc3ffef0990dc1444, 0x15fec76c1320bfc9) }, // -3161
+ { cat(0xa1515c93adae4852, 0xa0fbbdfde987731c), cat(0x9cccbf3ada49a9d0, 0x11989f89a8e6ffd4) }, // -3160
+ { cat(0x354efa85e2b073b7, 0x67f92ffca8d8b82d), cat(0xfae131f7c3a90fb3, 0x4f5a98dc41719954) }, // -3159
+ { cat(0x2aa59537e88d295f, 0x8660f3308713c68a), cat(0xc8b427f969540c8f, 0x72aee0b0345ae110) }, // -3158
+ { cat(0x8884775fed3dbab2, 0xd1e728f39f43053c), cat(0xa0901ffabaa9a3a5, 0xf558b3c029e24da6) }, // -3157
+ { cat(0x06d05f7ff0fe2ef5, 0x74b8ed8fb29c0430), cat(0x80734cc8955482eb, 0x2aad5c99bb1b7152) }, // -3156
+ { cat(0xa48098ccb4c9e4bb, 0xedf4af4c50f9a04c), cat(0xcd8547a7555404ab, 0x777bc75c5e924ee9) }, // -3155
+ { cat(0xb6cd470a2a3b1d63, 0x24c3bf7040c7b370), cat(0xa46a9fb9111003bc, 0x5f963916b20ea587) }, // -3154
+ { cat(0xc57105a1bb627de8, 0xea3632c033d2f5f3), cat(0x83887fc740d99c96, 0xb2de9412280bb79f) }, // -3153
+ { cat(0xa24e6f692bd0c974, 0xa9f05133861e5652), cat(0xd273ffa5348f60f1, 0x1e30ece9d9ac58ff) }, // -3152
+ { cat(0x4ea525edbca70790, 0x87f374293818450f), cat(0xa85ccc842a0c4d8d, 0xb1c0bd87e156ad99) }, // -3151
+ { cat(0xa550eb2496ec060d, 0x398f9020f9ad040c), cat(0x86b0a39cee703e0a, 0xf49a31398112247a) }, // -3150
+ { cat(0x0881783a8b133ce1, 0xf5b28034c2ae6cdf), cat(0xd78105c7e3e6c9ab, 0x20f6b528ce836d91) }, // -3149
+ { cat(0xa067936208dc30b4, 0xc48eccf7022523e6), cat(0xac6737d31cb8a155, 0xb3f890ed7202be0d) }, // -3148
+ { cat(0x4d1fa91b3a49c090, 0x9d3f0a5f34ea831e), cat(0x89ec2ca8e3c6e777, 0xc32d40bdf4cefe71) }, // -3147
+ { cat(0x7b65db5ec3a9341a, 0x9531aa31ee4404fd), cat(0xdcad14416c717259, 0x38486796547e63e8) }, // -3146
+ { cat(0x95eb15e5695429ae, 0xddc154f4be9cd0cb), cat(0xb08a769abd278ead, 0xc6a052dea9feb653) }, // -3145
+ { cat(0xab2277eabaa9baf2, 0x4b0110c3cbb0a709), cat(0x8d3b9215641fa557, 0xd219dbe554cbc50f) }, // -3144
+ { cat(0x4503f3112aa92b1d, 0x44ce813945e771a7), cat(0xe1f8e9bbd365d559, 0x50295fd554793b4c) }, // -3143
+ { cat(0x040328da888755b1, 0x03d8676104b927b9), cat(0xb4c721630f84aaad, 0xd9bab3111060fc3d) }, // -3142
+ { cat(0x0335ba486d39115a, 0x6979ec4d9d60ec94), cat(0x909f4de8d936eef1, 0x7afbc2740d1a6364) }, // -3141
+ { cat(0xd1ef9073e1f4e890, 0xa8c313af6234adb9), cat(0xe76549748ebe4b1b, 0xf7f9372014f7056c) }, // -3140
+ { cat(0x0e59405cb4c3ed40, 0x87027625e82a2494), cat(0xb91dd45d3efea27c, 0xc660f8e6772c0457) }, // -3139
+ { cat(0xa514337d5d698a9a, 0x059b91b7ecee83aa), cat(0x9417dd17659881fd, 0x6b80c71ec5bcd045) }, // -3138
+ { cat(0xa1b9ebfbc8a8ddc3, 0x3c2c1c597b173910), cat(0xecf2fb58a28d9cc8, 0xac013e97a2c7b3a2) }, // -3137
+ { cat(0xb494bcc96d53e49c, 0x302349e12f45c740), cat(0xbd8f2f7a1ba47d6d, 0x566765461bd2f61b) }, // -3136
+ { cat(0x5d43ca3abddcb6e3, 0x59b5d4b425d16c33), cat(0x97a5bf94e2e9fdf1, 0x11ec5104e30f2b49) }, // -3135
+ { cat(0xfb9fa9f7962df16b, 0xc2bc8786a2e8ad1f), cat(0xf2a2cc216b0ffcb4, 0xe97a1b3b04e5120e) }, // -3134
+ { cat(0x961954c611be5abc, 0x9bca06054f208a7f), cat(0xc21bd68122733090, 0xbac815c8d0b741a5) }, // -3133
+ { cat(0xde7aaa380e31e230, 0x7ca19e6aa5b3a1ff), cat(0x9b4978674ec28d40, 0x956cde3a40929aea) }, // -3132
+ { cat(0x30c4438ce3830380, 0xc768fd776f85cffe), cat(0xf8758d72179daecd, 0xbbe163906750f7de) }, // -3131
+ { cat(0xf3d0360a4f9c02cd, 0x6c53fdf92604a665), cat(0xc6c4712812e48bd7, 0xc9811c7385da5fe4) }, // -3130
+ { cat(0xf6402b3b72e33571, 0x237664c7519d51eb), cat(0x9f038db9a8b6d646, 0x3acdb05c6b151983) }, // -3129
+ { cat(0xbd33785f1e385581, 0xd25707a54f621caa), cat(0xfe6c15f5dabe23a3, 0x91491a2d7821c26c) }, // -3128
+ { cat(0xfdc2c6b27e93779b, 0x0eac061dd91b4a22), cat(0xcb89ab2b1564e94f, 0xa76dae8ac6816856) }, // -3127
+ { cat(0x649bd2286542c615, 0xa5566b4b1415d4e8), cat(0xa2d488ef4450baa6, 0x1f8af2089ecded12) }, // -3126
+ { cat(0x1d4974ed1dcf04de, 0x1ddebc3c10117720), cat(0x8243a0bf69da2eeb, 0x4c6f2806e5718a75) }, // -3125
+ { cat(0x620f217b62e4d496, 0x96312d2ce6825833), cat(0xd06c34657629e4ab, 0xad7ea6716f1c10bb) }, // -3124
+ { cat(0xe80c1ac91bea43ab, 0xab5a8a8a5201e029), cat(0xa6bcf6b791bb1d56, 0x246551f458e34095) }, // -3123
+ { cat(0xb9a348a0e321cfbc, 0x89153ba1db34b354), cat(0x8563f892dafc1778, 0x1d1ddb29e0b5cd44) }, // -3122
+ { cat(0x290541016b694c60, 0xdb552c362b878553), cat(0xd56cc0eaf7f9bf26, 0x94fc91dc9abc7ba1) }, // -3121
+ { cat(0x8737673455edd6b3, 0xe2aa89c4ef9f9ddc), cat(0xaabd67225ffaff52, 0x10ca0e4a1563961a) }, // -3120
+ { cat(0x6c2c529044be455c, 0xb5553b03f2e617e4), cat(0x889785b51995990e, 0x73d4d83b444fab48) }, // -3119
+ { cat(0x137a1db3a1306efa, 0xbbbb919feb09bfd2), cat(0xda8c0921c288f4e3, 0xec87c05ed3b2aba7) }, // -3118
+ { cat(0x0f94e48fb426bf2e, 0xfc960e1988d49975), cat(0xaed66db49ba0c3e9, 0x8a06337f0fc222ec) }, // -3117
+ { cat(0xd943ea0c901eff58, 0xca11a4e13a43adf7), cat(0x8bdebe2a161a3654, 0x6e6b5c65a634e8bc) }, // -3116
+ { cat(0x8ed3101419cb3227, 0xa9b5d49b906c498b), cat(0xdfcac9dcf029f087, 0x17122d6f7054a794) }, // -3115
+ { cat(0x7242734347d5c1b9, 0x549176e2d9f03ad6), cat(0xb308a17d8cee5a05, 0xac0e8abf8d108610) }, // -3114
+ { cat(0xc1cec29c3977ce2d, 0xdd412be8ae59c8ab), cat(0x8f3a1acad72514d1, 0x567208993da6d1a6) }, // -3113
+ { cat(0x02e46a938f2616af, 0xc868464116f60ddf), cat(0xe529c477bea1bae8, 0x8a500dc1fc3e1c3e) }, // -3112
+ { cat(0x9be9eedc7284def3, 0x06b9d1cdabf80b19), cat(0xb7549d2c98816253, 0xa1d9a49b3031b031) }, // -3111
+ { cat(0xafee58b05b9d7f28, 0xd22e4171566008e1), cat(0x92aa1756e06781dc, 0x817aea15c027c027) }, // -3110
+ { cat(0x7fe3c11a2c2f31da, 0xe9e39be88a334167), cat(0xeaa9bef1670c02fa, 0x68c4a9bc66a6003f) }, // -3109
+ { cat(0x998300e1bcf28e48, 0xbb1c7cba0829011f), cat(0xbbbaff2785a33595, 0x209d5496b884ccff) }, // -3108
+ { cat(0xe1359a4e30c20b6d, 0x627d3094d35400e6), cat(0x962f328604829144, 0x1a1776defa03d732) }, // -3107
+ { cat(0x6855c3b04e03457b, 0xd0c84dbaebb99b09), cat(0xf04b8409a0d0e86c, 0xf68bf164c3395851) }, // -3106
+ { cat(0x20449c8d0b35d12f, 0xda39d7c8bc947c07), cat(0xc03c69a14d73ed23, 0xf86ff4509c2de041) }, // -3105
+ { cat(0x19d07d3da2917426, 0x482e463a3076c9a0), cat(0x99c9ee1aa45cbdb6, 0x605990407cf18034) }, // -3104
+ { cat(0xf61a61fc374f203d, 0x404a09f6b3f14299), cat(0xf60fe35dd3c795f0, 0x9a28e6cd94b599ec) }, // -3103
+ { cat(0x5e7b819692a5b364, 0x336e6e5ef65a9bad), cat(0xc4d982b1763944c0, 0x7b53ebd7aa2ae18a) }, // -3102
+ { cat(0x1862ce120eeaf5e9, 0xc2bebeb25eaee2f1), cat(0x9d7acef45e943700, 0x62a9897954ef1ad5) }, // -3101
+ { cat(0xf3d149b67e44bca9, 0x37979783cab16b1b), cat(0xfbf7b186fdb9f19a, 0x3775a8c2217e9154) }, // -3100
+ { cat(0xf64107c531d096ed, 0xc612df9ca22788e3), cat(0xc992f46bfe2e5ae1, 0xc5f7ba34e7987443) }, // -3099
+ { cat(0x91cd9fd0f4a6df24, 0x9e757fb081b93a4f), cat(0xa1425d2331beaf1b, 0x04c62e90b946c369) }, // -3098
+ { cat(0xdb0ae640c3b8b283, 0xb1f7995a0160fb73), cat(0x8101e41c27cbbf48, 0xd09e8ba6fa9f02ba) }, // -3097
+ { cat(0xc4de3d346c5ab739, 0x1cbf5bc33567f8b7), cat(0xce696cf9d945feda, 0xe76412a4c4319df7) }, // -3096
+ { cat(0x03e4fdc389e22c2d, 0xb0991635c4532d5f), cat(0xa52123fb1437ff15, 0x85e9a883d027b193) }, // -3095
+ { cat(0xcfea649c6e4e89be, 0x26e0de9169dc244c), cat(0x841a832f435fff44, 0x6b21539ca68627a8) }, // -3094
+ { cat(0x7fdd6dc716e40f96, 0xa49afdb5762d06e0), cat(0xd35d9eb20566653a, 0x45021f610a703f74) }, // -3093
+ { cat(0x33178b05abe9a612, 0x1d48caf791bd9f1a), cat(0xa917b2280451ea95, 0x0401b2b40859cc5d) }, // -3092
+ { cat(0x28dfa26aefee1e74, 0xe43a3bf941647f48), cat(0x874628200374bbaa, 0x699af55cd37b09e4) }, // -3091
+ { cat(0x4165d0ab197cfd87, 0xd3905ff5356d9873), cat(0xd870403338bac5dd, 0x75c4bbc7b8c4dca0) }, // -3090
+ { cat(0xcdeb0d55adfd979f, 0xdc737ff75df146c3), cat(0xad2699c293c89e4a, 0xc49d63062d6a4a19) }, // -3089
+ { cat(0xa4bc0aaaf197ac7f, 0xe38f9992b18dd235), cat(0x8a8547cedca07ea2, 0x36e44f3824550814) }, // -3088
+ { cat(0x3ac67777e8f2ad99, 0x6c18f5b7827c8388), cat(0xdda20c7e2dcd9769, 0xf16d4b8d06ee7354) }, // -3087
+ { cat(0xfbd1f92cba5bbe14, 0x567a5e2c68639c6d), cat(0xb14e7064f17145ee, 0x5abdd60a6bf1f5dc) }, // -3086
+ { cat(0xfca7fa8a2eafcb43, 0x7861e4f05382e38b), cat(0x8dd859ea5ac104be, 0xaefe44d52327f7e3) }, // -3085
+ { cat(0xfaa65da9e44c786b, 0xf3cfd4b3b8d16c11), cat(0xe2f3c3109134d464, 0x4b306e21d1d98c9f) }, // -3084
+ { cat(0xc88517bb1d09f9ef, 0xf63fdd5c93dabcda), cat(0xb58fcf40742a4383, 0x6f59f1b4a7e13d4c) }, // -3083
+ { cat(0x6d37462f4a6e618c, 0xc4ffe44a0fe230af), cat(0x913fd9005cee9c69, 0x25e18e2a1fe7643d) }, // -3082
+ { cat(0xaebed6b210b09c14, 0x6e663a101969e77d), cat(0xe866280094b0fa41, 0xd635b043663f06c8) }, // -3081
+ { cat(0xbeff12280d5a1676, 0xbeb82e734787ec64), cat(0xb9eb5333aa272e9b, 0x11c48d02b8326bd3) }, // -3080
+ { cat(0x3265a8200aae785e, 0xfef9bec29f9ff050), cat(0x94bc428fbb528baf, 0x416a0a68935b8976) }, // -3079
+ { cat(0xea3c4033444a5a31, 0x97f5fe0432998080), cat(0xedfa04192bb745e5, 0x3576770db8927589) }, // -3078
+ { cat(0x54fd0029036eae8e, 0x132b319cf5479a00), cat(0xbe619ce0efc5d184, 0x2ac52c0afa0ec46e) }, // -3077
+ { cat(0xdd97335402bef20b, 0x4288f47d910614cd), cat(0x984e171a596b0e03, 0x556a89a261a569f1) }, // -3076
+ { cat(0x628b85533797e9ab, 0x9da7ed95b4d687af), cat(0xf3b024f6f578166b, 0xbbdda903cf6f0fe9) }, // -3075
+ { cat(0x1ba2d10f5facbaef, 0xb1532477c3ded2f2), cat(0xc2f350c5912cdebc, 0x964aed9ca5f27321) }, // -3074
+ { cat(0x161bda72b2f0958c, 0x8ddc1d2c9cb2425b), cat(0x9bf5da37a7571896, 0xdea257b084c1f5b4) }, // -3073
+ { cat(0xf02c90b784b4227a, 0x7c9361e0fab6d092), cat(0xf9895d25d88b5a8a, 0xfdd08c4da13655ec) }, // -3072
+ { cat(0x268a0d5f9d5ce861, 0xfd42b4b3fbc573a8), cat(0xc7a117517a09153b, 0xfe40703e1a91de57) }, // -3071
+ { cat(0xb86e71194ab0b9e7, 0xfdcef6f663045c87), cat(0x9fb412a794d410fc, 0xcb66c031aedb1845) }, // -3070
+ { cat(0x8d7d81c2111ac30c, 0xc94b24bd6b3a2da4), cat(0xff86843f54868194, 0x78a466b5e491c06f) }, // -3069
+ { cat(0x0acace34da7bcf3d, 0x6dd5b6fdef61be1d), cat(0xcc6b9cff76d20143, 0x93b6b89183a7cd26) }, // -3068
+ { cat(0xa23bd82a48630c31, 0x24aaf8cb25e7cb4a), cat(0xa3894a65f8a80102, 0xdc922d41361fd751) }, // -3067
+ { cat(0x4e96468839e8d68d, 0xb6ef2d6f51863c3c), cat(0x82d43b84c6eccd9b, 0xe3a824342b4cac41) }, // -3066
+ { cat(0x1756d7405ca7bdaf, 0x8b1848b21c09f9f9), cat(0xd153926e0b147c2c, 0x9f736d2045477a02) }, // -3065
+ { cat(0xdf78ac337d52fe26, 0x08e03a28166e6194), cat(0xa7760ebe6f43968a, 0x19292419d105fb34) }, // -3064
+ { cat(0xe5fa235c644264eb, 0x3a4cfb5345251add), cat(0x85f80bcb8c361208, 0x1420e9ae40d195c3) }, // -3063
+ { cat(0x09903893d39d6e45, 0x2a14c552083b5e2e), cat(0xd659ac78e0568340, 0x2034a916ce1c22d3) }, // -3062
+ { cat(0x3ad9c6dca94abe9d, 0xbb43d10e6cfc4b58), cat(0xab7af060b3786900, 0x19c3ba78a4e34f0f) }, // -3061
+ { cat(0x6247d24a2108987e, 0x2f69740b8a636f7a), cat(0x892f26b3c2c6ba66, 0x7b02fb93b71c3f3f) }, // -3060
+ { cat(0x36d950769b40f3fd, 0x18a8b9ac109f18c2), cat(0xdb7ea452d13df70a, 0x5e6b2c1f8b606532) }, // -3059
+ { cat(0x2be10d2baf672997, 0x46ed615673b27a35), cat(0xaf9883757431926e, 0xb1ef567fa2b38428) }, // -3058
+ { cat(0x8980d75625ec2145, 0xd2578111f62861c4), cat(0x8c7a02c45cf47525, 0x5b25decc82293686) }, // -3057
+ { cat(0xa8ce2556a313686f, 0xb6f2681cbd0d6939), cat(0xe0c337a094ba5508, 0x91d6314736a8573d) }, // -3056
+ { cat(0x870b51121c0f86bf, 0xc58eb9b0973dedc8), cat(0xb3cf5fb3aa2eaa6d, 0x4178276c2bb9df64) }, // -3055
+ { cat(0xd26f740e7cd93899, 0x6ad8948d45cb24a0), cat(0x8fd9195c88255524, 0x34601f89bc94b2b6) }, // -3054
+ { cat(0x1d7f20172e285a8f, 0x115a87486fab6dcc), cat(0xe62828940d088839, 0xed6698dc60edeabe) }, // -3053
+ { cat(0x1798e678f1b9e20c, 0x0de205d38c8924a4), cat(0xb820207670d3a02e, 0x57854716b3f18898) }, // -3052
+ { cat(0xdfad852d8e2e4e70, 0x0b1b37dc706db6e9), cat(0x934ce6c5270fb358, 0x460438def65ad3ac) }, // -3051
+ { cat(0x9915a1e27d16e3e6, 0x782b8c93e715f175), cat(0xebae3e083e7f855a, 0x09a05afe56f7b914) }, // -3050
+ { cat(0x14114e4eca78b651, 0xf9bc70765277f45e), cat(0xbc8b64d36532d114, 0xd48048cb78c62daa) }, // -3049
+ { cat(0xdcdaa50bd52d5ea7, 0xfafd26c50ec65d18), cat(0x96d5ea42b75bda77, 0x1066a0a2c704f154) }, // -3048
+ { cat(0x94910812eeaefdd9, 0x91950ad4e47094f3), cat(0xf156439df22c90be, 0x80a43437a4d4b554) }, // -3047
+ { cat(0x43a739a8bef264ae, 0x0e10d5771d26dd8f), cat(0xc111cfb18e8a0d65, 0x33b6902c83dd5ddd) }, // -3046
+ { cat(0x361f6153cbf51d58, 0x0b40aac5b0ebe473), cat(0x9a74a627a53b3dea, 0x8fc540239cb117e4) }, // -3045
+ { cat(0x89cbceec79882ef3, 0x4534446f81796d84), cat(0xf72109d9085ec977, 0x4c6ecd05c781bfd3) }, // -3044
+ { cat(0xa16fd8bd2e068bf5, 0xd0f69d26012df136), cat(0xc5b407e0d37f0792, 0xa38bd737d2ce330f) }, // -3043
+ { cat(0xe78cad6424d20991, 0x73f87db800f18dc5), cat(0x9e299fe70f98d2db, 0xb60978f97571c272) }, // -3042
+ { cat(0x3f477bd36e1cdc1b, 0xecc0c92667e8e2d5), cat(0xfd0f663e7f5aeaf9, 0x23425b28bbe9371e) }, // -3041
+ { cat(0x65d2c975f1b0b016, 0x5700a0eb8653e8aa), cat(0xca72b831ff7bef2d, 0xb5ceaf53c9875f4b) }, // -3040
+ { cat(0xeb0f07918e26f345, 0x1266e722d1dcba22), cat(0xa1f56027ff9658f1, 0x5e3ef2a96e05e5d5) }, // -3039
+ { cat(0xef3f39413e858f6a, 0x751f1f4f0e4a2e82), cat(0x819119b9994513f4, 0x4b658eedf19e5177) }, // -3038
+ { cat(0x4b985b9b973c18aa, 0x54fe987e7d437d9c), cat(0xcf4e8f8f5ba1b986, 0xdf08e4afe8fd4f26) }, // -3037
+ { cat(0xa2e0494945c9ad55, 0x10cbad31fdcf97b0), cat(0xa5d872d9161afad2, 0x4c071d5987310c1e) }, // -3036
+ { cat(0x1be6a1076b07bddd, 0xa709575b3172dfc0), cat(0x84ad28adab48c8a8, 0x3cd27de138f409b2) }, // -3035
+ { cat(0xc63dce7244d92fc9, 0x0b42255eb5849933), cat(0xd4484115dedadaa6, 0xc7b72fcec18675e9) }, // -3034
+ { cat(0x6b64a5283714263a, 0x6f681de55e03adc3), cat(0xa9d36744b248aeeb, 0xd2f8f30bce052b21) }, // -3033
+ { cat(0x891d50ecf8dceb61, 0xf2b9b1844b36249c), cat(0x87dc529d5b6d58bc, 0xa8c728d63e6a88e7) }, // -3032
+ { cat(0x74fbb4ae5afb1236, 0x51291c06debd075f), cat(0xd960842ef8aef461, 0x0e0b7489fd774172) }, // -3031
+ { cat(0xc3fc908b7bfc0e91, 0xda87499f18973919), cat(0xade6d02593bf29e7, 0x3e6f906e645f678e) }, // -3030
+ { cat(0x9cca0d3c63300ba7, 0xe205d47f46df60e1), cat(0x8b1f0ceadc98ee52, 0x98594058504c52d8) }, // -3029
+ { cat(0xfadce1fa384cdf73, 0x033c87320aff0168), cat(0xde9814aafa8e4a1d, 0xc08ecd5a1a13b7c0) }, // -3028
+ { cat(0x2f171b2e9370b2c2, 0x68fd38f4d598cded), cat(0xb21343bbfba50817, 0xcd3f0aae7b42f967) }, // -3027
+ { cat(0xf278e28ba926f568, 0x53fdc72a447a3e57), cat(0x8e75cfc9961da013, 0x0a98d558629bfab8) }, // -3026
+ { cat(0x83f49dac41d7ef0d, 0x532fa5106d9063be), cat(0xe3efb2dc236299b8, 0x10f4888d6a932ac1) }, // -3025
+ { cat(0x9cc3b1569b1325a4, 0x428c840d247382ff), cat(0xb6595be34f821493, 0x40c3a071220f5567) }, // -3024
+ { cat(0xb09c8ddee275b7b6, 0x9ba39cd7505c68cc), cat(0x91e1164f72ce76dc, 0x33cfb38db4d9111f) }, // -3023
+ { cat(0x4dc749649d8925f0, 0xf905c7bee6fa4146), cat(0xe96823b2514a57c6, 0xb94c527c548e81cc) }, // -3022
+ { cat(0x0b05d4507e07518d, 0x94049fcbebfb676b), cat(0xbab9b62841084638, 0x943d0ec9dd3ece3d) }, // -3021
+ { cat(0xd59e43739805dad7, 0xa99d4ca3232f85ef), cat(0x95615e869a6d04fa, 0x1030d8a17dcbd830) }, // -3020
+ { cat(0xbc306bec266fc48c, 0x4295476b6b7f3cb2), cat(0xef0230d75d7b3b29, 0xb3815a9bfc7959e7) }, // -3019
+ { cat(0x6359eff01ebfd070, 0x35443922bc65ca28), cat(0xbf34f3df7dfc2f54, 0x8f9aaee3306114b9) }, // -3018
+ { cat(0x4f7b2659b2330d26, 0x910360e896b7d4ed), cat(0x98f7297f97fcf2aa, 0x0c7bbf1c26b41094) }, // -3017
+ { cat(0x4bf83d5c5051aea4, 0x1b389b0dbdf2ee48), cat(0xf4bea8cc26618443, 0x472c64f9d78680ed) }, // -3016
+ { cat(0xa32cfde373748bb6, 0x7c2d48d7cb28bea0), cat(0xc3cbba3ceb81369c, 0x38f050c7df9ecd8a) }, // -3015
+ { cat(0x1c23fe4f8f906fc5, 0x30243a463c209880), cat(0x9ca2fb63ef9a9216, 0x93f373d3194bd7a2) }, // -3014
+ { cat(0x603996e5b280b2d5, 0x19d3907060342733), cat(0xfa9e5f064c2a8357, 0x531f1fb828795903) }, // -3013
+ { cat(0xe69478b7c2008f10, 0xe1760d26b35cec29), cat(0xc87eb26b702202ac, 0x427f4c9353944735) }, // -3012
+ { cat(0x52106093019a0c0d, 0x812b3db88f7d89ba), cat(0xa0655b8926819bbd, 0x01ff7075dc769f5e) }, // -3011
+ { cat(0x0e7380759ae1a33e, 0x00ef6493a5fe07c8), cat(0x8051160752014964, 0x019926c4b05ee5e5) }, // -3010
+ { cat(0x171f33ef5e35d1fc, 0xce4bd41f6ffcd940), cat(0xcd4e89a550020f06, 0x68f50ad44d64a308) }, // -3009
+ { cat(0xac18f659182b0e63, 0xd83ca9b2bffd7a9a), cat(0xa43ed4844001a59e, 0xba5da243711d4f39) }, // -3008
+ { cat(0xbce0c5141355a51c, 0xacfd548efffdfbae), cat(0x836576d03334847e, 0xfb7e1b69274aa5c7) }, // -3007
+ { cat(0x2e346e868555d4fa, 0xae6220e4ccc992b0), cat(0xd23bf14d1eba6d97, 0xf8c9c5750baaa2d9) }, // -3006
+ { cat(0xf1c38b9ed111772e, 0xf1e81a50a3d4755a), cat(0xa82ff43db22ebe13, 0x2d6e3790d6221be0) }, // -3005
+ { cat(0x8e36094bda745f58, 0xc1867b73b6439115), cat(0x868cc3648e8bcb42, 0x8abe92da44e8164d) }, // -3004
+ { cat(0xe389a8795d86fef4, 0x68d72bec56d281bb), cat(0xd7479f074a794537, 0x44641e2a07d9bd48) }, // -3003
+ { cat(0x82d486c77e0598c3, 0x87128989df0ece2f), cat(0xac394c05d52dd0f9, 0x03834b54d314976d) }, // -3002
+ { cat(0x9bdd389f98047a36, 0x05a86e07e5a571bf), cat(0x89c77004aa8b0d94, 0x02cf6f770f43ac57) }, // -3001
+ { cat(0x2c952765c00729f0, 0x090d7cd96f6f1c65), cat(0xdc724cd44411af53, 0x37b24bf1b205e08c) }, // -3000
+ { cat(0xf07752b7ccd287f3, 0x3a7130adf2bf49eb), cat(0xb05b70a9d00e25dc, 0x2c8ea327c19e4d3c) }, // -2999
+ { cat(0x26c5dbc63d75398f, 0x61f426f18eff6e55), cat(0x8d15f3bb0cd81e49, 0xbd3ee8ec9ae50a97) }, // -2998
+ { cat(0xd7a2f93d2f21f5b2, 0x365371827e657d55), cat(0xe1bcb92b47c03075, 0xfb97db142b0810f1) }, // -2997
+ { cat(0x12e8c76425b4c48e, 0x91dc5acecb846444), cat(0xb496fa89063359f7, 0xfc797c10226cda5b) }, // -2996
+ { cat(0x4253d2b684909d3e, 0xdb16af0bd603836a), cat(0x9078c86d9e8f7b2c, 0xc9fac9a681f0aeaf) }, // -2995
+ { cat(0x9d52eabda0e761fe, 0x2b577e79566c0576), cat(0xe727a715ca7f2b7a, 0xdcc475d7364de44b) }, // -2994
+ { cat(0xb10f22314d85e7fe, 0x8912cb9445233792), cat(0xb8ec85ab0865bc62, 0x4a36c4ac2b71836f) }, // -2993
+ { cat(0xf40c1b5aa46b1ffe, 0xd40f09436a8292db), cat(0x93f06aef39eafd1b, 0x6e9236f022c135f2) }, // -2992
+ { cat(0x8679c55dd3de9997, 0xb9b1a86bdd9db7c4), cat(0xecb3de4b8fde61c5, 0x7db6be4d04685651) }, // -2991
+ { cat(0x6b949de4a97ee146, 0x2e27b9efe47e2c9d), cat(0xbd5cb1d60cb1e7d1, 0x315efea40386ab74) }, // -2990
+ { cat(0x22dd4b1d54658104, 0xf1b9618cb6cb56e4), cat(0x977d5b11a3c18640, 0xf44bfee99c6bbc5d) }, // -2989
+ { cat(0x049544fbba3c01a1, 0x82c235adf14557d3), cat(0xf2622b4f6c68d6ce, 0x53accb0f60ac6095) }, // -2988
+ { cat(0x03aa9d962e9667b4, 0x689b5e24c1044643), cat(0xc1e822a5f053df0b, 0x7623d5a5e6f04d44) }, // -2987
+ { cat(0x9c887e11bedeb95d, 0x207c4b509a69d1cf), cat(0x9b201bb7f3764c09, 0x2b4fde1e5259d769) }, // -2986
+ { cat(0xc740c9b5fe312895, 0x00c6dee75d761c7e), cat(0xf8335f8cb8bd4675, 0x12196363b6f62575) }, // -2985
+ { cat(0x3900a15e64f42077, 0x33d24bec4ac4e398), cat(0xc68f7fa3c6fdd1f7, 0x41ade91c925e845e) }, // -2984
+ { cat(0x9400811850c34d2c, 0x29750989d56a4fad), cat(0x9ed932e96bfe4192, 0x9af1874a0eb2037e) }, // -2983
+ { cat(0xeccd9b5a1ad21513, 0x75880f42ef107f7b), cat(0xfe2851757996cf50, 0xf7e8d8767de99f30) }, // -2982
+ { cat(0x23d7af7b48a810dc, 0x5e06729bf273992f), cat(0xcb53745dfadf0c40, 0xc653e05ecb214c27) }, // -2981
+ { cat(0x4fdfbf95d3b9a716, 0xb19ec2165b8fadc0), cat(0xa2a929e4c8b27033, 0xd1dcb37f08e7701f) }, // -2980
+ { cat(0xa64c9944a9615278, 0x8e189b45160c8b00), cat(0x8220ee50a08ec029, 0x74b08f98d3ec59b2) }, // -2979
+ { cat(0xa3adc207756883f4, 0x168dc53b567a77ff), cat(0xd034b08100e466a8, 0xbab418f48646f5ea) }, // -2978
+ { cat(0x82f16805f786cff6, 0x78716a95dec86000), cat(0xa6908d3400b6b886, 0xfbc3472a05059188) }, // -2977
+ { cat(0xcf27866b2c6bd991, 0xf9f45544b239e666), cat(0x854070f666f8939f, 0x2fcf6c219d9e0e06) }, // -2976
+ { cat(0xe50c0a4513dfc283, 0x2986eed4505ca3d6), cat(0xd533e7f0a4c0ec31, 0xe618ad0295c9b00a) }, // -2975
+ { cat(0x8409a1d0dcb30202, 0x879f2576a6b08312), cat(0xaa8fecc083cd89c1, 0x84e08a6877d48cd5) }, // -2974
+ { cat(0x9cd48173e3c26802, 0x0618eac55226cf42), cat(0x887323cd363e07ce, 0x03e6d5205fdd3d77) }, // -2973
+ { cat(0x615402530603d99c, 0xd68e446ee9d7b202), cat(0xda51d2e1f0633fb0, 0x063e21cd662ec8bf) }, // -2972
+ { cat(0xe77668426b3647b0, 0xaba5038bee462802), cat(0xaea7dbe7f3829959, 0x9e981b0ab8256d65) }, // -2971
+ { cat(0xec5eb9cebc2b6c8d, 0x561d9c6ff1d1b99b), cat(0x8bb97cb98f9bade1, 0x4bace26ef9b78ab7) }, // -2970
+ { cat(0x7a31294ac6abe0e2, 0x236293e64fb5f5c5), cat(0xdf8f2df5b292afce, 0xdf7b03e4c2bf4459) }, // -2969
+ { cat(0x61c0edd56bbcb3e8, 0x1c4edcb83fc4c49e), cat(0xb2d8f1915ba88ca5, 0x7f959cb702329d14) }, // -2968
+ { cat(0xb49a57ddefca2986, 0x7d0be3c6996a36e5), cat(0x8f13f4744953a3b7, 0x99447d5f34f54a76) }, // -2967
+ { cat(0x875d5963194375a3, 0xfb46393dc2438b07), cat(0xe4ecba53a885d2bf, 0x5ba0c89854bbaa57) }, // -2966
+ { cat(0x39177ab5adcf914f, 0xfc382dcb01cfa26c), cat(0xb723c842ed37dbcc, 0x494d6d46aa2fbb79) }, // -2965
+ { cat(0x9412c89157d9410c, 0xc9c68b08ce3fb524), cat(0x9283069bf0f97ca3, 0x6dd78a9eee8c95fa) }, // -2964
+ { cat(0x8684741bbfc201ae, 0x0fa411a7b065ee9f), cat(0xea6b3dc64e5bfa9f, 0x1625aa97e414232a) }, // -2963
+ { cat(0xd203901633019af1, 0xa61cdaec8d1e587f), cat(0xbb88fe383eaffbb2, 0x781e22131cdce8ee) }, // -2962
+ { cat(0xa802d9ab5c0148c1, 0x51b0af23a41846cc), cat(0x960731c6988cc95b, 0x934b4e75b0b0ba58) }, // -2961
+ { cat(0xa66af5def99ba79b, 0xb5e77e9f6cf3a47a), cat(0xf00b82d75a7adbc5, 0xb8787d891ab45d5a) }, // -2960
+ { cat(0xb855917f2e161faf, 0xc4b9321923f61d2e), cat(0xc0093579152f1637, 0xc6c6cad4155d177b) }, // -2959
+ { cat(0x9377a798f1ab4c8c, 0x9d60f4e0e991b0f2), cat(0x99a0f79410f2782c, 0x9f056f10111745fc) }, // -2958
+ { cat(0x1f25d8f4b5dee0e0, 0xfbce549b0f4f8183), cat(0xf5ce58ece7ea59e0, 0xfe6f1819b4f20994) }, // -2957
+ { cat(0xe5b7e0c3c4b24d80, 0xc971dd48d90c679c), cat(0xc4a513f0b98847e7, 0x31f279ae2a5b3adc) }, // -2956
+ { cat(0xb7c64d696a283e00, 0xa127e43a473d1fb0), cat(0x9d50dcc0946d0652, 0x8e5b948b5515c8b0) }, // -2955
+ { cat(0xbfa3af0f10406334, 0x350ca05d3ec832b3), cat(0xfbb4946753e1a3b7, 0x4a2c20deee89411a) }, // -2954
+ { cat(0xcc82f2727366b5c3, 0x5da3b37dcbd35bc3), cat(0xc95d4385dcb482f9, 0x08234d7f253a9a7b) }, // -2953
+ { cat(0x3d358ec1f5ebc49c, 0x4ae95c64a30f7c9c), cat(0xa1176937e3c39bfa, 0x6ce90acc1dc87b96) }, // -2952
+ { cat(0x975e0bce5e5636e3, 0x6f2116b6e8d9307d), cat(0x80df875fe9694995, 0x23eda23ce4a062de) }, // -2951
+ { cat(0xbefcdfb096f057d2, 0x4b682457daf51a61), cat(0xce3272330f0edc21, 0xd315d0616dcd6afd) }, // -2950
+ { cat(0xff30b2f3abf37975, 0x09201d131590e1e7), cat(0xa4f52828d8d8b01b, 0x0f44a6b457d788ca) }, // -2949
+ { cat(0x328d5bf623292df7, 0x3a80174277a71b1f), cat(0x83f75353e0ad59af, 0x3f6a1ef6acac6d6f) }, // -2948
+ { cat(0xb74893236b751658, 0x5d99bed0bf71c4ff), cat(0xd325521fcde22918, 0x657697f11447157e) }, // -2947
+ { cat(0x5f6d4282bc5dab79, 0xe47aff0d65f49d99), cat(0xa8eaa8197181ba79, 0xeac5465a769f4465) }, // -2946
+ { cat(0x19243535637e22c7, 0xe9fbff3deb2a17ad), cat(0x872220145ace2ec7, 0xef0438485ee5d051) }, // -2945
+ { cat(0x2839eebbd2636ad9, 0x765ffec978435915), cat(0xd83699ba2ae37e0c, 0xb1a05a0d64a2e6e8) }, // -2944
+ { cat(0x202e589641e92247, 0x91e6656df9cf7a77), cat(0xacf87afb5582cb3d, 0x5ae6ae711d4f1f20) }, // -2943
+ { cat(0x19bead4501874e9f, 0xa7eb8457fb0c61f9), cat(0x8a606262aacf08fd, 0xe25225274aa5b280) }, // -2942
+ { cat(0x5c64486e68d87dcc, 0x3fdf3a265e7a365b), cat(0xdd6703d1114b4196, 0x36e9d50baaa2b733) }, // -2941
+ { cat(0x49e9d38b871397d6, 0x997f61b84b94f849), cat(0xb11f3640daa29ade, 0x9254aa6fbbb55f5c) }, // -2940
+ { cat(0xa187dc6f9f42dfde, 0xe132b4936faa603b), cat(0x8db291cd7bb548b2, 0x0eaa21f2fc911916) }, // -2939
+ { cat(0x9c0c93e5cb9e32fe, 0x351dedb8b2aa3391), cat(0xe2b74faf2c55411c, 0xe4436984c74e8e8a) }, // -2938
+ { cat(0xb00a0feb094b5bfe, 0x90e4be2d5bbb5c74), cat(0xb55f72f289ddcdb0, 0xb69c546a390ba53b) }, // -2937
+ { cat(0x59a1a655a1091665, 0x40b6fe8aafc916c3), cat(0x911928c207e4a48d, 0x5ee376bb60d61dc9) }, // -2936
+ { cat(0x8f690a229b41bd6e, 0xcdf197444c74f138), cat(0xe828413673076dae, 0xfe38bdf89af02fa8) }, // -2935
+ { cat(0x0c54081baf67cabf, 0x0b27ac36a390c0fa), cat(0xb9b9cdc528d2be25, 0x982d64c6e259bfba) }, // -2934
+ { cat(0xd6a9a01625eca232, 0x6f52f02bb60d672e), cat(0x9494a49dba4231b7, 0xacf11d6be847cc94) }, // -2933
+ { cat(0x5775ccf03cadd050, 0xb21e4d12bce23eb0), cat(0xedbaa0fc5d36b5f2, 0xae4e957973a61421) }, // -2932
+ { cat(0x12c4a3f363be4040, 0x8e7ea40efd81cbc0), cat(0xbe2ee7304a922b28, 0x8b72112df61e7681) }, // -2931
+ { cat(0xdbd083291c983366, 0xd865500bfe016fcd), cat(0x982585c03ba82286, 0xd5f4da8b2b4b9200) }, // -2930
+ { cat(0x92e73841c759ebd7, 0xc0a219acc99be615), cat(0xf36f3c66c5d9d0d7, 0xbcbaf74512128334) }, // -2929
+ { cat(0x0f1f60349f7b2313, 0x0081ae23d47cb811), cat(0xc2bf63856b14a712, 0xfd625f6a74db9c2a) }, // -2928
+ { cat(0x3f4c4cf6e5fc1c0f, 0x339af1b64396f9a7), cat(0x9bcc4f9def43b8db, 0xfde84c552a4949bb) }, // -2927
+ { cat(0x6546e18b09936018, 0x529182bd38f18f71), cat(0xf946e5c97ed2c15f, 0xfca6e08843a875f8) }, // -2926
+ { cat(0x1dd24e08d475e679, 0xdba79bca93f472c1), cat(0xc76beb0798a89ab3, 0x3085806d02ed2b2d) }, // -2925
+ { cat(0xe4a83e6d76c4b861, 0x7c86163ba9905bce), cat(0x9f8988d2e086e228, 0xf39e0057358a88f0) }, // -2924
+ { cat(0x077397158ad45a35, 0x9409bd2c428092e3), cat(0xff4274849a7169db, 0x1f6333bebc10db1b) }, // -2923
+ { cat(0xd2c2df446f10482a, 0xdcd497569b9a0f1c), cat(0xcc352a03aec1217c, 0x191c29656340af48) }, // -2922
+ { cat(0x7568b29d25a6a022, 0x4a43ac4549480c16), cat(0xa35dbb3625674dfc, 0xe0e354511c33bf6d) }, // -2921
+ { cat(0x2aba287db7b8801b, 0x6e9c89d1076cd678), cat(0x82b16291b785d7fd, 0x80b5dd0db02965f1) }, // -2920
+ { cat(0xddf6a72f8c5a6692, 0x4a940fb4d8ae23f3), cat(0xd11bd0e925a2f32f, 0x34562e7c4d0f0981) }, // -2919
+ { cat(0xe4c5528c7048520e, 0xa2100c90ad581cc3), cat(0xa74973edb7b58f58, 0xf6ab586370d8d467) }, // -2918
+ { cat(0xea37753d26a041a5, 0x4e733d408aace3cf), cat(0x85d45cbe2c913f7a, 0x5eef79e92713dd1f) }, // -2917
+ { cat(0x438beec83dcd35d5, 0x4a51fb9a777b0618), cat(0xd62094637a81ff2a, 0x317f29750b52fb66) }, // -2916
+ { cat(0x02d658a03170f7dd, 0xd50e62e1f92f3813), cat(0xab4d4382c867ff54, 0xf465bac4090f2f85) }, // -2915
+ { cat(0x68ab7a19c1272cb1, 0x773eb5819425c676), cat(0x890a9c68a05332aa, 0x5d1e2f033a728c6a) }, // -2914
+ { cat(0x41125cf601d84782, 0x5864559c203c70bc), cat(0xdb442d7433b85110, 0x94fd18052a50e0aa) }, // -2913
+ { cat(0x00db7d919b136c68, 0x46b6aae34cfd26fd), cat(0xaf69bdf68fc6a740, 0x7730e00421da4d55) }, // -2912
+ { cat(0x00af97a7af42bd20, 0x3892224f70ca8597), cat(0x8c5497f873055299, 0xf8f3e669b4aea444) }, // -2911
+ { cat(0x0118f2a5e5379500, 0x5a836a18b4773c25), cat(0xe087598d84d550f6, 0x5b1fd70f877dd3a0) }, // -2910
+ { cat(0x67472884b75faa66, 0xaecf8813c3929684), cat(0xb39f7ad79d7773f8, 0x48e645a605fe42e6) }, // -2909
+ { cat(0x1f6c206a2c4c8852, 0x2572d34302dbab9d), cat(0x8fb2c8ac7df92993, 0x6d850484d1983585) }, // -2908
+ { cat(0x32469a437a140d50, 0x3beaeb9e6af91295), cat(0xe5eadaad965b75b8, 0xaf3b3a6e1c26bc08) }, // -2907
+ { cat(0x28387b692e76710c, 0xfcbbefb1ef2da877), cat(0xb7ef1557ab7c5e2d, 0x58fc2ebe7cebc9a0) }, // -2906
+ { cat(0x202d2f87585ec0d7, 0x3096595b25be205f), cat(0x9325aaac89304b57, 0x7a63589863efd480) }, // -2905
+ { cat(0x66aeb27226fe0158, 0x4dbd5bc5093033cc), cat(0xeb6f777a751a1225, 0x909ef427064c8733) }, // -2904
+ { cat(0xb88bc1f4ebfe6779, 0xd7caafd0d4268fd6), cat(0xbc592c61f7480e84, 0x73b25cec050a05c2) }, // -2903
+ { cat(0xfa0967f72331ec61, 0x796ef30d76853fdf), cat(0x96adbd1b2c39a536, 0xc2f51723373b37ce) }, // -2902
+ { cat(0x29a8a658384fe09b, 0xf57e51af24086631), cat(0xf115fb5ead290857, 0x9e54f1d1f1f8594b) }, // -2901
+ { cat(0xee208513603fe6e3, 0x2acb748c1cd384f4), cat(0xc0de62b22420d379, 0x4b7727db27f9e108) }, // -2900
+ { cat(0x24e6d0dc4cffebe8, 0xef092a09b0a9372a), cat(0x9a4b82281ce70f94, 0x3c5f5315b994b407) }, // -2899
+ { cat(0x3b0ae7c6e1997974, 0xb1a84342b441f1dc), cat(0xf6df36a694a4e5b9, 0xfa321e8928edecd8) }, // -2898
+ { cat(0xfc08b96be7adfac3, 0xc153690229ce5b16), cat(0xc57f5eebaa1d8494, 0xc828186dba57f0ac) }, // -2897
+ { cat(0xc9a0945652f19569, 0x6775ed9b54a515ac), cat(0x9dff7f22ee7e03aa, 0x39b9ad24951326f0) }, // -2896
+ { cat(0x75cdba23b7e8ef0f, 0x0befe292210822ac), cat(0xfccbfe9e4a633910, 0x5c5c483a881ea4b4) }, // -2895
+ { cat(0xf7d7c81c9320bf3f, 0x3cbfe874e739b556), cat(0xca3ccbb1d51c2da6, 0xb049d362067eea29) }, // -2894
+ { cat(0xf9796ce3a8e6ff65, 0xca33205d85c7c445), cat(0xa1ca3c8e44168aeb, 0xc03b0f819ecbee87) }, // -2893
+ { cat(0x612df0b620b8cc51, 0x6e8f4d179e3969d1), cat(0x816e96d836786f23, 0x002f3f9ae56ff206) }, // -2892
+ { cat(0xceafe789cdf47a1b, 0xe4187b58fd28a94e), cat(0xcf1757c057271838, 0x004b98f7d57fe9a3) }, // -2891
+ { cat(0xa5598607d7f6c816, 0x501395e0ca86edd8), cat(0xa5ac463378ec1360, 0x003c7a5fddffee1c) }, // -2890
+ { cat(0xeaae04d3132bd345, 0x0cdc77e7086bf17a), cat(0x8489d1c2c72342b3, 0x336395197e665816) }, // -2889
+ { cat(0x4449a151b8461ed4, 0xe160bfd80d79825c), cat(0xd40fb60471d20451, 0xebd28828ca3d59be) }, // -2888
+ { cat(0x69d4810e2d04e577, 0x1ab3ccacd794684a), cat(0xa9a62b36c174d041, 0x897539ba3b6447cb) }, // -2887
+ { cat(0x87dd340b57371df8, 0xe229708a4610536e), cat(0x87b82292345d7367, 0xa12a9494fc50396f) }, // -2886
+ { cat(0x72fb86788b8b6327, 0xd0424daa09b3b8b0), cat(0xd9269db6ba2f1f0c, 0x3510edbb2d4d28b2) }, // -2885
+ { cat(0xc262d1fa093c4f53, 0x0d01d7bb3af62d5a), cat(0xadb87e2bc825b270, 0x2a73f1628aa4208e) }, // -2884
+ { cat(0x9b824194d4303f75, 0xa40179629591bde2), cat(0x8af9fe896ceaf526, 0x885cc11ba21ce6d8) }, // -2883
+ { cat(0x2c039c2153806589, 0x0668c23755b5fc9c), cat(0xde5cca757b11883d, 0xa6face929cfb0af4) }, // -2882
+ { cat(0x566949b442cd1e07, 0x3853ce92aaf7fd4a), cat(0xb1e3d52ac8dad364, 0x8595720ee3fc08c3) }, // -2881
+ { cat(0x452107c368a41805, 0xc6a9720eef2ccaa2), cat(0x8e4fddbbd3e242b6, 0xd1445b3f1cc9a09c) }, // -2880
+ { cat(0x6e9b3f9f0dd359a2, 0xd775834b1847aa9c), cat(0xe3b2fc5fb96a0457, 0xb53a2b982e0f6760) }, // -2879
+ { cat(0xbee2994c0b0f7ae8, 0xac5e02a279d2eee3), cat(0xb628c9e62dee69df, 0xc42e89468b3f85e6) }, // -2878
+ { cat(0xff1badd66f3f9586, 0xf04b354ec7dbf24f), cat(0x91ba3b1e8b25217f, 0xd0253a9ed5cc6b1e) }, // -2877
+ { cat(0x31c5e2f0b1ff55a4, 0xb3ab887e0c931d4b), cat(0xe929f830dea1cf32, 0xe6a1f764894711cb) }, // -2876
+ { cat(0xf49e4f26f4cc4483, 0xc2efa064d6dc1770), cat(0xba87f9c0b21b0c28, 0xb88192b6d438db08) }, // -2875
+ { cat(0xc3b1d8ebf709d069, 0x68bfb383df167926), cat(0x9539949a2815a353, 0xc6ce0ef8a9c715a0) }, // -2874
+ { cat(0x391c8e46580fb3db, 0xdacc526c9823f50a), cat(0xeec2875d0cef6bb9, 0x3e167e5aa93e8901) }, // -2873
+ { cat(0xc74a0b6b79a6297c, 0xaf09db8a134ff73b), cat(0xbf0205e40a5922fa, 0x9811feaeedcba0cd) }, // -2872
+ { cat(0x6c3b3c55faeb5463, 0xbf3b16080f732c2f), cat(0x98ce6b1cd5141bfb, 0xacdb32258b094d71) }, // -2871
+ { cat(0xad2b93bcc4abba39, 0x31f8234018b846b2), cat(0xf47d782e21b9c65f, 0x7af8503c11a87be8) }, // -2870
+ { cat(0x57560fca36efc82d, 0xc1934f667a2d055b), cat(0xc39793581afb0519, 0x2f2d0cfcdaed2fed) }, // -2869
+ { cat(0xac44d96e92596cf1, 0x67a90c51fb57377c), cat(0x9c7942ace2626a7a, 0x8c240a63e257598a) }, // -2868
+ { cat(0x46d48f17508f14b5, 0x72a813b65ef1f260), cat(0xfa5b9de16a3710c4, 0x136cdd6c9d588f44) }, // -2867
+ { cat(0x9f1072790d3f43c4, 0x5bb9a95eb25b284d), cat(0xc8494b1abb5f409c, 0xdc57178a177a0c36) }, // -2866
+ { cat(0x7f405b940a990303, 0x7c94877ef515b9d7), cat(0xa03aa27bc919007d, 0x7d12793b45fb3cf8) }, // -2865
+ { cat(0x65cd1610087a68cf, 0x96dd39325daafb13), cat(0x802ee86307473397, 0x9741fa95d195ca60) }, // -2864
+ { cat(0x3c7b56800d90a7b2, 0x8afb8eb6fc44c4ea), cat(0xcd17da380ba51f58, 0xf2032a894f56109a) }, // -2863
+ { cat(0xfd2f786671408628, 0x6f2fa55f303703ef), cat(0xa41314f9a2ea7f7a, 0x5b35bba10c44da14) }, // -2862
+ { cat(0x6425f9eb8dcd3820, 0x58f2eab28cf8cff2), cat(0x8342772e1beecc61, 0xe29162e73d03e1aa) }, // -2861
+ { cat(0xd36ff645afaec033, 0xc184aab747f47fea), cat(0xd203f1e35fe47a36, 0x374f04a52e6c9c43) }, // -2860
+ { cat(0xa9265e9e2625668f, 0xce03bbc5d329ffee), cat(0xa80327e9198394f8, 0x2c3f36ea8b8a169c) }, // -2859
+ { cat(0x8751e54b51b7853f, 0xd802fc9e4287fff2), cat(0x8668ecba7acfaa60, 0x2365c5886fa1abb0) }, // -2858
+ { cat(0xa54fd5454f8c0866, 0x266b2dca040cccb6), cat(0xd70e4790c47f7700, 0x38a2d5a71902ac4d) }, // -2857
+ { cat(0x843fddd10c7006b8, 0x1ebc24a19cd70a2b), cat(0xac0b6c73d065f8cc, 0xfa1bde1f473556a4) }, // -2856
+ { cat(0x36997e40d6c00560, 0x189683b47d78d4f0), cat(0x89a2bd297384c70a, 0x61afe4e5d291121d) }, // -2855
+ { cat(0xf0f596ce24666f00, 0x27573920c8c154b2), cat(0xdc37950f1f3ad810, 0x9c4ca16fb74e8361) }, // -2854
+ { cat(0x272adf0b5051f266, 0x85df60e70701108f), cat(0xb02c773f4c2f1340, 0x7d0a1abfc5d8691b) }, // -2853
+ { cat(0x1f557f3c40418eb8, 0x6b191a526c00da0c), cat(0x8cf05f65d68c0f66, 0xca6e7bcc9e46ba7c) }, // -2852
+ { cat(0x9888cb939a027df3, 0xde8e9083e0015ce0), cat(0xe18098a2f0e018a4, 0x77172c7a96d790c6) }, // -2851
+ { cat(0xad3a3c7614cecb29, 0x7ed8739cb3344a4d), cat(0xb466e0825a4ce083, 0x9278f06212460d6b) }, // -2850
+ { cat(0xbdc8305e770bd5ba, 0xcbe05c7d5c29d50a), cat(0x90524d35150a4d36, 0x0ec726b4db6b3def) }, // -2849
+ { cat(0x2fa6b3ca5812ef91, 0x4633c72ef9dc8810), cat(0xe6ea1521bb43aebc, 0xe471d787c5786319) }, // -2848
+ { cat(0xf2ebc30846758c74, 0x38296c2594b06cda), cat(0xb8bb441afc362563, 0xe9f4ac6c9df9e8e0) }, // -2847
+ { cat(0x8f23026d052ad6c3, 0x6021235143c05715), cat(0x93c90348c9c4eab6, 0x54c3bd23b194ba4d) }, // -2846
+ { cat(0x183803e1a1de246b, 0xcd01d21b9f9a24ed), cat(0xec74d20e0fa1778a, 0x21392e9f8287907c) }, // -2845
+ { cat(0xacf99cb4817e8389, 0x70ce41afb2e1b724), cat(0xbd2a41a4d94df93b, 0x4dc7587f9b9fa6c9) }, // -2844
+ { cat(0xbd947d5d34653607, 0x8d71ce2628b49284), cat(0x97550150add7fa95, 0xd7d2ad32e2e61f07) }, // -2843
+ { cat(0xc8ed9561ed6ebcd8, 0xe24fb03d0dedb739), cat(0xf2219bb4495990ef, 0xbfb77b849e3cfe72) }, // -2842
+ { cat(0xa0be111b24589713, 0xe83fc030d7f15f61), cat(0xc1b47c903aae0d8c, 0x995f9603b1ca6528) }, // -2841
+ { cat(0x1a31a748e9e078dc, 0xb9cc99c0acc1191a), cat(0x9af6ca0cfbbe713d, 0x477fab3627d51dba) }, // -2840
+ { cat(0x904f720e4300c161, 0x29475c677ace8e90), cat(0xf7f14347f930b52e, 0xd8cc452372ee95f6) }, // -2839
+ { cat(0x403f8e71cf33cde7, 0x543916b92f0ba540), cat(0xc65a9c399426f758, 0xad70374f8f2544c5) }, // -2838
+ { cat(0x0032d85b0c297185, 0xdcfa789425a2ea9a), cat(0x9eaee36143525f7a, 0x2459c5d93f5103d1) }, // -2837
+ { cat(0x33848d5e79dbe8d6, 0x2e5d8db9d5d1775c), cat(0xfde49f02055098c3, 0x6d5c6fc1fee8061b) }, // -2836
+ { cat(0x8f9d3de52e498711, 0xbeb13e2e44a792b0), cat(0xcb1d4c019dda13cf, 0x8ab05967ff2004e2) }, // -2835
+ { cat(0xd94a97ea8b6e05a7, 0xcbc0fe8b6a1fa88d), cat(0xa27dd667b17b430c, 0x6ef37ab998e66a4e) }, // -2834
+ { cat(0xe10879886f8b37b9, 0x6fcd986f881953a4), cat(0x81fe451fc12f68d6, 0xbf292efae0b8550b) }, // -2833
+ { cat(0x34da5c0d7f4525f5, 0x7faf5a4c0cf552a0), cat(0xcffd3b6601e5748a, 0xcb7517f7cdf3bb46) }, // -2832
+ { cat(0x2a4849a465d0eb2a, 0xcc8c483cd72aa880), cat(0xa6642f84ce512a08, 0xa2c4132ca4c2fc38) }, // -2831
+ { cat(0x5506a1505173ef55, 0x707039ca45bbba00), cat(0x851cf2d0a50dbb3a, 0x1bd00f56ea359693) }, // -2830
+ { cat(0xee71021a1becb222, 0x4d805c76d5f9299a), cat(0xd4fb1e1aa1af91f6, 0x92e67ef176bc241e) }, // -2829
+ { cat(0x8b8d9b481656f4e8, 0x3e0049f8ab2dbae1), cat(0xaa627e7bb48c74c5, 0x4251ff2792301ce5) }, // -2828
+ { cat(0x093e15d345125d86, 0x98003b2d55be2f1b), cat(0x884ecb962a09f704, 0x350e65b941c0171e) }, // -2827
+ { cat(0x41fcefb86e83c8d7, 0x5999f84889304b5e), cat(0xda17ac2376765806, 0xbb4a3c5b9c668b63) }, // -2826
+ { cat(0x0197262d25363a45, 0xe147f9d3a0f36f7e), cat(0xae795682c52b799e, 0xfc3b637c7d1ed5e9) }, // -2825
+ { cat(0x0145b8241dc4fb6b, 0x1a9ffb0fb3f5f2cc), cat(0x8b9445356a892e18, 0xc9c91c63974bde54) }, // -2824
+ { cat(0xced5f36cfc6e5f11, 0xc4332b4c53231e12), cat(0xdf53a1ef10db7cf4, 0x760e93d28bac96ec) }, // -2823
+ { cat(0xa577f5f0c9f1e5a7, 0xd028ef7042827e75), cat(0xb2a94e58da4930c3, 0x91a5430ed623abf0) }, // -2822
+ { cat(0xeac65e5a3b27eaec, 0xa68725f36868652b), cat(0x8eedd84715075a36, 0x0e1dcf3f11b62326) }, // -2821
+ { cat(0x447096f6c50cab14, 0x3da5098573da3b77), cat(0xe4afc071bb3ef6bc, 0xe362e531b5f0383e) }, // -2820
+ { cat(0x9d26df2bd0d6ef43, 0x6484079df6482f93), cat(0xb6f3005afc325efd, 0x82b58427c4c02cfe) }, // -2819
+ { cat(0x17524c230d78bf69, 0x1d366c7e5ea0260f), cat(0x925c0048c9c1e597, 0x9bc469b96a335732) }, // -2818
+ { cat(0x8bb6e038158dff0e, 0x9523e0ca31003ce4), cat(0xea2ccd4142cfd5bf, 0x5fa0a928a9ebbeb6) }, // -2817
+ { cat(0x6fc5802cde0b3272, 0x10e980a1c0ccfd84), cat(0xbb570a9a9bd977cc, 0x4c808753bb22fef8) }, // -2816
+ { cat(0xbfd133571808f528, 0x0d879a1b00a3fe03), cat(0x95df3baee3145fd6, 0xa39a05dc95b598c6) }, // -2815
+ { cat(0xffb51ef1c00e550c, 0xe272902b3439966b), cat(0xefcb92b16b53cc8a, 0x9f5cd62dbc55c13d) }, // -2814
+ { cat(0xffc418c16671dda3, 0xe85ba688f6947856), cat(0xbfd60ef455dca3a2, 0x191711be30449a97) }, // -2813
+ { cat(0xffd013cdeb8e4ae9, 0x86afb86d92106045), cat(0x99780bf6ab16e94e, 0x7a78dafe8d03aedf) }, // -2812
+ { cat(0xffb352e3127d44a8, 0xd77f8d7c1ce7006d), cat(0xf58cdff111be4217, 0x2a5af7fdae6c4aff) }, // -2811
+ { cat(0x32f5dbe8db976a20, 0xac660ac9b0b8cd24), cat(0xc470b327416501ac, 0x21e25ffe25236f33) }, // -2810
+ { cat(0xc25e49871612bb4d, 0x56b808a15a2d70ea), cat(0x9d26f5b9011d9af0, 0x1b1b7ffe841c58f5) }, // -2809
+ { cat(0x6a3075a4f01df87b, 0xbdf3410229e24e43), cat(0xfb71892801c8f7e6, 0x91c5999739c6f4bc) }, // -2808
+ { cat(0xee8d2aea59b19396, 0x318f6734ee4ea503), cat(0xc927a0ecce3a5feb, 0xa7d147ac2e38c3c9) }, // -2807
+ { cat(0x5870ef21e15adc78, 0x27a5ec2a583eea69), cat(0xa0ec80bd71c84cbc, 0x86410623582d696e) }, // -2806
+ { cat(0xad2725b4b448b060, 0x1fb7f021e0325521), cat(0x80bd33cac16d0a30, 0x6b67381c468ababe) }, // -2805
+ { cat(0xe1d83c5453a78099, 0xcc5980363383bb67), cat(0xcdfb8611357b4380, 0xabd859c6d7445dfd) }, // -2804
+ { cat(0x8179c9dd0fb933ae, 0x3d146691c2cfc91f), cat(0xa4c9380dc4629c66, 0xefe047d245d04b31) }, // -2803
+ { cat(0x34616e4a72fa8fbe, 0x9743854168a63a7f), cat(0x83d42cd7d04ee385, 0x8cb36ca837d9d5c1) }, // -2802
+ { cat(0xed68b0771e5db2ca, 0x8b9f3b9bdaa390cc), cat(0xd2ed148c807e38d5, 0xadebe10d26295601) }, // -2801
+ { cat(0x5786f3927eb15bd5, 0x3c7f62e3154fa709), cat(0xa8bdaa0a0064fa44, 0x8b231a70eb5444ce) }, // -2800
+ { cat(0x46058fa8655aafdd, 0xc9ff824f443fb8d4), cat(0x86fe21a199ea61d0, 0x6f4f485a55dd03d8) }, // -2799
+ { cat(0x09a27f73d55de62f, 0xa998d07ed39927ba), cat(0xd7fd029c297702e7, 0x187eda2a22fb395a) }, // -2798
+ { cat(0xd481ff8fdde4b826, 0x21470d3242e0ec95), cat(0xacca687cedf8cf1f, 0x46cbe1bb4f2f6114) }, // -2797
+ { cat(0x1067ffa64b1d601e, 0x8105a4283580bd44), cat(0x8a3b86ca57fa3f4c, 0x38a31afc3f591a77) }, // -2796
+ { cat(0xe70ccc3d44fbccfd, 0x9b3c39d9ef346206), cat(0xdd2c0add59906546, 0xc104f7f9fef4f724) }, // -2795
+ { cat(0xec0a3cfdd0c970ca, 0xe29694ae58f6b4d2), cat(0xb0f008b114738438, 0x9a6a5ffb325d9283) }, // -2794
+ { cat(0xbcd4fd97da3ac0a2, 0x4ededd58472bc3db), cat(0x8d8cd3c0dd293693, 0xaebb7ffc284adb9c) }, // -2793
+ { cat(0xc7bb2f595d2acdd0, 0x7e316226d846062b), cat(0xe27aec67c841f0ec, 0x4ac5999373aaf8fa) }, // -2792
+ { cat(0x39628c477dbbd7d9, 0xfe8de81f136b3823), cat(0xb52f238639ce5a56, 0xa237ae0f8fbbfa62) }, // -2791
+ { cat(0x2de8703931631314, 0xcba4b9b275ef601c), cat(0x90f282d1c7d84845, 0x4e92f1a60c9661e8) }, // -2790
+ { cat(0x1640b38eb56b51ba, 0xdf6df5ea564bccf9), cat(0xe7ea6ae93fc073a2, 0x175182a34757030d) }, // -2789
+ { cat(0xab66f60bc455dafb, 0xe5f19188450970c7), cat(0xb988558766338fb4, 0xdf7468829f78cf3d) }, // -2788
+ { cat(0x22b8c4d636ab1596, 0x518e0e069da12706), cat(0x946d11391e8fa62a, 0x4c5d20687f93d8fe) }, // -2787
+ { cat(0xd127a156bdde88f0, 0x827ce33dc901d809), cat(0xed7b4ec1ca7f7043, 0xad61cd73ff52f4c9) }, // -2786
+ { cat(0x741fb44564b20726, 0xceca4f64a0ce466e), cat(0xbdfc3f016ecc59cf, 0xbde7d78fff7590a1) }, // -2785
+ { cat(0x5ce629d11d5b38eb, 0xd8a1d91d4d71d1f2), cat(0x97fcff3458a37b0c, 0x97ecac7332c473b4) }, // -2784
+ { cat(0x2e3d0fb4fbc527df, 0xc102f4fbaf1c831c), cat(0xf32e65208dd25e7a, 0x8cade0b8513a52ba) }, // -2783
+ { cat(0xbe973fc3fc9db97f, 0xcd9bf72fbf4a027d), cat(0xc28b841a0b0eb1fb, 0xa3be4d6040fb7561) }, // -2782
+ { cat(0xcbac3303307e2dff, 0xd7aff8f2ff6e6864), cat(0x9ba2d014d5a55b2f, 0xb631d78033fc5de7) }, // -2781
+ { cat(0x791384d1e7304999, 0x59198e5198b0a706), cat(0xf904802155d55eb2, 0xbd1c8c00532d630c) }, // -2780
+ { cat(0x60dc6a4185c03ae1, 0x141471dae08d526b), cat(0xc736cce777dde55b, 0xca7d3ccd0f578270) }, // -2779
+ { cat(0x80b0550137ccfbe7, 0x43438e48b3a441f0), cat(0x9f5f0a52c64b1de3, 0x086430a40c4601f3) }, // -2778
+ { cat(0x67808801f2e1930b, 0x9ed27d411f6d364c), cat(0xfefe76ead6de9638, 0x0d6d1aa013a33652) }, // -2777
+ { cat(0xb933a0018f1adc09, 0x4bdb97674c575ea3), cat(0xcbfec588abe544f9, 0xa45748800fb5c50e) }, // -2776
+ { cat(0x94294cce0c157cd4, 0x3cafac52a3791883), cat(0xa33237a08984372e, 0x1d12a06672f7d0d8) }, // -2775
+ { cat(0x10210a3e701130a9, 0xca2623754f94139c), cat(0x828e92e6d469c5be, 0x7da88051f5930d7a) }, // -2774
+ { cat(0xb3681063e681e776, 0x103d05887f535293), cat(0xd0e41e3e20a93c63, 0xfc40cd4fef51af29) }, // -2773
+ { cat(0xc2b9a6b6520185f8, 0x0cfd9e06cc42a875), cat(0xa71ce4fe80876383, 0x3033d77325daf287) }, // -2772
+ { cat(0x6894855ea80137f9, 0xa3fe180570355391), cat(0x85b0b732006c4f9c, 0x268fdf8f517bf539) }, // -2771
+ { cat(0x7420d5644001f329, 0x066359a24d221f4e), cat(0xd5e78b8333e07f60, 0x3db2ff4bb59321f5) }, // -2770
+ { cat(0xf680aab6999b28ed, 0x9eb5e14ea41b4c3f), cat(0xab1fa2cf5cb39919, 0xcaf599095e0f4e5d) }, // -2769
+ { cat(0xf866eef87ae28724, 0x7ef7e7721ce2a366), cat(0x88e61bd916f61414, 0xa25e14077e72a517) }, // -2768
+ { cat(0xf3d7e4c0c49da507, 0x318ca583616a9f09), cat(0xdb09c62824bceced, 0xd096867263eaa1bf) }, // -2767
+ { cat(0xf646509a36e48405, 0xc13d5135e7887f3a), cat(0xaf3b04ecea30bd8b, 0x0d45385b83221aff) }, // -2766
+ { cat(0xf838407b5f1d366b, 0x00fdda918606cc2f), cat(0x8c2f3723ee8d646f, 0x3dd0f9e2cf4e7bff) }, // -2765
+ { cat(0xf38d33f8982ebd78, 0x01962a82700ae04a), cat(0xe04b8b6cb0e23a4b, 0x961b296ae54a5fff) }, // -2764
+ { cat(0x293dc32d468bcac6, 0x67ab5535266f19d5), cat(0xb36fa2bd5a4e9509, 0x44e28788b76eb333) }, // -2763
+ { cat(0x20fe35bdd2096f05, 0x1fbc442a8525ae44), cat(0x8f8c8231150baa6d, 0xd0b5393a2c588f5c) }, // -2762
+ { cat(0x9b3055fc83424b3b, 0x65fa06aa6ea2b06d), cat(0xe5ad9d1b54df7716, 0x1abb8ec37a274bc6) }, // -2761
+ { cat(0xe28d1196cf683c2f, 0x84c80555254ef38a), cat(0xb7be174910b2c5ab, 0x48960bcf94ec3c9e) }, // -2760
+ { cat(0x1ba40e123f86968c, 0x6a399dddb7725c6f), cat(0x92fe7907408f0489, 0x06de6fd943f0307f) }, // -2759
+ { cat(0x92a0168398d75747, 0x105c2fc92583c717), cat(0xeb30c1a534180741, 0xa497195b9fe6b3fe) }, // -2758
+ { cat(0x0ee678694712ac38, 0xd9e3596db79c9f46), cat(0xbc270150f6799f67, 0xb6df477c7febc332) }, // -2757
+ { cat(0x3f1ec6ba9f422360, 0xae4f7abe2c7d4c38), cat(0x96859aa72b947f86, 0x2be5d2c9ffefcf5b) }, // -2756
+ { cat(0xfe97a45dcb9d0567, 0x7d4bf796ad9546c0), cat(0xf0d5c43eac20cc09, 0xdfd61e0fffe61891) }, // -2755
+ { cat(0xfedfb6b16fb0d11f, 0x976ff94557aa9f00), cat(0xc0ab03655680a33b, 0x1978180cccb813a7) }, // -2754
+ { cat(0x324c92278c8d7419, 0x45f32dd112eee59a), cat(0x9a22691ddecd4f62, 0x7ac679a3d6f9a953) }, // -2753
+ { cat(0x507a83727a7becf5, 0x3cb8494e84b16f5c), cat(0xf69d74fc97aee56a, 0x5e0a5c3957f5dbb8) }, // -2752
+ { cat(0x739535f52ec98a5d, 0xca2d077203c125e3), cat(0xc54ac3fd46258455, 0x180849c779917c93) }, // -2751
+ { cat(0x8faa9190f23ad517, 0xd4f0d2c19c9a84b6), cat(0x9dd569976b5136aa, 0x79a03b05fadaca0f) }, // -2750
+ { cat(0xb2aa8281839154f2, 0xee4e1e02942a6df0), cat(0xfc88a8f2454ebddd, 0x8f66c4d65e2adce5) }, // -2749
+ { cat(0x8eeecece02daaa5b, 0xf1d818021021f18d), cat(0xca06ed8e9dd897e4, 0x72b89d784b557d84) }, // -2748
+ { cat(0x3f25723e68aeeeaf, 0xf4ace001a6818e0a), cat(0xa19f247217e07983, 0x8efa17936f77979d) }, // -2747
+ { cat(0x65b78e9853bf2559, 0x908a4cce1ece0b3b), cat(0x814c1d281319facf, 0xa594dfa925f94617) }, // -2746
+ { cat(0x0925b0f3b931d55c, 0x1a76e149cae3452c), cat(0xcee02ea684f65e19, 0x08ee32a83cc209bf) }, // -2745
+ { cat(0xa0eaf3f62dc1777c, 0xe1f8b43b08b5d0f0), cat(0xa580255203f84b47, 0x3a5828869701a165) }, // -2744
+ { cat(0xe7225cc4f16792ca, 0x4e60902f3a2b0d8d), cat(0x846684419cc6a29f, 0x61e0206bac014dea) }, // -2743
+ { cat(0x71d0946e4f0c1e10, 0x7d674d185d11af47), cat(0xd3d73a0294710432, 0x36336712accee311) }, // -2742
+ { cat(0x8e4076bea5a34b40, 0x6452a4137da7bf6c), cat(0xa978fb35438d9cf4, 0xf8291f4223d8b5a7) }, // -2741
+ { cat(0x3e99f8988482a299, 0xe9dbb675fe1fcc57), cat(0x8793fc2a9c714a5d, 0x93541901b646f7b9) }, // -2740
+ { cat(0x30f65a8da0d10429, 0x762c57233032e08a), cat(0xd8ecc6aa93e876fc, 0x1eecf4cf8a0b25f5) }, // -2739
+ { cat(0xc0c5153e1a40d021, 0x2b56ac1c268f1a08), cat(0xad8a388876539263, 0x4bf0c3d93b3c1e5d) }, // -2738
+ { cat(0x009daa981500a680, 0xef7889b01ed8e1a0), cat(0x8ad4fa06c50fa84f, 0x6ff3cfe0fc30184b) }, // -2737
+ { cat(0x6762aa8cee6770ce, 0x4bf40f80315b029a), cat(0xde21900ad4e5da18, 0xb31fb301938026de) }, // -2736
+ { cat(0xec4eeed7251f8d71, 0xd65cd9335aaf3548), cat(0xb1b4733bdd84ae7a, 0x28e628ce0f99b8b1) }, // -2735
+ { cat(0xbd0bf245b74c7127, 0xdeb0adc2aef29107), cat(0x8e29f5c97e03bec8, 0x20b820a4d947c6f4) }, // -2734
+ { cat(0x2e7983a2bee0b50c, 0x978116044b1db4d7), cat(0xe376560f3005fe0d, 0x01269aa15ba60b21) }, // -2733
+ { cat(0xf1facfb5658090d6, 0xdf9a78036f4af713), cat(0xb5f844d8f337fe70, 0xcdb87bb44951a280) }, // -2732
+ { cat(0x27fbd95deacd40ab, 0xe6152ccf8c3bf8dc), cat(0x91936a4728f9985a, 0x3e2d2fc36ddae867) }, // -2731
+ { cat(0xd992f56311486779, 0x7021e14c139327c6), cat(0xe8ebdd3ea7f5c090, 0x637b7f9f162b0d71) }, // -2730
+ { cat(0x47a8c44f4106b92d, 0xf34e4dd6760f5305), cat(0xba564a98865e33a6, 0xb5fc6618de88d78e) }, // -2729
+ { cat(0xd2ed69d900d22dbe, 0x5c3ea4ab91a5dc04), cat(0x9511d546d1e4f61e, 0xf7fd1e7a4ba0ac71) }, // -2728
+ { cat(0xb7e242f4ce1d15fd, 0x60643aac1c3c9339), cat(0xee82eed7b63b2364, 0xbffb63f6df677a4f) }, // -2727
+ { cat(0x5fe83590a4e41197, 0x80502ef01696dc2e), cat(0xbecf25795e95b5ea, 0x332f832be5ec61d9) }, // -2726
+ { cat(0x7fecf7a6ea500e12, 0xcd0cf259ababe358), cat(0x98a5b7944baaf7ee, 0x8f5935bcb7f04e47) }, // -2725
+ { cat(0x997b25d7dd4ce351, 0x4814b6f5df796bbf), cat(0xf43c58ed45de597d, 0xb22855fabfe6e3a5) }, // -2724
+ { cat(0x7ac8eb131770b5da, 0xa010925e4c612300), cat(0xc3637a576b184797, 0xc1b9de62331f1c84) }, // -2723
+ { cat(0x2f072275ac5a2b15, 0x4cda0eb1d6b41c00), cat(0x9c4f9512bc136c79, 0x67c7e51b5c18e39d) }, // -2722
+ { cat(0xe4d83722ad5d11bb, 0xae29b11c8ab9c666), cat(0xfa18ee84601f13f5, 0x72d96e922cf49f61) }, // -2721
+ { cat(0x83e02c1bbde40e2f, 0xbe87c0e3a22e3852), cat(0xc813f2038018dcc4, 0x5be12541bd907f81) }, // -2720
+ { cat(0x9cb3567c97e9a4f2, 0xfed300b61b582d0e), cat(0xa00ff4cf99ad7d69, 0xe31a843497a6cc67) }, // -2719
+ { cat(0xe3c2ab96dfee1d8f, 0x324266f815e0240b), cat(0x800cc3d947bdfdee, 0x4f4869c3ac857052) }, // -2718
+ { cat(0x393778f16649c8e5, 0x1d370b268966a012), cat(0xcce1395ba5fcc97d, 0x4ba70f9f7a6f1a1e) }, // -2717
+ { cat(0x2dc5fa5ab83b071d, 0xb0f8d5b86debb342), cat(0xa3e761161e63d464, 0x3c85a6192ebf4818) }, // -2716
+ { cat(0xf16b2eaef9c8d27e, 0x272d77c6be562901), cat(0x831f80de7eb64383, 0x639e1e7a8bcc39ac) }, // -2715
+ { cat(0xe8ab7de4c2daea63, 0x71e2593dfd56a802), cat(0xd1cc0163fdf06c05, 0x6c3030c412e05c47) }, // -2714
+ { cat(0xed55fe509be2551c, 0x5b1b7a97fddeeccf), cat(0xa7d66783318d2337, 0x89c02703424d169f) }, // -2713
+ { cat(0xbdde650d4981ddb0, 0x48e2c87997e58a3f), cat(0x86451f9c27a41c2c, 0x6e33526901d7454c) }, // -2712
+ { cat(0x9630a1aedc02fc4d, 0x416ada5c263c1064), cat(0xd6d4ff603f6cf9e0, 0xb0521d74cfbed547) }, // -2711
+ { cat(0x7826e7bf1668c9d7, 0x6788aeb01e967384), cat(0xabdd9919cc572e4d, 0x59db4ac3d965776c) }, // -2710
+ { cat(0x2cebec98deba3b12, 0xb93a2559b211f603), cat(0x897e1414a378f1d7, 0x7b15d5697ab792bd) }, // -2709
+ { cat(0xae46475afdf6c4ea, 0xc1f6a2291ce9899e), cat(0xdbfcecedd25b1c8b, 0xf822ef0f2abf512e) }, // -2708
+ { cat(0xf1d1d2af31923722, 0x34c54e874a546e18), cat(0xaffd8a57db7c16d6, 0x601bf27288990dbe) }, // -2707
+ { cat(0x27db0ef28e0e9281, 0xc3d10b9f6ea9f1ad), cat(0x8ccad51315fcdf11, 0xe67cc1f53a140aff) }, // -2706
+ { cat(0x72f817ea7ce41d9c, 0x6c81ac324aa982ae), cat(0xe144881e8994981c, 0xa3facfeec35344cb) }, // -2705
+ { cat(0x28c6798863e9b149, 0xf067bcf508879bbf), cat(0xb436d34ba143ace3, 0xb6623ff235dc3709) }, // -2704
+ { cat(0x53d1fad383215aa1, 0x8d1fca5da06c7c99), cat(0x902bdc3c8102f0b6, 0x2b81ccc1c4b02c07) }, // -2703
+ { cat(0xb94ff7b8d1cef768, 0xe1cc76fc33e0c75a), cat(0xe6ac9394019e4df0, 0x459c7acfa119e00b) }, // -2702
+ { cat(0xfaa65fc70e3f2c53, 0xe7d6c5968fe705e2), cat(0xb88a0fa99ae50b26, 0x9e16c8a61a7b19a2) }, // -2701
+ { cat(0xc885196c0b65bd0f, 0xecabd1453fec04b5), cat(0x93a1a62148b73c1e, 0xe4df06eb48627ae8) }, // -2700
+ { cat(0x0da1c24678a2c819, 0x7aac820866466dee), cat(0xec35d69ba78b9364, 0xa164d7deda372b0e) }, // -2699
+ { cat(0x3e1b01d1fa1bd347, 0x9556ce6d1e9ebe58), cat(0xbcf7dee2ec6fa91d, 0x4dea464be1c5bc0b) }, // -2698
+ { cat(0x31af34a7fb4975d2, 0xdddf0b8a7ee56513), cat(0x972cb24f238c874a, 0xa4bb6b6fe7d1633c) }, // -2697
+ { cat(0xb5e5210cc542561e, 0x2fcb45aa64a23b52), cat(0xf1e11d4b6c140baa, 0xa12bdf1972e89ec6) }, // -2696
+ { cat(0xf7ea80d7043511b1, 0xbfd5d1551d4e95db), cat(0xc180e43c56766fbb, 0xb42318e128ba189e) }, // -2695
+ { cat(0x2cbb9a459cf7415a, 0xffde4110e43ede49), cat(0x9acd8363785ebfc9, 0x5ce8e0b42094e07f) }, // -2694
+ { cat(0xadf8f6d5c7f2022b, 0x32fd34e7d397ca0e), cat(0xf7af389f26fdffa8, 0x94a7cded00ee33fe) }, // -2693
+ { cat(0x57fa5f116cc19b55, 0xc2642a530faca1a5), cat(0xc625c6e5b8cb32ed, 0x43b9718a6724f665) }, // -2692
+ { cat(0x4661e5a78a347c44, 0x9b83550f3fbd4e1e), cat(0x9e849f1e2d6f5bf1, 0x02fac13b85b72b84) }, // -2691
+ { cat(0xa3cfd5d8dd20c6d4, 0x2c0554e532c87cfc), cat(0xfda0fe96af18931b, 0x37f79b926f8b78d3) }, // -2690
+ { cat(0xb63fde47174d6bdc, 0xf00443ea8f06ca63), cat(0xcae7321225ad427c, 0x2cc6160ebfa2c70f) }, // -2689
+ { cat(0x5e997e9f45d7897d, 0x8cd036553f38a1e9), cat(0xa2528e74eaf101fc, 0xf09e780bcc8238d9) }, // -2688
+ { cat(0x187acbb29e460797, 0xa3d9c510ff608187), cat(0x81dba52a558d9b30, 0xc07ec66fd6ce93e1) }, // -2687
+ { cat(0xf3f7ac50fd3cd8f2, 0x9fc2d4e7ff00cf3f), cat(0xcfc5d51088e291e7, 0x9a6470b2f14a8634) }, // -2686
+ { cat(0x8ff956a730fd7a5b, 0xb30243eccc00a5cc), cat(0xa637dda6d3e874b9, 0x48505a28c1086b5d) }, // -2685
+ { cat(0x732ddeec27312eaf, 0xc2683657099a1e3d), cat(0x84f97e1f0fed2a2d, 0xd3737b53cda055e4) }, // -2684
+ { cat(0xeb7c97e03eb5177f, 0x9d738a24dc29c9fb), cat(0xd4c26364e648437c, 0x8585921faf66efd3) }, // -2683
+ { cat(0x22ca1319cbc412cc, 0x7df6081d7cee3b2f), cat(0xaa351c50b839cf96, 0xd137a819591f2643) }, // -2682
+ { cat(0xe8a1a8e16fd00f09, 0xfe5e6ce463f1c8f2), cat(0x882a7d0d602e3fab, 0xda92ece11418eb68) }, // -2681
+ { cat(0x7435db024c80180f, 0xfd63e16d6cb60e50), cat(0xd9dd94e2337d32ac, 0x90eb149b535b1241) }, // -2680
+ { cat(0x29c4af350a00133f, 0xfde9812456f80b74), cat(0xae4add81c2ca8ef0, 0x73ef43af75e27501) }, // -2679
+ { cat(0x87d08c2a6e6675cc, 0xcb21341d12600929), cat(0x8b6f179b023ba58d, 0x298c3625f7e85d9a) }, // -2678
+ { cat(0xa61a79dd7d70bc7a, 0xde9b8694ea3341dc), cat(0xdf1825c4d05f6f48, 0x4279f03cbfda2f5d) }, // -2677
+ { cat(0x1e7b94b13126fd2f, 0x187c6baa54f5ce49), cat(0xb279b7d0a6b2bf6d, 0x01fb2696ffe1bf7e) }, // -2676
+ { cat(0xe52faa275a859758, 0xe063895510c4a508), cat(0x8ec7c640855bcc57, 0x34c8ebabffe7cc64) }, // -2675
+ { cat(0x084c43722a6f588e, 0x33d27554e7a1080c), cat(0xe472d6cda22c7a25, 0x21417913330c7a3b) }, // -2674
+ { cat(0x6d09cf8e885913a4, 0xf641f7771fb40670), cat(0xb6c245714e89fb50, 0xe767940f5c09fb62) }, // -2673
+ { cat(0x2407d93ed37a761d, 0x91ce5f927fc3385a), cat(0x9235045aa53b2f73, 0xec52dcd9166e62b5) }, // -2672
+ { cat(0x39a628648590bcfc, 0x1c7d65b732d1f3c2), cat(0xe9ee6d5dd52b7f1f, 0xe084948e8a4a3788) }, // -2671
+ { cat(0xfaeb53839e0d63fc, 0xe39784928f0e5c9c), cat(0xbb25244b10ef98e6, 0x4d36dd3ed5082c6c) }, // -2670
+ { cat(0xfbef7602e4d78330, 0xb612d0753f3eb07d), cat(0x95b7503c0d8c7a51, 0xd75f17657739bd23) }, // -2669
+ { cat(0xc64bf004a158d1e7, 0x89b7b3eecb9780c7), cat(0xef8bb39348e0c3b6, 0x2564f23bf1f5fb6c) }, // -2668
+ { cat(0x9ea3266a1aad74b9, 0x3af95cbf0946009f), cat(0xbfa2f60f6d809c91, 0xb783f4fcc19195f0) }, // -2667
+ { cat(0xb21c1ebb488ac3c7, 0x626116ff3a9e66e6), cat(0x994f2b3f8acd4a0e, 0x2c6990ca347477f3) }, // -2666
+ { cat(0x8360312ba7446c72, 0x3701be652a970b09), cat(0xf54b7865aae21016, 0xad75b476ba53f31f) }, // -2665
+ { cat(0x35e68dbc85d056c1, 0xc59afeb75545a26e), cat(0xc43c60515581a678, 0x8ac4905efb765c19) }, // -2664
+ { cat(0xf7eba496d173789b, 0x047bfef9110481f2), cat(0x9cfd19daaace1ec6, 0xd56a0d18c92b7ce0) }, // -2663
+ { cat(0xf312a0f14f1f275e, 0x6d93318e81a0cfe9), cat(0xfb2e8fc4447cfe0a, 0xef1014f475126167) }, // -2662
+ { cat(0x8f421a5aa5b285e5, 0x2475c13ece1a3fed), cat(0xc8f20c9d039731a2, 0x58d9aa5d2a751ab9) }, // -2661
+ { cat(0xa5ce7b7bb7c204b7, 0x505e34323e7b6658), cat(0xa0c1a3b0cfac27b5, 0x13e15517552a7bc7) }, // -2660
+ { cat(0x1e3ec92fc634d092, 0xa6b1c35b652f8513), cat(0x809ae95a3fbcec90, 0xdcb44412aa886306) }, // -2659
+ { cat(0xfd3141e609ee1a84, 0x3de938923b7f3b51), cat(0xcdc4a89065fb141a, 0xfaba0684440d6b3c) }, // -2658
+ { cat(0x30f434b807f1aed0, 0x31876074fc65c90e), cat(0xa49d53a6b7fc1015, 0x95619ed036712297) }, // -2657
+ { cat(0xf3f69093398e2573, 0x5ad2b390c9eb073e), cat(0x83b10fb893300cde, 0x111ae5735ec0e878) }, // -2656
+ { cat(0x1ff0e751f5b03beb, 0xc48452814311a530), cat(0xd2b4e5f41eb347c9, 0xb4f7d5856467da5b) }, // -2655
+ { cat(0x4cc0b90e5e269656, 0x36d0420102748427), cat(0xa890b7f67ef5d307, 0xc3f9779de9ecaeaf) }, // -2654
+ { cat(0xa3cd60d84b5211de, 0x924034cd9b9069b9), cat(0x86da2cc5325e426c, 0x9cc792e4bb23bef2) }, // -2653
+ { cat(0x6c7bce26dee9b630, 0xea00547c2c1a42c1), cat(0xd7c37ad51d639d7a, 0x947284a12b6c64b7) }, // -2652
+ { cat(0x23963e857f215e8d, 0x8800439689ae9bce), cat(0xac9c62441782e462, 0x105b9d4dbc56b6f9) }, // -2651
+ { cat(0x4fab653798e77ed7, 0xa000361207bee30b), cat(0x8a16b5034602504e, 0x737c7dd7c9def8c7) }, // -2650
+ { cat(0x4c456ebf5b0bfe25, 0xcccd23500c649e78), cat(0xdcf1219ed66a1a17, 0x1f2d96260fcb27a5) }, // -2649
+ { cat(0xd69df232af3ccb51, 0x70a41c4009ea1860), cat(0xb0c0e7b24521ae78, 0xe5be11b80ca2861d) }, // -2648
+ { cat(0xabb18e8ef297090d, 0xf3b67d0007ee79e6), cat(0x8d671fc1d0e7bec7, 0x1e31a7c6708204e4) }, // -2647
+ { cat(0x791c174b1dbe74e3, 0x1f8a6199a64a5ca4), cat(0xe23e99361b0c6471, 0xc9e90c70b4033b07) }, // -2646
+ { cat(0x94167908e4985d82, 0x7fa1e7ae1ea1e3b6), cat(0xb4fee0f815a3838e, 0x3b20d6c09002959f) }, // -2645
+ { cat(0xa9ab94071d46b135, 0x32e7ec8b4bb4b62b), cat(0x90cbe72cde1c693e, 0x95b3df007335447f) }, // -2644
+ { cat(0xdc45b9a4fba44ebb, 0x84a6474545edf045), cat(0xe7aca5149693db97, 0x55ec9800b8553a65) }, // -2643
+ { cat(0x7d049483fc83722f, 0x9d51d29dd18b269e), cat(0xb956ea76dedcafac, 0x44bd4666f9ddc851) }, // -2642
+ { cat(0xfd9d439cca02c1bf, 0xb10e4217dad5b87e), cat(0x9445885f18b08c89, 0xd0976b8594b16d0d) }, // -2641
+ { cat(0x2f6205c7a99e02cc, 0x4e7d368c9155f3fd), cat(0xed3c0d64f44dada9, 0x4dbf126f544f14e3) }, // -2640
+ { cat(0x25e8049fbae4cf09, 0xd8642ba3a777f664), cat(0xbdc9a450c37157ba, 0xa498db8c4372771c) }, // -2639
+ { cat(0x84b99d4c9583d8d4, 0xad1cefb61f932b83), cat(0x97d48373cf8ddfc8, 0x83ad7c7035f52c16) }, // -2638
+ { cat(0x3ac29547559fc154, 0x482e4c5698eb78d2), cat(0xf2ed9f1fb27c9940, 0xd2af2d8056551357) }, // -2637
+ { cat(0x9568776c447fcddd, 0x068b70454722c70f), cat(0xc257b27fc1fd4767, 0x0ef28acd11dda912) }, // -2636
+ { cat(0x7786c5f036cca4b0, 0xd209269dd28238d9), cat(0x9b795b9967fdd2b8, 0xd8c208a40e4aeda8) }, // -2635
+ { cat(0xbf3e098057add44e, 0x1cdb70fc84038e27), cat(0xf8c22c28a662eac1, 0x5ad00dd34a117c40) }, // -2634
+ { cat(0xff64d466ac8b103e, 0x7d7c5a639ccfa4ec), cat(0xc701bced51e8bbcd, 0xe2400b0f6e746366) }, // -2633
+ { cat(0x32b7105223a27365, 0x3130484fb0a61d8a), cat(0x9f3497244186fca4, 0xb50008d92529e91f) }, // -2632
+ { cat(0xeabe80836c371f08, 0x4eb3a6e5e7702f42), cat(0xfeba8b6d35a4c76d, 0xee66748ea1dca831) }, // -2631
+ { cat(0xeefecd35f02c18d3, 0x7229525185f35902), cat(0xcbc86f8a91509f8b, 0x251ec3a54e4a2027) }, // -2630
+ { cat(0xbf323dc4c023470f, 0x8e87750e04c2ad9b), cat(0xa306bfa20dda193c, 0x1db2361dd83b4cec) }, // -2629
+ { cat(0x98f4fe37001c38d9, 0x3ed2c40b3702247c), cat(0x826bcc81a4ae7a96, 0x7e282b4b1362a3f0) }, // -2628
+ { cat(0x5b2196be66938e28, 0x64846cdebe69d3fa), cat(0xd0ac7a69077d90f0, 0xc9d9dede856a9fe7) }, // -2627
+ { cat(0x7c1adefeb8760b53, 0x839d23e565217662), cat(0xa6f061ed9f97a727, 0x07e17f186abbb31f) }, // -2626
+ { cat(0xfce24bfef9f8090f, 0x9c7db6511db45eb5), cat(0x858d1b247fac85b8, 0xd31acc13889628e5) }, // -2625
+ { cat(0x616a13318ff341b2, 0x93fc56e82f86fded), cat(0xd5ae91d3ff7a6f8e, 0x1e914685a756a7d6) }, // -2624
+ { cat(0x4dee75c13ff5ce28, 0x766378b9bf9f318b), cat(0xaaf20e4332c8593e, 0x7eda9ed152abb978) }, // -2623
+ { cat(0xa4bec49a999171b9, 0xf84f93c7cc7f5ad6), cat(0x88c1a5028f06adcb, 0x98aee5744222fac6) }, // -2622
+ { cat(0x0797a0f75c1be929, 0x8d4c1fa613fef7bc), cat(0xdacf6e6a7e711612, 0x8de4a2539d04c471) }, // -2621
+ { cat(0x39461a5f7ce320ee, 0x0aa34c84dccbf963), cat(0xaf0c585531f411a8, 0x7183b50fb0d09d27) }, // -2620
+ { cat(0x9438151930b5b3f1, 0xa21c3d371709944f), cat(0x8c09e04427f67486, 0xc1362a72f3da1752) }, // -2619
+ { cat(0xed2688284def864f, 0x69c6c85824dc207f), cat(0xe00fcd39d98a540a, 0xcebd10b7ec902550) }, // -2618
+ { cat(0x8a8539b9d7f2d1d9, 0x216bd379b7168066), cat(0xb33fd7617ad51008, 0xa5640d5ff073510d) }, // -2617
+ { cat(0x6ed0fafb1328a7e0, 0xe78975faf8decd1e), cat(0x8f6645e795774006, 0xeab671198d290da4) }, // -2616
+ { cat(0x4ae7f7f81ea77301, 0x727589918e314830), cat(0xe5706fd8ef25333e, 0x44571b5c150e7c3a) }, // -2615
+ { cat(0xa2532cc67eec5c01, 0x285e07a7a4f439c0), cat(0xb78d264725b75c31, 0xd045af7cdda5302e) }, // -2614
+ { cat(0x81dc23d1ff237ccd, 0xb9e4d2ec83f6949a), cat(0x92d751d28492b027, 0xd9d15930b150f358) }, // -2613
+ { cat(0x6960394ffe9f2e15, 0xf63aeb1406575429), cat(0xeaf21c84075119d9, 0x5c82284de881855a) }, // -2612
+ { cat(0x87802dd9987f5811, 0x91c8bc100512a9ba), cat(0xbbf4e39cd2a747e1, 0x16ce86a4ba01377b) }, // -2611
+ { cat(0xd2ccf17ae065e00e, 0x0e3a300cd0dbbafc), cat(0x965d82e3dbb9064d, 0xabd86bb6fb342c62) }, // -2610
+ { cat(0x1e14b5916709667c, 0xe3904ce14e2c5e5f), cat(0xf0959e395f8e707c, 0x462712be5eb9e09e) }, // -2609
+ { cat(0x181091411f3ab863, 0xe9403d810b56b1e6), cat(0xc077b1c77fa526c9, 0xd1b8dbcb7efb1a18) }, // -2608
+ { cat(0x1340743418fbc6b6, 0x543364673c455b1e), cat(0x99f95b05ffb7523b, 0x0e2d7ca2cbfc14e0) }, // -2607
+ { cat(0xb86720535b2c7123, 0xb9ebd3d8606ef830), cat(0xf65bc4d665f21d2b, 0x49e2610479935499) }, // -2606
+ { cat(0x2d1f4d0f7c238db6, 0x2e5643138058c68d), cat(0xc5163711eb281755, 0xd4b51a69fadc43ae) }, // -2605
+ { cat(0x574c3da5fce93e2b, 0x584502760047053e), cat(0x9dab5f4188ecdf77, 0xdd5daebb2f169c8b) }, // -2604
+ { cat(0x2546c90994a86378, 0x8d3b372333a4d52f), cat(0xfc456535a7e1658c, 0x9562b12b7e8a9412) }, // -2603
+ { cat(0x1dd23a6e1086b5fa, 0x0a95c5b5c2ea4426), cat(0xc9d11dc4864dead6, 0xdde88dbc653ba9a8) }, // -2602
+ { cat(0x7e41c8580d389194, 0xd5449e2b02550352), cat(0xa17417d06b7188ab, 0xe4ba0afd1dc95486) }, // -2601
+ { cat(0x65016d133dc6dadd, 0x776a1822684402a8), cat(0x8129aca6bc5ad3bc, 0xb6fb3bfdb16ddd38) }, // -2600
+ { cat(0x6e68ae852fa49162, 0x58a9c0370d399dd9), cat(0xcea9143dfa2aec61, 0x24c52cc91be2fb8d) }, // -2599
+ { cat(0x8b86f204261d411b, 0x7a21669270fae4ae), cat(0xa554103194ef2380, 0xea375707498262d7) }, // -2598
+ { cat(0xd6058e69b8176749, 0x2e811edb8d9583be), cat(0x84434027aa58e933, 0xee92ac05d4684f12) }, // -2597
+ { cat(0x233c170f8cf23edb, 0x7d9b64927c226c63), cat(0xd39ecd0c43c1751f, 0xe41de00953da181e) }, // -2596
+ { cat(0x4f6345a60a5b657c, 0x647c5075301b89e9), cat(0xa94bd73d03012a7f, 0xe9b180077648134b) }, // -2595
+ { cat(0xd91c37b808491dfd, 0x1d30405dc01607ee), cat(0x876fdf6402675533, 0x215accd2c50675d5) }, // -2594
+ { cat(0x5b60592673a82ffb, 0x61e6cd62ccf00caf), cat(0xd8b2ff066a3eeeb8, 0x355e14846e70bc89) }, // -2593
+ { cat(0x15e6adb85c868cc9, 0x1b1f0ab570c00a26), cat(0xad5bff3854ff2560, 0x2ab1aa038b8d63a1) }, // -2592
+ { cat(0x44b88af9e39ed707, 0x48e5a22ac099a1b8), cat(0x8aafff6043ff5119, 0xbbc154cfa2d782e7) }, // -2591
+ { cat(0x078dab296c31580b, 0xa7d5d044675c35f3), cat(0xdde66566d3321b5c, 0x5f9bbae5d158d172) }, // -2590
+ { cat(0x393e228789c1133c, 0x8644a69d1f7cf7f6), cat(0xb1851debdc2815e3, 0x7fafc8b7daad745b) }, // -2589
+ { cat(0x2dcb4ed2d49a75ca, 0x0503b87db2ca5ff8), cat(0x8e0417efe35344b5, 0xffbfd3c6488ac37c) }, // -2588
+ { cat(0xe2dee484875d8943, 0x3b39272f8476fff3), cat(0xe339bfe638853abc, 0xcc661fa3a7446bf9) }, // -2587
+ { cat(0x824bea039f7e0768, 0xfc2db8f2d05f3329), cat(0xb5c7ccb82d376230, 0xa384e61c85d05661) }, // -2586
+ { cat(0x35098802e5fe6c53, 0xfcf160c2404c28ee), cat(0x916ca3c68a92b4f3, 0xb603eb4a04a6ab81) }, // -2585
+ { cat(0x54dc0cd16ffd7a1f, 0xfb1bce039a1374af), cat(0xe8add2d7441dee52, 0xbcd3121007711268) }, // -2584
+ { cat(0xdd7cd70df3312e7f, 0xfc163e69480f908c), cat(0xba24a8ac367e5842, 0x30a8db4005f40eb9) }, // -2583
+ { cat(0x179712718f5a8b99, 0x967831edd33fa6d7), cat(0x94ea2089c531e034, 0xf3ba490004c33efb) }, // -2582
+ { cat(0x58f1b71c1890df5c, 0x23f383161ecc3e24), cat(0xee436742d51c99ee, 0x52c3a800079ecb2b) }, // -2581
+ { cat(0xe0c15f49ad40b2b0, 0x1cc2cf44e57031b6), cat(0xbe9c529bddb07b25, 0x0f02ecccd2e56f55) }, // -2580
+ { cat(0x4d677f6e2433c226, 0x7d68a5d0b78cf492), cat(0x987d0ee317c06284, 0x0c02570a425125de) }, // -2579
+ { cat(0x7bd8cbe36d1f9d0a, 0x6241094df27b20e9), cat(0xf3fb4b04f2cd6a6c, 0xe003be76d081d630) }, // -2578
+ { cat(0xc97a3cb5f0e6173b, 0x81cda10b286280bb), cat(0xc32f6f3728a45523, 0xe669652bda017826) }, // -2577
+ { cat(0x0794fd5e5a51ac2f, 0x9b0ae73c204ecd62), cat(0x9c25f29286e9ddb6, 0x51edea897b34601f) }, // -2576
+ { cat(0x3f54c896f6e9137f, 0x5e77d86033b1489d), cat(0xf9d650ea71762f8a, 0x1cafdda8c52099cb) }, // -2575
+ { cat(0x32aa3a125f20dc65, 0xe52cad19c2f43a17), cat(0xc7dea721f45e8c6e, 0x7d597e209db3ae3c) }, // -2574
+ { cat(0xf554fb41e5b3e384, 0xb756f0e168c361ac), cat(0x9fe55281904ba38b, 0x977acb4d4af624fc) }, // -2573
+ { cat(0x22219203091fd26d, 0xf224b49bdad235e0), cat(0xffd550cf4d45d278, 0xf25e121544bd07fb) }, // -2572
+ { cat(0xe81adb35a0e641f1, 0x8e83c3afe241c4b3), cat(0xccaaa70c3dd1752d, 0x8eb1a81103ca6cc8) }, // -2571
+ { cat(0x5348af5e1a51ce5a, 0xd869695981ce36f6), cat(0xa3bbb8d697dac424, 0x7227b9a7363b8a3a) }, // -2570
+ { cat(0xa906f2b1aea7d848, 0xad21211467d82bf8), cat(0x82fc93dedfe23683, 0x8e862e1f5e96082e) }, // -2569
+ { cat(0xa80b1de91772f3a7, 0x7b6834ed72f3798d), cat(0xd1941fcaffd05738, 0xe409e3656423404a) }, // -2568
+ { cat(0xb9a27e5412c25c85, 0xfc535d8ac25c613d), cat(0xa7a9b308cca6ac2d, 0x833b1c511ce9003b) }, // -2567
+ { cat(0xc7b531dcdbceb06b, 0x3042b13bceb04dcb), cat(0x86215c070a1ef024, 0x68fc16a74a54002f) }, // -2566
+ { cat(0x72bb82faf94ab3de, 0xb39de85fb11a1611), cat(0xd69bc671a9cb19d3, 0xdb2cf10baa20004c) }, // -2565
+ { cat(0x2896026261088fe5, 0x5c7e537fc0e1ab41), cat(0xabafd1f487d5ae43, 0x15bd8da2ee80003d) }, // -2564
+ { cat(0x86de684eb406d984, 0x49fea93300b48901), cat(0x895974c39fde2502, 0x77cad7b58b9999ca) }, // -2563
+ { cat(0x7163da1786715c06, 0xdccaa8519aba74ce), cat(0xdbc2546c32fd0803, 0xf2de25ef45c28faa) }, // -2562
+ { cat(0x5ab64812d1f4499f, 0x170886a7aefb90a5), cat(0xafcea9f028ca6ccf, 0xf57e84bf6b020c88) }, // -2561
+ { cat(0xaef839a8a7f6a14c, 0x126d388625960d51), cat(0x8ca554c020a1f0a6, 0x5dfed09922680a06) }, // -2560
+ { cat(0x4b26c2a773243546, 0x83e1f409d5bce21a), cat(0xe1088799cdcfe770, 0x966480f503d9a9a4) }, // -2559
+ { cat(0xd5b89bb928e9c438, 0x69819007de30b4e2), cat(0xb406d2e171731f8d, 0x451d33f73647bae9) }, // -2558
+ { cat(0x77c6e2fa872169c6, 0xbace0cd31826f71b), cat(0x90057581278f4c71, 0x04175cc5c5062f21) }, // -2557
+ { cat(0xbfa49e5da50242d7, 0x9149ae1e8d0b24f8), cat(0xe66f22683f4bad81, 0xa025613c6e704b68) }, // -2556
+ { cat(0xcc83b1e48401cf12, 0xdaa1581870d5b72d), cat(0xb858e85365d62467, 0xb3511a96bec03c53) }, // -2555
+ { cat(0x3d3627ea0334a5a8, 0xaee779ad27115f57), cat(0x937a5375eb11b6b9, 0x5c40e21232336376) }, // -2554
+ { cat(0xfb89d9766b876f74, 0x4b0bf5e1d81bcbbf), cat(0xebf6ebefde82bdf5, 0x6067d01d1d1f0589) }, // -2553
+ { cat(0xfc6e4791ef9f8c5d, 0x08d65e4e467ca2ff), cat(0xbcc5898cb2023191, 0x19eca67db0e59e07) }, // -2552
+ { cat(0x305839418c7fa37d, 0xa0ab7ea505308266), cat(0x97046e0a2801c140, 0xe18a1ecaf3eae4d3) }, // -2551
+ { cat(0xb3c05b9c13ff6bfc, 0x3445976e6eb403d6), cat(0xf1a0b0104002cece, 0x35a9cade53116e1e) }, // -2550
+ { cat(0x2966afb00fff8996, 0x9037ac5858900311), cat(0xc14d59a6999bd8a4, 0xf7bb08b1dc0df1b2) }, // -2549
+ { cat(0x545226267332d478, 0x735fbd137a0ccf41), cat(0x9aa447b87ae313b7, 0x2c95a08e49a4c15b) }, // -2548
+ { cat(0x86e9d6a3eb848727, 0x1eff94ebf67ae535), cat(0xf76d3f8d916b52be, 0xadbc3416dc3acef8) }, // -2547
+ { cat(0x38bb121cbc6a05b8, 0xe59943eff86250f7), cat(0xc5f0ffa47455dbcb, 0xbe3029abe3623f2d) }, // -2546
+ { cat(0xc6fc0e7d63880493, 0xeae10326604ea72c), cat(0x9e5a661d29de496f, 0xcb59baefe91b65bd) }, // -2545
+ { cat(0x0b2ce3fbd2733a86, 0x449b383d66e43ead), cat(0xfd5d702ea963a8b2, 0xdef5f7e641c56f96) }, // -2544
+ { cat(0x08f0b6630ec29538, 0x36e2936452503224), cat(0xcab1268bbab6208f, 0x18c4c651ce378c78) }, // -2543
+ { cat(0x3a5a2b827235442c, 0xf8b542b6a840281d), cat(0xa2275209622b4d3f, 0x4703d1db0b5fa393) }, // -2542
+ { cat(0xfb7b5601f4f769bd, 0x93c4355eed002017), cat(0x81b90e6de822a432, 0x9f36417c09194fa8) }, // -2541
+ { cat(0x925ef003218bdc62, 0x8606bbcb14cd0025), cat(0xcf8e7d7ca69dd384, 0x31f068c674f54c41) }, // -2540
+ { cat(0x0eb2599c1ad649e8, 0x6b38963c10a4001e), cat(0xa60b9796ebb17603, 0x5b26ba385d9109ce) }, // -2539
+ { cat(0x0bc1e149af11d4b9, 0xef6078300d500018), cat(0x84d612df22f45e69, 0x15b894f9e47407d8) }, // -2538
+ { cat(0xdf9c9ba9181c878f, 0xe56726b348800026), cat(0xd489b7cb6b20970e, 0x892754c307200c8c) }, // -2537
+ { cat(0xb2e3afba79b06c73, 0x1dec1ef5d39999b8), cat(0xaa07c63c55b3ac0b, 0xa0ec43cf38e67070) }, // -2536
+ { cat(0x28b6262ec7c056c2, 0x7e567f2b0fae1493), cat(0x88063830448fbcd6, 0x1a569ca5c71ec05a) }, // -2535
+ { cat(0x0df03d17a6008ad0, 0xca23feab4c49ba85), cat(0xd9a38d1a074c6156, 0x908a943c71cacd5d) }, // -2534
+ { cat(0xd7f36412eb33a240, 0xa1b66555d6a16204), cat(0xae1c70e19f704dde, 0xda087696c16f0ab0) }, // -2533
+ { cat(0x13291cdbef5c81cd, 0x4e2b8444abb44e6a), cat(0x8b49f3e7b2c03e4b, 0xe1a05edf0125a227) }, // -2532
+ { cat(0x850e9493189402e2, 0x16ac06d445ed4a42), cat(0xdedcb972b799fd46, 0x35cd649801d5d03e) }, // -2531
+ { cat(0x9da543a8e07668b4, 0xdef005769e576e9c), cat(0xb24a2df55fae6438, 0x2b0ab6e00177d9cb) }, // -2530
+ { cat(0x4aea9c8719f853c3, 0xe58cd12bb1df8bb0), cat(0x8ea1be5de6251cf9, 0xbc08924ccdf97b09) }, // -2529
+ { cat(0xde442da4f65a1f9f, 0xd5ae1b791c98df7f), cat(0xe435fd6309d4fb29, 0x2cda83ae165bf80e) }, // -2528
+ { cat(0x18368aea5eae7fb3, 0x115815fa7d471933), cat(0xb69197826e43fc20, 0xf0aecfbe7849933f) }, // -2527
+ { cat(0x79c53beeb22532f5, 0xa779ab2eca9f475c), cat(0x920e12cebe9cc9b3, 0xf3bf0c98603adc32) }, // -2526
+ { cat(0xf6085fe4503b84bc, 0x3f2911e477653ef9), cat(0xe9b01e17976142b9, 0x85fe7a8d66c49383) }, // -2525
+ { cat(0x5e6d19837362d096, 0x98eda7e9f91dcbfb), cat(0xbaf34b4612b43561, 0x37fec8711f03a936) }, // -2524
+ { cat(0x1857479c5c4f0d45, 0x47248654c74b0995), cat(0x958f6f6b4229c44d, 0xc6656d274c02edc5) }, // -2523
+ { cat(0x8d587293c6e4e208, 0x71d40a213ede75bc), cat(0xef4be57869dc6d49, 0x3d6f150bacd17c6e) }, // -2522
+ { cat(0xa446c20fd250b4d3, 0x8e433b4dcbe52afd), cat(0xbf6feac6bb16bdd4, 0x3125aa6fbd74638b) }, // -2521
+ { cat(0xb69f01a641da2a42, 0xd835c90b09842264), cat(0x9926556bc8defe43, 0x5a848859645d1c6f) }, // -2520
+ { cat(0x24319c3d3629dd37, 0xc0560e780f39d09f), cat(0xf50a22460e3196d2, 0x2a6da6f56d61c719) }, // -2519
+ { cat(0x5027b030f8217dc6, 0x33780b933f6173b3), cat(0xc4081b6b3e8e1241, 0xbb8aebf78ab49f47) }, // -2518
+ { cat(0x401fc0272ce797d1, 0xc2c66fa8ff81295c), cat(0x9cd349229871a834, 0x9608bcc608907f6c) }, // -2517
+ { cat(0x66993371e1728c82, 0xd13d7f74cc01dbc6), cat(0xfaeba8375a4f7387, 0x5674613cda80cbe0) }, // -2516
+ { cat(0x85475c5b1ac20a02, 0x40fdff90a334afd2), cat(0xc8bc8692aea5f605, 0xdec380fd7b9a3cb3) }, // -2515
+ { cat(0x043916af489b3b35, 0x00cb32da1c2a2641), cat(0xa096d20ef21e5e6b, 0x189c67312fae96f6) }, // -2514
+ { cat(0xd02dabbf6d48fc2a, 0x6708f57b49bb51ce), cat(0x8078a80bf4e51855, 0xad49ec27595878c4) }, // -2513
+ { cat(0x19e2ac657ba7f9dd, 0x71a7ef2ba92bb616), cat(0xcd8dd9acbb0826ef, 0x7ba979d88ef3f46e) }, // -2512
+ { cat(0x14b556b7961ffb17, 0x8e1ff2895422f812), cat(0xa4717af095a01f25, 0xfc8794ad3f299058) }, // -2511
+ { cat(0x1091122c781995ac, 0x71b3286ddce8c675), cat(0x838dfbf3aae67f51, 0x96d2dd5765bad9e0) }, // -2510
+ { cat(0x1a81b6ad8cf5bc47, 0x1c51da49617470bb), cat(0xd27cc652ab0a654f, 0x57b7c88bd5f7c300) }, // -2509
+ { cat(0x4867c557a3f7c9d2, 0x7d0e483ab45d26fc), cat(0xa863d1dbbc08510c, 0x462ca06fde5fcf33) }, // -2508
+ { cat(0x6d1fd112e99307db, 0x973ea02ef6b0ebfd), cat(0x86b6417c966d0da3, 0x6b56e6bfe519728f) }, // -2507
+ { cat(0xae994e84a8eb3fc5, 0xbeca99e4bde7dffa), cat(0xd78a0260f0ae7c38, 0xabbe3dffd4f58418) }, // -2506
+ { cat(0x8badd86a20bc3304, 0x98a214b6fe531995), cat(0xac6e684d8d586360, 0x8964fe6643f79ce0) }, // -2505
+ { cat(0xa2f179ee80968f36, 0xe081aa2bfea8e144), cat(0x89f1ed0ad779e91a, 0x0783feb8365fb0b3) }, // -2504
+ { cat(0x04b58fe400f0e524, 0x9a6910466441686d), cat(0xdcb6481158c30e90, 0x0c066459f0991ab9) }, // -2503
+ { cat(0x6a2ad98333f3ea83, 0xaeba736b836786be), cat(0xb091d34113cf3ed9, 0xa3385047f3adaefa) }, // -2502
+ { cat(0xee88ae028ff65536, 0x2561f5ef9c52d231), cat(0x8d4175cda97298ae, 0x1c2d0d065c8af261) }, // -2501
+ { cat(0x4a74499db323bb89, 0xd569897f60848382), cat(0xe2025615dbea8de3, 0x604814d6fa77ea36) }, // -2500
+ { cat(0x3b903ae48f4fc93b, 0x11213acc4d36cf9b), cat(0xb4ceab44afeed7e9, 0x19d343df2ec654f8) }, // -2499
+ { cat(0x960cfbea0c3fd42f, 0x40e7623d0a923fb0), cat(0x90a555d08cbf1320, 0xe175cfe5bf0510c6) }, // -2498
+ { cat(0x2347f97679ffb9e5, 0x34a569fb441d32b2), cat(0xe76eefb41464eb67, 0xcf22e63c64d4e7a4) }, // -2497
+ { cat(0xe906612b94cc94b7, 0x5d512195d0175bc2), cat(0xb9258c901050bc53, 0x0c1beb6383dd861c) }, // -2496
+ { cat(0xba6b80efaa3d43c5, 0xe440e7ab0cdf7c9b), cat(0x941e0a0cd9da3042, 0x701655e9364ad1b0) }, // -2495
+ { cat(0x90ac017f76c86c6f, 0xd39b0c44e165942b), cat(0xecfcdce15c904d37, 0x19bd5641f077b5e7) }, // -2494
+ { cat(0x0d5667992bd389f3, 0x0faf3d03e7847689), cat(0xbd97171ab07370f8, 0xe16445018d2c9186) }, // -2493
+ { cat(0x3ddeb9475642d4c2, 0x72f2973652d05ed4), cat(0x97ac127bc05c5a60, 0xb450373470f0746b) }, // -2492
+ { cat(0xfc978ed88a04879d, 0x84b75856eae6fe20), cat(0xf2acea5f9a2d5d67, 0x86e6beba4e4d8711) }, // -2491
+ { cat(0xca12d8ad3b36d2e4, 0x6a2c46abef1f31b3), cat(0xc223eeb2e1bde452, 0xd252322ea50ad274) }, // -2490
+ { cat(0x080f13bdc8f8a8b6, 0xbb569eeff27f5af6), cat(0x9b4ff228b497e9db, 0xdb74f4f21da241f7) }, // -2489
+ { cat(0xd9b1b92fa7f44124, 0x5ef0fe4cb7322b23), cat(0xf87fe9daba8ca95f, 0xc587ee502f6a0324) }, // -2488
+ { cat(0x148e2dbfb990341d, 0x18c0cb70928e88e9), cat(0xc6ccbb15620a2119, 0x6ad3250cf2bb35b7) }, // -2487
+ { cat(0xaa0b57cc94735ce4, 0x13cd6f8d420ba0ba), cat(0x9f0a2f444e6e80e1, 0x2242840a5bc8f7c5) }, // -2486
+ { cat(0x4345594753ebc7d3, 0x52e24c153679012a), cat(0xfe76b206e3e40168, 0x36d0d343c60e593c) }, // -2485
+ { cat(0xcf6aadd2a9896ca9, 0x0f1b7010f860cdbb), cat(0xcb922805831ccdec, 0xf8a70f696b3eadc9) }, // -2484
+ { cat(0x3f888b0eee078a20, 0xd8e2c00d9380a496), cat(0xa2db53379c170b23, 0xfa1f3f8788fef16e) }, // -2483
+ { cat(0x6606d5a58b393b4d, 0x7a4f000adc66ea11), cat(0x82490f5fb0126f4f, 0xfb4c32d2d3ff278b) }, // -2482
+ { cat(0x700aef6f45285ee2, 0x5d4b334493d7dce8), cat(0xd074e565e683e54c, 0xc546b7b7b9983f45) }, // -2481
+ { cat(0xf33bf2bf6a86b24e, 0xb108f5d076464a54), cat(0xa6c3eab7eb9cb770, 0x9dd22c92fae0329d) }, // -2480
+ { cat(0x5c2ff565eed2283e, 0xf4072b0d2b6b6ea9), cat(0x8569889322e3c5f3, 0xb174f0759580287e) }, // -2479
+ { cat(0x937fef097e1d0d31, 0x8671de7b78abe442), cat(0xd575a751d16c6fec, 0x4f2180bc2266a730) }, // -2478
+ { cat(0x42ccbf3acb4a70f4, 0x6b8e4b95fa231d02), cat(0xaac485db0df05989, 0xd8e79a301b85528d) }, // -2477
+ { cat(0x68a3cc2f09085a5d, 0x22d83c77fb4f4a68), cat(0x889d37e2718d146e, 0x471fae8ce2d10ed7) }, // -2476
+ { cat(0x743946b1a80d5d61, 0xd159fa599218770c), cat(0xda9526371c14ed7d, 0x3e991747d14e7e25) }, // -2475
+ { cat(0x902dd227b9a44ab4, 0xa77b2eae0e79f8d7), cat(0xaeddb82c16772464, 0x3214129fdaa531b7) }, // -2474
+ { cat(0x0cf174ec94836ef6, 0xec628bbe71fb2d79), cat(0x8be49356785f5050, 0x28100ee6488427c6) }, // -2473
+ { cat(0xae4f217a8738b18b, 0x13d0df971cc5158e), cat(0xdfd41ef0c0988080, 0x4019b1707406a609) }, // -2472
+ { cat(0x8b72812ed293c13c, 0x0fda4c78e3d0de0b), cat(0xb31018c09a139a00, 0x3347c126c33884d4) }, // -2471
+ { cat(0x3c5b9a8bdba96763, 0x3fe1d6c71ca71809), cat(0x8f4013cd480fae66, 0x8f6c9a8568fa03dd) }, // -2470
+ { cat(0x609290dfc5dbd89e, 0xcc9c8ad82dd82674), cat(0xe53352e20ce5e3d7, 0x4be0f73bdb299fc8) }, // -2469
+ { cat(0x4d420d7fd17cad4b, 0xd6e3a2468b1351f7), cat(0xb75c424e70b7e979, 0x0980c5c97c214ca0) }, // -2468
+ { cat(0x0a9b3dffdaca243c, 0xabe94e9ed5a90e5f), cat(0x92b0350b8d5fedfa, 0x6e009e3ac9b43d4d) }, // -2467
+ { cat(0x775ec9995e1039fa, 0xaca87dcaef74e3cb), cat(0xeab388127bccaff7, 0x1667639142b9fbae) }, // -2466
+ { cat(0x2c4bd47ab1a694c8, 0x8a2064a2592a4fd6), cat(0xbbc2d341fca3bff8, 0xdeb91c7435619625) }, // -2465
+ { cat(0x56a3106227b87706, 0xd4e6b6e847550cab), cat(0x963575ce63b6332d, 0x7efa7d29c44e11b7) }, // -2464
+ { cat(0xf104e70372c0be71, 0x54a457da0bbb4778), cat(0xf055894a39238515, 0x97f72ea93a1682be) }, // -2463
+ { cat(0xc0d0b8cf8f00985a, 0xaa1d1314d62f6c60), cat(0xc0446dd4fa82d0de, 0x132c25542e786898) }, // -2462
+ { cat(0x33da2d72d8cd46ae, 0xee7da8dd7825f04d), cat(0x99d057dd953573e4, 0xdc235110252d207a) }, // -2461
+ { cat(0x8629e2515ae20ab1, 0x7d95dafbf36fe6e1), cat(0xf61a262f55225307, 0xc69ee819d51500c3) }, // -2460
+ { cat(0xd1bb1b7448b4d55a, 0xcade48c98f8cb8b4), cat(0xc4e1b825ddb50f39, 0x6bb25347ddaa6702) }, // -2459
+ { cat(0x7495af903a2a4448, 0xa24b6d6e0c7093c3), cat(0x9d81601e4af73f61, 0x22f50f6cb1551f35) }, // -2458
+ { cat(0x5422b2805d106d41, 0x03abe249ad80ec6c), cat(0xfc023363ab253235, 0x04bb4be11bbb6522) }, // -2457
+ { cat(0x434ef5337da6bdcd, 0x9c8981d48acd89f0), cat(0xc99b5c4fbc1dc1c4, 0x03c90980e2fc50e8) }, // -2456
+ { cat(0x690bf75c648564a4, 0x7d3ace43a23e07f3), cat(0xa14916a63017ce36, 0x696da133e8c9da53) }, // -2455
+ { cat(0xba6ff916b6d11d50, 0x642f0b694e98065c), cat(0x81074551c0130b5e, 0xbabe1a8fed6e4842) }, // -2454
+ { cat(0x5d7ff4f12481c880, 0xa04b45754a8cd6fa), cat(0xce720882cceb4564, 0x5dfcf74caf16da04) }, // -2453
+ { cat(0xb1332a5a839b06cd, 0x4d09045dd53d78c8), cat(0xa52806cf0a55d11d, 0x17fd92a3bf457b36) }, // -2452
+ { cat(0xf428eeaecfaf38a4, 0x3da0d04b10fdfa3a), cat(0x842005726eab0db0, 0xdffe0ee965d12f5e) }, // -2451
+ { cat(0x5374b117b2b1f439, 0xfc3480781b2ff6c2), cat(0xd3666f1d7dde7c4e, 0x333017dbd61b7efe) }, // -2450
+ { cat(0x75f6f412f55b29c7, 0xfcf6cd2ce28cc568), cat(0xa91ebf4acb186371, 0xc28cdfe311af98cb) }, // -2449
+ { cat(0x91925cdbf77c216c, 0xca5f0a8a4ed70454), cat(0x874bcc3bd5ad1c5b, 0x020a4cb5a7bfad6f) }, // -2448
+ { cat(0x4f509493259368ae, 0x109810dd4af1a085), cat(0xd87946c622ae93c4, 0xd0107abc3f99157f) }, // -2447
+ { cat(0x72a6dd428475ed58, 0x0d4673e43bf4806b), cat(0xad2dd2381bbedc9d, 0x7340623032e0ddff) }, // -2446
+ { cat(0xc21f176869f7f113, 0x3dd1f6502ff6cd22), cat(0x8a8b0e9349657d4a, 0xc299e8268f1a4b32) }, // -2445
+ { cat(0x69cb58a70ff31b51, 0xfc8323b37ff14837), cat(0xddab4a85423bfbaa, 0xd0f6403db1c3ab84) }, // -2444
+ { cat(0x87d5e085a65c15db, 0x3068e95c665aa02c), cat(0xb155d537682ffc88, 0xa72b6697c1695603) }, // -2443
+ { cat(0x9fde4d37b849ab15, 0xc053ede385154cf0), cat(0x8dde442c535996d3, 0xb8ef8546345444cf) }, // -2442
+ { cat(0xffca1525f3a911bc, 0x66ecafd26e887b19), cat(0xe2fd39e0855c2485, 0xf4b26ed6ba206e18) }, // -2441
+ { cat(0x663b441e5c874163, 0x858a2641f206c8e1), cat(0xb59761806ab01d37, 0xf6f5257894e6be7a) }, // -2440
+ { cat(0x1e95d0184a05cde9, 0x37a1b834c19f071b), cat(0x9145e799eef34a93, 0x2bf7512d43ebcb95) }, // -2439
+ { cat(0x30efb35a10094975, 0x25cf8d2135cb3e91), cat(0xe86fd8f64b1eddb8, 0x465881e206461288) }, // -2438
+ { cat(0x8d8c8f7b40076df7, 0x5172d74dc4a29874), cat(0xb9f313f83c18b160, 0x3846ce4e6b6b4206) }, // -2437
+ { cat(0xd7a3a5fc333924c5, 0xdac245d7d0821390), cat(0x94c276603013c119, 0xc69f0b71ef89019e) }, // -2436
+ { cat(0x8c39099385283ad6, 0x2ad06fbfb4035280), cat(0xee03f099e68601c2, 0xd764df1cb274cf64) }, // -2435
+ { cat(0x702da142d0ecfbde, 0x88a6bfcc9002a866), cat(0xbe698d47eb9e67cf, 0x12b718e3c1f70c50) }, // -2434
+ { cat(0x8cf14dcf0d8a6318, 0x6d52330a0cceed1f), cat(0x985471065618530c, 0x0ef8e0b634c5a373) }, // -2433
+ { cat(0xe182161815aa3827, 0x155051a9ae17e1ca), cat(0xf3ba4e7089c084e0, 0x17f49abd213c38b8) }, // -2432
+ { cat(0x4e01ab4677bb601f, 0x444041548b464e3b), cat(0xc2fb71f3a166d0b3, 0x465d48974dc9c6fa) }, // -2431
+ { cat(0xa4ce229ec62f8019, 0x03669aaa09050b63), cat(0x9bfc5b294debda29, 0x05176d45d7d49f2e) }, // -2430
+ { cat(0xd47d04313d18ccf4, 0xd23dc44341a1abd1), cat(0xf993c50ee312f6a8, 0x08257ba2f2edcb7d) }, // -2429
+ { cat(0x1064035a97470a5d, 0x74fe369c34815641), cat(0xc7a96a724f425eec, 0xd3512fb58f24a2cb) }, // -2428
+ { cat(0xa6b6691545d26eb1, 0x2a64f87cf6cdde9b), cat(0x9fbabb8ea5ceb257, 0x0f74262ad8ea1bd5) }, // -2427
+ { cat(0xa4570e886fb71781, 0xdd6e5a618ae2fdc4), cat(0xff912c176fb11d58, 0x18b9d6aaf4a9c622) }, // -2426
+ { cat(0x8378d86d262c12ce, 0x4abeaeb46f1bfe36), cat(0xcc742345f2f41779, 0xad617888c3bb04e8) }, // -2425
+ { cat(0xcf93e05751bcdbd8, 0x3bcbbef6bf49982c), cat(0xa3901c37f59012c7, 0xbde793a09c959d86) }, // -2424
+ { cat(0xd94319df74971646, 0x963c98c565d479bd), cat(0x82d9b02cc4734239, 0x64b942e6e3aae46b) }, // -2423
+ { cat(0xc204f6325424f070, 0xf060f46f0953f5fa), cat(0xd15c4d146d8536c2, 0x3ac204a49f77d3df) }, // -2422
+ { cat(0x9b372b5b7683f38d, 0x8d1a5d25a10ff7fb), cat(0xa77d0a76be042bce, 0x956803b6e5f9764c) }, // -2421
+ { cat(0xe2928915f8698fa4, 0x70e1e41e1a732cc9), cat(0x85fda1f89803563e, 0xddeccfc584c791d6) }, // -2420
+ { cat(0xd0ea74eff3dc1907, 0x1b03069690b847a8), cat(0xd6629cc0f33889fe, 0x2fe14c6f3ad8e957) }, // -2419
+ { cat(0x0d885d8cc3167a6c, 0x159c054540936c87), cat(0xab821700c293a198, 0x264dd6bf62472113) }, // -2418
+ { cat(0x3e06b13d68dec856, 0x77b0043766dc56d2), cat(0x8934df33cedc8146, 0x850b1232b505b40f) }, // -2417
+ { cat(0xfcd781fbdafe0d57, 0x25e66d2571608aea), cat(0xdb87cb8617c7353d, 0xa1ab505121a2b9b1) }, // -2416
+ { cat(0x63df9b2fe264d778, 0xeb1ebdb78de6d588), cat(0xaf9fd604dfd290fe, 0x1aef73741ae8948e) }, // -2415
+ { cat(0xe97faf5981ea45fa, 0x55b2315fa4b8aad3), cat(0x8c7fde6a4ca873fe, 0x7bf2c2c348ba1071) }, // -2414
+ { cat(0xdbff7ef59caa0990, 0x891d1bcc3ac11151), cat(0xe0cc97107aa71ffd, 0x931e046ba7901a4f) }, // -2413
+ { cat(0x4999325e16ee6e0d, 0x3a7dafd69567410e), cat(0xb3d6df40621f4cca, 0xdc18038952d9aea6) }, // -2412
+ { cat(0x3ae0f5181258580a, 0x953159787785cda5), cat(0x8fdf19004e7f70a2, 0x49accfa10f148bb8) }, // -2411
+ { cat(0xf7ce54f3508d59aa, 0x884ef58d8c094908), cat(0xe631c19a17324dd0, 0x75e14c34e4edac59) }, // -2410
+ { cat(0xc63eaa5c40711488, 0x6d0bf7a470076da0), cat(0xb827ce14df5b7173, 0x918109c3ea57bd14) }, // -2409
+ { cat(0xd1cbbb7d005a76d3, 0x8a6ff950599f8ae6), cat(0x93530b43e5e2c129, 0x413407cfeeac9743) }, // -2408
+ { cat(0xe945f8c80090be1f, 0x43e65bb3c298de3d), cat(0xebb812063c9e01db, 0x9b8672e64aadbed2) }, // -2407
+ { cat(0x876b2d6ccd409819, 0x031eafc30213e4fe), cat(0xbc93419e96e4ce49, 0x49385beb6ef16575) }, // -2406
+ { cat(0x9f88f123d766e014, 0x027ef302680fea65), cat(0x96dc347edf1d71d4, 0x3a937cbc58c11df7) }, // -2405
+ { cat(0x65a7e83958a499b9, 0x9d97eb370ce643d4), cat(0xf16053fe31c8b620, 0x5db8c793c134fcbf) }, // -2404
+ { cat(0xb7b9869446ea1494, 0x7e13229270b83643), cat(0xc119dccb5b06f819, 0xe493d2dc9a90ca32) }, // -2403
+ { cat(0x5fc79edd05881076, 0xcb42820ec0935e9c), cat(0x9a7b1709159f2ce1, 0x83a9757d4873d4f5) }, // -2402
+ { cat(0xffa5cafb3c0ce724, 0x786a69b1341efdc7), cat(0xf72b580e88feae35, 0x9f7588c873ec87ee) }, // -2401
+ { cat(0xcc84a2629670b8e9, 0xf9eebaf429b2649f), cat(0xc5bc4672073224f7, 0xb2c46d6d298a0658) }, // -2400
+ { cat(0xd6d081e8785a2d87, 0xfb25625cee28507f), cat(0x9e30385b38f4ea5f, 0xc236bdf0ee080513) }, // -2399
+ { cat(0xbe1a6973f3c37c0c, 0xc5089d617d0d4d98), cat(0xfd19f3c527ee43cc, 0x69f12fe7e340081f) }, // -2398
+ { cat(0x981521298fcf9670, 0x9da07de7973dd7ad), cat(0xca7b296a8658363d, 0x218dbfecb5ccd34c) }, // -2397
+ { cat(0x13441a87a63fab8d, 0x4ae6cb1fac317957), cat(0xa1fc212205135e97, 0x4e0afff09170a90a) }, // -2396
+ { cat(0x75d0153951cc893d, 0xd5856f4c89c12de0), cat(0x819680e8040f7edf, 0x71a2665a0df3ba6e) }, // -2395
+ { cat(0x5619bb8ee94741fc, 0x88d57ee0dc684965), cat(0xcf5734a66ce597cb, 0xe903d6f67cb92a4a) }, // -2394
+ { cat(0x7814960bedd29b30, 0x6d7798b3e386a11e), cat(0xa5df5d51f0b7aca3, 0x20cfdf2b96fa883b) }, // -2393
+ { cat(0x601078098b0ee28d, 0x245fad5cb6054db2), cat(0x84b2b10e5a2c8a1c, 0x1a3fe5bc78c86cfc) }, // -2392
+ { cat(0xcce72675ab4b0415, 0x06ff7bc789a215e9), cat(0xd4511b4a29e0dcf9, 0xc3996f93f473e193) }, // -2391
+ { cat(0xa3ec1ec48908d010, 0xd265fc9fa14e77ee), cat(0xa9da7c3b54b3e3fb, 0x02e1260ff6c31adc) }, // -2390
+ { cat(0xe989b236d4070cda, 0x41eb307fb43ec658), cat(0x87e1fcfc43c31cc8, 0xcf1a84d99235af16) }, // -2389
+ { cat(0xa8dc5057b9a4e15d, 0x36451a65ed313d59), cat(0xd96994c6d2d1c7a7, 0xb1c407c283891824) }, // -2388
+ { cat(0x8716a6ac9483e77d, 0xc504151e575a977a), cat(0xadee109f0f0e3952, 0xf49cd30202d41350) }, // -2387
+ { cat(0x6c121ef076cfec64, 0x9d9cddb1df7bac62), cat(0x8b24da18d8d82ddb, 0xf6e3dc019bdcdc40) }, // -2386
+ { cat(0x468364b3f14cad6d, 0xc8fafc4fcbf913d0), cat(0xdea15cf48e26afc6, 0x57d2f99c2c94939a) }, // -2385
+ { cat(0xd202b6f65aa3bdf1, 0x6d9596a63cc7430d), cat(0xb21ab0c3a4ebbfd1, 0xdfdbfae356dd42e1) }, // -2384
+ { cat(0x74cef8c5154fcb27, 0x8ade121e9705cf3d), cat(0x8e7bc09c83efcca7, 0xe6499582abe43581) }, // -2383
+ { cat(0xee17f46e887fab72, 0x77c9b69758094b95), cat(0xe3f9342d9fe6143f, 0xd6dc226aaca0559b) }, // -2382
+ { cat(0x8b465d2539ffbc5b, 0x9307c545e0076fab), cat(0xb660f68ae651a9cc, 0xabe34ebbbd4d1149) }, // -2381
+ { cat(0x6f6b7db76199637c, 0x759fd104b3392622), cat(0x91e72ba251daee3d, 0x564f722fcaa40dd4) }, // -2380
+ { cat(0x4bdf2f8bcf5bd260, 0xbc32e80785283d03), cat(0xe971df6a1c917d2e, 0xf07f1d194439afba) }, // -2379
+ { cat(0x097f593ca5e30eb3, 0xc9c2533937536403), cat(0xbac17f8816daca8b, 0xf398e41436948c95) }, // -2378
+ { cat(0xa132adca1e4f3ef6, 0x3b01dc2dc5dc5002), cat(0x95679939abe23ba3, 0x29471cdcf876d6dd) }, // -2377
+ { cat(0x351de2dcfd4b97f0, 0x5e6960493c93b337), cat(0xef0c285c4636c5d1, 0xdba4fafb27248afc) }, // -2376
+ { cat(0xc417e8b0caa2dff3, 0x7ebab36dca0fc292), cat(0xbf3ced169e9237db, 0x161d9595b8ea08c9) }, // -2375
+ { cat(0xd013208d6ee8b329, 0x322ef5f16e73020f), cat(0x98fd8a787edb5fe2, 0x7817aade2d880707) }, // -2374
+ { cat(0xb351cdaf17dab841, 0xe9e4bcb57d84d017), cat(0xf4c8dd8d97c56637, 0x268c4496af400b3f) }, // -2373
+ { cat(0x8f74a48c13156034, 0xbb1d63c4646a4013), cat(0xc3d3e471463784f8, 0xeba36a1225ccd5cc) }, // -2372
+ { cat(0x0c5d50700f444cf6, 0xfc17830383883342), cat(0x9ca9838dd1c603fa, 0x561c54db5170ab0a) }, // -2371
+ { cat(0xe0954d80186d47f1, 0x9358d19f38d9eb9d), cat(0xfaa8d27c82d66cc3, 0xbcfa215ee8b444dc) }, // -2370
+ { cat(0xe6ddd799ad24398e, 0x0f7a414c2d7b22e4), cat(0xc8870eca024523cf, 0xca61b44bed5d03e3) }, // -2369
+ { cat(0x1f17dfae241cfad8, 0x0c61cdd68ac8e8b6), cat(0xa06c0bd4ce9db63f, 0xd51af6a3244a6983) }, // -2368
+ { cat(0x7f464c8b50172f13, 0x3d1b0b1208a0ba2c), cat(0x80566fdd7217c4ff, 0xddaf2bb5b6a1ee02) }, // -2367
+ { cat(0xfed6e0dee68b7e85, 0x2e91ab500dcdf6ac), cat(0xcd571962502607ff, 0xc91845ef8a9cb003) }, // -2366
+ { cat(0x98abe718b86f986a, 0x8ba7bc400b0b2bbd), cat(0xa445ade8401e6ccc, 0xa0e037f2d54a2669) }, // -2365
+ { cat(0x7a231f46f9f2e055, 0x3c8630333c08efca), cat(0x836af18699b1f0a3, 0xb3e69328aaa1b854) }, // -2364
+ { cat(0xc36b653e5cb7cd55, 0x2da38051f9a7e610), cat(0xd244b5a4291cb439, 0x1fd751daaa9c5a20) }, // -2363
+ { cat(0x35ef8431e3c63ddd, 0xbe1c66a7faecb80d), cat(0xa836f7b6874a29c7, 0x4cac417bbbb0481a) }, // -2362
+ { cat(0xc4bf9cf4b638317e, 0x31b0521ffbf0933e), cat(0x86925fc53908216c, 0x3d569ac962f36ce1) }, // -2361
+ { cat(0xa13294babd26b596, 0xb5e6e9ccc64db863), cat(0xd750993b8e7368ad, 0x2ef0f7a89e5247cf) }, // -2360
+ { cat(0x80f543c897522ade, 0xf7ebee3d6b71604f), cat(0xac407a960b8f86f0, 0xf25a5fba1841d30c) }, // -2359
+ { cat(0x33f7696d45db557f, 0x2cbcbe978927803f), cat(0x89cd2ede6fa6058d, 0x8eaeb2fb469b0f3d) }, // -2358
+ { cat(0xb98bdbe2095eef31, 0xe12dfdbf41d8cd32), cat(0xdc7b7e30b2a33c15, 0xb11784c53dc4e52e) }, // -2357
+ { cat(0x946fe31b3ab258f4, 0xb424caff67e0a428), cat(0xb062cb5a28829677, 0xc0df9d6a97d0b758) }, // -2356
+ { cat(0xa9f31c15c88ead90, 0x901d6f32b9808353), cat(0x8d1bd5e1ba0211f9, 0x67194abbaca6f913) }, // -2355
+ { cat(0x0feb6022da7de280, 0xe6957eb78f340552), cat(0xe1c62302c3368328, 0xa4f5445f7aa4c1b9) }, // -2354
+ { cat(0xd98919b57b97e867, 0x1eddfef93f5cd10e), cat(0xb49e82689c2b9c20, 0x83f769e5fbb70160) }, // -2353
+ { cat(0x47a0e15dfc7986b8, 0xe57e659432b0a73f), cat(0x907eceba168949b3, 0x9cc5ee51962c011a) }, // -2352
+ { cat(0x0c349bc993f5a45b, 0x08ca3c20511aa531), cat(0xe7314ac357420f85, 0xc7a316e8f046682a) }, // -2351
+ { cat(0xa35d496e0ff7b6af, 0x3a3b634d0daeea8e), cat(0xb8f43bcf7901a604, 0x9fb5abed8d052021) }, // -2350
+ { cat(0x82b1078b3ff95ef2, 0x94fc4f70d7bf220b), cat(0x93f6963f9401519d, 0x4c915657a40419b4) }, // -2349
+ { cat(0xd11b3f45332897ea, 0x87fa18b48c650344), cat(0xecbdbd3286688295, 0x474ef08c39a02920) }, // -2348
+ { cat(0xa748ff6a8f53acbb, 0x9ffb46f6d6b735d0), cat(0xbd64975b9eba0211, 0x05d8c0702e19ba80) }, // -2347
+ { cat(0xb90732bba5dc8a2f, 0xb32f6bf8abc5c4a7), cat(0x9783ac494bc801a7, 0x37e099f358149533) }, // -2346
+ { cat(0xf4d8512c3c94104c, 0x51e5798ddfa2d43e), cat(0xf26c46dbac7335d8, 0x59675cb88cedbb85) }, // -2345
+ { cat(0xc3e040f030767370, 0x4184613e4c824365), cat(0xc1f038afbd28f7e0, 0x4785e3c6d7249604) }, // -2344
+ { cat(0x0319cd8cf391f5f3, 0x679d1a983d3502b7), cat(0x9b2693bfca872cb3, 0x6c6b1c9f1283ab37) }, // -2343
+ { cat(0xd1c2e27b1f4fefeb, 0xd8fb5dc061ee6abe), cat(0xf83db932dda51452, 0x4711c764ea6c4524) }, // -2342
+ { cat(0x749be8627f732656, 0x472f7e33818b8898), cat(0xc697c75be4841041, 0xd2749f83eebd041d) }, // -2341
+ { cat(0x2a165381ff8f51de, 0x9f5931c2ce093a14), cat(0x9edfd2afea034034, 0xa85d4c698bca69b1) }, // -2340
+ { cat(0xa9bd526998e54fca, 0x988eb6047cdb901f), cat(0xfe32eab310053387, 0x73c87a427943dc4e) }, // -2339
+ { cat(0xee310ebae0b77308, 0x7a0bc4d063e2d9b2), cat(0xcb5beef5a66a8f9f, 0x8fd39501fa9cb03e) }, // -2338
+ { cat(0xf1c0d8958092c26d, 0x2e6fd0a6b64f148f), cat(0xa2aff25e1ebba619, 0x3fdc7734c87d59cb) }, // -2337
+ { cat(0x5b00ad4466dbcebd, 0xbebfda1ef83f43a6), cat(0x82265b7e7efc84e0, 0xffe39290a06447d6) }, // -2336
+ { cat(0x2b34486d715fb12f, 0x97995cfe59fed2a2), cat(0xd03d5f30cb2da167, 0xffd2841a9a3a0c8a) }, // -2335
+ { cat(0x55c36d245ab2f426, 0x12e11731e198a882), cat(0xa6977f5a3c24811f, 0xffdb9ce214fb3d3b) }, // -2334
+ { cat(0xde35f0e9e228c351, 0xa8b4128e4e13ba02), cat(0x8545ff7b6350674c, 0xccafb0b4dd95ca95) }, // -2333
+ { cat(0xc9efe7dc9d0e054f, 0x745350e3b01f9002), cat(0xd53ccbf89ee70bae, 0x144c4dee2f5610ef) }, // -2332
+ { cat(0x3b265316e40b3772, 0xc375da4fc0194002), cat(0xaa970993b2526fbe, 0x76a3718b5911a726) }, // -2331
+ { cat(0xc8eb75abe9a292c2, 0x35f7e1d9667a999b), cat(0x8878d4762841f2fe, 0xc54f8e09140e1f51) }, // -2330
+ { cat(0x4178bc46429db79d, 0x23263628a3f75c2b), cat(0xda5aed89da031e64, 0x6ee5b00e867cfee9) }, // -2329
+ { cat(0xcdfa3038354af94a, 0x8284f820832c49bc), cat(0xaeaf246e48027eb6, 0xbf1e26720530cbed) }, // -2328
+ { cat(0x0b2e8cf9c43bfaa2, 0x0203f9b39c236e30), cat(0x8bbf5058399b9892, 0x327e85280427098b) }, // -2327
+ { cat(0xdeb0e18fa05ff769, 0x9cd3291f6038b04d), cat(0xdf98808d28f8f41d, 0x1d973b7339d80f44) }, // -2326
+ { cat(0xb2271ad94d1992ba, 0xe3dc20e5e693c03e), cat(0xb2e066d753fa5ce4, 0x17ac2f8f6179a5d0) }, // -2325
+ { cat(0xf4ec157aa4147562, 0x4fe34d84b8763365), cat(0x8f19ebdf7661e3e9, 0xac89bfa5e79484a6) }, // -2324
+ { cat(0x54acef2aa020bbd0, 0x7fd215a12723856e), cat(0xe4f6463257030642, 0xada932a30c20d43e) }, // -2323
+ { cat(0x76f0bf554ce6fca6, 0xcca8114db8e9378b), cat(0xb72b6b5b78cf3835, 0x57ba8ee8d680a9cb) }, // -2322
+ { cat(0x2bf3cc443d8596eb, 0xd6ecdaa493edc609), cat(0x928922af93d8f9c4, 0x462ed8ba4533bb09) }, // -2321
+ { cat(0xacb946d395a28b12, 0xf17af76db97c700e), cat(0xea75044c1fc18fa0, 0x704af45d3b85f80e) }, // -2320
+ { cat(0x8a2dd242de1ba275, 0x8dfbf92494638cd8), cat(0xbb90d03ce63472e6, 0xc03bf6b0fc6b2cd8) }, // -2319
+ { cat(0x0824a8357e7c81f7, 0xa4c9941d4382d713), cat(0x960d7363eb5d28b8, 0x99c992273055bd7a) }, // -2318
+ { cat(0x403aa6bbfd940325, 0xd475b9c86c048b52), cat(0xf015856cabc84127, 0x5c75b6a51a22c8c3) }, // -2317
+ { cat(0x99c88563314335b7, 0xdd2afb06bcd06f75), cat(0xc011378a23069a85, 0xe3915eea7b4f0702) }, // -2316
+ { cat(0x47d39de8f435c493, 0x1755959efd738c5e), cat(0x99a75fa1b59ee204, 0xb60de58862a59f35) }, // -2315
+ { cat(0x72ec2fdb20560751, 0xbeef55cb2f1f46fc), cat(0xf5d89902bc3169a1, 0x23496f409dd5cb88) }, // -2314
+ { cat(0x28bcf315b37805da, 0xff25de3c25b29f30), cat(0xc4ad4735635abae7, 0x4f6df29a17de3c6d) }, // -2313
+ { cat(0xba30c277c2c66b15, 0x98eb18301e287f5a), cat(0x9d576c2ab5e22f1f, 0x72be5bae797e96bd) }, // -2312
+ { cat(0x904e03f2d13d7822, 0x8e44f3803040cbc2), cat(0xfbbf13778969e4ff, 0x1dfd5f7d8f30f12f) }, // -2311
+ { cat(0x403e698f0dcac682, 0x0b6a5c668d00a302), cat(0xc965a92c6dee50cc, 0x17fde5fe0c272759) }, // -2310
+ { cat(0x66985472716f0534, 0xd5eeb0520a66e8ce), cat(0xa11e20f057f1da3c, 0xdffe519809b8ec47) }, // -2309
+ { cat(0x8546a9f5278c042a, 0x44bef374d51f20a5), cat(0x80e4e726acc17b63, 0xe6650e133afa569f) }, // -2308
+ { cat(0x3ba44321d8e006aa, 0x0797ebee21cb676f), cat(0xce3b0b711468c56c, 0xa3d4e351f7f6f0ff) }, // -2307
+ { cat(0x62e9cf4e47199eee, 0x6c79898b4e3c52bf), cat(0xa4fc092743870456, 0xe9771c41932bf3ff) }, // -2306
+ { cat(0x8254a5d838e14bf1, 0xf0613ad5d8304232), cat(0x83fcd41f6938d045, 0x87927d0142898fff) }, // -2305
+ { cat(0x03baa2f38e35464f, 0xe701f7bc8d1a0384), cat(0xd32e203241f4806f, 0x3f50c802040f4ccc) }, // -2304
+ { cat(0xcfc8825c71c4383f, 0xec0192fd3dae6936), cat(0xa8f1b35b67f6cd25, 0xcc40a0019cd90a3c) }, // -2303
+ { cat(0x3fd39b7d27d02cff, 0xf00142643158542b), cat(0x8727c2af865f0a84, 0xa366e667b0ada1ca) }, // -2302
+ { cat(0xcc85c5950c8047ff, 0xe6686a39e88d5378), cat(0xd83f9de5a3cb4407, 0x6bd7d70c4de29c76) }, // -2301
+ { cat(0x3d37d1440a003999, 0x852054fb20710f94), cat(0xacffb18483090339, 0x231312703e4ee392) }, // -2300
+ { cat(0x975fda9cd4ccfae1, 0x374d10c8e6c0d943), cat(0x8a66279d35a0cf60, 0xe8dc0ec031d8b60e) }, // -2299
+ { cat(0x8bcc90faee14c49b, 0x8bae814171348ed1), cat(0xdd703f61ef67b234, 0xa7c67e004fc1234a) }, // -2298
+ { cat(0x097073fbf1aa36e2, 0xd62534345a907241), cat(0xb126991b25ec8e90, 0x863864cd0c9a82a2) }, // -2297
+ { cat(0xa126c32ff4882be8, 0xab50f69048738e9b), cat(0x8db87a7c1e56d873, 0x9e9383d73d486881) }, // -2296
+ { cat(0x01d79eb320d9dfda, 0xabb4bdb3a71f4a91), cat(0xe2c0c3f9ca248d85, 0xca859fbec873da69) }, // -2295
+ { cat(0xce46188f4d7b197b, 0xbc9097c2ec190874), cat(0xb567032e3b507137, 0xd537b2ff06c31520) }, // -2294
+ { cat(0xa504e072a4627ac9, 0x63a6dfcf234739f6), cat(0x911f35be95d9f42c, 0xaa92f598d235aa80) }, // -2293
+ { cat(0x3b3b00b76d6a5e0f, 0x05d7cc7e9ed85cbd), cat(0xe831ef97562986ad, 0xddb7ef5ae9ef7734) }, // -2292
+ { cat(0xfc2f33c5f121e4d8, 0xd17970654be04a31), cat(0xb9c18c7911bad224, 0xb15ff2af218c5f5c) }, // -2291
+ { cat(0x6358f637f41b1d7a, 0x412df3843cb36e8e), cat(0x949ad6c7416241b6, 0xf44cc225b4704c4a) }, // -2290
+ { cat(0x6bc189f3202b625d, 0x3516526d2debe416), cat(0xedc48ad8689d35f1, 0x86e136a2ba4d46dd) }, // -2289
+ { cat(0x23013b28e6891b7d, 0xc411db8a8b231cde), cat(0xbe36d579ed4a918e, 0x0580f8822ea438b1) }, // -2288
+ { cat(0x1c00fc20b86daf97, 0xd00e493ba2827d7f), cat(0x982bddfb243ba7a4, 0xd133fa01bee9c6f4) }, // -2287
+ { cat(0x9334c69ac0af7f59, 0x4ce3a85f6a6a6264), cat(0xf379632b6d2c3f6e, 0x1b865ccf97dc7186) }, // -2286
+ { cat(0x75c3d21566f2cc47, 0x70b6204c5521e850), cat(0xc2c78289242365f1, 0xaf9eb0a61316c138) }, // -2285
+ { cat(0xc49ca8111f28a36c, 0x5a2b4d09ddb4b9da), cat(0x9bd2ced41ce91e5a, 0xf2e55a1e75abcdc6) }, // -2284
+ { cat(0xd42dd9b4fea76be0, 0x9045480fc921295c), cat(0xf9514aecfb0e96f7, 0xeb089030bc46160a) }, // -2283
+ { cat(0x4357e15d9885efe6, 0xd9d10673074dbab0), cat(0xc7743bf0c8d878c6, 0x55a0735a303811a2) }, // -2282
+ { cat(0x02acb44ae06b2652, 0x47da6b8f390afbc0), cat(0x9f902ff3d3e0609e, 0xaae6c2ae8cf9a7b5) }, // -2281
+ { cat(0x377aba116711d6ea, 0x0c90ac185b44c600), cat(0xff4d19861fcd6764, 0x44a46ab0e18f72bb) }, // -2280
+ { cat(0x92c894dab8db1254, 0xd6da2346af6a3800), cat(0xcc3dae04e63dec50, 0x36e9eef3e7a5f562) }, // -2279
+ { cat(0x0f06dd7bc715a843, 0xdf14e9055921c667), cat(0xa3648b371e97f040, 0x2bee58c31fb7f782) }, // -2278
+ { cat(0xa59f179638de2036, 0x4c10ba6aadb49eb9), cat(0x82b6d5c5b2132699, 0xbcbead68e62cc601) }, // -2277
+ { cat(0xd5cb58f05afd0056, 0xe01ac3dde2ba978d), cat(0xd124893c501ea429, 0x2dfde2417047a335) }, // -2276
+ { cat(0xab0913f37bfd99df, 0x19af0317e895460b), cat(0xa7506dc9d9b21ced, 0xbe64b501269fb5c4) }, // -2275
+ { cat(0xef3a765c633147e5, 0xae259c1320776b3c), cat(0x85d9f16e47c1b0be, 0x31ea2a6752195e36) }, // -2274
+ { cat(0xe52a56fa384ed96f, 0x7d08f9b833f2452c), cat(0xd629824a0c691ac9, 0xe976aa3ee9c23057) }, // -2273
+ { cat(0x1dbb78c82d0be125, 0xfda0c7c68ff50424), cat(0xab54683b3d20e23b, 0x212bbb6587ce8d13) }, // -2272
+ { cat(0xe495fa39bda31a84, 0xcae70638732a69b6), cat(0x89105362974d81c8, 0xe7562f846ca53da8) }, // -2271
+ { cat(0xd42329f5fc382a6e, 0x1171a38d8510a923), cat(0xdb4d5237587c02db, 0x0bbd18d3e10862a7) }, // -2270
+ { cat(0xdce8ee5e636021f1, 0xa78e1c7137408750), cat(0xaf710e92ad300248, 0xd630e0a980d3821f) }, // -2269
+ { cat(0x1720beb1e919b4c1, 0x52d816c0f9006c40), cat(0x8c5a720ef0f33507, 0x11c0b3bacd7601b3) }, // -2268
+ { cat(0xf1cdfde974f5ee02, 0x1e268ace5b33e066), cat(0xe090b67e4e51ee71, 0xb6011f9148bccf84) }, // -2267
+ { cat(0xf4a4cb212a5e5801, 0xb1b86f0b7c298051), cat(0xb3a6f8650b74bec1, 0x5e674c743a30a603) }, // -2266
+ { cat(0x2a1d6f4dbb7eacce, 0x27c6bf3c635466a8), cat(0x8fb8c6b73c5d6567, 0x7eb909f694f3b803) }, // -2265
+ { cat(0xa9c8b215f8caae16, 0xa60acb93d220a43f), cat(0xe5f471252d623bd8, 0xcac1a98a87ec599e) }, // -2264
+ { cat(0x54a08e77fa3bbe78, 0x84d56fa974e6e9cc), cat(0xb7f6c0ea8ab4fcad, 0x6f01546ed3237ae5) }, // -2263
+ { cat(0x108071f994fc9860, 0x6a4459545d8587d7), cat(0x932bcd886ef7308a, 0xbf34438bdc1c6251) }, // -2262
+ { cat(0x1a671cc287fa8d67, 0x106d5bba2f3c0c8a), cat(0xeb7948da4b251a77, 0x98539f462cfa36e8) }, // -2261
+ { cat(0xaeb8e3ced32ed785, 0xa6bde2fb58fcd6d5), cat(0xbc61071508ea7b92, 0xe042e5d1bd94f8b9) }, // -2260
+ { cat(0x2560b63f0f58ac6a, 0xebcb1bfc4730abde), cat(0x96b405aa6d8862db, 0xe69beb0e3143fa2e) }, // -2259
+ { cat(0x089abd31b2277a44, 0xac782cc6d84ddfc9), cat(0xf1200910af409e2c, 0xa42cab49e86cc37d) }, // -2258
+ { cat(0xd3aefdc15b52c836, 0xf06023d246a4b307), cat(0xc0e66da6f29a1823, 0xb68a22a186bd6930) }, // -2257
+ { cat(0x0fbf31677c4239c5, 0x8d19b641d21d5c06), cat(0x9a51f1525bae79b6, 0x2ba1b54e05645427) }, // -2256
+ { cat(0x4c651bd8c6d05c6f, 0x4829239c83622cd6), cat(0xf6e9821d5f7d8f89, 0xdf6922166f06ed0b) }, // -2255
+ { cat(0xd6b7497a38a6b059, 0x06874fb0691b5712), cat(0xc5879b4ab2cad93b, 0x1920e811f26bf0d5) }, // -2254
+ { cat(0xabc5d461c6ebc047, 0x386c3fc05415df42), cat(0x9e0615d55bd57a95, 0xadb3ecdb28565a44) }, // -2253
+ { cat(0x793c8702d7df9a0b, 0x8d79ff9a2022fecf), cat(0xfcd689555fbbf755, 0xe2b97af8408a2a07) }, // -2252
+ { cat(0x94306c02464c7b3c, 0x712e6614e6826572), cat(0xca453aaab2fcc5de, 0x4efac8c69a08219f) }, // -2251
+ { cat(0xdcf3899b6b706296, 0xc0f1eb43eb9b845c), cat(0xa1d0fbbbc263d17e, 0xa5956d6bae6ce7b2) }, // -2250
+ { cat(0x7d8fa14922c04edf, 0x00c1890322e2d049), cat(0x8173fc96351ca798, 0x84778abc8b8a52f5) }, // -2249
+ { cat(0xfc19020e9e007e31, 0x9acf419e9e37b3a8), cat(0xcf1ffa89ee943f5a, 0x6d8c112dac1084bb) }, // -2248
+ { cat(0x634734d87e66cb5a, 0xe23f67b2182c8fba), cat(0xa5b32ed4bedcff7b, 0x8ad6742489a6d096) }, // -2247
+ { cat(0x4f6c2a46cb856f7b, 0xe832b95b468a0c95), cat(0x848f58aa324a65fc, 0x6f11f683a1524078) }, // -2246
+ { cat(0xb246aa0adf3be593, 0x0d1df55ed7434754), cat(0xd4188ddd1d43d660, 0xb1b65739021d33f3) }, // -2245
+ { cat(0x28388808b2965142, 0x70e4c44bdf6905dd), cat(0xa9ad3e4a7dcfdeb3, 0xc15eac2d9b4a8ff6) }, // -2244
+ { cat(0x8693a006f5450dce, 0xc0b7036fe5ed9e4b), cat(0x87bdcb6ecb0cb229, 0x677ef0247c3ba65e) }, // -2243
+ { cat(0x3db9000b22081617, 0x9abe6be63caf63aa), cat(0xd92fabe478145042, 0x3f31803a605f7097) }, // -2242
+ { cat(0xfe2d99a281a011ac, 0x7bcb8984fd591c88), cat(0xadbfbcb6c676a69b, 0x65c13361e6b2c078) }, // -2241
+ { cat(0x31be1482014cdaf0, 0x63093ad0caadb06d), cat(0x8affca2bd1f88549, 0x1e34291b1ef566c7) }, // -2240
+ { cat(0x82c9ba699bae2b1a, 0x380ec48144491a48), cat(0xde6610461cc0d541, 0xc9ed0e91cb223e0b) }, // -2239
+ { cat(0x68a161ee1624ef48, 0x2cd89d3436a0e1d3), cat(0xb1eb40381700aa9b, 0x07f0d874a281cb3c) }, // -2238
+ { cat(0xba1ab4be781d8c39, 0xbd7a175cf880b4a9), cat(0x8e55ccf9ac00887c, 0x065a46c3b534a296) }, // -2237
+ { cat(0xf6912130c02f46c2, 0xc8c35894c0cdeddb), cat(0xe3bc7b2913340d93, 0x3d5d3e05eeba9dbd) }, // -2236
+ { cat(0x920db4270025d235, 0x6d6913aa33d7f17c), cat(0xb630628742900adc, 0x311764d18bc87e31) }, // -2235
+ { cat(0xdb3e29b8cceb0e91, 0x24540fbb5cacc130), cat(0x91c04ed29ba66f16, 0x8dac50a7a306cb5a) }, // -2234
+ { cat(0xf86375f47b11b0e8, 0x3a20192bc77aceb3), cat(0xe933b150f90a4b57, 0x4913b43f6b3e122a) }, // -2233
+ { cat(0x9382c4c395a7c0b9, 0xc819adbc9f957229), cat(0xba8fc10d94083c45, 0xd40fc365ef64db55) }, // -2232
+ { cat(0x42cf03cfaaec9a2e, 0x39ae2496e6112821), cat(0x953fcda4766cfd04, 0xa9a635eb25ea4911) }, // -2231
+ { cat(0x37b19fb2ab1429e3, 0x8f7d0757d681d9ce), cat(0xeecc7c3a5714c807, 0x75d6bcab6fdd41b5) }, // -2230
+ { cat(0xf95ae62888dcee4f, 0xa5fd9f797867e172), cat(0xbf09fcfb78dd6cd2, 0xc4abca22bfe43490) }, // -2229
+ { cat(0xc77beb53a0b0bea6, 0x1e647f9460531ac2), cat(0x98d4ca62c7178a42, 0x36efd4e899835d40) }, // -2228
+ { cat(0x0bf97885cde79770, 0x30a0cc209a1e9135), cat(0xf487aa37a4f276d0, 0x57e6217428d22ece) }, // -2227
+ { cat(0x3cc7939e3e52df8c, 0xf3b3d6807b4ba75e), cat(0xc39fbb5fb7285f0d, 0x131e8129ba41bf0b) }, // -2226
+ { cat(0x63d2dc7e98424c70, 0xc2f6453395d61f7e), cat(0x9c7fc9195f537f3d, 0xa8e5342161ce326f) }, // -2225
+ { cat(0x395160ca8d36e0b4, 0x6b23a1ec22f03264), cat(0xfa660e8efeebfec9, 0x0e3b869bcfb050b2) }, // -2224
+ { cat(0x2ddab3d53dc58090, 0x55b61b234f268eb6), cat(0xc851a53f3256656d, 0xa4fc6bafd959da28) }, // -2223
+ { cat(0xbe488fddcb0466d9, 0xde2b48e90c1ed892), cat(0xa04150ff5b785124, 0x83fd22f31447e1b9) }, // -2222
+ { cat(0x983a0cb16f36b8ae, 0x4b55d3eda34be075), cat(0x803440cc492d0db6, 0xcffdb58f436cb494) }, // -2221
+ { cat(0xc05ce11be5245ab0, 0x78895315d21300bb), cat(0xcd2067ad41e1af8a, 0xe662bc186be120ed) }, // -2220
+ { cat(0x337d80e31db6aef3, 0x93a10f44a80f33c9), cat(0xa419ec8a9b1af2d5, 0x851bc9ad231a80be) }, // -2219
+ { cat(0xc2cacd827e2bbf29, 0x42e73f6a200c296d), cat(0x8347f06ee27bf577, 0x9dafd48a827b9a31) }, // -2218
+ { cat(0x0477af373045fea8, 0x6b0b98a9cce04248), cat(0xd20cb3e49d932258, 0xfc4c874403f8f6b6) }, // -2217
+ { cat(0x0392f2928d04cbb9, 0xef3c7a2170b3683a), cat(0xa80a2983b14281e0, 0xc9d6d29ccffa5ef8) }, // -2216
+ { cat(0xcfa8c20ed7370961, 0x8c3061b45a29202e), cat(0x866e879c8dcece4d, 0x6e45754a3ffb7f2c) }, // -2215
+ { cat(0x4c41367e2524dbcf, 0x46b3cf86f6a8337d), cat(0xd7173f60e2e47d48, 0xb06f2210665f31e1) }, // -2214
+ { cat(0x09cdc531b750afd9, 0x055ca60592202931), cat(0xac12991a4f1d3106, 0xf38c1b4051e5c181) }, // -2213
+ { cat(0x6e3e375af90d597a, 0x6ab084d141b35427), cat(0x89a87a7b727dc0d2, 0x5c7015cd0e51679a) }, // -2212
+ { cat(0x7d3058918e7bc25d, 0x7780d48202b886a5), cat(0xdc40c3f8b72f9aea, 0x2d8022e1b0823f5d) }, // -2211
+ { cat(0x9759e07471fc9b7d, 0xf933dd34cefa0551), cat(0xb033cffa2c261588, 0x2466824e26ce9917) }, // -2210
+ { cat(0xac47e6c38e63af97, 0xfa8fe42a3f2e6aa7), cat(0x8cf63ffb5684de06, 0x8385350b523ee0df) }, // -2209
+ { cat(0x13a63e05b09f7f59, 0x90e639dd31e3ddd8), cat(0xe189fff88a6e300a, 0x6c0854dee9fe3499) }, // -2208
+ { cat(0x0fb8319e26e5ff7a, 0xda51c7e427e97e47), cat(0xb46e66606ebe8cd5, 0x2339dd7f21982a14) }, // -2207
+ { cat(0x72f9c14b5251992f, 0x150e3983532131d2), cat(0x905851e6befed710, 0xe8fb1798e7acee76) }, // -2206
+ { cat(0xb7f602121d4f5b7e, 0x8816c26bb8351c83), cat(0xe6f3b63dfe648b4e, 0x4191bf5b0c47e3f0) }, // -2205
+ { cat(0xc65e680e7dd915fe, 0xd34568562cf74a03), cat(0xb8c2f83198506f71, 0xce0e32af3d064ff3) }, // -2204
+ { cat(0x9eb1ecd864adab32, 0x429ded11bd92a19c), cat(0x93cf2cf479d9f2c1, 0x71a4f558fd9ea65c) }, // -2203
+ { cat(0x644fe15a3aaf7850, 0x6a96481c628435c6), cat(0xec7eae53f6298468, 0xb5d4bbc195caa3c7) }, // -2202
+ { cat(0xb6a64de1c88c6040, 0x5545067d1b9cf7d2), cat(0xbd32250ff82136ba, 0x2b10963477d54fd2) }, // -2201
+ { cat(0xc551d7e7d3a38033, 0x776a6b97494a5fdb), cat(0x975b50d9934dc561, 0xbc0d44f6c6443fdb) }, // -2200
+ { cat(0x3bb6263fb90599eb, 0xf243df587543cc91), cat(0xf22bb48f5216089c, 0x60153b24706d32f9) }, // -2199
+ { cat(0x962b51cc94047b23, 0x28364c46c4363d41), cat(0xc1bc9072a811a07d, 0x19aa95b6c0575bfa) }, // -2198
+ { cat(0x7822a7d6dcd06282, 0x8691d69f035e9767), cat(0x9afd405bb9a7b397, 0x47bbaaf899df7cc8) }, // -2197
+ { cat(0xc03772f1614d6a6a, 0x70e95764d230f23f), cat(0xf7fb9a2c5c3f85be, 0xd92c44c0f6326140) }, // -2196
+ { cat(0x335f8f27810abb88, 0x5a5445ea41c0c1cc), cat(0xc662e1bd169937cb, 0xe0f03700c4f51a9a) }, // -2195
+ { cat(0x8f7fa5b934089606, 0xaea9d188349a34a3), cat(0x9eb5816412142ca3, 0x1a59c59a372a7bae) }, // -2194
+ { cat(0xb265d5f5200dbcd7, 0x7ddc8273875d2105), cat(0xfdef356ce9b9e104, 0xf6f608f6beaa5f7d) }, // -2193
+ { cat(0x5b84ab2a800afd79, 0x317d352939174d9e), cat(0xcb25c457216180d0, 0xc591a0c565551931) }, // -2192
+ { cat(0xaf9d55bb99a26460, 0xf4642a8760df714b), cat(0xa2849d12811acd73, 0xd1414d6ab777475a) }, // -2191
+ { cat(0xbfb11162e14eb6b3, 0xf6b6886c4d7f8dd6), cat(0x8203b0db9a7bd78f, 0xda9aa4555f929f7b) }, // -2190
+ { cat(0x65e81bd1687df11f, 0xf1240d7a1598e2ef), cat(0xd005e7c5c3f958e6, 0x2a9106eeff50ff2c) }, // -2189
+ { cat(0xb7ece30ded318db3, 0x27500ac811471bf3), cat(0xa66b1fd16994471e, 0x8874058bff73ff56) }, // -2188
+ { cat(0xc6571c0b2427a48f, 0x52a66f067438e329), cat(0x85227fdabadd05b2, 0x06c337a332c332ab) }, // -2187
+ { cat(0x708b6011d372a0e5, 0x510a4b3d86c16b74), cat(0xd503ffc45e2e6f83, 0x3e0525d1ead1eaac) }, // -2186
+ { cat(0x26d5e674a92880b7, 0x74083c31389abc5d), cat(0xaa699969e4f1f2cf, 0x64d0eb0e5574bbbd) }, // -2185
+ { cat(0x1f11852a20ed33c5, 0xf66cfcf42d4896b1), cat(0x88547abb1d8e5bd9, 0x1d73ef3eaac3c964) }, // -2184
+ { cat(0x981c084367e1ec6f, 0xf0ae6186aeda8ab4), cat(0xda20c45e95b092f4, 0xfbecb1fdde060f06) }, // -2183
+ { cat(0x467cd3691fe7f059, 0x8d584e0558aed55d), cat(0xae809d1877c07590, 0xc98a27fe4b380c05) }, // -2182
+ { cat(0x3863dc54198659e1, 0x3de03e6aad58aab1), cat(0x8b9a1746c6339140, 0xa13b5331d5c67004) }, // -2181
+ { cat(0x27062d535c0a2968, 0x630063dde2277781), cat(0xdf5cf20ad6b8e867, 0x685eeb82efa3e66d) }, // -2180
+ { cat(0x526b5775e33b5453, 0x8266b64b1b52c601), cat(0xb2b0c1a24560b9ec, 0x537f22cf261cb857) }, // -2179
+ { cat(0xa855df918295dd0f, 0x9b855ea27c423801), cat(0x8ef3ce1b6ab3c7f0, 0x42cc1bd8eb4a2d12) }, // -2178
+ { cat(0x408965b59dbc94e5, 0xc5a23103fa038cce), cat(0xe4b949c577860cb3, 0x9e135fc17876ae84) }, // -2177
+ { cat(0x006deaf7b163aa51, 0x6ae82736619c70a5), cat(0xb6faa16ac604d6f6, 0x180f7fcdf9f88b9d) }, // -2176
+ { cat(0x0057ef2c8de9550d, 0xef201f5eb47d26ea), cat(0x92621abbd19d78c4, 0xe00c663e6193a2e4) }, // -2175
+ { cat(0xcd597eadafdbbb49, 0x7e99cbcaba61d7dd), cat(0xea36912c82958e07, 0xcce0a3970285d16c) }, // -2174
+ { cat(0xd77acbbe264962a1, 0x3214a308951b1317), cat(0xbb5eda8a02113e6c, 0xa3e6e9459b9e4123) }, // -2173
+ { cat(0xdf956fcb51d44ee7, 0x5b43b5a07748dc13), cat(0x95e57ba19b40febd, 0x4febedd1494b674f) }, // -2172
+ { cat(0xcc224c7882ed4b0b, 0xc539229a58749351), cat(0xefd5929c2b9b312e, 0xe646494edbabd87f) }, // -2171
+ { cat(0x701b706068bdd5a3, 0x042db54846c3a90e), cat(0xbfde0ee35615c0f2, 0x51d1d43f16231399) }, // -2170
+ { cat(0x8ce2c04d2097de1c, 0x0357c439d23620d8), cat(0x997e724f78116728, 0x4174a9cc11b5a947) }, // -2169
+ { cat(0x47d133ae9a8c9693, 0x388c6d2950569af3), cat(0xf5971d4bf34f0b73, 0x9beddc79b5ef753f) }, // -2168
+ { cat(0x0640f62548707875, 0xc6d6bdbaa6abaf29), cat(0xc478e43cc2a5a2c2, 0xe324b0615e592a99) }, // -2167
+ { cat(0x6b672b5106c0605e, 0x38abcafbb88958ed), cat(0x9d2d8363ceeae89b, 0xe8ea26b44b7a887a) }, // -2166
+ { cat(0x78a5121b3e009a30, 0x5aac77f9274227e2), cat(0xfb7c056c7e44a75f, 0xdb103ded4590da5d) }, // -2165
+ { cat(0x2d50db48fe66e1c0, 0x4889f9941f681fe8), cat(0xc9300456cb6a1f7f, 0xe27364bdd140aeb1) }, // -2164
+ { cat(0x2440af6d98524e33, 0x6d3b2e1019201986), cat(0xa0f336abd5ee7f99, 0x81f5ea317433bef4) }, // -2163
+ { cat(0xb69a25f146a83e8f, 0x8a95be73474ce138), cat(0x80c29223118b9947, 0x9b2b21c129c2ff29) }, // -2162
+ { cat(0xf0f6a31ba4406418, 0xddbc63eba547cec0), cat(0xce041d04e8df5ba5, 0xc511cf9b7604cb75) }, // -2161
+ { cat(0x5a5ee8e2e9cd1ce0, 0xb1638322ea9fd89a), cat(0xa4d0173720b2afb7, 0xd0db0c7c5e6a3c5e) }, // -2160
+ { cat(0x484bed8254a4171a, 0x2782cf4f22197a15), cat(0x83d9ac2c1a288c93, 0x0d7c09fd1854fd18) }, // -2159
+ { cat(0x0d4648d0876cf1c3, 0x726ae54b69c25cee), cat(0xd2f5e0469040e0eb, 0x48c67661c087fb5a) }, // -2158
+ { cat(0x3dd1d3da05f0c169, 0x2855843c549b7d8b), cat(0xa8c4b36ba69a4d89, 0x07052b8166d32f7b) }, // -2157
+ { cat(0xfe41764804c09aba, 0x86aad03043af97a3), cat(0x8703c2bc85483e07, 0x38d0ef9ab8a8f2c8) }, // -2156
+ { cat(0x96cf23a66e00f790, 0xd777b3806c4c25d1), cat(0xd8060460d540633e, 0xc14e4c2ac10e5141) }, // -2155
+ { cat(0x123f4fb85800c60d, 0x792c8f99f03ceb0e), cat(0xacd19d1a44338298, 0x9aa509bbcda50dce) }, // -2154
+ { cat(0x41cc3fc6accd6b3d, 0xfa8a0c7b26972271), cat(0x8a414a7b69c2cee0, 0x7bb73afca4840b0b) }, // -2153
+ { cat(0x3613993de148ab96, 0x5da9ad91d758371c), cat(0xdd3543f8a937b167, 0x2c585e610739ab45) }, // -2152
+ { cat(0x2b42e0fe4dd3bc78, 0x4aee2474ac46927d), cat(0xb0f76993ba92f452, 0x89e04b80d2948904) }, // -2151
+ { cat(0xef68b3fea4a96393, 0x6f24e9f6f0387531), cat(0x8d92badc95425d0e, 0xd4b36f9a42106d9c) }, // -2150
+ { cat(0x4bdab9976ddbd285, 0x7ea17657e6c0bb81), cat(0xe2845e2dbb9d61b1, 0x54524c2a034d7c2e) }, // -2149
+ { cat(0x6fe22e12be497537, 0x98812b798566fc67), cat(0xb536b1be2fb11af4, 0x437509bb35d7968b) }, // -2148
+ { cat(0xbfe824dbcb6df75f, 0xad3422c79debfd1f), cat(0x90f88e31bfc0e25d, 0x02c407c8f7dfaba2) }, // -2147
+ { cat(0xffd9d492df165899, 0x152037a5c97994ff), cat(0xe7f416b5ff9b03c8, 0x046cd9418c99129d) }, // -2146
+ { cat(0x3314aa0f18dead47, 0x4419c61e3ac7aa65), cat(0xb990122b32e2696c, 0xd0571434707a754b) }, // -2145
+ { cat(0xc276ee727a4bbdd2, 0x9ce16b4b6239551e), cat(0x947341bc28b52123, 0xd9df435d26c85dd5) }, // -2144
+ { cat(0x9d8b171d90792fb7, 0x6168ababd05bbb63), cat(0xed8535f9dabb6839, 0x5c986bc83e0d62ef) }, // -2143
+ { cat(0x4ad5ac17a6c7595f, 0x81208956404962b6), cat(0xbe042b2e4895ecfa, 0xb079efd364d78259) }, // -2142
+ { cat(0x08aaf012ebd2ade6, 0x00e6d445003ab55e), cat(0x980355bea077f0c8, 0x8d2e5975ea4601e1) }, // -2141
+ { cat(0x4111801e461de309, 0x9b0aed3b33912230), cat(0xf338893100bfe7a7, 0x484a28bcaa099c9b) }, // -2140
+ { cat(0x9a74667e9e7e4f3a, 0xe26f242f5c741b5a), cat(0xc293a0f40099861f, 0x6d082096ee6e16e2) }, // -2139
+ { cat(0xe1f6b8654b983f62, 0x4ebf5025e39015e1), cat(0x9ba94d90007ad1b2, 0xbda01a125858124e) }, // -2138
+ { cat(0xcff1270878f3989d, 0x4acbb36fd2802302), cat(0xf90ee28000c482b7, 0x95ccf683c08cea17) }, // -2137
+ { cat(0xa65a85a060c2e07d, 0xd56fc2bfdb99b59b), cat(0xc73f1b999a36cef9, 0x44a3f86966d721ac) }, // -2136
+ { cat(0x51e204804d68b397, 0xddf3023316149149), cat(0x9f65afae14f8a594, 0x36e993878578e7bd) }, // -2135
+ { cat(0xb6366d9a1574528c, 0x96519d1e89ba820e), cat(0xff09191687f43c20, 0x57dc1f3f3bf4a5fb) }, // -2134
+ { cat(0x2b5ebe14ddf6a870, 0x78414a7ed49534d8), cat(0xcc07474539903019, 0xdfe34c32965d5196) }, // -2133
+ { cat(0x22b231aa4b2bb9f3, 0x93676ecbdd442a47), cat(0xa33905d0fad9c014, 0xb31c3cf545177478) }, // -2132
+ { cat(0xb55b5aeea289618f, 0xa91f8bd64a9cee9f), cat(0x829404a72f1499aa, 0x28e363f76a7929f9) }, // -2131
+ { cat(0x88922b176a7568e5, 0xdb65ac8a10fb1765), cat(0xd0ecd43eb1ba8f76, 0xa7d2398bdd8ea98f) }, // -2130
+ { cat(0x6d41bc12bb9120b7, 0xe2b7bd3b40c8df84), cat(0xa723dcfef4953f92, 0x1fdb613cb13eee0c) }, // -2129
+ { cat(0x8a9afcdbc940e6f9, 0x822c97629a3a4c6a), cat(0x85b64a659077660e, 0x7fe2b4308dcbf1a3) }, // -2128
+ { cat(0xaa919492db9b0b28, 0xd047589dc3907a42), cat(0xd5f07708e7257017, 0x33045380e2dfe905) }, // -2127
+ { cat(0x554143a8afaf3c20, 0xa69f7a17cfa6c835), cat(0xab26c5a0b8eac012, 0x8f36a933e8b320d1) }, // -2126
+ { cat(0xaa9a9c86f2f29680, 0x854c61aca61f0691), cat(0x88ebd14d60bbccdb, 0xa5c5542986f5b3da) }, // -2125
+ { cat(0xaa90fa7184b75734, 0x087a35e109cb3db4), cat(0xdb12e87bcdf947c5, 0xd60886a8d7ef862a) }, // -2124
+ { cat(0xeeda61f46a2c45c3, 0x39fb5e4da16f6490), cat(0xaf4253963e610637, 0xde6d3887132604ee) }, // -2123
+ { cat(0xbf151b29ee89d168, 0xfb2f7ea48125ea0d), cat(0x8c350fab651a6b5f, 0xe5242d38dc1e6a58) }, // -2122
+ { cat(0xfe882b764a761bdb, 0x2b7f31073509767b), cat(0xe054e5df082a4566, 0x3b6d1527c697108d) }, // -2121
+ { cat(0xcba022c5085e7caf, 0x55ff5a6c2a6df863), cat(0xb3771e4c06883784, 0xfc57441fd21273a4) }, // -2120
+ { cat(0x094ce89da04b96f2, 0xab32aebceebe604f), cat(0x8f927ea3386cf937, 0x3045d01974db8fb7) }, // -2119
+ { cat(0x4214a7629a128b1d, 0xdeb77dfb1797007e), cat(0xe5b731052714c1f1, 0xe6d619c254927f8b) }, // -2118
+ { cat(0x9b43b91bae753c17, 0xe55f97fc12df3398), cat(0xb7c5c0d0ec109b27, 0xebde7b01dd41ffa2) }, // -2117
+ { cat(0x7c362dafbec43013, 0x1de613300f18f614), cat(0x93049a40bcda15b9, 0x897ec8ce4a9b32e8) }, // -2116
+ { cat(0x6056af7f97a04ceb, 0x6309b84ce4f4bcec), cat(0xeb3a9067949022c2, 0x7597a7b0775eb7da) }, // -2115
+ { cat(0x4d1225ffac803d89, 0x1c07c6a3ea5d63f0), cat(0xbc2ed9ec76d9b568, 0x5e12ec8d2c4bc648) }, // -2114
+ { cat(0x3da81e662399cad4, 0x166c9ee9884ab65a), cat(0x968be189f8ae2ab9, 0xe4dbf070f03c9ea0) }, // -2113
+ { cat(0x95d9ca3d05c2de20, 0x23e0fe4273aabd5c), cat(0xf0dfcf43277d1129, 0x6e2cb3e7e6c76433) }, // -2112
+ { cat(0xde47d4fd9e357e80, 0x1cb3fe9b8fbbcab0), cat(0xc0b30c35b930da87, 0x8b56f6531f05e9c2) }, // -2111
+ { cat(0xe50643fe182acb99, 0xb08ffee2d963088d), cat(0x9a28d69160f3e206, 0x09125ea8e59e549b) }, // -2110
+ { cat(0xd4d6d33026aadf5c, 0x4db3316af56b40e1), cat(0xf6a7bdb567ec9cd6, 0x74ea310e3c30875f) }, // -2109
+ { cat(0x10abdc2685557f7d, 0x0af5c1225def671b), cat(0xc552fe2ab98a1711, 0xf721c0d83026d2b3) }, // -2108
+ { cat(0xda23168537779930, 0xd591674eb18c527c), cat(0x9ddbfe88946e78db, 0x2c1b00acf3524228) }, // -2107
+ { cat(0x9038240858bf5b81, 0x55b57217827a1d93), cat(0xfc9330da871727c5, 0x135e677b1eea0374) }, // -2106
+ { cat(0x402ce9a046ff7c67, 0x77c45b4601fb4adc), cat(0xca0f5a486c128637, 0x42b1ec627f219c5d) }, // -2105
+ { cat(0x3357214d05993052, 0xc636af6b34c908b0), cat(0xa1a5e1d389a86b5f, 0x688e56b5328149e4) }, // -2104
+ { cat(0xc2ac1aa4047a8d0f, 0x04f88c55c3d406f3), cat(0x8151817607b9ef7f, 0x86d8455dc20107e9) }, // -2103
+ { cat(0x6aacf76cd3f74818, 0x07f413bc6c867185), cat(0xcee8cf233f8fe598, 0xd7c06efc699b3fdc) }, // -2102
+ { cat(0x888a5f8a432c39ac, 0xd329a9638a05279e), cat(0xa5870c1c32d9847a, 0x46338bfd2148ffe3) }, // -2101
+ { cat(0x3a084c6e9c236157, 0x0f548782d4d0ec7e), cat(0x846c09b028ae0395, 0x04f609974dd3ffe9) }, // -2100
+ { cat(0x900d471760389bbe, 0x7eeda59e214e4730), cat(0xd3e00f8041166c21, 0xa189a8f2161fffdb) }, // -2099
+ { cat(0x400a9f45e693afcb, 0x98be1e181aa505c0), cat(0xa9800c669a785681, 0x4e07ba5b44e66649) }, // -2098
+ { cat(0x333bb29e520fbfd6, 0x13cb4b467bb737cd), cat(0x8799a38548604534, 0x3e6c9515d0b851d4) }, // -2097
+ { cat(0x1ec5ea96e9b2cc89, 0xb945453d92bebfae), cat(0xd8f5d26eda33a1ed, 0x30adbb561ac082ed) }, // -2096
+ { cat(0xb237eedf215bd6d4, 0x94376a97a8989958), cat(0xad9175257b5c818a, 0x8d57c911af0068bd) }, // -2095
+ { cat(0xf4f98be5b44978aa, 0x102c5546207a1447), cat(0x8adac41dfc4a013b, 0xa4463a748c0053ca) }, // -2094
+ { cat(0x87f5aca2ba0f2776, 0x8046eed69a5ced3e), cat(0xde2ad3632d43352c, 0x3a09f720e0008611) }, // -2093
+ { cat(0x9ff7bd4efb3f52c5, 0x336bf245484a5765), cat(0xb1bbdc4f5768f756, 0x94d4c5b3e666d1a7) }, // -2092
+ { cat(0x4cc6310bfc32a89d, 0xc2bcc1d106a1df84), cat(0x8e2fe372ac53f912, 0x10aa37c31eb8a7b9) }, // -2091
+ { cat(0xe13d1b4660510dc9, 0x3794694e7102ff39), cat(0xe37fd25113b98e83, 0x4ddd2604fdf43f8e) }, // -2090
+ { cat(0xe76415d1e6a73e3a, 0x92dd210b8d9bff61), cat(0xb5ffdb740fc7a535, 0xd7e41e6a64c3660b) }, // -2089
+ { cat(0xb91cde418552982e, 0xdbe41a6fa47ccc4e), cat(0x91997c5cd96c842b, 0x131ce521ea35eb3c) }, // -2088
+ { cat(0x282e3068d550f37e, 0x2ca02a4c3a6146e2), cat(0xe8f593c7c24739de, 0x84fb083643897861) }, // -2087
+ { cat(0x868b59ed7773f5fe, 0x8a19bb702eb438b5), cat(0xba5e0fd301d294b2, 0x03fc0691cfa12d1a) }, // -2086
+ { cat(0xd20914bdf9299198, 0x6e7afc59bef693c4), cat(0x95180ca8ce42108e, 0x69966ba7d94dbdae) }, // -2085
+ { cat(0xb674edfcc1dc1c27, 0x172b2d5c64bdb939), cat(0xee8ce10e16d01a7d, 0x75bd790c8ee2c917) }, // -2084
+ { cat(0xc52a57fd67e349b8, 0xdf55bde383cafa94), cat(0xbed71a71abd9aeca, 0xc497940a0be8a0df) }, // -2083
+ { cat(0xd0eeaccab982a160, 0xb2aafe4f9ca26210), cat(0x98ac1527bcae256f, 0x03ac766e6fed4d7f) }, // -2082
+ { cat(0xb4b114778f37689a, 0xb777fd4c2dd09ce7), cat(0xf446883f9449d57e, 0x6c4723e3e6487bff) }, // -2081
+ { cat(0xc3c0dd2c7292ba15, 0x5f933109be407d86), cat(0xc36ba032dd07ddfe, 0xbd05b64feb6d2fff) }, // -2080
+ { cat(0x69671756c20efb44, 0x4c75c0d49833979e), cat(0x9c5619c24a6cb198, 0x9737c50cbc575999) }, // -2079
+ { cat(0x0f0b588ad017f86d, 0x4722ce20f385bf63), cat(0xfa235c6a10ade8f4, 0x25260814608bc28f) }, // -2078
+ { cat(0x726f7a08a679938a, 0x9f4f0b4d8f9e32b6), cat(0xc81c49ee73be53f6, 0x841e6cdd1a096872) }, // -2077
+ { cat(0xf525fb3a1ec7a93b, 0xb2a5a2a472e4f55e), cat(0xa016a18b8fcb765e, 0xd0185717480786c1) }, // -2076
+ { cat(0x2a84c8fb4bd2edc9, 0x5bb7b5505bea5de5), cat(0x80121ad60ca2c518, 0xa679df45d339389b) }, // -2075
+ { cat(0xaa6e0e5edfb7e2db, 0xc5f2bbb3c643c96e), cat(0xcce9c489add13b5a, 0xa3f6320951f5275e) }, // -2074
+ { cat(0xeebe71e57fc64f16, 0x37f562f638363abf), cat(0xa3ee36d48b0dc915, 0x4ff8280774c41f7e) }, // -2073
+ { cat(0xf231f4b7996b7278, 0x2cc44f2b602b6232), cat(0x8324f8aa08d7d411, 0x0cc6866c5d69b2cb) }, // -2072
+ { cat(0x504fedf28f1250c0, 0x47a07eabcd1236b7), cat(0xd1d4c1100e26201b, 0x47a40a46fbdc5146) }, // -2071
+ { cat(0xa6a657f53f41da33, 0x6c8065563da82bc5), cat(0xa7dd67400b51b349, 0x061cd5059649da9e) }, // -2070
+ { cat(0x8551dff765ce4829, 0x2399eaab6486896b), cat(0x864ab900090e2907, 0x381710d14507e218) }, // -2069
+ { cat(0x3bb633256fb07375, 0x05c311123a70dbde), cat(0xd6ddf4ccdb49db3e, 0xc024e7b53b3fd027) }, // -2068
+ { cat(0x2fc4f5b78c8d292a, 0x6b02740e9527164b), cat(0xabe4c3d715d4af65, 0x6683ec90fc330cec) }, // -2067
+ { cat(0xbfd0c492d6d75421, 0xef3529a5441f4509), cat(0x8983cfdf44aa25ea, 0xb8698a0d968f3d89) }, // -2066
+ { cat(0xffb46db7be255369, 0x7ebb75d539cba1a8), cat(0xdc0619653aa9d644, 0x5a42767c24186275) }, // -2065
+ { cat(0xffc38af964eaa921, 0x322f9177616fb486), cat(0xb004e11dc887de9d, 0x1501f863501381f7) }, // -2064
+ { cat(0x663608c783eeedb4, 0x28260df91abfc39f), cat(0x8cd0b417d39fe54a, 0x7734c6b5d9a934c6) }, // -2063
+ { cat(0xa389a7a59fe4af86, 0xa6a3498e9132d297), cat(0xe14decf2ec330877, 0x25213defc2a85470) }, // -2062
+ { cat(0x1c6e1fb7b31d5938, 0x854f6e0ba75bdbac), cat(0xb43e5728bcf5a05f, 0x50e764bfceed105a) }, // -2061
+ { cat(0x7d24e62c8f4aadc6, 0xd10c580952afe2f0), cat(0x9031df53ca5e19e5, 0xda52b6ffd8bda6ae) }, // -2060
+ { cat(0x61d4a37a7edde2d7, 0xb4e08cdbb77fd180), cat(0xe6b6321faa30296f, 0xc3b78b32f462a44a) }, // -2059
+ { cat(0x4e43b5fb98b18246, 0x2a4d3d7c92cca79a), cat(0xb891c1b2ee8cedf3, 0x02f93c28c3821d08) }, // -2058
+ { cat(0x0b695e62e08e01d1, 0xbb70fdfd423d52e2), cat(0x93a7ce28bed724c2, 0x68c76353cf9b4a6d) }, // -2057
+ { cat(0x1242309e3416694f, 0x924e632ed0621e36), cat(0xec3fb04131583ad0, 0xa7a56bb94c2baa48) }, // -2056
+ { cat(0x7501c07e9011edd9, 0x41d84f58a6b4e4f8), cat(0xbcffc0342779c8a6, 0xec84562dd6895506) }, // -2055
+ { cat(0x90ce339873418b14, 0x34ad0c46ebc3ea60), cat(0x97330029b92e3a1f, 0x239d11be453aaa6b) }, // -2054
+ { cat(0x8149ec271ecf44ed, 0x2114e07179397700), cat(0xf1eb3375f516c365, 0x05c81c63a1f77712) }, // -2053
+ { cat(0x9aa189b8e5729d8a, 0x80dd805ac7612c00), cat(0xc188f5f7f745691d, 0x9e39b04fb4c5f8db) }, // -2052
+ { cat(0x7bb46e2d845bb13b, 0x9a4acd156c4dbccd), cat(0x9ad3f7f9929dedb1, 0x4b6159d95d6b2d7c) }, // -2051
+ { cat(0xc5ed7d15a092b52c, 0x2a11482246e2c7ae), cat(0xf7b98cc2842fe2b5, 0x45688fc22f11e260) }, // -2050
+ { cat(0x04bdfdaae6dbc423, 0x54daa01b6be89fbe), cat(0xc62e0a35368cb55d, 0xd1207301bf4181e7) }, // -2049
+ { cat(0x6a3197bbebe3034f, 0x77154ce2bcba1965), cat(0x9e8b3b5dc53d5de4, 0xa74d28ce329ace52) }, // -2048
+ { cat(0xa9e8f2c64638054b, 0xf1bbae37945cf56e), cat(0xfdab922fa1fbc96d, 0xd87b747d1dc47d50) }, // -2047
+ { cat(0xbb20c238382cd109, 0x8e2fbe92dd172abf), cat(0xcaefa8261b2fd457, 0xe062c3974b039773) }, // -2046
+ { cat(0x2f4d682cf9bd7407, 0xa4f2fedbe4128899), cat(0xa2595351af5976ac, 0xb3823612a26945f6) }, // -2045
+ { cat(0xbf712023fafdf66c, 0x83f598afe9a86d47), cat(0x81e10f748c479223, 0xc2ce91a881edd191) }, // -2044
+ { cat(0x324e99d32b2ff0ad, 0x9fef5ab30f73e20b), cat(0xcfce7f20e072836c, 0x6ae41c40cfe2e8e9) }, // -2043
+ { cat(0x8ea547dc228cc08a, 0xe659155c0c5cb4d6), cat(0xa63ecc1a4d286923, 0x88b67d00a64f20ba) }, // -2042
+ { cat(0x3eea9fe34ed7006f, 0x1eadaab009e3c3de), cat(0x84ff09aea420541c, 0x6d5eca66eb728095) }, // -2041
+ { cat(0xfe4433054af19a4b, 0x64491119a96c6c96), cat(0xd4cb42b1069a202d, 0x7bcadd7178b73421) }, // -2040
+ { cat(0x65035c043bf47b6f, 0x836da747babd23ac), cat(0xaa3c355a6bae8024, 0x6308b12793c5c34e) }, // -2039
+ { cat(0xb735e336965d2f8c, 0x692485d2fbca82f0), cat(0x88302aaebc8b99b6, 0xb5a08db943049c3e) }, // -2038
+ { cat(0xf1efd1f0f09518e0, 0xa83a6fb7f94404b3), cat(0xd9e6aab12dac2924, 0x55cdaf8ed1a0f9fd) }, // -2037
+ { cat(0x8e5974c0c077471a, 0x202ebfc6610336f5), cat(0xae52222757bcedb6, 0xab0af2d8a7b3fb31) }, // -2036
+ { cat(0xd847909a33929f48, 0x19beffd1e735c591), cat(0x8b74e81f7963f15e, 0xef3bf57a1fc32f5a) }, // -2035
+ { cat(0xf3a5b429ec1dcba6, 0x8f97ffb63ebc6f4e), cat(0xdf2173658f064efe, 0x4b93225cff9eb22a) }, // -2034
+ { cat(0xf61e29bb234b0952, 0x0c79995e9896bf72), cat(0xb281291e0c050bfe, 0xa2dc1b7d994bc1bb) }, // -2033
+ { cat(0x5e7e87c8e908d441, 0xa3947ab213abcc5b), cat(0x8ecdba7e70040998, 0x8249af97add63496) }, // -2032
+ { cat(0xfd973fa7db41539c, 0x38ed911cec4613c5), cat(0xe47c5d9719a00f5a, 0x6a0f7f5916238756) }, // -2031
+ { cat(0x97ac32ecaf677616, 0x93f140e3f0380fd1), cat(0xb6c9e478e14cd915, 0x21a5ff7a781c6c45) }, // -2030
+ { cat(0x79568f23bf85f812, 0x0ff433e98cf9a641), cat(0x923b1d2d810a4744, 0x1aeb32c86016bd04) }, // -2029
+ { cat(0x288a7e9f98d659b6, 0x7fed1fdc14c2a39b), cat(0xe9f82eaf34dd3ed3, 0x5e451e0d668ac807) }, // -2028
+ { cat(0xed3b987fad7847c5, 0x3324197cdd6882e2), cat(0xbb2cf225c3e43242, 0xb1d0e4d7853bd338) }, // -2027
+ { cat(0x8a96139957936c9d, 0xc28347971786cf1b), cat(0x95bd8e849cb68e9b, 0xc173ea46042fdc2d) }, // -2026
+ { cat(0xddbcec288c1f142f, 0x9d9ed8f1bf3e182c), cat(0xef95b0d42df0e42c, 0x68b976d66d196048) }, // -2025
+ { cat(0x7e30bced3ce5a9bf, 0xb14be0c165cb4689), cat(0xbfaaf3dcf18d8356, 0xba2df8ab8a7ab36d) }, // -2024
+ { cat(0x31c0972430b7baff, 0xc109809ab7d5d208), cat(0x99558fe3f47135de, 0xfb57fa22d52ef5f1) }, // -2023
+ { cat(0x82cdbea04df2c4cc, 0x680f342abfbc833f), cat(0xf555b30653e85631, 0x92265d04884b231b) }, // -2022
+ { cat(0x9bd7cbb3718f03d6, 0xb9a5c355663068ff), cat(0xc4448f38432044f4, 0x74eb7d9d39d5b5af) }, // -2021
+ { cat(0xe313095c5ad8cfde, 0xfaeb02aab826ba66), cat(0x9d03a5c69c19d0c3, 0x90bc647dc7de2af2) }, // -2020
+ { cat(0xd1b80efa2af47fcb, 0x2b119dddf3712a3c), cat(0xfb39093dc68fb46c, 0x1ac7072fa63044b7) }, // -2019
+ { cat(0x74933f2e88c3996f, 0x55a7b17e5c5a8830), cat(0xc8fa6dcb053fc389, 0xaf059f5951c036f9) }, // -2018
+ { cat(0x2a0f65bed3cfadf2, 0xaaec8dfeb0486cf4), cat(0xa0c857d59dcc9c6e, 0x259e191441669261) }, // -2017
+ { cat(0xbb3f8498a972f18e, 0xef23a4cbc039f0c3), cat(0x80a046447e3d49f1, 0xb7b1ada9cdeba84d) }, // -2016
+ { cat(0x91ff3a8ddbeb1c17, 0xe505d479338fe79e), cat(0xcdcd3d3a6395431c, 0x591c490fafdf73af) }, // -2015
+ { cat(0x74cc2ed7e3227cdf, 0xea6b1060f60cb94b), cat(0xa4a430fb82ddcf49, 0xe0e36da6264c5c8c) }, // -2014
+ { cat(0x5d7025798281fd7f, 0xeebc0d1a5e70943c), cat(0x83b68d96024b0c3b, 0x1a4f8aeb51d6b070) }, // -2013
+ { cat(0x624d08c26a699599, 0x7df9ae90971a86c7), cat(0xd2bdaf566a11ad2b, 0x5d4c117882f11a4d) }, // -2012
+ { cat(0x81d73a3521ee1147, 0x97faf20d45aed239), cat(0xa897bf7854daf0ef, 0x7dd6746068c0e1d7) }, // -2011
+ { cat(0xce45c82a818b4106, 0x132f280a9e2574fa), cat(0x86dfcc6043e25a59, 0x31785d19ed671b12) }, // -2010
+ { cat(0xe3a2d9dd9c1201a3, 0x51e50cddc9d587f7), cat(0xd7cc7a339fd0908e, 0xb58d61c31571c4ea) }, // -2009
+ { cat(0x1c8247e47cdb3482, 0xa7ea70b16e446cc5), cat(0xaca394f61973a6d8, 0x913de7cf445b03ef) }, // -2008
+ { cat(0xe39b6cb6ca48f6ce, 0xecbb8d5abe9d23d1), cat(0x8a1c772b478fb8ad, 0x40fe530c36af3658) }, // -2007
+ { cat(0x38f8adf143a7f14b, 0x145f489130fb6c82), cat(0xdcfa58453f4c5aae, 0xce63b8138ab1f08e) }, // -2006
+ { cat(0x2d93be5a9c865aa2, 0x76b2a074272f8a01), cat(0xb0c8469dcc3d1558, 0xa51c9342d55b26d8) }, // -2005
+ { cat(0xf142feaee39eaee8, 0x5ef54d29b8f2d4ce), cat(0x8d6d054b09ca777a, 0x1db075cf1115b8ac) }, // -2004
+ { cat(0x8204cab16c3117da, 0x31887b75f4b7bae3), cat(0xe24808780faa58c3, 0x62b3efb1b4ef8de1) }, // -2003
+ { cat(0x019d6ef4568dacae, 0x8e06c92b2a2c9582), cat(0xb5066d2cd95513cf, 0x82298c8e2a593e4e) }, // -2002
+ { cat(0x9ae458c3787156f2, 0x0b38a0ef54f0779c), cat(0x90d1f0f0addda972, 0xce87a3a4eeadcb71) }, // -2001
+ { cat(0xf7d3c138c0b557e9, 0xab8dce4bbb1a58f9), cat(0xe7b64e4de2fc4251, 0x4a729f6e4aafabe8) }, // -2000
+ { cat(0x5fdc9a93cd5ddfee, 0x22d7d83c95aead94), cat(0xb95ea50b1bfd01da, 0xa1f54c583bbfbcba) }, // -1999
+ { cat(0xb316e20fd77e4cbe, 0x82464696de2557aa), cat(0x944bb73c1664017b, 0xb4c43d1362ffca2e) }, // -1998
+ { cat(0x84f169b2f263adfd, 0x9d3d3dbe303bbf76), cat(0xed45f1f9bd6ccf2c, 0x546d2e856b32dd17) }, // -1997
+ { cat(0x03f4548f284fbe64, 0x7dca97cb59c965f8), cat(0xbdd18e6164570c23, 0x76bdbed1228f1746) }, // -1996
+ { cat(0x9cc376d8ed0c9850, 0x64a2130914a11e60), cat(0x97dad84de9df3ce9, 0x2bcaff0db53f45d1) }, // -1995
+ { cat(0x946bf15b14e0f3b3, 0xd43684db5434fd66), cat(0xf2f7c07ca9652e41, 0xdfab31af88653c82) }, // -1994
+ { cat(0x43898de2771a5c8f, 0xdcf86a49102a6452), cat(0xc25fcd3087842501, 0x7fbc27bfa050fd35) }, // -1993
+ { cat(0x9c6e0b1b927b7d3f, 0xe3f9eea0d9bb8375), cat(0x9b7fd75a060350cd, 0xffc9b96619da642a) }, // -1992
+ { cat(0x60b011c5b72bfb99, 0x6cc31767c2c59f21), cat(0xf8cc8bc33cd21ae3, 0x32dc5bd68fc3d377) }, // -1991
+ { cat(0xe6f3416af8effc7a, 0xbd68df86356ae5b4), cat(0xc70a0968fd74e24f, 0x5be37caba63642c5) }, // -1990
+ { cat(0x525c345593f33062, 0x3120b2d1c4558490), cat(0x9f3b3aba645d81d9, 0x164f96efb82b689e) }, // -1989
+ { cat(0x83c6ba228651e703, 0x81cdeae93a226db3), cat(0xfec52ac3d3c8cfc1, 0xbd4c24b2c0457430) }, // -1988
+ { cat(0xcfd22e82050e5269, 0x34a4bbedc81b8af6), cat(0xcbd0ef030fd3d967, 0xcaa3508f00379026) }, // -1987
+ { cat(0xd974f2019da50eba, 0x9083c98b067c6f2b), cat(0xa30d8c02730fe11f, 0xd54f73a599c60ceb) }, // -1986
+ { cat(0xe12a5b347e1da562, 0x0d363ad59ec9f289), cat(0x82713ccec2731a7f, 0xddd9295147d1a3ef) }, // -1985
+ { cat(0x351091ed9695d569, 0xaebd2aef647650db), cat(0xd0b52e179d84f732, 0xfc8ea8820c829fe6) }, // -1984
+ { cat(0xc40d418adede4454, 0x8bca88bf8391da49), cat(0xa6f75812e46a5f5b, 0xfd3eed34d6cee651) }, // -1983
+ { cat(0xd00a9ad57f1836aa, 0x096ed3cc69417b6d), cat(0x8592acdbe9eeb2af, 0xfdcbf0f7123f1ea7) }, // -1982
+ { cat(0x4cddc488cb59f110, 0x0f17b9470ecf2be2), cat(0xd5b77af9764ab77f, 0xfc79818b5064fdd9) }, // -1981
+ { cat(0x3d7e36d3d5e18da6, 0x72796105a5728982), cat(0xaaf92f2df83bc5ff, 0xfd2e013c4050cb14) }, // -1980
+ { cat(0xcacb5f0fde4e0aeb, 0x8ec780d151286e01), cat(0x88c758f1936304cc, 0xca8b34303373d5a9) }, // -1979
+ { cat(0x77abcb4c96e344ac, 0x17a59ae881da499c), cat(0xdad88e4f523807ae, 0x10deb9e6b8b955dc) }, // -1978
+ { cat(0x2c896f7078b5d089, 0xac847bed34aea149), cat(0xaf13a50c41c66c8b, 0x40b22e522d61117d) }, // -1977
+ { cat(0x23a125f393c4a6d4, 0x8a0396575d588108), cat(0x8c0fb73d016b8a09, 0x008e8b74f11a7464) }, // -1976
+ { cat(0x9f683cb8ec6dd7ba, 0x766c23befbc0ce72), cat(0xe019252e68ac100e, 0x674a78bb1b5d8706) }, // -1975
+ { cat(0xe5ecfd60bd24ac95, 0x2b89b6326300a528), cat(0xb34750f1ed56733e, 0xb9086095af7e059e) }, // -1974
+ { cat(0x1e57311a30ea23aa, 0x893af8284f33b754), cat(0x8f6c40c18aab8f65, 0x60d38077bf98047f) }, // -1973
+ { cat(0x96f1e829e7dd05dd, 0xa85e59da1852beec), cat(0xe57a0135aaac18a2, 0x34859a59328cd3fe) }, // -1972
+ { cat(0x458e5354b97d9e4a, 0xed1847e1ad0eff23), cat(0xb794cdc48889ad4e, 0x906ae1e0f53d7665) }, // -1971
+ { cat(0x37a50f76facae508, 0xbdad064e240bff4f), cat(0x92dd716a06d48aa5, 0x40558180c4312b84) }, // -1970
+ { cat(0x25d4e58b2ade3b41, 0x2f7b3d49d346654c), cat(0xeafbe8a9a487443b, 0x9a2268ce06b5126d) }, // -1969
+ { cat(0x51771e08ef182f67, 0x592f643b0f6b843d), cat(0xbbfcba21506c3696, 0x14e853d8055da857) }, // -1968
+ { cat(0x745f4b3a58e025ec, 0x47591cfc0c560364), cat(0x9663c81aa6bcf878, 0x10b9dcacd117b9df) }, // -1967
+ { cat(0xba3211f6f499d646, 0xd88e94c67a23389f), cat(0xf09fa6910ac7f3f3, 0x4df62de14e8c5c98) }, // -1966
+ { cat(0x94f4db2bf6e17838, 0xad3edd6b94e8fa19), cat(0xc07fb874089ff65c, 0x3e5e8b1aa53d16e0) }, // -1965
+ { cat(0x10c3e289924df9c6, 0xf0ff178943ed94e1), cat(0x99ffc6c33a1991e3, 0x65186f488430df1a) }, // -1964
+ { cat(0xe79fd0dc1d498fa4, 0xb4cb58db9fe287ce), cat(0xf6660ad1f68f4fd2, 0x3b5a4ba739e7cb5c) }, // -1963
+ { cat(0xec7fda49b107a61d, 0x5d6f7a494cb53972), cat(0xc51e6f0e5ed90ca8, 0x2f7b6fb8fb1fd5e3) }, // -1962
+ { cat(0xbd331507c0d2eb4a, 0xb125fb6dd6f76128), cat(0x9db1f271e57a7086, 0x8c62bfc72f4cab1c) }, // -1961
+ { cat(0xc851bb3f9aeb1211, 0x1b6ff8afbe589b73), cat(0xfc4fea4fd590b40a, 0x7a37993eb21444fa) }, // -1960
+ { cat(0xd37495cc7bef41a7, 0x4926608c9846e2c2), cat(0xc9d9883fde0d5cd5, 0x2e92e0fef4dd03fb) }, // -1959
+ { cat(0x75f6de3d2ff29aec, 0x3a851a0a136be89c), cat(0xa17ad3664b3de3dd, 0xbedbe7325d7d9cc9) }, // -1958
+ { cat(0x5e5f1830f3287bf0, 0x2ed0e1a1a923207d), cat(0x812f0f8508fe4fe4, 0x98afec284acae3d4) }, // -1957
+ { cat(0x309826b4b840c64d, 0x17b49c35db6b672d), cat(0xceb1b26e74ca196d, 0xc11979da11449fba) }, // -1956
+ { cat(0x26e01ef6f9cd6b70, 0xdfc3b02b15ef85be), cat(0xa55af5252a3b478b, 0x00e12e480dd07fc8) }, // -1955
+ { cat(0x524ce592617122c0, 0xb302f355ab260498), cat(0x8448c41dbb629fa2, 0x671a8b6cd7d9ffd3) }, // -1954
+ { cat(0xea14a283cf1b6acd, 0xeb37ebbc4509a0f3), cat(0xd3a7a02f923765d0, 0xa4f7457af2f6661e) }, // -1953
+ { cat(0x54dd4ecfd8e2bbd7, 0xef5fefc9d0d480c3), cat(0xa952e68c74f91e40, 0x83f904625bf851b2) }, // -1952
+ { cat(0x43e43f0cad822fdf, 0xf2b3263b0d76cd69), cat(0x8775853d2a60e500, 0x69940381e32d0e28) }, // -1951
+ { cat(0xd306cb477c037fcc, 0xb78509f8158ae241), cat(0xd8bc0861dd67d4cd, 0x75b99f36384816a6) }, // -1950
+ { cat(0x759f0905fccf9970, 0x92d0d4c677a24e9a), cat(0xad6339e7e45310a4, 0x5e2e18f82d067885) }, // -1949
+ { cat(0xf7b26d9e63d9478d, 0x4240aa385fb50baf), cat(0x8ab5c7ecb6a8da1d, 0x1824e0c68a6b939d) }, // -1948
+ { cat(0xbf83e2970628727b, 0x9d34438d65ee7917), cat(0xddefa6478aa7c361, 0xc03b013daa45b8fc) }, // -1947
+ { cat(0x32cfe878d1b9f52f, 0xb0f69c711e5860df), cat(0xb18c8506088635e7, 0xccfc00fe21d160ca) }, // -1946
+ { cat(0xc23fed2d7494c426, 0x272bb05a7ead1a4c), cat(0x8e0a0404d39e9186, 0x3d966731b4a780a1) }, // -1945
+ { cat(0x69ffe1e2542139d6, 0xa512b3c3fde1c3ad), cat(0xe34339a152974f3d, 0x2f570b82baa59a9c) }, // -1944
+ { cat(0x21998181dce76178, 0x840ef63664b49c8b), cat(0xb5cf614ddbac3f64, 0x25df3c689551487d) }, // -1943
+ { cat(0xb47ace017d85e793, 0x9cd8c4f850907d3c), cat(0x9172b43e4956991c, 0xeb18fd20777439fd) }, // -1942
+ { cat(0x20c47ccf2f3ca5b8, 0xfaf46e5a1a80c85f), cat(0xe8b786ca0ef0f4fb, 0x11c19500bf205cc9) }, // -1941
+ { cat(0x1a36ca3f58fd5160, 0xc8c38b7b486706b3), cat(0xba2c6bd4d8c0c3fc, 0x0e347733cc19e3d4) }, // -1940
+ { cat(0x7b5f0832ad97744d, 0x6d693c62a0526bc2), cat(0x94f05643e09a3663, 0x3e905f5ca347e976) }, // -1939
+ { cat(0xc564d9eaaf58ba15, 0x7bdb93d10083df9d), cat(0xee4d56d300f6bd6b, 0x974d6561053fdbf0) }, // -1938
+ { cat(0x3783e1888c46fb44, 0x63160fda66cfe617), cat(0xbea445759a5efdef, 0xac3deab40433165a) }, // -1937
+ { cat(0x5f9cb46d3d0595d0, 0x4f44d97b85731e79), cat(0x98836ac47b7f318c, 0x89cb22299cf5ab7b) }, // -1936
+ { cat(0xff6120aec808efb3, 0xb207c25f3beb63f5), cat(0xf40577a0c5984f47, 0x42de9d0f6189125e) }, // -1935
+ { cat(0x32b41a256cd3f2f6, 0x28063518fcbc4ff7), cat(0xc33792e70479d905, 0xcf187da5e7a0db7f) }, // -1934
+ { cat(0xc229ae84570ff591, 0xb99e90e0ca303ff9), cat(0x9c2c75859d2e4737, 0xd8e06484b94d7c65) }, // -1933
+ { cat(0x0375e406f1b32282, 0xc2974e3476b3998e), cat(0xf9e0bc08fb7d3ebf, 0xc167073ac21593d6) }, // -1932
+ { cat(0x02c4b66bf48f4ecf, 0x0212a4f6c55c7ad8), cat(0xc7e6fcd3fc643233, 0x011f38fbce77a978) }, // -1931
+ { cat(0x689d5ebcc3a5d8a5, 0x9b421d92377d2f13), cat(0x9febfd7663835b5c, 0x00e5c72fd85fbac6) }, // -1930
+ { cat(0x742efdfad2a2f43c, 0x2b9cfc1d2595181f), cat(0xffdffbf09f38922c, 0xce3c71e626ff913d) }, // -1929
+ { cat(0xf68bfe62421bf696, 0x894a634a8477467f), cat(0xccb32ff3b293a823, 0xd8305b1e859940fd) }, // -1928
+ { cat(0xf86ffeb501aff878, 0x6dd51c3b9d2c3866), cat(0xa3c28cc2f542ece9, 0x79c048e537adcd97) }, // -1927
+ { cat(0xf9f3322a67bff9f9, 0xf17749c94a89c6b8), cat(0x83020a3591025721, 0x2e336d842c8b0adf) }, // -1926
+ { cat(0xc31eb6aa3f998ff6, 0x4f2542dbaa760ac0), cat(0xd19cdd22819d5835, 0x16b8af39e0de77cc) }, // -1925
+ { cat(0xcf4bc554ffae0cc5, 0x0c1dcf1621f80899), cat(0xa7b0b0e867b1135d, 0xabc6f294b3e52ca3) }, // -1924
+ { cat(0x3f6fd110cc8b3d6a, 0x7017d8de81933a14), cat(0x8626f3ed1fc0dc4a, 0xefd25baa298423b6) }, // -1923
+ { cat(0xcbe61b4e1411fbdd, 0x802627ca68eb9020), cat(0xd6a4b97b66016077, 0xe61d5f76a8d36c56) }, // -1922
+ { cat(0xd651af71a9a7fcb1, 0x3351b96eba560ce7), cat(0xabb6fac91e67805f, 0xeb4ab2c553dc56ab) }, // -1921
+ { cat(0xdea7bf8e2153308d, 0xc2a7c78bc844d71f), cat(0x895f2f074b86004c, 0xbc3bc2377649deef) }, // -1920
+ { cat(0xcaa5ff49ceeb80e2, 0xd10c7279406e24fe), cat(0xdbcb7e721270007a, 0xc6c6038bf076317f) }, // -1919
+ { cat(0x6eeb32a1725600b5, 0x7409f52dcd24ea65), cat(0xafd5fec1a85999fb, 0xd23802d659f82799) }, // -1918
+ { cat(0xf255c21ac1de66f7, 0x9007f757d750bb84), cat(0x8cab323486ae14c9, 0x74f99bdeae601fad) }, // -1917
+ { cat(0x508936913630a4bf, 0x4cd98bbfbee7926d), cat(0xe111e9eda449badb, 0xee5c2c977d669916) }, // -1916
+ { cat(0x0d3a920dc4f3b6ff, 0x70ae09663252db8a), cat(0xb40e54be1d07c8af, 0xf1e356df97854745) }, // -1915
+ { cat(0x0a9541a49d8fc599, 0x26f1a11e8ea8afa2), cat(0x900b76fe7d9fd3bf, 0xf4b5df1946043904) }, // -1914
+ { cat(0xaa886907627fa28e, 0xa4b5ce974aa77f69), cat(0xe678be63fc32ec66, 0x545631c209a05b39) }, // -1913
+ { cat(0xbba05405e8661ba5, 0x50917212a21f9921), cat(0xb860984ffcf589eb, 0x76ab5b01a14d15c7) }, // -1912
+ { cat(0xc94d1004b9eb4951, 0x0d41280ee819474e), cat(0x938079d9972ad4bc, 0x5eef7c014dd7449f) }, // -1911
+ { cat(0x0ee1b33ac3120ee8, 0x15350ce4a68ed87c), cat(0xec00c2f5beaaedfa, 0x317f2ccee2f20766) }, // -1910
+ { cat(0x0be7c29568db3f20, 0x10f73d83b87246ca), cat(0xbccd68c49888be61, 0xc1328a3f1bf4d2b8) }, // -1909
+ { cat(0xa31fcedded7c3280, 0x0d92979c938e9f08), cat(0x970aba36e06d651b, 0x00f53b65aff70ef9) }, // -1908
+ { cat(0x3832e49648c6b733, 0x48ea8c2db8e431a6), cat(0xf1aac38b00af082b, 0x34bb923c4cbe7e5c) }, // -1907
+ { cat(0x2cf583ab6d6bc5c2, 0xa0bba357c71cf485), cat(0xc155693c008c0688, 0xf6fc74fd0a31feb0) }, // -1906
+ { cat(0xf0c46955f123049b, 0xb3c94f796c172a04), cat(0x9aaaba9666d66ba0, 0xc596c3fda1c1988c) }, // -1905
+ { cat(0xe7a0a88981d1a0f9, 0x1fa87f28acf1dcd3), cat(0xf77790f0a48a45ce, 0x08f13995cf9c2747) }, // -1904
+ { cat(0xb94d53a134a7b3fa, 0x7fb9ff53bd8e4a42), cat(0xc5f940c083a1d171, 0xa0c0fade3fb01f6c) }, // -1903
+ { cat(0xfaa442e75d52f661, 0xffc7ff76313ea1cf), cat(0x9e61009a02e7dac1, 0x4d672f1832f34c56) }, // -1902
+ { cat(0xf76d37d895518a36, 0x660ccbf04eca9c7e), cat(0xfd6800f66b0c9135, 0x48a51826b7ebad57) }, // -1901
+ { cat(0x5f8a9313aaa7a1c5, 0x1e70a326a56ee398), cat(0xcab99a5ebc0a0dc4, 0x3a1dacebc6562446) }, // -1900
+ { cat(0x193ba8dc88861b04, 0x185a1c1eeabf1c7a), cat(0xa22e1518966e7169, 0xc817bd896b781d05) }, // -1899
+ { cat(0xe0fc8716d39e7c03, 0x46ae7ce58898e395), cat(0x81be7746debec121, 0x6cdfcad455f9b0d0) }, // -1898
+ { cat(0xce60d82485ca6005, 0x3de3fb08da8e38ee), cat(0xcf97253e31313502, 0x47cc77ba23291ae7) }, // -1897
+ { cat(0x0b80acea04a1e66a, 0x97e995a0aed82d8b), cat(0xa6128431c0f42a68, 0x39705fc81c20e253) }, // -1896
+ { cat(0x0933bd8803b4b855, 0x465477b3bf1357a2), cat(0x84db9cf49a5ceeb9, 0xc78d196ce34d81dc) }, // -1895
+ { cat(0xa852c8d99f878d55, 0x3d53f2b931b88c37), cat(0xd49294ba9094b129, 0x3f4828ae387c02f9) }, // -1894
+ { cat(0x20423a47b2d2d777, 0x6443289427c6d692), cat(0xaa0edd620d43c0ed, 0xcc39ba24f9fccf2e) }, // -1893
+ { cat(0x4d01c8395bdbdf92, 0xb69c20768638aba8), cat(0x880be44e710300be, 0x3cfafb50c7fd728b) }, // -1892
+ { cat(0x7b360d2892f965b7, 0x8a93672409f445da), cat(0xd9aca07d819e6796, 0xc7f7f8813ffbea78) }, // -1891
+ { cat(0x6291a4207594515f, 0xa20f85b66e5d04ae), cat(0xae23b3979ae51fab, 0xd32cc6cdccc98860) }, // -1890
+ { cat(0x820e1ce6c476a77f, 0xb4d937c5251736f2), cat(0x8b4fc2dfaf1db2ef, 0xdc23d23e3d6e06b3) }, // -1889
+ { cat(0x367cfb0ad3f10bff, 0x87c1f2d5082524b6), cat(0xdee60499182f84b2, 0xf9d2e9fd2f16711f) }, // -1888
+ { cat(0x91fd95a243273ccc, 0x6c9b28aa6cea83c5), cat(0xb2519d47468c6a28, 0xc7dbee6425ab8db2) }, // -1887
+ { cat(0x4197aae835b8fd70, 0x56e286eebd88696b), cat(0x8ea7b105d209ee87, 0x06498b8351560af5) }, // -1886
+ { cat(0xcf5911738927fbe6, 0xf16a717dfc0d7577), cat(0xe43f81a2e9a97da4, 0xd6dc126bb55677ee) }, // -1885
+ { cat(0x72ada78fa0ecc985, 0x8deec13196712ac6), cat(0xb6993482548797b7, 0x1249a8562aab9325) }, // -1884
+ { cat(0xf557b93fb3f0a137, 0xa4bf00f4785a889e), cat(0x92142a01dd39462c, 0x0ea153782222dc1d) }, // -1883
+ { cat(0x2225f532b98101f2, 0xa1319b20c090da96), cat(0xe9b9dccfc85ba379, 0xb1021f269d049363) }, // -1882
+ { cat(0x1b5190f56134018e, 0xe75ae2809a0d7bac), cat(0xbafb170ca0494f94, 0x8d9b4c1ee403a91c) }, // -1881
+ { cat(0xaf7473f780f667a5, 0x85e24ecd480ac956), cat(0x9595ac0a19d43faa, 0x0ae2a34be99c8749) }, // -1880
+ { cat(0xb253ecbf34bd72a2, 0x6fd07e1540114223), cat(0xef55e01029539910, 0x116a9edfdc2da542) }, // -1879
+ { cat(0x284323cc2a312881, 0xf30d31aa99a7681c), cat(0xbf77e6735442e0d9, 0xa7887f197cf15102) }, // -1878
+ { cat(0x5368e97021c0ed34, 0xc270f4887aec534a), cat(0x992cb85c4368b3e1, 0x52d398e130c10d9b) }, // -1877
+ { cat(0xb8a7dbe69c67e1ee, 0x03e7eda72b13b876), cat(0xf5145a2d38a78635, 0x51528e351ace7c2b) }, // -1876
+ { cat(0x2d53165216b9818b, 0x36532485bc0fc6c5), cat(0xc41048242d52d1c4, 0x410ed82a7bd86356) }, // -1875
+ { cat(0x8aa8dea8122e013c, 0x2b75b6d1633fd237), cat(0x9cd9d35024424169, 0xcda579bb9646b5de) }, // -1874
+ { cat(0x110e310ce9e3352d, 0x1255f14f0532e9f2), cat(0xfaf61ee6a06a0242, 0xe2a25c5f56d78964) }, // -1873
+ { cat(0x740b5a70bb1c2a8a, 0x75118dd8d0f587f5), cat(0xc8c4e5854d219b68, 0xb54eb04c45793ab6) }, // -1872
+ { cat(0xc33c485a2f49bba1, 0xf7413e470d913991), cat(0xa09d846aa41ae2ba, 0x2aa559d69dfa955e) }, // -1871
+ { cat(0x35c9d37b5907c94e, 0x5f676505a4742e0d), cat(0x807e03888348b561, 0xbbb77b1217fbaab2) }, // -1870
+ { cat(0x8942ebf88e72dbb0, 0x98a56e6f6d86b015), cat(0xcd966c0d9edabbcf, 0x92bf2b50265f7783) }, // -1869
+ { cat(0xa102566071f57c8d, 0x46eabebf8ad22677), cat(0xa47856714be22fd9, 0x4232890ceb7f92cf) }, // -1868
+ { cat(0xe73511e6c1913071, 0x058898993bdb51f9), cat(0x8393785aa31b597a, 0x9b5ba0d722cc7572) }, // -1867
+ { cat(0xd854e97135b51a4e, 0x6f40f4285fc54ff5), cat(0xd2858d5dd1c55bf7, 0x5ef9015837ad88b7) }, // -1866
+ { cat(0xad10bac0f7c4150b, 0x8c33f686b3043ff7), cat(0xa86ad77e416aaff9, 0x18c7344692f13a2c) }, // -1865
+ { cat(0xbda6fbcd93034409, 0x3cf65ed228d0332c), cat(0x86bbdf9834555994, 0x13d29038758dc823) }, // -1864
+ { cat(0x62a4c615b80539a8, 0x618a3150414d1ead), cat(0xd792ff59ed555c20, 0x1fb74d27227c736c) }, // -1863
+ { cat(0xe883d1aaf99dc7b9, 0xe7a1c10d010a7ef1), cat(0xac759914bddde34c, 0xe62c3db8e8638f89) }, // -1862
+ { cat(0xba030e22614b062e, 0x52e7cda400d5325a), cat(0x89f7adaa317e4f70, 0xb8236493ed1c72d4) }, // -1861
+ { cat(0x299e7d03cede704a, 0x1e3faf6cce21ea2a), cat(0xdcbf7c438263b24d, 0xf36bd41fe1c71e21) }, // -1860
+ { cat(0xee1864030be526a1, 0xb1cc8c570b4e54ee), cat(0xb099303601e95b71, 0x8f89767fe7d27e80) }, // -1859
+ { cat(0xf1ad1ccf3cb7521a, 0xf4a3a378d5d843f2), cat(0x8d4759c4ce544927, 0xa60791ffeca86533) }, // -1858
+ { cat(0x4f7b614b9458835e, 0x5439058e22f39fe9), cat(0xe20bc2d47d53a83f, 0x700c1cccadda3b86) }, // -1857
+ { cat(0xd92f8109437a02b1, 0xdcfa6ad81bf61988), cat(0xb4d63576caa95365, 0xf33ce3d6f17b62d1) }, // -1856
+ { cat(0xadbf9a6dcf94cef4, 0xb0c85579aff8146d), cat(0x90ab5df8a2210f84, 0xc2971cabf462b574) }, // -1855
+ { cat(0xaf98f71618ee17ed, 0xe7a6ef29198ced7a), cat(0xe778965a9d01b26e, 0x0424faacba3788ba) }, // -1854
+ { cat(0x2613f8de7a581324, 0xb95258edae0a5795), cat(0xb92d45154a67c1f1, 0x9cea6223c82c6d62) }, // -1853
+ { cat(0x1e7660b1fb79a8ea, 0x2ddb7a57be6eac77), cat(0x942437443b8634c1, 0x4a551b4fd356bde8) }, // -1852
+ { cat(0xfd8a344ff8c2a7dd, 0x162bf6f2ca4aad8b), cat(0xed06bed392705468, 0x76ee92195224630c) }, // -1851
+ { cat(0x97a1c3732d68864a, 0x78232bf56ea22470), cat(0xbd9eff0fa859dd20, 0x5f2541addb504f3d) }, // -1850
+ { cat(0x461b02c28aba0508, 0x601c232abee81d26), cat(0x97b265a62047e419, 0xe5b767be490d0c31) }, // -1849
+ { cat(0xd6919e041129a1a7, 0x002d0511317361d6), cat(0xf2b70909cd3fd35c, 0xa2bf0c63a814e04e) }, // -1848
+ { cat(0x120e180340ee1aec, 0x0024040dc1291b12), cat(0xc22c073b0a9975e3, 0xb565a382ecdd803f) }, // -1847
+ { cat(0x41a4e0029a581589, 0x99b669a49a8748db), cat(0x9b566c2f3badf7e9, 0x5deae9358a4accff) }, // -1846
+ { cat(0x9c3b00042a2688dc, 0x2923dc3a90d87492), cat(0xf88a46b1f9165975, 0x6311752276de14cb) }, // -1845
+ { cat(0x7cfc000354eba0b0, 0x20e97cfba7139075), cat(0xc6d5055b2dab7ac4, 0x4f412a81f8b1aa3c) }, // -1844
+ { cat(0x30c9999c43efb3c0, 0x1a5463fc85a9405e), cat(0x9f10d115be22c89d, 0x0c34220193c154fd) }, // -1843
+ { cat(0x81428f606cb2b933, 0x5d53d32da2a866fc), cat(0xfe814e893037a761, 0xad203668ec6887fb) }, // -1842
+ { cat(0x9a9ba5e6bd5bc75c, 0x4aa975be1bb9ebfd), cat(0xcb9aa53a8cf952b4, 0x8a802b872386d32f) }, // -1841
+ { cat(0x1549518564496c49, 0xd5545e31afc7effd), cat(0xa2e21dc870c7755d, 0x3b99bc6c1c6bdc26) }, // -1840
+ { cat(0x443aa79de9d456a1, 0x7776b1c1596cbffe), cat(0x824e7e39f3d2c44a, 0x961496bce3897ceb) }, // -1839
+ { cat(0x6d2aa5c976208a9b, 0xf25782cef57accc9), cat(0xd07d96c31fb7a077, 0x568757949f426178) }, // -1838
+ { cat(0x8a8884a12b4d3baf, 0xf512cf0bf79570a1), cat(0xa6cadf027fc619f9, 0x1205dfaa1901e793) }, // -1837
+ { cat(0x086d36e755d762f3, 0x2a75726ff9445a1b), cat(0x856f18cecc9e7b2d, 0xa804b2ee7a67ec76) }, // -1836
+ { cat(0xa71524a556256b1e, 0xaa5583e65ba0902a), cat(0xd57e8e17adca5eaf, 0x733ab7e3f70cad89) }, // -1835
+ { cat(0x85aa83b7781def4b, 0xbb779cb8494d4022), cat(0xaacba4dfbe3b7ef2, 0xc2955fe992708ad4) }, // -1834
+ { cat(0x37bb9c92c67e5909, 0x62c616f9d43dcce8), cat(0x88a2ea4c982f98c2, 0x35444cbadb8d3bdd) }, // -1833
+ { cat(0xf2c5c7513d96f4db, 0xd13cf18fb9fc7b0d), cat(0xda9e43adc04c279d, 0x2206e12af8e1f961) }, // -1832
+ { cat(0x8f049f74314590af, 0xda9727a62e6395a4), cat(0xaee502f166a352e4, 0x1b38b42260b4c781) }, // -1831
+ { cat(0x0c03b2c35a9e0d59, 0x7bac1fb8251c77b6), cat(0x8bea68c11ee90f1c, 0xe293c34eb3c3d2ce) }, // -1830
+ { cat(0x466c513890fce228, 0xc5e032c03b60bf8a), cat(0xdfdd74683174e4fb, 0x041f9ee452d2eae3) }, // -1829
+ { cat(0xd1f040fa0d971b53, 0xd1802899c91a32d5), cat(0xb31790535ac3ea62, 0x69b2e583757588b5) }, // -1828
+ { cat(0xa7f3672e7145af76, 0x413353ae3a7b5bde), cat(0x8f460d0f7bcfeeb5, 0x215beacf912ad3c4) }, // -1827
+ { cat(0x731f0b7d820918bd, 0x351eec49f72bc62f), cat(0xe53ce1b25fb31788, 0x355fde18e8448607) }, // -1826
+ { cat(0x5c18d5fe01a0e097, 0x5db256a192896b59), cat(0xb763e7c1e628dfa0, 0x2ab31813ed039e6c) }, // -1825
+ { cat(0x7ce0ab319ae71a12, 0xb15b788142078914), cat(0x92b6530184ed7fb3, 0x555c13432402e523) }, // -1824
+ { cat(0xfb0111e8f7d829b7, 0x822bf402033f41b9), cat(0xeabd519c07e265eb, 0xbbc68538399e3b6b) }, // -1823
+ { cat(0xfc00db20c64687c6, 0x01bcc334cf65ce2e), cat(0xbbcaa7b0064eb7ef, 0xc96b9dc6947e95ef) }, // -1822
+ { cat(0x3000af4d6b6b9fd1, 0x9afd68f70c5171be), cat(0x963bb9599ea55ff3, 0x07894b05439877f3) }, // -1821
+ { cat(0xb3344baf1245cc82, 0x919574be7a1be930), cat(0xf05f8ef5caa2331e, 0x727544d538f3f31e) }, // -1820
+ { cat(0x5c29d625a837d6ce, 0xdaddf6fec8165427), cat(0xc04c725e3bb4f5b1, 0xf52a9d7760c328e5) }, // -1819
+ { cat(0x49bb11b7b9c64572, 0x48b192656cdea9b9), cat(0x99d6c1e4fc90c48e, 0x5dbbb12c4d68ed84) }, // -1818
+ { cat(0x42c4e925f60a08b6, 0xdab5b708ae310f8e), cat(0xf624696e60e7a0e3, 0xc92c4ead48a7e26d) }, // -1817
+ { cat(0x023720eb2b3b3a2b, 0xe22af8d3be8da60b), cat(0xc4e9edf1e71fb3e9, 0x6dbd0bbdd3b981f1) }, // -1816
+ { cat(0x01c5b3ef55c8fb56, 0x4e88c70fcba484d6), cat(0x9d87f18e527fc321, 0x24973c97dc9467f4) }, // -1815
+ { cat(0x02d5ecb222db2bbd, 0x4a7471b2df6da156), cat(0xfc0cb5b083ff9e9b, 0x6dbec75960ed7320) }, // -1814
+ { cat(0x9bde56f4e8af5631, 0x085d27c24c57b445), cat(0xc9a3c48d3666187c, 0x57cbd2ade7245c19) }, // -1813
+ { cat(0x164b78c3ed5911c0, 0xd37db9683d12f69d), cat(0xa14fd070f851ad30, 0x463ca88b1f5049ae) }, // -1812
+ { cat(0x11d5fa36577a749a, 0x42cafab9ca759218), cat(0x810ca6c0c6a7bdc0, 0x383086d5b2a6a158) }, // -1811
+ { cat(0x82eff6bd58c3edc3, 0x9e11912943ef5026), cat(0xce7aa467a43f9600, 0x59e73e22b7710226) }, // -1810
+ { cat(0x9bf32bcaad698b02, 0xe4dada87698c401e), cat(0xa52ee9ec83661199, 0xe185cb4ef92734eb) }, // -1809
+ { cat(0x165c23088abad59b, 0xea48aed2bad699b2), cat(0x842587f0691e747b, 0x1ad16f7260ec2a56) }, // -1808
+ { cat(0xf0936b40ddf7bc2c, 0xaa0de4845e24291c), cat(0xd36f3fe70e9720c4, 0xf7b57f1d67e043bc) }, // -1807
+ { cat(0xc075ef6717f96356, 0xee71839d181cedb0), cat(0xa925ccb8d878e703, 0xf95dff4ab9803630) }, // -1806
+ { cat(0x99f7f2b8dffab5df, 0x25279c7dace3f15a), cat(0x87517093e060b8cf, 0xfab19908946691c0) }, // -1805
+ { cat(0x8ff31df4999122fe, 0xa1d8fa62ae398229), cat(0xd8824db9670127b3, 0x2ab5c1a753d74f9a) }, // -1804
+ { cat(0xa65c17f6e140e8cb, 0xb4ad951bbe946821), cat(0xad350afab8cdb95c, 0x222b0152a9790c7b) }, // -1803
+ { cat(0x1eb0132be76720a2, 0xf6f144163210534e), cat(0x8a90d59560a49449, 0xb4ef3442212da396) }, // -1802
+ { cat(0xfde685130bd83437, 0xf1820689e9b3b87c), cat(0xddb488ef010753a9, 0x217eba03684905bc) }, // -1801
+ { cat(0xfe52040f3cacf693, 0x279b386e548fc6ca), cat(0xb15d3a58cd9f7620, 0xe79894cf86a0d163) }, // -1800
+ { cat(0xcb74d00c308a5edc, 0x1faf605843a638a2), cat(0x8de42ead714c5e80, 0xb946dd72d21a411c) }, // -1799
+ { cat(0x1254801380dd6493, 0x65e566f39f705a9c), cat(0xe306b1158213ca67, 0x8ed7c8b7b690682e) }, // -1798
+ { cat(0xdb76ccdc671783a9, 0x1e511f294c59e216), cat(0xb59ef41134dca1ec, 0x72463a2c920d2024) }, // -1797
+ { cat(0x492bd716b8df9c87, 0x4b7418edd6ae4e78), cat(0x914bf6742a4a1b23, 0x8e9e94f074d74cea) }, // -1796
+ { cat(0xdb7958245aff60d8, 0x78b9c17c8ab07d8d), cat(0xe8798a5376dcf838, 0xe430ee4d87bee176) }, // -1795
+ { cat(0xaf9446837bff80ad, 0x2d616796d559fe0b), cat(0xb9fad50f924a602d, 0x835a583e06324df8) }, // -1794
+ { cat(0x59436b9c6332cd57, 0x57811fabdde19809), cat(0x94c8aa72db6eb357, 0x9c48469804f50b2d) }, // -1793
+ { cat(0xc20578fa3851488b, 0xbf34ff7963028cda), cat(0xee0ddd84924ab88c, 0x2d4070f33b21ab7b) }, // -1792
+ { cat(0x019dfa61c6a76d3c, 0x98f732c7826870af), cat(0xbe717e03a83bc6d6, 0x8a99f3f5c8e7bc63) }, // -1791
+ { cat(0x67b1951b0552bdca, 0x13f8f56c68538d59), cat(0x985acb36202fd245, 0x3bae5cc4a0b96382) }, // -1790
+ { cat(0xd91c21c4d5512fa9, 0xb98e557a4085aef4), cat(0xf3c4785699e61d3b, 0x92b0946dcdf56c03) }, // -1789
+ { cat(0x7a7ce7d0aaa75954, 0x9471ddfb66d158c3), cat(0xc30393787b1e7dc9, 0x4226dd24a4c45669) }, // -1788
+ { cat(0x2eca530d5552addd, 0x438e4b2f85744703), cat(0x9c02dc60627ecb07, 0x681f175083d04521) }, // -1787
+ { cat(0x7e1084e2221de2fb, 0x9f4a11e5a253a4d1), cat(0xf99e2d6703fe11a5, 0x7364f21a6c806e9b) }, // -1786
+ { cat(0xcb406a4e81b18262, 0xe5d4db1e1b761d74), cat(0xc7b1bdec0331a7b7, 0x8f83f4e1f066bee2) }, // -1785
+ { cat(0xd5cd21d867c1351b, 0xeb10af4b492b4ac3), cat(0x9fc164bccf5aec92, 0xd9365d818d1eff1b) }, // -1784
+ { cat(0x561502f3d93521c6, 0x44e77ededb78779e), cat(0xff9bd4614bc4adb7, 0xc1f0959c14fe64f9) }, // -1783
+ { cat(0xde77358fe0f74e38, 0x371f98b2492d2c7f), cat(0xcc7ca9e76fd08af9, 0x67f3aae343feb72d) }, // -1782
+ { cat(0x7ec5c4731a5f71c6, 0x927fad5b6dbdbd32), cat(0xa396ee52bfda08c7, 0x865c88b5cffef8f1) }, // -1781
+ { cat(0xff049d28e1e5f49e, 0xdb99577c57cafdc2), cat(0x82df250effe1a09f, 0x9eb06d5e3fff2d8d) }, // -1780
+ { cat(0xfe6dc841696fedca, 0xf8f558c6f2de62d0), cat(0xd1650817ffcf6765, 0xcab3e230666515af) }, // -1779
+ { cat(0x9857d367878cbe3b, 0xfa5de09f28b1e8a6), cat(0xa78406799972b91e, 0x3bc31b59eb841159) }, // -1778
+ { cat(0x46aca91f9fa3cb63, 0x2eb1807f53c186eb), cat(0x86033861478efa7e, 0x9635af7b22d00de1) }, // -1777
+ { cat(0x711441cc329fabd1, 0xe44f33feec68d7df), cat(0xd66b8d68727e5d97, 0x56bc4bf837b34968) }, // -1776
+ { cat(0xc0dd0170287fbca7, 0xe9d8f66589ed797f), cat(0xab893ded286517ac, 0x45636ff9c6290786) }, // -1775
+ { cat(0x9a4a678ced32fd53, 0x217a5eb7a18ac799), cat(0x893a97f0ed1dac89, 0xd11c59949e873938) }, // -1774
+ { cat(0x90770c14aeb7fbb8, 0x3590978c35aad8f5), cat(0xdb90f31b14fc4742, 0xe82d5c20fda5285a) }, // -1773
+ { cat(0x405f3cdd58932fc6, 0x9140793cf7bbe0c4), cat(0xafa728e277303902, 0x53577ce73150ed15) }, // -1772
+ { cat(0x004c30b113a8f305, 0x410060fd92fcb3d0), cat(0x8c85ba4ec5c02d9b, 0x75df971f5aa72411) }, // -1771
+ { cat(0xcd46b44e85db1e6e, 0xce670195b7fab94c), cat(0xe0d5f6e46f99e292, 0x56328b655dd839b4) }, // -1770
+ { cat(0xd76bc37204af4b8b, 0xd85267aaf995610a), cat(0xb3de5f1d2614b541, 0xde8ed5eab179c7c3) }, // -1769
+ { cat(0x45efcf8e6a25d609, 0x79db862261444da2), cat(0x8fe518e41e76f767, 0xe53f11888dfb0636) }, // -1768
+ { cat(0xd64c7f4a436fbcdb, 0xf62c09d09ba07c36), cat(0xe63b5b069724bf0c, 0xa1fe8274165e7056) }, // -1767
+ { cat(0x783d32a1cf8c9716, 0x5e89a173afb39691), cat(0xb82f7c0545b6ff3d, 0x4e653529ab7ec045) }, // -1766
+ { cat(0xc6975bb4a60a1278, 0x4ba14df626294541), cat(0x9359300437c598fd, 0xd850f7548932336a) }, // -1765
+ { cat(0xd75892baa34350c0, 0x79021656a3753b9b), cat(0xebc1e66d2608f4c9, 0x5a1b25540eb6b8aa) }, // -1764
+ { cat(0x7913a8954f690d66, 0xc734deabb5f762e3), cat(0xbc9b1ebdb8072a3a, 0xae7c1ddcd8922d55) }, // -1763
+ { cat(0xfa76207772ba711f, 0x05c3e5562b2c4f1c), cat(0x96e27efe2cd2882e, 0xf1fce4b0ad41bddd) }, // -1762
+ { cat(0xc3f033f2512a4e98, 0x09396ef04513b1c6), cat(0xf16a64c9e150d9e4, 0xb6616de77b9c62fc) }, // -1761
+ { cat(0x698cf65b7421d879, 0xa0fabf269da95b05), cat(0xc121ea3b1aa714b6, 0xf84df185fc7d1bfd) }, // -1760
+ { cat(0x5470c515f68179fa, 0xe72eff5217baaf37), cat(0x9a81882f4885aa2b, 0xf9d7f46b30641664) }, // -1759
+ { cat(0xed813b5657358ff7, 0xd84b321cf2c44b8b), cat(0xf735a6b20da2a9df, 0xf62653deb3d35706) }, // -1758
+ { cat(0x246762ab78f7a65f, 0xe03c2817289d093c), cat(0xc5c4855b3e1bbb19, 0x91b843188fdc459f) }, // -1757
+ { cat(0x5052b555fa5fb84c, 0xb3635345ba173a97), cat(0x9e36d115cb49627a, 0xdaf9cf46d97d047f) }, // -1756
+ { cat(0x808455565d65f3ad, 0xebd21ed5f68b90f1), cat(0xfd2481bc78756a5e, 0x2b294ba48f2e6d98) }, // -1755
+ { cat(0x339d1111e4518fbe, 0x5641b244c53c73f4), cat(0xca839afd2d2abb7e, 0x88edd61d3f5857ad) }, // -1754
+ { cat(0xc2e40da7e9dad965, 0x11ce283704305cc3), cat(0xa202e26424222f98, 0x6d8b11b0ff79dfbd) }, // -1753
+ { cat(0x02500aecbb157ab7, 0x4171b9c59cf37d69), cat(0x819be8501ce82613, 0x8ad5a7c0cc617fcb) }, // -1752
+ { cat(0x6a19ab145e88c458, 0x68b5f608fb1f2f0e), cat(0xcf5fda19c7d9d685, 0xaaef72ce13cf32de) }, // -1751
+ { cat(0x54e155a9e53a36ad, 0x209191a0c8e5bf3f), cat(0xa5e648149fe1786a, 0xef25f571a9728f18) }, // -1750
+ { cat(0x10b44487ea94f88a, 0x80747480a0b7cc32), cat(0x84b839aa19812d22, 0x58eb2ac1545ba5ad) }, // -1749
+ { cat(0x4ded3a7310ee5a77, 0x33ed8734345946b7), cat(0xd459f5dcf59b7b6a, 0x27deaaceed5f6f7b) }, // -1748
+ { cat(0xa4bdc85c0d8b7b92, 0x8ff138f690476bc5), cat(0xa9e1917d91492f88, 0x1fe55572577f8c62) }, // -1747
+ { cat(0x5097d37cd7a2c942, 0x0cc0fa5ed9d2bc9e), cat(0x87e7a797a76dbfa0, 0x1984445b7932d6b5) }, // -1746
+ { cat(0x4dbfb8c7bf6adb9c, 0xe134c3caf61dfa96), cat(0xd972a5bf72493299, 0xc26d3a2bf51e2455) }, // -1745
+ { cat(0xd7cc93d2ff88afb0, 0xb42a363bf817fbab), cat(0xadf55165f5075bae, 0x35242e8990e4e9dd) }, // -1744
+ { cat(0xaca3a975993a2626, 0xf6882b632cdffc89), cat(0x8b2aa784c405e2f1, 0xc41cf207a71d87e4) }, // -1743
+ { cat(0x14390f228ec3703e, 0x5740456b7afffa75), cat(0xdeaaa5a139a304b6, 0x0694b672a4fc0ca1) }, // -1742
+ { cat(0x76940c1ba5692698, 0x45cd0455fbfffb91), cat(0xb2221e1a94826a2b, 0x3876f85bb7300a1a) }, // -1741
+ { cat(0x5edcd67c84541ee0, 0x37d736ab2ffffc74), cat(0x8e81b1aedd3521bc, 0x2d2bf9e2f8f33b48) }, // -1740
+ { cat(0xcafaf0c73a203166, 0xbfbebddeb3332d86), cat(0xe402b5e49521cf93, 0x7b798fd18e51f873) }, // -1739
+ { cat(0x3bfbf3d294e68deb, 0xcc9897e55c28f138), cat(0xb6689183aa8172dc, 0x62c7a6413ea7f9f6) }, // -1738
+ { cat(0xc9965ca8771ed7ef, 0xd6e0798449ba5a93), cat(0x91ed4136220128b0, 0x4f061e9a98866191) }, // -1737
+ { cat(0xa8f09440be97bfe6, 0x249a5c06dc5d5db8), cat(0xe97b9b89d001dab3, 0xb1a3642a8da3cf4f) }, // -1736
+ { cat(0x53f3a9cd6546331e, 0x83aeb0057d177e2d), cat(0xbac9493b0cce488f, 0xc14f83553e1ca5d9) }, // -1735
+ { cat(0xdcc2ee3dea9e8f4b, 0x9c8bc0046412cb57), cat(0x956dd42f3d71d3a6, 0x343f9c4431b084ad) }, // -1734
+ { cat(0x946b16c977641878, 0xfa79333a39b7abbf), cat(0xef16204b9582ec3d, 0x2065c6d382b4077c) }, // -1733
+ { cat(0x1055abd45f8346c7, 0x2ec75c2e9492efcc), cat(0xbf44e6a2de025697, 0x4d1e38a9355cd2ca) }, // -1732
+ { cat(0xd9de23104c69056c, 0x256c49bedd425970), cat(0x9903ebb57e684545, 0xd74b60875de3dbd4) }, // -1731
+ { cat(0x8fc9d1b3ad74d579, 0xd57a0f97c86a28b3), cat(0xf4d312bbfd73a209, 0x58789a722fd2f954) }, // -1730
+ { cat(0x7307daf6245d7794, 0xaac80c796d21ba29), cat(0xc3dc0efccac2e807, 0x79fa152826426110) }, // -1729
+ { cat(0x5c0648c4e9e45faa, 0x2239a394574e2e87), cat(0x9cb00bfd6f025339, 0x2e61aa868501e740) }, // -1728
+ { cat(0x933d413b0fd3cc43, 0x69f5d286f216b0d8), cat(0xfab346624b36eb8e, 0xb09c440a6e697200) }, // -1727
+ { cat(0x0f64342f3fdca369, 0x21917538c1abc0ad), cat(0xc88f6b81d5c5893e, 0xf3b0366ebebac19a) }, // -1726
+ { cat(0x3f835cf2997d4f87, 0x4e0df7609aefcd57), cat(0xa072bc67de37a0ff, 0x2959c5256562347b) }, // -1725
+ { cat(0x32cf7d8ee1310c6c, 0x3e7192b3af263ddf), cat(0x805bc9ecb1c61a65, 0xbaae37511de829fc) }, // -1724
+ { cat(0x1e18c8e49b81ad79, 0xfd828452b1d6c965), cat(0xcd5fa97ab609c3d5, 0xf77d254e9640432d) }, // -1723
+ { cat(0x7e7a3a507c67bdfb, 0x313536a88e456deb), cat(0xa44c87955e6e3644, 0xc5fdb77211cd028a) }, // -1722
+ { cat(0x9861c84063863195, 0xc0f75eed3e9df189), cat(0x83706c777ebe91d0, 0x9e6492c1a7d7353b) }, // -1721
+ { cat(0xf3cfa6cd6c09e8ef, 0x9b2564aeca964f41), cat(0xd24d7a58caca82e7, 0x63d41e02a62521f8) }, // -1720
+ { cat(0xf63fb8a4566e53f2, 0xe284508bd5450c34), cat(0xa83dfb7a3bd53585, 0xe9767e6884ea8193) }, // -1719
+ { cat(0x2b662d5045250ff5, 0x820373a3110409c3), cat(0x8697fc61c9775e04, 0xbac531ed37220143) }, // -1718
+ { cat(0x123d154d3b6e7fef, 0x366bec381b39a938), cat(0xd75993cfa8befcd4, 0x5e084fe1f1d00205) }, // -1717
+ { cat(0xa830ddd762beccbf, 0x5ebcbcf9af61542d), cat(0xac47a972ed659710, 0x4b39d9818e40019d) }, // -1716
+ { cat(0xecf3e4ac4eff0a32, 0xb230972e25e7768a), cat(0x89d2edf58ab7ac0d, 0x08fb1467a500014a) }, // -1715
+ { cat(0xae53077a17fe76b7, 0x8380f1e36fd8bdaa), cat(0xdc84afef44591348, 0x0e5e870c3b333544) }, // -1714
+ { cat(0x8b759f94dffec55f, 0x9c6727e92646fe22), cat(0xb06a2659037a75d3, 0x3eb205a3628f5dd0) }, // -1713
+ { cat(0x092ae610b332377f, 0xb05286541e9f31b5), cat(0x8d21b84735fb9175, 0xcbc19e1c4ed917da) }, // -1712
+ { cat(0xdb77d6811eb6bf32, 0xb3b73d536431e921), cat(0xe1cf8d3ebcc5b589, 0x46029693b15b595c) }, // -1711
+ { cat(0x7c5fdecdb22bcc28, 0x8fc5caa91cf4ba81), cat(0xb4a60a989704913a, 0x9e687876277c477d) }, // -1710
+ { cat(0x637fe5715b563ced, 0x3fd16eedb0c3c867), cat(0x9084d546df36da95, 0x4b86c6c4ec636c64) }, // -1709
+ { cat(0x05996f1bc556c7e1, 0xffb57e491ad2da3e), cat(0xe73aeed7cb8af755, 0x45a4713b13d24707) }, // -1708
+ { cat(0x9e1458e304456cb4, 0xcc9131d415757b65), cat(0xb8fbf2463c6f2c44, 0x37b6c0fc0fdb6c05) }, // -1707
+ { cat(0xe4dd13e8d0378a2a, 0x3d40f4a9aac462b7), cat(0x93fcc1d1c9f289d0, 0x2c9233fcd97c566a) }, // -1706
+ { cat(0x6e2e86414d25a9dd, 0x2ece5442aad3d125), cat(0xecc79c82dcb742e6, 0xadb6b9948f2d5711) }, // -1705
+ { cat(0x582538343db7bb17, 0x58a51035557640ea), cat(0xbd6c7d357d5f68b8, 0x8af89476d8f11274) }, // -1704
+ { cat(0x1350f9c36492fc12, 0xad50d9c4445e9a55), cat(0x9789fdc4644c53c6, 0xd593a9f8ad8da85d) }, // -1703
+ { cat(0xb8818f9f07519351, 0x154e293a06fdc3bb), cat(0xf27662d3d3ad52d7, 0xbc1f765aaf490d61) }, // -1702
+ { cat(0x939ad94c05dadc40, 0xddd820fb38cb02fc), cat(0xc1f84f0fdc8aa8ac, 0x967f91e225d40ab4) }, // -1701
+ { cat(0x76157aa337e249cd, 0x7e4680c8fa3c0264), cat(0x9b2d0c0cb06eed56, 0xdecc74b4eb100890) }, // -1700
+ { cat(0x89bbf76b8c9d42e2, 0x63a40141906003d2), cat(0xf848134780b17bbe, 0x314721217819a74d) }, // -1699
+ { cat(0xd4965f893d4a9be8, 0x4fb66767a6b33642), cat(0xc6a00f6c66f462fe, 0x8dd280e79347b90a) }, // -1698
+ { cat(0x43ab7fa0fdd54986, 0xa62b85ec855c2b68), cat(0x9ee672bd1f29e8cb, 0xa4a8671fa9062da2) }, // -1697
+ { cat(0x05df329b2fbba8d7, 0x7045a314089378a6), cat(0xfe3d8461cb764145, 0xd440a4ff74d6af6a) }, // -1696
+ { cat(0x04b28ee28c9620ac, 0x59d14f433a0f93b8), cat(0xcb6469e7d5f83437, 0xdd0083ff90abbf88) }, // -1695
+ { cat(0xd08ed8b53d44e6f0, 0x47daa5cf61a60fc7), cat(0xa2b6bb1fde6029c6, 0x4a66cfffa6efcc6c) }, // -1694
+ { cat(0xda0be090fdd0b8c0, 0x397bb7d91aeb3fd2), cat(0x822bc8e64b80216b, 0x6eb8a6661f263d23) }, // -1693
+ { cat(0x29ac9a81961ac133, 0x8f2c595b5e4532ea), cat(0xd0460e3d4599cf12, 0x4ac10a3cfea39506) }, // -1692
+ { cat(0x548a15347815675c, 0x7289e115e50428bb), cat(0xa69e71ca9e14a5a8, 0x3bcda1ca654faa6b) }, // -1691
+ { cat(0x76d4ddc3934452b0, 0x5ba180de50d02096), cat(0x854b8e3bb1aa1e20, 0x2fd7b4a1eaa621ef) }, // -1690
+ { cat(0x8aee2f9f5206eab3, 0xc5cf3496e7b36756), cat(0xd545b05f82a9c9cd, 0x195921031109cfe5) }, // -1689
+ { cat(0x6f24f2e5db38bbc3, 0x04a5c3abec8f85de), cat(0xaa9e26b2ceee3b0a, 0x7aadb4027407d984) }, // -1688
+ { cat(0x25b728b7e293c968, 0xd0849c898a0c6b18), cat(0x887e855bd8be95a1, 0xfbbe299b9006479d) }, // -1687
+ { cat(0x6f8b74596a860f0e, 0x1a6dc742767a44f3), cat(0xda640892f464229c, 0xc5fd0f5f4cd6d8fb) }, // -1686
+ { cat(0xbfa2c37abb9e7271, 0xaebe3901f861d0c3), cat(0xaeb66d425d1ce87d, 0x6b30d9190a457a62) }, // -1685
+ { cat(0x994f02c896185b8e, 0x2564fa67f9e7da36), cat(0x8bc52435174a5397, 0x88f3e0e0d50461e8) }, // -1684
+ { cat(0x5bb19e0dbcf3c5b0, 0x3bd4c3d98fd95d22), cat(0xdfa1d3882543b8f2, 0x74b967ce21a09ca7) }, // -1683
+ { cat(0xe2f47e7163f637c0, 0x2fdd697ad97ab0e8), cat(0xb2e7dc6cea9c93f5, 0x2a2deca4e7b3b085) }, // -1682
+ { cat(0xb5906527832b5fcc, 0xf31787957ac88d87), cat(0x8f1fe38a554a0ff7, 0x54f18a1d86295a04) }, // -1681
+ { cat(0xbc1a3b726b789947, 0xeb58d8ef2ada7c0a), cat(0xe4ffd276eedce658, 0x87e8dcfc09dbc33a) }, // -1680
+ { cat(0x3014fc5b892d476c, 0xbc4713f288aec9a2), cat(0xb7330ec58be3eb7a, 0x0653e3fcd4afcf62) }, // -1679
+ { cat(0x8cdd96afa0f105f0, 0x969f43286d58a14f), cat(0x928f3f046fe9892e, 0x6b764ffd76f30c4e) }, // -1678
+ { cat(0x7afc244c34b4d64d, 0xbdcb9ea7155a9bb1), cat(0xea7ecb3a4ca8db7d, 0x78bd4cc8be51ad4a) }, // -1677
+ { cat(0xfbfce9d69090ab71, 0x64a2e552777bafc1), cat(0xbb98a2950a20af97, 0x93caa3d3cb748aa1) }, // -1676
+ { cat(0xfcca54aba6da22c1, 0x1d4f1ddb92c95967), cat(0x9613b544081a2612, 0xdca21ca96f906ee7) }, // -1675
+ { cat(0x6143baac3e29d134, 0xfbb1c95f514228a4), cat(0xf01f886cd9c3701e, 0x2dd02ddbe5b3e4a6) }, // -1674
+ { cat(0xb4362ef031bb0dc3, 0xfc8e3ab2a7682084), cat(0xc01939f0ae35f34b, 0x57d9be49848fea1e) }, // -1673
+ { cat(0x902b58c027c8d7cf, 0xfd3e955bb9201a03), cat(0x99adc7f3be918f6f, 0x797afea136d98818) }, // -1672
+ { cat(0x80455acd0c748c7f, 0xfb97555f8e99c338), cat(0xf5e2d985fdb5b24b, 0xf591976857c2735a) }, // -1671
+ { cat(0x99d11570d6c3a399, 0x9612aab2d87b0293), cat(0xc4b57ad197c48ea3, 0x2adadf86ac9b8f7b) }, // -1670
+ { cat(0x7b0daac0abcfb614, 0x780eeef579fc020f), cat(0x9d5dfbdadfd0721c, 0x2248b2d223afa5fc) }, // -1669
+ { cat(0x91af779aac7f89ba, 0x59b17e558ff99ce5), cat(0xfbc992f7cc80b693, 0x6a0deae9d2b2a32d) }, // -1668
+ { cat(0xdaf2c61556cc6e2e, 0xae279844732e171e), cat(0xc96e0f2ca39a2ba9, 0x21a4bbee4228828a) }, // -1667
+ { cat(0xaf289e7778a38b58, 0x8b52e036c28b45b1), cat(0xa124d8f082e1bc87, 0x4e1d632501ba0208) }, // -1666
+ { cat(0x58ed4b92c6e93c46, 0xd5dbe692353c37c1), cat(0x80ea4726cf1afd39, 0x0b4ab5b73494ce6d) }, // -1665
+ { cat(0x5b1545b7a4a86071, 0x562ca41d21f9f2cf), cat(0xce43a50ae4f7fb8e, 0x7877892520ee1715) }, // -1664
+ { cat(0xaf4437c61d53805a, 0xab56e9b0e7fb28a5), cat(0xa502ea6f1d932fa5, 0x2d2c6db74d8b45aa) }, // -1663
+ { cat(0x59035fd1b10f99e2, 0x22abee271ffc2084), cat(0x84025525b1428c84, 0x24238af90ad5d155) }, // -1662
+ { cat(0x2805661c4e7f5c9d, 0x044649d8332d00d3), cat(0xd336eea2b5374739, 0xd36c118e77bc8222) }, // -1661
+ { cat(0x866ab816a532b07d, 0x9d0507e028f0cd76), cat(0xa8f8bee890f905c7, 0xdc567471f9639b4e) }, // -1660
+ { cat(0x385560121dc226ca, 0xe404064ced8d712b), cat(0x872d6586da60d16c, 0xb04529f4c782e2a5) }, // -1659
+ { cat(0xf3bbcce9c936a477, 0xd339a3ae48e24eab), cat(0xd848a2715d67b57a, 0xb3a1dcbad8d16aa1) }, // -1658
+ { cat(0xc2fca3ee3a921d2c, 0xa8fae9583a4ea556), cat(0xad06e85ab11fc462, 0x294e4a2f13dabbb4) }, // -1657
+ { cat(0x3596e98b620e7dbd, 0x53fbede02ea55112), cat(0x8a6bed155a7fd04e, 0x8771d4f27648962a) }, // -1656
+ { cat(0x55be42789ce3fc62, 0x1ff97c99e43bb4e9), cat(0xdd797b555d994d4a, 0x724fbb1d8a0dbd10) }, // -1655
+ { cat(0xde31cec6e3e996b4, 0xe661307b1cfc90ba), cat(0xb12dfc444ae10aa1, 0xf50c95b13b3e30d9) }, // -1654
+ { cat(0x7e8e3f058321455d, 0x851a8d2f4a63a6fc), cat(0x8dbe6369d580d54e, 0x5da3aaf42f64f3e1) }, // -1653
+ { cat(0xfdb064d59e9ba22f, 0x3b5daeb2109f7192), cat(0xe2ca38a9559aeee3, 0xc905de537f07ec9b) }, // -1652
+ { cat(0x3159ea447ee2e825, 0xc917bef4da1927a8), cat(0xb56e93baaae258b6, 0x3a6b1842cc0656e3) }, // -1651
+ { cat(0x8de18836cbe8b9b7, 0xd412ff2a48141fba), cat(0x912542fbbbe846f8, 0x2ebc1368a3384582) }, // -1650
+ { cat(0x7c9c0d2479745c59, 0x53519843a6869929), cat(0xe83b9e5f930d3e59, 0xe4601f0dd1f3a26a) }, // -1649
+ { cat(0xca1670e9fac37d14, 0x42a7ad02eb9ee0ee), cat(0xb9c94b7fa8d76514, 0xb6b34c0b0e5c81ee) }, // -1648
+ { cat(0x0811f3ee6235fda9, 0xceec8a68bc7f1a58), cat(0x94a10932ed791daa, 0x2bc2a33c0b7d34bf) }, // -1647
+ { cat(0x734fecb09d232f76, 0x17e0dd7460cb5d59), cat(0xedce751e48c1c910, 0x460438601261edfe) }, // -1646
+ { cat(0x8f7323c07db5bf91, 0xacb3e45d1a3c4aae), cat(0xbe3ec4183a34a0d9, 0xd19cf9e6751b24cb) }, // -1645
+ { cat(0x3f8f4fcd315e32da, 0xf08fe9e414fd088b), cat(0x98323679c82a1a47, 0xdae3fb1ec415b709) }, // -1644
+ { cat(0xff4bb2e1e896b7c4, 0xb4197639bb2e7412), cat(0xf3838a5c73769072, 0xf7d32b646cef8b41) }, // -1643
+ { cat(0x65d628b4ba122c9d, 0x5ce12b61628b900e), cat(0xc2cfa1e38f920d28, 0xc642891d23f2d5ce) }, // -1642
+ { cat(0xeb11ba2a2e74f07d, 0xe3e755e78209400c), cat(0x9bd94e4fa60e70ed, 0x6b686db0e98f1171) }, // -1641
+ { cat(0x781c5d104a54b3fc, 0x9fd8897269a86679), cat(0xf95bb07f70171b15, 0x78a715e7dc181be9) }, // -1640
+ { cat(0x9349e40d0843c330, 0x7fe06df52153852d), cat(0xc77c8d32c0127c11, 0x2d5277ecb0134987) }, // -1639
+ { cat(0x75d4b670d36968f3, 0x998057f74ddc6a8b), cat(0x9f96d75bccdb9674, 0x2441f98a2675d46c) }, // -1638
+ { cat(0xefbabd8152424185, 0xc266f3254960aa77), cat(0xff57bef947c5bd86, 0xa0698f4370bc8713) }, // -1637
+ { cat(0x8c9564677501ce04, 0x9b858f5107808860), cat(0xcc4632610637cad2, 0x19ee0c35f3ca05a9) }, // -1636
+ { cat(0x3d445052c401719d, 0x4937a5da6c66d380), cat(0xa36b5b80d1c63bdb, 0x47f1a35e5ca19e21) }, // -1635
+ { cat(0xca9d0d0f03345ae4, 0x3a92eb1523857600), cat(0x82bc4933db04fcaf, 0x6cc14f7eb0814b4d) }, // -1634
+ { cat(0x442e7b4b3853c4a0, 0x5db7de8838d58999), cat(0xd12d41ec91a1944b, 0xe1354bfde7354549) }, // -1633
+ { cat(0x035862a2937636e6, 0xb15fe539c7113ae1), cat(0xa75767f07481436f, 0xe75dd664b8f76aa1) }, // -1632
+ { cat(0xcf79e8820f91c585, 0x5ab31dc7d2742f1b), cat(0x85df8659f6cdcf8c, 0xb917deb6fa5f8880) }, // -1631
+ { cat(0x18c30d9ce5b608d5, 0x5deb62d950b9e4f7), cat(0xd632708ff1494c14, 0x5b596457f6ff40ce) }, // -1630
+ { cat(0xad68d7b0b7c4d3dd, 0xe4bc4f144094b72c), cat(0xab5b8d3ff43aa343, 0x7c4783799265cd71) }, // -1629
+ { cat(0x8aba4626f96a4317, 0xea303f4366dd5f57), cat(0x89160a99902ee902, 0xc9d2cf94751e3df4) }, // -1628
+ { cat(0xddf6d6a4c2439e8c, 0xa9e6cb9f0afbcbbd), cat(0xdb56775c19e4a804, 0x761e18ed88306320) }, // -1627
+ { cat(0xb19245509b694ba3, 0xbb1f094c08c96fcb), cat(0xaf785f7ce183b99d, 0x2b4b47246cf38280) }, // -1626
+ { cat(0x5adb6aa6e2baa2e9, 0x627f3aa33a3abfd6), cat(0x8c604c63e79c947d, 0xbc3c38e9f0c2cecd) }, // -1625
+ { cat(0x5e2bddd7d12a9e42, 0x3731f76b905dffbc), cat(0xe09a13d30c2dba62, 0xc6c6c1764e047e15) }, // -1624
+ { cat(0x4b564b130dbbb1ce, 0x928e5f89404b32fd), cat(0xb3ae76427024951b, 0xd2389ac50b36cb44) }, // -1623
+ { cat(0x6f783c0f3e2fc172, 0x0ed84c6dcd08f597), cat(0x8fbec501f3507749, 0x74fa156a6f5f0903) }, // -1622
+ { cat(0xe58d2ce5304c68b6, 0x7e26e0afae74bc25), cat(0xe5fe08031ee72542, 0x54c3557718980e6b) }, // -1621
+ { cat(0x1e0a8a50f37053c5, 0x31b8b3bfbec3c9b7), cat(0xb7fe6ccf4bec1dce, 0xaa35ddf8e079a523) }, // -1620
+ { cat(0x18086ea72926a96a, 0x8e2d5c9965696e2c), cat(0x9331f0a5d6567e3e, 0xee917e60b394841c) }, // -1619
+ { cat(0xc00d7dd841d77577, 0x49e22dc23bdbe379), cat(0xeb831aa2f08a6397, 0xe41bfd6785ba6cf9) }, // -1618
+ { cat(0xccd797e034ac5df9, 0x07e8249b63164f94), cat(0xbc68e21bf3a1e946, 0x50166452d161f0c7) }, // -1617
+ { cat(0x70ac79802a237e60, 0xd3201d491c11d944), cat(0x96ba4e7cc2e7edd1, 0xd9ab8375744e5a39) }, // -1616
+ { cat(0x4de0c266a9d263ce, 0x1e99c874f9b6286c), cat(0xf12a172e04a6494f, 0xc2ac0588ba16f6c2) }, // -1615
+ { cat(0x71809b8554a84fd8, 0x187b06c3faf82056), cat(0xc0ee78f19d51d43f, 0xcef0046d61abf89b) }, // -1614
+ { cat(0x8e007c6aaa203fe0, 0x13959f032f2ce6ac), cat(0x9a5860c14aa7dcff, 0xd8c0038ab48993af) }, // -1613
+ { cat(0xe333fa444366cc99, 0xb8ef64d1e514a446), cat(0xf6f3ce02110c94cc, 0x8e0005aaba75b918) }, // -1612
+ { cat(0x4f5cc8369c523d47, 0xc725ea418410836b), cat(0xc58fd801a73d43d6, 0xd8000488952afa7a) }, // -1611
+ { cat(0x3f7d6cf87d0e976c, 0x9f51883469a6cf89), cat(0x9e0cacce1f643645, 0x79999d3a10ef2ec8) }, // -1610
+ { cat(0x98c8ae5a61b0f247, 0x654f4053dc3e18db), cat(0xfce1147cff06bd3b, 0xf5c29529b4b1e473) }, // -1609
+ { cat(0xad6d58484e272839, 0x1dd90043169813e2), cat(0xca4da9fd98d230fc, 0xc49baa87c3c1838f) }, // -1608
+ { cat(0x578aad06a4ec202d, 0xb17a669c1213431c), cat(0xa1d7bb31470e8d97, 0x03afbb9fcfce02d9) }, // -1607
+ { cat(0x46088a6bb7234cf1, 0x5ac8521674dc35b0), cat(0x8179628dd2720adf, 0x36262fb30ca4cf14) }, // -1606
+ { cat(0xa340dd79250547e8, 0x91408357216055e6), cat(0xcf289dafb71cde31, 0xf03d191e7aa14b53) }, // -1605
+ { cat(0xe900b12db7376cba, 0x0dcd35df4de6ab1e), cat(0xa5ba17bfc5b0b1c1, 0x8cfdadb1fbb43c42) }, // -1604
+ { cat(0x20cd5a8af8f923c8, 0x0b0a917f718555b2), cat(0x8494dfcc9e26f49a, 0xd73157c19629c9cf) }, // -1603
+ { cat(0x9ae22a77f4c1d2d9, 0xab441bff1c08891c), cat(0xd4216614303e542a, 0xf1e88c68f042dc7e) }, // -1602
+ { cat(0x1581bb932a34a8ae, 0x229ce3327cd3a0e4), cat(0xa9b451a9c031dcef, 0x27ed3d20c0357d32) }, // -1601
+ { cat(0x779afc75bb5d53be, 0x82171c2863dc80b6), cat(0x87c37487ccf4b0bf, 0x532430e7002aca8e) }, // -1600
+ { cat(0xbf5e60bc5efbb930, 0xd024f9da3960cdf0), cat(0xd938ba72e1878132, 0x1ea04e3e66aaddb0) }, // -1599
+ { cat(0x65e51a304bfc9427, 0x0cea617b611a3e5a), cat(0xadc6fb8f1ad2cdc1, 0xb219d831ebbbe48d) }, // -1598
+ { cat(0xb7ea7b59d663a9b8, 0xd721e795e74831e1), cat(0x8b05960c15757167, 0xc1ae468e562fea0a) }, // -1597
+ { cat(0xbfdd92295705dc5a, 0xf1cfd8efd8738302), cat(0xde6f5679bbef1bd9, 0x35e3a416f04ca9aa) }, // -1596
+ { cat(0x664adb54459e49e2, 0x5b0cad8cad29359b), cat(0xb1f2ab949658e314, 0x2b1c83458d0a2155) }, // -1595
+ { cat(0xb83be2a9d14b6e4e, 0xaf3d57a3bdba9149), cat(0x8e5bbc76dead8276, 0x88e39c37a4081aaa) }, // -1594
+ { cat(0x8d2c9ddc82124a17, 0x7ec88c392f90e875), cat(0xe3c5fa57caaf3724, 0x0e38f9f2a00cf777) }, // -1593
+ { cat(0xd756e4b0680ea1ac, 0x656d3cfa8c73ed2a), cat(0xb637fb796ef29283, 0x3e93fb28800a5f92) }, // -1592
+ { cat(0x45df1d59ecd88156, 0xb78a972ed6c32422), cat(0x91c662c78bf54202, 0x98766286ccd51942) }, // -1591
+ { cat(0xa2fe955cae273557, 0x8c10f1e48ad1d369), cat(0xe93d6ad8dfeed004, 0x2723d0d7ae21c203) }, // -1590
+ { cat(0x8265444a24ec2aac, 0x700d8e506f0e42bb), cat(0xba9788ad7ff24003, 0x52830d79581b019c) }, // -1589
+ { cat(0x351dd03b50bceef0, 0x59a471d9f271cefc), cat(0x954606f133283335, 0xdb9c0ac779af347d) }, // -1588
+ { cat(0x21c94d2bb4617e4d, 0x5c3a4fc31d82e4c6), cat(0xeed67181eb738522, 0xf8f9aad8c2b1ed95) }, // -1587
+ { cat(0xe7d43dbc904dfea4, 0x49c83fcf4acf1d6b), cat(0xbf11f467ef8f9db5, 0x93faef13cef4be10) }, // -1586
+ { cat(0x86436496d9d7fee9, 0xd4a0330c3bd8e456), cat(0x98db29ecbfa617c4, 0x766258dca590980d) }, // -1585
+ { cat(0x0a056dbe295997dc, 0x8766b81392f4a089), cat(0xf491dcadff702607, 0x23d08e2dd5b4267c) }, // -1584
+ { cat(0x3b378afe877adfe3, 0x9f85600fa8c3b3a1), cat(0xc3a7e3be65f3519f, 0x4fda0b57de29b863) }, // -1583
+ { cat(0x6292d5986c624cb6, 0x1937800c8702f61a), cat(0x9c864fcb84c2a7b2, 0xa64809131821604f) }, // -1582
+ { cat(0x375155c0ad6a1456, 0x8ebf33473e6b235d), cat(0xfa707fac079dd91d, 0xd6d9a81e8d0233b2) }, // -1581
+ { cat(0xc5daab008abb4378, 0x72328f6c31ef4f7e), cat(0xc859ffbcd2e4adb1, 0x78ae201870ce8fc1) }, // -1580
+ { cat(0xd17bbc006efc35f9, 0xf4f53f89c18c3f98), cat(0xa047ffca42508af4, 0x608b4ce05a3ed967) }, // -1579
+ { cat(0x0dfc9666bf302b2e, 0x5d90ffa167a36613), cat(0x8039996e9b73a25d, 0x1a090a4d14ff1453) }, // -1578
+ { cat(0xe32dbd7131e6ab7d, 0x628199023f6bd685), cat(0xcd28f57dc585d094, 0xf674dd4821982084) }, // -1577
+ { cat(0xb5be31275b1eef97, 0x82014734ff89786a), cat(0xa420c4649e04a6dd, 0x91f7176ce7ace6d0) }, // -1576
+ { cat(0x9164f41f7c18bfac, 0x680105c3ffa12d22), cat(0x834d69ea1803b8b1, 0x41927923ec8a5240) }, // -1575
+ { cat(0x1bd4b9cbf9c132ad, 0x7334d60665ceae9d), cat(0xd2157643599f8de8, 0x68ea5b6cadaa1d34) }, // -1574
+ { cat(0x7caa2e3cc7cdc224, 0x5c2a44d1eb0bbee4), cat(0xa8112b69147fa4b9, 0xed884923be21b0f6) }, // -1573
+ { cat(0x63bb58309fd7ce83, 0x7cee9d74bc096583), cat(0x867422ba76cc83c7, 0xf139d41c981af3f8) }, // -1572
+ { cat(0x05f88d1a99594a6b, 0xfb176254600f08d1), cat(0xd7203790be14060c, 0xb5295360f35e5327) }, // -1571
+ { cat(0x37fa0a7bade10856, 0x62791b76b33f3a41), cat(0xac19c60d64dcd1a3, 0xc4210f80c2b1dc1f) }, // -1570
+ { cat(0x5ffb3b9624b406ab, 0x81fa7c5ef5cc2e9b), cat(0x89ae380ab7170e1c, 0x9ce73f9a355b167f) }, // -1569
+ { cat(0xccc52c236decd778, 0xcff72d64bc79e42a), cat(0xdc49f3445824e360, 0xfb0b98f6bbc4f0cb) }, // -1568
+ { cat(0x3d6a89b5f18a45fa, 0x3ff8f11d6394b688), cat(0xb03b290379b71c4d, 0x95a2e0c56303f3d6) }, // -1567
+ { cat(0x64553af7f46e9e61, 0xccc7274ab6109207), cat(0x8cfc20cf94927d0a, 0xde1be7044f365cab) }, // -1566
+ { cat(0xa0885e59871763cf, 0xae0b7211234db671), cat(0xe19367b28750c811, 0x635fd806e523c778) }, // -1565
+ { cat(0xb3a04b7ad2791ca6, 0x24d5f4da82a491f4), cat(0xb475ec8ed2a70674, 0x4f7fe005841c9f93) }, // -1564
+ { cat(0x8fb36f95752db084, 0xea44c3e2021d4190), cat(0x905e56d8a8859ec3, 0x72ccb3379ce3b2dc) }, // -1563
+ { cat(0x191f18ef21e2b407, 0xdd3ad303369535b3), cat(0xe6fd57c10da2979f, 0x1e1451f2949f8494) }, // -1562
+ { cat(0x7a7f4725b4b55cd3, 0x17624268f8775e29), cat(0xb8caac9a714edfb2, 0x7e76a7f543b2d076) }, // -1561
+ { cat(0x2ecc38eaf6f77d75, 0xac4e9b872d2c4b54), cat(0x93d556e1f43f195b, 0x985eecc43628a6c5) }, // -1560
+ { cat(0xb146c177f18bfbef, 0x7a175f3eaead4553), cat(0xec888b032064f55f, 0x5a317ad389daa46e) }, // -1559
+ { cat(0x276bcdf98e099659, 0x2e7918fef2243776), cat(0xbd3a08cf4d1d9119, 0x14f46242d4aee9f2) }, // -1558
+ { cat(0xb9230b2e0b3adead, 0xbec747325b502c5e), cat(0x9761a0a5d74ada7a, 0x7729e83576f254c1) }, // -1557
+ { cat(0x8e9e7849ab916449, 0x313ed8509219e097), cat(0xf235cdd6254490c3, 0xf1dca6bbf183bacf) }, // -1556
+ { cat(0x0bb1f9d489411d07, 0x5a98ad0d41ae4d45), cat(0xc1c4a4ab5103a703, 0x27e3b8965acfc8a6) }, // -1555
+ { cat(0xd627fb106dcdb0d2, 0xaee08a7101583dd1), cat(0x9b03b6ef7402ec02, 0x864fc6deaf0ca084) }, // -1554
+ { cat(0x89d991b3e2e2b484, 0x4b00dd819bc062e8), cat(0xf805f17f2004acd0, 0xd6e60afde4e100d4) }, // -1553
+ { cat(0xa17adaf64f1bc39d, 0x08cd7e014966b587), cat(0xc66b2798e66a23da, 0x4584d597ea4d9a43) }, // -1552
+ { cat(0x1ac8af2b727c9c7d, 0xa0a464cdd4522ad2), cat(0x9ebc1fad8521b648, 0x379d77acbb714836) }, // -1551
+ { cat(0x9141184583fa93fc, 0x343a3ae2ed504483), cat(0xfdf9cc48d502bd40, 0x58fbf2adf8b54056) }, // -1550
+ { cat(0xa767469e032edcc9, 0xc361c8b58aa69d36), cat(0xcb2e3d0710cefdcd, 0x13fcc224c6f766ab) }, // -1549
+ { cat(0x52b9054b35bf1707, 0xcf816d5e08854a92), cat(0xa28b6405a70bfe3d, 0xa99701b70592b889) }, // -1548
+ { cat(0x422d9dd5c498df39, 0x72cdf11806d10875), cat(0x82091cd1526ffe97, 0xbadf34926adbc6d4) }, // -1547
+ { cat(0x037c2fbc6dc16528, 0xb7afe826714e73ed), cat(0xd00e94821d7ffdbf, 0x916520ea4492d7ba) }, // -1546
+ { cat(0x9c6359638b011dba, 0x2c8cb9b85aa5298b), cat(0xa6721068179997cc, 0x7450e721d0757961) }, // -1545
+ { cat(0xb04f7ab608cdb161, 0xbd3d61604884213c), cat(0x85280d2012e1463d, 0x29da528173912de7) }, // -1544
+ { cat(0xe6e5912341491bcf, 0x952f0233a739cec6), cat(0xd50ce1cceb0209fb, 0x762a1d9bec1b7ca5) }, // -1543
+ { cat(0x525140e901074972, 0xddbf34f61f617238), cat(0xaa70b4a3ef34d4c9, 0x2b54e47cbce2ca1e) }, // -1542
+ { cat(0x750dcd873405d45b, 0xe498f72b4c4df4fa), cat(0x885a2a1cbf5d7707, 0x55dd8396fd823b4b) }, // -1541
+ { cat(0xbb4948d8533c86f9, 0x6dc18b787a1654c3), cat(0xda29dcfacbc8be72, 0x22fc05be6269f878) }, // -1540
+ { cat(0xfc3aa0ad0f639f2d, 0xf167a2c6c811dd69), cat(0xae87e3fbd63a31f4, 0xe8c99e31e854c6c6) }, // -1539
+ { cat(0xfcfbb3bda5e94c24, 0xc11fb56bd3417ded), cat(0x8b9fe99644fb5b2a, 0x53d47e8e5377056b) }, // -1538
+ { cat(0x94c5ec62a30ee03a, 0xce9922461ecf2fe2), cat(0xdf66428a07f891dd, 0x52ed974a1f24d579) }, // -1537
+ { cat(0x7704bd1bb5a5802f, 0x0badb504e5728cb5), cat(0xb2b8353b3993a7e4, 0x4257ac3b4c1d7794) }, // -1536
+ { cat(0x926a30e2f7b799bf, 0x3c8af7371df53d5e), cat(0x8ef9c42f6142ecb6, 0x9b795695d67df943) }, // -1535
+ { cat(0x83dd1b04bf8c2931, 0xfa77f1f1c988622f), cat(0xe4c2d37f0204adf0, 0xf8c22422f0c98ed2) }, // -1534
+ { cat(0x9cb0e26a32d6875b, 0x2ec65b27d46d1b59), cat(0xb70242cc019d57f3, 0xfa34e9b58d6e0bdb) }, // -1533
+ { cat(0x7d5a4ebb5bded2af, 0x589eaf5310574914), cat(0x92683570014aacc3, 0x2e90baf7a458097c) }, // -1532
+ { cat(0xc8907df892fe1de5, 0x5a977eeb4d5874ed), cat(0xea4055800211146b, 0x7db45e5906f34260) }, // -1531
+ { cat(0x6d4064c6dbfe7e51, 0x1545ff22a446c3f1), cat(0xbb66aaccce741055, 0xfe29e514058f684d) }, // -1530
+ { cat(0x8a99ea38affecb74, 0x1104cc1bb69f0327), cat(0x95ebbbd70b900d11, 0x982184100472b9d7) }, // -1529
+ { cat(0x10f6438de66478b9, 0xb4d479c5f0fe6b71), cat(0xefdf92f1ac19ae82, 0x8d026ce66d845c8c) }, // -1528
+ { cat(0x40c502d7eb8393c7, 0xc3dd2e37f3febc5b), cat(0xbfe60f27bce15868, 0x70cebd852469e3a3) }, // -1527
+ { cat(0x009d9bdfef9c7639, 0x697dbe93299896af), cat(0x9984d8ec971aad20, 0x5a3efe041d2182e9) }, // -1526
+ { cat(0x676292ffe5c7238f, 0x0f2f9751dc27577e), cat(0xf5a15b1424f77b66, 0xf6cb300695026b0e) }, // -1525
+ { cat(0x52b54266516c1c72, 0x728c790e49b912cb), cat(0xc48115a9b72c62b8, 0xc56f599edd9b88d8) }, // -1524
+ { cat(0xdbc4351ea789b05b, 0x8ed6c73ea160dbd6), cat(0x9d3411549289e893, 0xd125e14be47c6d79) }, // -1523
+ { cat(0x5fa054fdd8dc4d5f, 0x4af13eca9bce2c89), cat(0xfb868220ea7640ec, 0x81d635463a60af29) }, // -1522
+ { cat(0x4c8043fe4716a44c, 0x3bf4323bafd823a1), cat(0xc938681a552b6723, 0x9b11c4382eb3bf54) }, // -1521
+ { cat(0xd6cd0331d2788370, 0x2ff68e96264682e7), cat(0xa0f9ece1ddbc5282, 0xe2749cf9bef632a9) }, // -1520
+ { cat(0x123d9c27db939c59, 0xbff87211b83868b9), cat(0x80c7f0b4b1637535, 0x81f6e3faff2b5bbb) }, // -1519
+ { cat(0xb6c8f9d95f5293c2, 0xccc0b682c05a4128), cat(0xce0cb4544f058855, 0x9cbe399198455f91) }, // -1518
+ { cat(0x5f072e477f754302, 0x3d66f86899e1cdba), cat(0xa4d6f6a9d8d139de, 0x16fe947479d11941) }, // -1517
+ { cat(0xe59f583932c4359b, 0x64526053ae4e3e2e), cat(0x83df2bbb13da94b1, 0xabfedd29fb0dadcd) }, // -1516
+ { cat(0x6f6559f51e06bc2b, 0xd3b70085e3b0637d), cat(0xd2feac5e862a8782, 0xaccafb765e7c4949) }, // -1515
+ { cat(0xbf8447f74b389689, 0x762c006b1c8d1c64), cat(0xa8cbbd186b553935, 0x5708c92b7ec9d43a) }, // -1514
+ { cat(0x32d03992a293aba1, 0x2b5666bc16d749ea), cat(0x870964138910fa91, 0x126d6dbc656e4362) }, // -1513
+ { cat(0xeae6c2843752ac35, 0x1223d79357bedca9), cat(0xd80f0685a81b2a81, 0xb7157c60a24a0569) }, // -1512
+ { cat(0x88b89b9cf90ef02a, 0x74e97942ac98b087), cat(0xacd8d204867c2201, 0x5f44638081d4d121) }, // -1511
+ { cat(0xd3c6e2e3fa7259bb, 0x90bac7688a13c06c), cat(0x8a470e6a05301b34, 0x4c36b60067dd741a) }, // -1510
+ { cat(0xb93e37d32a508f92, 0x812ad8a74352cd7a), cat(0xdd3e7d766eb35eba, 0x138abccd72fbecf7) }, // -1509
+ { cat(0xfa982ca8eea6d942, 0x00ef13b902a8a462), cat(0xb0fecac5255c4bc8, 0x0fa230a45bfcbd92) }, // -1508
+ { cat(0xc879bd53f21f1434, 0xcd8c0fc73553b6b5), cat(0x8d98a2375116a306, 0x72e826e9e33097a8) }, // -1507
+ { cat(0x0d8f95531cfe86ba, 0xe279b2d85552bded), cat(0xe28dd05881bdd1a3, 0xeb0d0b0fd1e7590e) }, // -1506
+ { cat(0x0ad944427d986bc8, 0xb52e28ad110efe58), cat(0xb53e4046ce317483, 0x2270d5a64185e0d8) }, // -1505
+ { cat(0xa24769cecae0563a, 0x2a8b53bda73f31e0), cat(0x90fe99d23e8df6cf, 0x4ec0aaeb679e4d79) }, // -1504
+ { cat(0x9d3f0fb1449a2390, 0x44121f95d8651c99), cat(0xe7fdc2e9fdaff14b, 0xb13444abd8fd48c2) }, // -1503
+ { cat(0xe43272f436e1b60d, 0x0341b2de46b74a14), cat(0xb997cf2197bff43c, 0x8dc36a2313fdd3ce) }, // -1502
+ { cat(0x1cf528c35f1af80a, 0x69015be5055f6e77), cat(0x94797281463329ca, 0x0b02bb4f4331763f) }, // -1501
+ { cat(0x61884138982b2677, 0x0e6893080898b0bd), cat(0xed8f1d9ba3850fa9, 0xab3792186b8256cb) }, // -1500
+ { cat(0x1ad3676079bc1ec5, 0xa52075a006e08d64), cat(0xbe0c17afb6040c87, 0xbc2c74e05601df09) }, // -1499
+ { cat(0x48a91f8061634bd1, 0x50e6c4800580711d), cat(0x9809ac8c919cd6d2, 0xfcf05d8044ce4c07) }, // -1498
+ { cat(0x410e98cd689edfb5, 0x4e3e07333c00b4fb), cat(0xf342adadb5c7be1e, 0x6180959a07b079a5) }, // -1497
+ { cat(0xcda5470aba18b2f7, 0x71cb38f5c99a2a63), cat(0xc29bbe24916c9818, 0x4e0077ae6c8d2e1d) }, // -1496
+ { cat(0xd7b76c0894e08f2c, 0x5b08fa5e3ae1bb82), cat(0x9bafcb507456e013, 0x7199f95856d75817) }, // -1495
+ { cat(0x25f2467421674b7a, 0x2b419096c49c5f36), cat(0xf919454d86f16685, 0x828ff55a248bc026) }, // -1494
+ { cat(0x84c1d1f6811f6f94, 0xef67a6df03b04c2c), cat(0xc7476aa46bf45204, 0x68732aae83a3001e) }, // -1493
+ { cat(0x370174c534192610, 0xbf861f18cfc03cf0), cat(0x9f6c5550565d0e69, 0xed28eef202e8cce5) }, // -1492
+ { cat(0xbe68bad520283ce7, 0x98d69827b2cd2e4c), cat(0xff13bbb3bd61b0a9, 0x7b74b18337dae16e) }, // -1491
+ { cat(0x652095774cecfd86, 0x13dee01fc23dbea3), cat(0xcc0fc95c97815a21, 0x2f908e0293158125) }, // -1490
+ { cat(0x841a112c3d8a646b, 0x4318b34c9b649883), cat(0xa33fd44a12cde1b4, 0x260d3e6875aacdb7) }, // -1489
+ { cat(0x03480dbcfe085055, 0xcf46f5d6e2b6e069), cat(0x829976a1a8a4b490, 0x1e70feb9f7bbd7c6) }, // -1488
+ { cat(0x9ed9af94c9a6e6ef, 0xb20b22f16abe33db), cat(0xd0f58a9c4107874c, 0xfd81978ff2c62609) }, // -1487
+ { cat(0xe57af2dd6e1f1f26, 0x2808e8c12231c315), cat(0xa72ad549cd9f9f70, 0xcace12d98f04eb3a) }, // -1486
+ { cat(0x1dfbf57df1b27f51, 0xb9a0ba341b5b0278), cat(0x85bbddd4a47fb2c0, 0xa23e757ad8d0bc2f) }, // -1485
+ { cat(0xc99322631c50cbb5, 0xf5cdf6b9c55e6a59), cat(0xd5f962edd3ff8467, 0x69fd88c48e1ac6b1) }, // -1484
+ { cat(0x6e0f4eb5b040a2f7, 0xf7d7f8949de521e1), cat(0xab2de8be4332d052, 0xbb313a36d8156bc1) }, // -1483
+ { cat(0x580c3ef7c033b593, 0x2cacc6dd4b1db4b4), cat(0x88f186fe9c28a6a8, 0x95c0fb5f13445634) }, // -1482
+ { cat(0xc01397f2cd1f88eb, 0x7aae0afbab62bab9), cat(0xdb1c0b30f9daa440, 0xef9b2bcb5206f053) }, // -1481
+ { cat(0x3342dff570e60722, 0xc88b3bfc891bc894), cat(0xaf49a28d94aee9cd, 0x8c7c23090e6bf376) }, // -1480
+ { cat(0xf5cf1991271e6c1b, 0xd3a29663a0e306dd), cat(0x8c3ae87143bf2171, 0x3d301c073ebcc2c4) }, // -1479
+ { cat(0x22e4f5b50b63e02c, 0x85d0f09f67d1a494), cat(0xe05e40b53931cf1b, 0x9519c671fdfad13b) }, // -1478
+ { cat(0x4f1d915da2b64cf0, 0x6b0d8d4c530e1d44), cat(0xb37e9a2a9427d8e2, 0xddae385b3195742f) }, // -1477
+ { cat(0xa5b14117b55ea3f3, 0x88d7a43d0f3e7dd0), cat(0x8f987b55435313e8, 0xb1582d15c1445cf2) }, // -1476
+ { cat(0x091b9b5922310652, 0x748c39fb4b972fb3), cat(0xe5c0c5553884eca7, 0x8226ae89353a2e51) }, // -1475
+ { cat(0xd41615e0e8273841, 0xf6d694c90945bfc2), cat(0xb7cd6aaa939d8a1f, 0x9b52253a90fb5840) }, // -1474
+ { cat(0x76781180b9b8f9ce, 0x5f1210a0d437cc9b), cat(0x930abbbba94ad4e6, 0x15db50fba72f79cd) }, // -1473
+ { cat(0xf0c01c012927f616, 0xfe834dce2059475f), cat(0xeb445f92a877bb09, 0xbc921b2c3eb25c7b) }, // -1472
+ { cat(0x5a33499a87532b45, 0x98690b0b4d143919), cat(0xbc36b2dbb9f9626e, 0x3074e289cbc1e396) }, // -1471
+ { cat(0x14f5d47b9f75bc37, 0xad20d5a2a4102dae), cat(0x969228afc7fab524, 0xf390b53b0967e945) }, // -1470
+ { cat(0xee5620c5cbef938c, 0x4834890439b37c49), cat(0xf0e9dab2d99121d4, 0xb8e7885e75730ed4) }, // -1469
+ { cat(0xf1de809e3cbfa93d, 0x06906d9cfaf5fd07), cat(0xc0bb155be140e7dd, 0x60b939e52ac27243) }, // -1468
+ { cat(0x8e4b9a1830995430, 0xd20d247d95919739), cat(0x9a2f44498100b97d, 0xe6fa94b755685b69) }, // -1467
+ { cat(0x16df5cf380f55381, 0x5015072f55b5bec1), cat(0xf6b206dc019ac263, 0x0b2a878bbbda2bdc) }, // -1466
+ { cat(0x78b2b0c2cd910f9a, 0xa67738f2aaf7cbce), cat(0xc55b38b001489b82, 0x6f55393c96482316) }, // -1465
+ { cat(0x608ef3cf0ada72e2, 0x1ec5c72888c63ca5), cat(0x9de293c00106e2ce, 0xbf7760fd45068278) }, // -1464
+ { cat(0x9a7e52e4de2a5169, 0xcad60b740e09faa1), cat(0xfc9db93334d7d14a, 0xcbf234c86e70d0c0) }, // -1463
+ { cat(0xaecb7583e4eea787, 0xd5780929a4d4c881), cat(0xca17c75c2a464108, 0xa3282a39f1f3da33) }, // -1462
+ { cat(0x58a2c46983f21f9f, 0xddf9a0ee1d7706cd), cat(0xa1ac9f7cee9e9a6d, 0x4f5354fb27f64829) }, // -1461
+ { cat(0x46e89d21365b4c7f, 0xe4c7b3f1b12c0571), cat(0x8156e5fd8bb21524, 0x3f75dd95b991d354) }, // -1460
+ { cat(0x0b0dc83523c54733, 0x07a5ecb5e8466f1b), cat(0xcef16ffc12b68839, 0xff22fc22c282ebba) }, // -1459
+ { cat(0x6f3e39c41c9dd28f, 0x39518a2b203858e3), cat(0xa58df3300ef86cfb, 0x3282634f0202562e) }, // -1458
+ { cat(0xf2982e367d4b0ed8, 0xfaa7a1bc19c6ad82), cat(0x84718f59a5938a62, 0x8eceb5d8ce6844f1) }, // -1457
+ { cat(0xea8d16bd9544e48e, 0x5dd902c68fa448d0), cat(0xd3e8e55c3c1f43d0, 0xe47defc14a406e4f) }, // -1456
+ { cat(0x553dabcaddd0b6d8, 0x4b14023872e9d3da), cat(0xa9871de3634c3640, 0xb6cb26343b66bea6) }, // -1455
+ { cat(0x4431563be4a6f8ad, 0x08dcce938f217648), cat(0x879f4b1c4f702b66, 0xf8a284f695ebcbb8) }, // -1454
+ { cat(0xa04ef05fd43e5aae, 0x74947db8e50256d9), cat(0xd8fede93b24d123e, 0x5a9da18a897945f3) }, // -1453
+ { cat(0x803f26b31031e225, 0x2a106493ea68457b), cat(0xad98b20fc1d741cb, 0x7bb14e086dfa9e5c) }, // -1452
+ { cat(0x99cc1ef5a68e4e84, 0x21a6b6dcbb869dfc), cat(0x8ae08e730179016f, 0x962771a057fbb1e3) }, // -1451
+ { cat(0x294697ef70e3b0d3, 0x690abe2df8d7632c), cat(0xde34171e68c19be5, 0xbd0be9008cc5e96c) }, // -1450
+ { cat(0x5438798c5a4fc0a9, 0x20d564f193df828a), cat(0xb1c345b1ed67afea, 0xfda320cd3d6b2123) }, // -1449
+ { cat(0x102d2e09e1d966ed, 0xb3ddea5adcb2ced5), cat(0x8e35d15b2452f322, 0x648280a4312280e9) }, // -1448
+ { cat(0xb37b7cdc9c8f0b15, 0xec9643c494514aee), cat(0xe3894ef83a1e51d0, 0xa0d0cdd381d0ce41) }, // -1447
+ { cat(0xc2c930b07d3f3c11, 0x8a11cfd076a76f25), cat(0xb60772602e7ea7da, 0x1a40a4a934a70b67) }, // -1446
+ { cat(0x356dc08d30ff6341, 0x3b41730d2bb925b7), cat(0x919f8eb358655314, 0xe1cd50875d526f86) }, // -1445
+ { cat(0x88af9a7b81989ece, 0xc53584e1df8ea2be), cat(0xe8ff4ab88d6eeb54, 0x9c7bb40bc883e5a3) }, // -1444
+ { cat(0xd3bfaec9347a18a5, 0x6a91371b193ee898), cat(0xba65d56071258910, 0x7d2fc33ca0698482) }, // -1443
+ { cat(0x0fcc8bd429fb46ea, 0xbba75f48e0ff207a), cat(0x951e444d27513a73, 0x975968fd4d2136cf) }, // -1442
+ { cat(0x19474620432ba4aa, 0xc5d898749b31cd90), cat(0xee96d3aea54ec3ec, 0x255bdb2ee1cebe18) }, // -1441
+ { cat(0x143904e69c22ea22, 0x37e079f6e28e3e0d), cat(0xbedf0fbeeaa56989, 0xb77caf58b4a564e0) }, // -1440
+ { cat(0x769403ebb01bee81, 0xc64d2e5f1ba4fe71), cat(0x98b272ff221dee07, 0xc5fd5913c3b783e6) }, // -1439
+ { cat(0x24200645e6931736, 0x0a1516fe92a1971a), cat(0xf450b7fe9cfcb00c, 0x6ffbc1b939259fd7) }, // -1438
+ { cat(0x1ce66b6b1edc1291, 0xa1aa78cba88145af), cat(0xc373c6654a63c009, 0xf32fce2dc7514cac) }, // -1437
+ { cat(0xb0b855ef4be3420e, 0x1aeec709539a9e26), cat(0x9c5c9eb76eb6333b, 0x28f30b57d2a77089) }, // -1436
+ { cat(0xe78d564bac9ed016, 0x917e0b421f5dc9d5), cat(0xfa2dcabf1789eb91, 0xdb1e788c843f1a75) }, // -1435
+ { cat(0xb93ddea2f07f0cde, 0xdacb3c34e5e4a178), cat(0xc824a232793b22db, 0x15b1fa0a0365aec4) }, // -1434
+ { cat(0xfa97e54f26cc0a4b, 0xe23c302a5183b460), cat(0xa01d4e8ec7628248, 0xde27fb3b35eaf236) }, // -1433
+ { cat(0x62131dd8ebd66ea3, 0x1b6359bb74695d19), cat(0x8017720bd2b53507, 0x181ffc2f5e558e92) }, // -1432
+ { cat(0x69b82fc17957176b, 0x5f055c5f20a894f5), cat(0xccf25012eabb880b, 0x59ccc6b23088e41d) }, // -1431
+ { cat(0xee2cf3012ddf45ef, 0x7f377d18e6ed43f8), cat(0xa3f50cdbeefc6cd5, 0xe1709ef4f3a0b67d) }, // -1430
+ { cat(0xf1bd8f3424b29e59, 0x3292ca7a52576993), cat(0x832a70aff2638a44, 0xb45a18c3f61a2b97) }, // -1429
+ { cat(0xb5fc18536dea96f5, 0x1db7aa5d508bdc1e), cat(0xd1dd811983d276d4, 0x53c35ad3235d128c) }, // -1428
+ { cat(0x919679dc57eedf2a, 0x7e2c884aa6d649b2), cat(0xa7e467479ca85f10, 0x4302af0f4f7da870) }, // -1427
+ { cat(0x0e11fb16acbf18ee, 0xcb56d36eebdea15b), cat(0x8650529fb086b273, 0x68cef272a5fe205a) }, // -1426
+ { cat(0x16832b577acb5b17, 0xabbe1f17dfca9bc5), cat(0xd6e6ea991a711d85, 0x747e50b76ffd0090) }, // -1425
+ { cat(0x12028912c8a2af46, 0x22fe7f464ca21637), cat(0xabebeee0e1f4179d, 0xf6cb73c5f330cd40) }, // -1424
+ { cat(0x74ced40f06e88c38, 0x1bfecc383d4e782c), cat(0x89898be71b29ac7e, 0x5f09296b28f3d766) }, // -1423
+ { cat(0xee17b9b1a4a746c0, 0x2ccae059fbb0c046), cat(0xdc0f463e91dc4730, 0x980ea8ab74b958a3) }, // -1422
+ { cat(0x24dfc7c15085d233, 0x5708b37b2fc099d2), cat(0xb00c38320e49d28d, 0x467220892a2de083) }, // -1421
+ { cat(0xb7196c9aa6d174f5, 0xdf3a292f5966e175), cat(0x8cd6935b3ea1753d, 0xd1f4e6d421be4d35) }, // -1420
+ { cat(0xbe8f142aa48254bc, 0x985d0eb228a49bee), cat(0xe157522b9768bb96, 0x1cbb0aed02ca1522) }, // -1419
+ { cat(0x98727688839b76fd, 0x46b0d88e86ea1658), cat(0xb445db5612ba2fab, 0x4a2f3bf0cf0810e8) }, // -1418
+ { cat(0xad285ed39c7c5f31, 0x055a46d86bee7846), cat(0x9037e2ab422e8c89, 0x0825c98d726cda53) }, // -1417
+ { cat(0x150d6485c72d651b, 0x3bc3a48d797d8d3d), cat(0xe6bfd112037dada8, 0x0d09427bea47c3b9) }, // -1416
+ { cat(0x773dea049f578415, 0xc96950712dfe0a97), cat(0xb899740e693157b9, 0xa407686321d302fa) }, // -1415
+ { cat(0xc5cb219d4c460344, 0xa1210d2757fe6ee0), cat(0x93adf671edc112fa, 0xe99f86b5b4a8cf2e) }, // -1414
+ { cat(0x3c7835c87a099ed4, 0x3501aea5599717cc), cat(0xec498a4fe2ce84c4, 0xa8ff3def87747eb1) }, // -1413
+ { cat(0x96c6916d2e6e18a9, 0xc401588447ac130a), cat(0xbd07a1d9823ed09d, 0x53ff64bf9f90655a) }, // -1412
+ { cat(0xabd20df0f1f1ad54, 0x9ccde069d2f00f3b), cat(0x97394e479b6573b1, 0x0fff83cc7fa6b77b) }, // -1411
+ { cat(0x7950164e4fe91554, 0x2e1633dc84b34b91), cat(0xf1f54a0c2bd585e8, 0x1998d2e0cc3df25f) }, // -1410
+ { cat(0x2dd9ab71d9874443, 0x5811c316d08f6fa8), cat(0xc1910809bcaad186, 0x7ae0a8b3d697f519) }, // -1409
+ { cat(0x57e155f4ae05d035, 0xe00e35abda0c5953), cat(0x9ada6cd496ef0e05, 0x2f1a208fdedff747) }, // -1408
+ { cat(0x2635565449a2e6bc, 0x99b055dfc346f551), cat(0xf7c3e15424b1b008, 0x4b5d00e631665872) }, // -1407
+ { cat(0x51c445103ae8b896, 0xe159de4c9c38c441), cat(0xc6364ddcea27c006, 0xa2b0cd84f451e05b) }, // -1406
+ { cat(0x4169d0d9c8ba2d45, 0x8114b1d6e3609d01), cat(0x9e91d7e3ee863338, 0x82270ad0c374b37c) }, // -1405
+ { cat(0x68a94e294129e208, 0xce8782f16bcdc801), cat(0xfdb626397da38527, 0x36a4de1ad2545260) }, // -1404
+ { cat(0xba210b54342181a0, 0xa539358defd7d334), cat(0xcaf81e946482d0ec, 0x2bb71815751041e6) }, // -1403
+ { cat(0x61b4091029b467b3, 0xb760f7a4bfdfdc2a), cat(0xa2601876b6cf0d89, 0xbc9279aac40d0185) }, // -1402
+ { cat(0xe7c33a73549052f6, 0x2c4d92ea33197cee), cat(0x81e679f8923f3e07, 0xca0ec7bbd00a679d) }, // -1401
+ { cat(0x0c6b90b8874d5189, 0xe07c1e4384f594b0), cat(0xcfd7298db6cb9672, 0xdce472c619aa3f63) }, // -1400
+ { cat(0x09efa6fa05d7746e, 0x4d30183603f7aa27), cat(0xa645bad7c56fab8f, 0x171d289e7aee991c) }, // -1399
+ { cat(0x3b261f2e6b12c38b, 0x70f346919cc621b9), cat(0x850495796abfbc72, 0x78e4207ec8bee0e3) }, // -1398
+ { cat(0x2b7031e3de846c12, 0x4e520a82947035f4), cat(0xd4d4225bddff93ea, 0x5b069a6474649b05) }, // -1397
+ { cat(0x89268e4fe536bcdb, 0x71db3b9ba9f35e5d), cat(0xaa434eafe4cc7655, 0x159ee1e9f6b6e26a) }, // -1396
+ { cat(0x07520b731dc563e2, 0xc17c2fafbb29184b), cat(0x8835d88cb709f844, 0x114be7ee5ef8b522) }, // -1395
+ { cat(0xa5501251c93bd304, 0x68c6b2b2c50e8d44), cat(0xd9efc0e124dcc06c, 0xe8797316fe5abb69) }, // -1394
+ { cat(0x84400ea7d42fdc03, 0x87055bc2373ed769), cat(0xae59671a83e3cd23, 0xed2df5abfeaefc54) }, // -1393
+ { cat(0x0366721fdcf31669, 0x38d11634f8ff12bb), cat(0x8b7ab8e2031ca41c, 0xbdbe5e23322596aa) }, // -1392
+ { cat(0x6bd71cffc7eb570e, 0xc14e89ee5b31b791), cat(0xdf2ac1699e9439c7, 0x95fd636b836f5776) }, // -1391
+ { cat(0x5645b0cc9fef78d8, 0x9aa53b2515c15fa7), cat(0xb2889abae543616c, 0x77fde922cf8c45f8) }, // -1390
+ { cat(0xab6af3d6e6592d7a, 0x1550fc1dab011953), cat(0x8ed3aefbea9c4df0, 0x5ffe541bd93d04c6) }, // -1389
+ { cat(0x1244b957d6f51590, 0x221b2cfc44ce8eeb), cat(0xe485e4c6442d4980, 0x9996ecf95b94d471) }, // -1388
+ { cat(0x7503c77978c41140, 0x1b48f0c9d0a53f22), cat(0xb6d183d1d0243acd, 0x47abf0c77c77105a) }, // -1387
+ { cat(0xc40305fac7034100, 0x15d3f3d4a6ea98e8), cat(0x9241364173502f0a, 0x9fbcc09f96c5a6ae) }, // -1386
+ { cat(0x6cd1a32ad80534cc, 0xefb986210b10f4a6), cat(0xea01f068b8804b44, 0x32c79a98f13c3de4) }, // -1385
+ { cat(0x8a414f55799dc3d7, 0x262e04e73c0d9085), cat(0xbb34c053c6cd0903, 0x5bd2e213f4303183) }, // -1384
+ { cat(0x08343f77947e3645, 0xb824d0b8fcd7a6d1), cat(0x95c3cd0fd23da0cf, 0x7ca8b4dcc359c136) }, // -1383
+ { cat(0x0d20658c20c9f06f, 0x8d07b45b2e25d7b5), cat(0xef9fae7fb6c9014b, 0xfaa787c79ef601f0) }, // -1382
+ { cat(0x3db384701a3b26bf, 0xa40629e28b51795d), cat(0xbfb2f1ffc56d9aa3, 0x2eec6c9fb25e67f3) }, // -1381
+ { cat(0x315c69f3482f5232, 0xe99e87e86f746118), cat(0x995bf4cc9df14882, 0x8bf056e6284b865c) }, // -1380
+ { cat(0x1bc70feba6b21d1e, 0x42973fda4bed6826), cat(0xf55fee142fe87404, 0x131a24a373ac0a2d) }, // -1379
+ { cat(0x7c9f3fefb88e7db1, 0xcedf66483cbdeceb), cat(0xc44cbe768cb9f669, 0xa8e1b6e929566e8a) }, // -1378
+ { cat(0x96e5ccbfc6d8648e, 0x3f191ea03097f0bc), cat(0x9d0a31f87094c521, 0x53e7c5875445253b) }, // -1377
+ { cat(0x57d614660af3d416, 0xcb5b643380f31ac6), cat(0xfb4383271a87a1ce, 0xeca608d886d5085f) }, // -1376
+ { cat(0xdfde76b808c31012, 0x3c491cf600c27bd2), cat(0xc902cf527b9fb4a5, 0x8a1e6d7a057739e5) }, // -1375
+ { cat(0x197ec56007027341, 0xc9d4172b33cec975), cat(0xa0cf0c41fc7fc3b7, 0xa1b1f12e6ac5c7eb) }, // -1374
+ { cat(0x7acbd1199f352901, 0x6e4345bc29723ac4), cat(0x80a5a367fd3302f9, 0x4e27f4252237d322) }, // -1373
+ { cat(0x5e12e828febb74cf, 0x16d2092d0f1d2ad3), cat(0xcdd5d23ffb84d18e, 0xe373203b69f2eb6a) }, // -1372
+ { cat(0x180f2020cbc92a3f, 0x4574d4240c175576), cat(0xa4ab0e999603dad8, 0xb5f5b362bb28bc55) }, // -1371
+ { cat(0xacd8e680a30754ff, 0x6ac3dce9a345ddf8), cat(0x83bc0bae119caf13, 0xc4c48f822f53c9dd) }, // -1370
+ { cat(0xe15b0a676b3eee65, 0x779fc7dc386fc98c), cat(0xd2c6791682944b52, 0xd46db269e552dc95) }, // -1369
+ { cat(0xb448d51f88ff251d, 0xf94c9fe360596e0a), cat(0xa89ec74535436f75, 0x76be2854b7757d44) }, // -1368
+ { cat(0x29d3ddb2d3ff50e4, 0xc7707fe919e124d5), cat(0x86e56c375dcf8c5d, 0xf8982043c5f7976a) }, // -1367
+ { cat(0xa952fc5153321b07, 0xa580cca829683aee), cat(0xd7d579f22fb27a2f, 0xf4269a06098c2576) }, // -1366
+ { cat(0x54426374428e7c06, 0x1e00a3b9bab9c8be), cat(0xacaac7f4f2f52e8c, 0xc35214d1a13ceac5) }, // -1365
+ { cat(0x10351c5d020b966b, 0x4b33b62e2efb06ff), cat(0x8a223990c25dbed7, 0x02a810a7b430bbd1) }, // -1364
+ { cat(0x4d21c6fb3678f0ab, 0xab85f049e4c4d7fe), cat(0xdd038f4e03c93158, 0x04401aa5ed1ac61b) }, // -1363
+ { cat(0xa41b0595c52d8d56, 0x22d18d07ea371331), cat(0xb0cfa5d803075aac, 0xd0334884bdaf04e2) }, // -1362
+ { cat(0xe9af37ab04247111, 0xb57470d321c5a8f4), cat(0x8d72eb13359f7bbd, 0x735c3a03caf26a4e) }, // -1361
+ { cat(0xdc4b8c44d36d81b5, 0xef20b48502d5db20), cat(0xe251781ebc325f95, 0x85605cd2de50aa17) }, // -1360
+ { cat(0xb03c70370f8ace2b, 0x25b3c39d9bde48e7), cat(0xb50df9b230284c77, 0x9de6b0a8b1da21ac) }, // -1359
+ { cat(0x8cfd269272d571bc, 0x1e29694ae3183a52), cat(0x90d7faf4f353705f, 0xb1855a208e481af0) }, // -1358
+ { cat(0xae61d750b7bbe92c, 0xfd0f0ede3826c3b7), cat(0xe7bff7ee521f1a32, 0xb5a229cdb0735e4d) }, // -1357
+ { cat(0x251b12a6f96320f0, 0xca72724b601f02f9), cat(0xb9665ff1db4c14f5, 0x5e1b54a48d29183e) }, // -1356
+ { cat(0x1daf421f2de8e727, 0x085b8ea2b34c0261), cat(0x9451e65b15d6772a, 0xb1af76ea0a874698) }, // -1355
+ { cat(0x62b20365164171d8, 0x0d5f4a9debacd09a), cat(0xed4fd6f822f0beaa, 0xb5e58b1010d870f3) }, // -1354
+ { cat(0x822802b7450127e0, 0x0ab2a217efbd73af), cat(0xbdd978c6825a3222, 0x2b1e08d9a7138d8f) }, // -1353
+ { cat(0x34eccef90400ecb3, 0x3bc21b4659645c8c), cat(0x97e12d6b9b7b5b4e, 0x88e4d3e152760ad9) }, // -1352
+ { cat(0x87e14b280667e11e, 0xc6035ed6f56d60df), cat(0xf301e245c5922bb0, 0xdb07b96883f0115b) }, // -1351
+ { cat(0x6cb43c20051fe74b, 0xd19c4bdf2abde719), cat(0xc267e837d141bc8d, 0x7c062ded3659a77c) }, // -1350
+ { cat(0xbd5cfce66a7fec3c, 0xa7b03cb28897ec14), cat(0x9b86535fda9afd3d, 0xfcd1be575eae1f96) }, // -1349
+ { cat(0x2efb2e3d77331394, 0x3f80611da75979ba), cat(0xf8d6ebcc90f7fb96, 0x614f96f2311698f1) }, // -1348
+ { cat(0x2595be97928f42dc, 0xff99e74aec479495), cat(0xc712563d40c662de, 0xb43fabf4f41213f4) }, // -1347
+ { cat(0x51449879420c357d, 0x9947ec3bf03943aa), cat(0x9f41de9767051be5, 0x5cffbcc3f674dcc3) }, // -1346
+ { cat(0x4ed4272869ad2262, 0x8ed979f9805b9f77), cat(0xfecfca8bd8082ca2, 0x2e65fad323ee2e05) }, // -1345
+ { cat(0x72435286baf0e84e, 0xd8adfb2e00494c5f), cat(0xcbd96ed6466cf081, 0xbeb7fbdc1cbe8b37) }, // -1344
+ { cat(0xf502a86bc8c0b9d8, 0xad57fc24cd07704c), cat(0xa31458ab6b8a5a01, 0x655ffcb016fed5c5) }, // -1343
+ { cat(0x2a6886bca09a2e46, 0xf113301d70d2c03d), cat(0x8276ad55efa1e19a, 0xb77ffd59abff116b) }, // -1342
+ { cat(0x770da46100f6b071, 0x81b84cfbe7b799fb), cat(0xd0bde22319030291, 0x2599955c4664e8ab) }, // -1341
+ { cat(0xf8d7b6b400c559f4, 0x67c6a3fcb95fae62), cat(0xa6fe4e827a68ceda, 0x847adde36b83ed55) }, // -1340
+ { cat(0xc712f890009de190, 0x53054ffd6119584f), cat(0x85983ecec853d8ae, 0xd0624b1c56032444) }, // -1339
+ { cat(0x0b518db3342fcf4d, 0x51a2199568288d4b), cat(0xd5c0647e0d52f44a, 0xe703ab60899ea06e) }, // -1338
+ { cat(0x090e0af5c35972a4, 0x414e7addeced3dd5), cat(0xab005064d775903b, 0xec02ef806e188058) }, // -1337
+ { cat(0xd40b3bf7cf7ac21d, 0x010b957e57243178), cat(0x88cd0d1d792ad9c9, 0x899bf2cd24e066ac) }, // -1336
+ { cat(0x86785ff2e5913694, 0xce78ef308b6d1bf2), cat(0xdae1ae958eaaf60f, 0x42931e1507cd7114) }, // -1335
+ { cat(0xd1f9e65beada9210, 0xa52d8c26d5f0e328), cat(0xaf1af2113eef2b3f, 0x6875b1aa6ca45a76) }, // -1334
+ { cat(0xa7fb1eafef1541a6, 0xea8ad68577f3e8ed), cat(0x8c158e743258ef65, 0xed2af48856e9e1f8) }, // -1333
+ { cat(0xd991cab3182202a4, 0xaa77bda25986417b), cat(0xe0227d86b6f4b23c, 0xaeab20da24a9698d) }, // -1332
+ { cat(0x47a7d55c134e6883, 0xbb92fe1b7ad1cdfc), cat(0xb34ecad22bf6f4fd, 0x5888e714ea21213e) }, // -1331
+ { cat(0xd2ecaab00f71ed36, 0x2fa8cb492f0e3e63), cat(0x8f723bdb565f2a64, 0x46d3ec10bb4db431) }, // -1330
+ { cat(0xb7e11119b24fe1f0, 0x4c414541e4e39705), cat(0xe58392f88a31dd6d, 0x3e1fe01ac549204f) }, // -1329
+ { cat(0x931a74148ea64e59, 0xd69a9dce50b6126b), cat(0xb79c7593a1c17df0, 0xfe7fe67bd1074d0c) }, // -1328
+ { cat(0x427b9010721ea514, 0xabaee4a50d5e7522), cat(0x92e39142e7cdfe5a, 0x65331ec97405d73d) }, // -1327
+ { cat(0xd0c5b34d83643b54, 0x45e4a1081563ee9d), cat(0xeb05b537d94996f7, 0x0851cadbecd6252e) }, // -1326
+ { cat(0x73d15c3e02b695dd, 0x04b6e739aab6587e), cat(0xbc0490f97aa14592, 0x6d0e3be323de8425) }, // -1325
+ { cat(0xc30de364cef877e4, 0x03c585c7bbc51398), cat(0x966a0d94621a9e0e, 0xbda4fcb5b64b9cea) }, // -1324
+ { cat(0xd1afd23ae4c0bfd3, 0x393c093f92d4ec26), cat(0xf0a9af53d02a967d, 0xfc3b2def8a1294aa) }, // -1323
+ { cat(0x748ca82f1d66ffdc, 0x2dc9a0ffa8aa5685), cat(0xc087bf76402211fe, 0x63628b26080edd55) }, // -1322
+ { cat(0xf6d6ecf27debffe3, 0x57d480cc86eeab9d), cat(0x9a0632c5001b4198, 0x4f8208eb39a57ddd) }, // -1321
+ { cat(0x248b14b72fdfffd2, 0x2620ce140b1778fc), cat(0xf670513b335ecf5a, 0x18d00e452908c963) }, // -1320
+ { cat(0x506f43c5bfe66641, 0xb81a3e766f45fa63), cat(0xc526a7628f7f0c48, 0x13d9a50420d3d44f) }, // -1319
+ { cat(0xa6bf696affeb8501, 0x6014fec525d1951c), cat(0x9db885e872cc09d3, 0x431484034d764372) }, // -1318
+ { cat(0x3dff0f119978d4cf, 0x002197a1d61c21c6), cat(0xfc5a6fda5146761e, 0xd1ba6cd2158a0584) }, // -1317
+ { cat(0x64cc0c0e1460aa3f, 0x334e12e7de7ce7d2), cat(0xc9e1f3150dd1f818, 0xa7c8570e77a19e03) }, // -1316
+ { cat(0xb709a33e76b3bb65, 0xc2a4dbecb1fd8642), cat(0xa1818f440b0e6013, 0xb96d1271f94e1802) }, // -1315
+ { cat(0xc5a14f652bc2fc51, 0x6883e323c1979e9b), cat(0x8134729cd5a519a9, 0x61240ec1943e799b) }, // -1314
+ { cat(0xa29bb23b7937fa1b, 0xda6c9e9f9c25ca91), cat(0xceba50faef6e8f75, 0x6839b135b9fd8f5f) }, // -1313
+ { cat(0xe87c8e95fa932e7c, 0xaebd4bb2e3516edb), cat(0xa561da6259253f91, 0x202e275e2e6472b2) }, // -1312
+ { cat(0x86ca0bab2edc2530, 0x8bcaa2f582a78be2), cat(0x844e484eadb7660d, 0xb3581f7e8b838ef5) }, // -1311
+ { cat(0x0adcdf784af9d51a, 0x794437ef3772796a), cat(0xd3b073b115f23ce2, 0xb88cff30df38e4bc) }, // -1310
+ { cat(0x08b0b2c6a2617748, 0x61035ff292c1fabb), cat(0xa959f62744c1ca4e, 0xfa0a65c0b293ea30) }, // -1309
+ { cat(0x3a26f56bb51ac5d3, 0x80cf7ff54234c896), cat(0x877b2b529d67d50b, 0xfb3b849a287654f3) }, // -1308
+ { cat(0x29d7ef12bb5e0952, 0x67b2665536bada89), cat(0xd8c5121dc8a621ac, 0xc52c075d0d8a2185) }, // -1307
+ { cat(0x54acbf422f7e6ddb, 0x862851ddc562486e), cat(0xad6a74e4a084e7bd, 0x6a899f7da46e8137) }, // -1306
+ { cat(0x43bd65ce8c6524af, 0x9e86a7e49de839f1), cat(0x8abb90b6e6d0b964, 0x553ae5fe1d25342c) }, // -1305
+ { cat(0x9f956fb0e0a1d44c, 0x30d77307630d2982), cat(0xddf8e78b0ae78f06, 0xeec4a3302ea1ed13) }, // -1304
+ { cat(0x1944595a4d4e4370, 0x2712c26c4f3dbace), cat(0xb193ec6f3bec726b, 0xf236e8f358818a76) }, // -1303
+ { cat(0xe1037aaea43e9c59, 0xb8dbcebd0c31623f), cat(0x8e0ff058fcbd2856, 0x5b5f20c2ad346ec4) }, // -1302
+ { cat(0x680591176d30fa29, 0x27c61794e04f0397), cat(0xe34cb3c19461da23, 0xc56501377b8717a1) }, // -1301
+ { cat(0x866ada7924272e87, 0x5304dfaa4d0c02e0), cat(0xb5d6f63476b4ae83, 0x0450cdc5fc6c12e7) }, // -1300
+ { cat(0x38557b941cec2539, 0x0f3719550a70024d), cat(0x9178c4f6c55d5868, 0xd040a49e6389a8b9) }, // -1299
+ { cat(0x8d55928694ad085b, 0x4b8b5bbb43e66a14), cat(0xe8c13b246efbc0a7, 0xb39aa0fd6c0f745b) }, // -1298
+ { cat(0x3dde0ed2108a6d15, 0xd609162f698521aa), cat(0xba342f5058c966ec, 0x8faee731233f9049) }, // -1297
+ { cat(0x64b1a574da085744, 0xab3a7825ee041aee), cat(0x94f68c404707858a, 0x0c8bec274f660d07) }, // -1296
+ { cat(0x0782a254900d586d, 0xdec3f36fe339c4b0), cat(0xee5746cd3e726f43, 0x474646a54bd67b3f) }, // -1295
+ { cat(0x06021b76d9a446be, 0x4bcff5f31c2e36f3), cat(0xbeac38a431f525cf, 0x6c3838843cab95cc) }, // -1294
+ { cat(0xd19b492be1503898, 0x3ca65e5c168b5f29), cat(0x9889c6e9c190eb0c, 0x56936069ca22de3c) }, // -1293
+ { cat(0xe8f875130219f426, 0xc77096f9bdabcb75), cat(0xf40fa4a935b4ab46, 0xf0ebcd761037c9fa) }, // -1292
+ { cat(0x872d2a759b47f685, 0x6c5a126164896f91), cat(0xc33fb6edc4908905, 0x8d89712b402ca195) }, // -1291
+ { cat(0x38f0eec47c399204, 0x56ae751ab6d45941), cat(0x9c32f8be36da0737, 0xa46df42299bd4e11) }, // -1290
+ { cat(0xf4b4b13a605c1cd3, 0xbde3ee912486f534), cat(0xf9eb2796be29a525, 0xd3e320375c621681) }, // -1289
+ { cat(0x5d5d5a9519e34a42, 0xfe4ff20db6d25dc3), cat(0xc7ef52defe87b751, 0x764f4cf916b4dece) }, // -1288
+ { cat(0xe44aaeddae4f6e9b, 0xfea65b3e2bdb7e36), cat(0x9ff2a8b265395f74, 0x5ea5d72dabc3e571) }, // -1287
+ { cat(0x3a1117c916e57dc6, 0x643d5ec9dfc596bc), cat(0xffeaa783d52898ba, 0x3109584912d308b6) }, // -1286
+ { cat(0xfb40dfd41251316b, 0x83644bd4b3047897), cat(0xccbbb93644207a2e, 0x8da1136da8a8d3c4) }, // -1285
+ { cat(0x95cd7fdcdb742789, 0x35e9d643c269fa12), cat(0xa3c960f8368061be, 0xd7b40f8aed53dc9d) }, // -1284
+ { cat(0x1171331715f68607, 0x5e54ab696854c80f), cat(0x830780c692004e32, 0x4629a608bddcb07e) }, // -1283
+ { cat(0x824eb824eff0d672, 0x308778a8a6ee0ce4), cat(0xd1a59ad750007d1d, 0x3d0f700dfc944d96) }, // -1282
+ { cat(0x683ef9b7265a4528, 0x26d2c6ed52580a50), cat(0xa7b7af12a666ca7d, 0xca72c00b3076a478) }, // -1281
+ { cat(0xecff2e2c1eae9db9, 0xb8a89f2441e00840), cat(0x862c8c0eeb856ecb, 0x085bccd5c05ee9f9) }, // -1280
+ { cat(0xae6516acfde42f8f, 0x8dda983a03000d33), cat(0xd6adace4ac08b144, 0xda2c7aef9a31765c) }, // -1279
+ { cat(0xf1ea788a64b68c72, 0xd7e213619c000a90), cat(0xabbe23ea233a276a, 0x4823958c7b5ac516) }, // -1278
+ { cat(0x8e552d3b83c53d28, 0xacb4dc4e16666ed9), cat(0x8964e9881c2e85ee, 0xa01c77a395e23745) }, // -1277
+ { cat(0xe3bb7b926c6ec841, 0x145493b023d717c2), cat(0xdbd4a8d9c6b0d64a, 0x99c725d28969f208) }, // -1276
+ { cat(0xe962c941f058a034, 0x1043a959b645ac9b), cat(0xafdd53e16bc0ab6e, 0xe16c1e420787f4d3) }, // -1275
+ { cat(0xbab56dce59e08029, 0xa69c877af837bd49), cat(0x8cb10fe78966ef8b, 0xe789b1ce6c6cc3dc) }, // -1274
+ { cat(0x5def1616f6340042, 0xa42da5918d25fba8), cat(0xe11b4ca5a8a4b279, 0x7275e94a47146c94) }, // -1273
+ { cat(0x7e58de78c4f6669b, 0xb68aeadad7519620), cat(0xb415d6eaed508ec7, 0x8ec4baa1d276bd43) }, // -1272
+ { cat(0x31e0b1fa372b8549, 0x5ed588af12a7ab4d), cat(0x901178bbf10d3f06, 0x0bd0954e41f89769) }, // -1271
+ { cat(0xe9678329f1df3ba8, 0x97bc0de4eaa5dee1), cat(0xe6825ac64e7b9809, 0xac80eee39cc0f241) }, // -1270
+ { cat(0xbab935bb27e5c953, 0xac967183eeeb18b4), cat(0xb868489ea52facd4, 0x8a00bf1c7d672834) }, // -1269
+ { cat(0x622dc495b984a10f, 0xbd45279cbf227a2a), cat(0x9386a07eea8c8a43, 0xa19a327d311f535d) }, // -1268
+ { cat(0xd0493a8928d434e5, 0xfba1d8facb6a5d0f), cat(0xec0a9a64aa7a76d2, 0x9c29ea61e8321efb) }, // -1267
+ { cat(0x736dc86dba435d84, 0xc94e472f0921e40c), cat(0xbcd548508861f8a8, 0x7cee551b202818c9) }, // -1266
+ { cat(0xc2be39f161cf7e03, 0xd43e9f58d41b1cd7), cat(0x971106a6d38193b9, 0xfd8b7748e6867a3a) }, // -1265
+ { cat(0x9dfd29823618c99f, 0xb9fdcbc1535e948b), cat(0xf1b4d7715268ec5c, 0xc8df254170d729f7) }, // -1264
+ { cat(0xe4ca879b5e7a3ae6, 0x2e64a3010f7edd3c), cat(0xc15d79277520bd17, 0x0718ea9ac0ac2192) }, // -1263
+ { cat(0xea3b9faf7ec82f1e, 0x8b83b59a72cbe430), cat(0x9ab12db92a809745, 0x9f47221566f01adb) }, // -1262
+ { cat(0x43929918cad9e4fd, 0xac05ef5d84796d19), cat(0xf781e2c1dd9a8ba2, 0x9871d0223e4cf7c6) }, // -1261
+ { cat(0x02dbadad6f14b731, 0x566b25e469fabdae), cat(0xc6018234b1486fb5, 0x46c1734e983d9305) }, // -1260
+ { cat(0x68afbe2458dd5f5a, 0xab88eb1d2195648b), cat(0x9e679b5d5aa0595d, 0xd2345c3ee031426a) }, // -1259
+ { cat(0xdab2c9d3c162322a, 0xac0e44fb68ef0745), cat(0xfd72922ef766f562, 0xe9ed606499e86a43) }, // -1258
+ { cat(0xaef56e43011b5b55, 0x5671d0c920bf3904), cat(0xcac20e8bf91f2ab5, 0x87f119ea14b9ee9c) }, // -1257
+ { cat(0x58c458359a7c4911, 0x11f4a7074d65c736), cat(0xa234d86ffa7f555e, 0x065a7b21aa2e587d) }, // -1256
+ { cat(0xad69e02ae1fd0740, 0xdb2a1f390ab7d292), cat(0x81c3e0599532aab1, 0x9eaec8e7bb5846ca) }, // -1255
+ { cat(0xe24300449cc80b9a, 0xf843652811261db6), cat(0xcf9fcd5c21eaaab5, 0xcab14172c55a0add) }, // -1254
+ { cat(0x4e9c0036e3d33c7b, 0xf9cf84200db817c5), cat(0xa619711681888891, 0x6ef4345bd114d57e) }, // -1253
+ { cat(0xd87cccf8b64296c9, 0x94a6034cd7c6796b), cat(0x84e12745346d3a0d, 0xf25cf6afda771131) }, // -1252
+ { cat(0x5a6147f456d0f142, 0x87700547bfa3f577), cat(0xd49b720853e1f67c, 0xb6fb244c90be81e9) }, // -1251
+ { cat(0xaeb439904573f435, 0x39266a9fcc832ac6), cat(0xaa15f4d3764e5eca, 0x2bfc1d0a0d6534ba) }, // -1250
+ { cat(0xbef694736ac329c4, 0x2db8554ca39c2238), cat(0x881190a92b71e56e, 0x89967da1a450f6fb) }, // -1249
+ { cat(0x318a871f113842d3, 0x7c5a221438f9d059), cat(0xd9b5b441df1ca24a, 0x75bd95cf6d4e57f9) }, // -1248
+ { cat(0x27a205b2742d0242, 0xc9e1b4dcfa61737b), cat(0xae2af69b18e3b508, 0x5e3144a5f10b7994) }, // -1247
+ { cat(0x52e8048ec3573502, 0x3b1af7172eb45c62), cat(0x8b559215ad82f739, 0xe4f436eb273c6143) }, // -1246
+ { cat(0xb7d9a0e46bbebb36, 0xc4f7f1beb12093d0), cat(0xdeef5022af37f1f6, 0x3b2057dea52d686b) }, // -1245
+ { cat(0xf97ae71d22fefc2b, 0xd0c65afef41a0fda), cat(0xb2590ce88c2cc191, 0xc8e6acb21dbded22) }, // -1244
+ { cat(0x612f1f4a82659689, 0x73d1e2659014d97b), cat(0x8eada3ed3cf09adb, 0x071ef08e7e318a82) }, // -1243
+ { cat(0x9b7e98773708f0db, 0xec8303d5b3548f2b), cat(0xe44906486180f7c4, 0xd83180e3fd1c10d0) }, // -1242
+ { cat(0x15fee05f5f3a5a49, 0x8a026977c2aa0c22), cat(0xb6a0d1d38133f96a, 0x468e00b6641673da) }, // -1241
+ { cat(0xde65804c4c2eaea1, 0x3b35212c9bbb3ce8), cat(0x921a417600f66121, 0xd20b33c51cdec314) }, // -1240
+ { cat(0x63d59a13ad177dce, 0xc521ceadc5f86174), cat(0xe9c39bf0018a3502, 0xe9ab86082e313821) }, // -1239
+ { cat(0xe977ae762412cb0b, 0xd0e7d88b04c6b45d), cat(0xbb02e32667a1c402, 0x548938068b5a934d) }, // -1238
+ { cat(0x545fbec4e9a8a26f, 0xda5313a26a38904a), cat(0x959be8eb861b0335, 0x106dc66ba2aedc3e) }, // -1237
+ { cat(0x2099313b0f743719, 0x5d51b903dd274d43), cat(0xef5fdb12702b3854, 0xe7160a45d117c6ca) }, // -1236
+ { cat(0x1a14276272c35f47, 0x7ddafa697db90a9c), cat(0xbf7fe2752688f9dd, 0x85ab3b6b0dac9f08) }, // -1235
+ { cat(0xae7685e85bcf7f6c, 0x64af2ebacafa6ee4), cat(0x99331b90eba0c7e4, 0x6aef62bc0af07f39) }, // -1234
+ { cat(0x4a573ca6f94bff13, 0xd44b7df7ab2a4b05), cat(0xf51e928179013fd3, 0xde4bd12cde4d985c) }, // -1233
+ { cat(0x6eac3085943ccc0f, 0xdd093192ef5508d1), cat(0xc418753460cdcca9, 0x7ea30dbd7ea479e3) }, // -1232
+ { cat(0xf2235a04769709a6, 0x4a6dc1425910d3db), cat(0x9ce05dc380a4a3ba, 0xcbb5a497988394b5) }, // -1231
+ { cat(0x836bc33a57580f70, 0x77160203c1b4862a), cat(0xfb0096059aa105f7, 0xac55d425c0d28789) }, // -1230
+ { cat(0xcf8968fb79133f8d, 0x2c119b3634906b55), cat(0xc8cd44d14880d192, 0xf044a9b7cd75393a) }, // -1229
+ { cat(0xd93aba62c742993d, 0xbcdae291c3a6bc44), cat(0xa0a4370dd39a4142, 0x59d087c63df760fb) }, // -1228
+ { cat(0x142efb8239021431, 0x63e24edb02ebc9d0), cat(0x80835f3e42e1cdce, 0xae406c9e97f91a63) }, // -1227
+ { cat(0x537e5f36c19ced1b, 0xd303b15e6b12dc80), cat(0xcd9efeca049c7c7d, 0xe39a4764265b5d6b) }, // -1226
+ { cat(0x75feb292347d8a7c, 0xa8cfc11855a8b067), cat(0xa47f323b36e396cb, 0x1c7b6c501eaf7def) }, // -1225
+ { cat(0xf7fef541c397a1fd, 0x53d96746aaed59ec), cat(0x8398f4fc2be9456f, 0x49fc56a67ef2cb25) }, // -1224
+ { cat(0x8ccb2202d28c3662, 0x1fc23ed777e22979), cat(0xd28e54c6aca86f18, 0x76608aa3fe514509) }, // -1223
+ { cat(0x0a3c1b35753cf84e, 0x7fce98ac5fe8212e), cat(0xa871dd6bbd538c13, 0x91e6d54ffea76a6e) }, // -1222
+ { cat(0x3b6348f790fd9371, 0xffd87a237fece758), cat(0x86c17defcaa93cdc, 0x74b8aaa66552bb8b) }, // -1221
+ { cat(0x923874bf4e628583, 0x32f3f69f3314a559), cat(0xd79bfcb2dddb9493, 0xedf4443d6eeac5ab) }, // -1220
+ { cat(0x0e9390990b820468, 0xf58ff87f5c108447), cat(0xac7cca28b17c76dc, 0xbe5d036458bbd156) }, // -1219
+ { cat(0x720fa6e0d6019d20, 0xc4732d32b00d36a0), cat(0x89fd6e86f463924a, 0x31e402b6ad630dde) }, // -1218
+ { cat(0xb67f7167bccf61ce, 0x071eaeb780152432), cat(0xdcc8b0d7ed6c1d43, 0x83066abde2381630) }, // -1217
+ { cat(0x5ecc5ab963d91b0b, 0x38e55892ccddb68f), cat(0xb0a08d798abce436, 0x026b8897e82cde8d) }, // -1216
+ { cat(0x18a37bc7831415a2, 0x93eaad423d7e2ba5), cat(0x8d4d3dfad563e9c4, 0xcebc6d4653571871) }, // -1215
+ { cat(0x276bf93f3820229d, 0xb9777b9d2f3045d5), cat(0xe2152ff7bbd30fa1, 0x4ac7153d5224f3e8) }, // -1214
+ { cat(0x85effa98f9b34ee4, 0x945f961758f36b11), cat(0xb4ddbff9630f3fb4, 0x3bd2776441b72986) }, // -1213
+ { cat(0x9e5995472e290bea, 0x104c7812ad8f88db), cat(0x90b166611c0c32f6, 0x9641f91d015f546b) }, // -1212
+ { cat(0x96f5bba516a81310, 0x1a13f35115b27491), cat(0xe7823d682ce0518a, 0x8a03282e68988712) }, // -1211
+ { cat(0xabf7c950deecdc0c, 0xe1a98f74115b9074), cat(0xb934fdecf0b3746e, 0xd4cf535853ad38db) }, // -1210
+ { cat(0x232ca10d7f23e33d, 0x815472c341160d29), cat(0x942a64bd8d5c5d25, 0x770c42ad0fbdc716) }, // -1209
+ { cat(0x6b7a9b48cb6c9ec8, 0xceed846b9b567b75), cat(0xed10a12f4893c83b, 0xf1ad377b4c62d823) }, // -1208
+ { cat(0x22c87c3a3c56e56d, 0x72579d22e2ab95f8), cat(0xbda6e75906dca02f, 0xf48a92c909e8ace9) }, // -1207
+ { cat(0x8239fcfb6378b78a, 0xc1dfb0e8b5561193), cat(0x97b8b914057d4cf3, 0x2a08756da186f0ba) }, // -1206
+ { cat(0x69f6619238c125aa, 0xcfcc4e4122234f51), cat(0xf2c1282008c87b1e, 0xa9a722490271812a) }, // -1205
+ { cat(0xee5eb474fa341e22, 0x3fd6a500e81c3f74), cat(0xc2342019a0a0627e, 0xee1f4ea0cec13421) }, // -1204
+ { cat(0x2518905d94f67e81, 0xccabb733ece365f7), cat(0x9b5ce67ae6e6b532, 0x58190bb3d89a901b) }, // -1203
+ { cat(0xa1c0e6fc218a6402, 0xe112beb97b056ff1), cat(0xf894a3f7d7d78850, 0x8cf4df86275db35e) }, // -1202
+ { cat(0xe7cd8596813b8335, 0x80dbcbc7959df327), cat(0xc6dd4ff9797939da, 0x0a5d7f9e85e48f7e) }, // -1201
+ { cat(0x530ad145342f9c2a, 0xcd7ca306114b28ec), cat(0x9f17732dfac7617b, 0x3b7dffb204b6d932) }, // -1200
+ { cat(0x1e77b53b86b29377, 0xaf2dd1a34edea7e0), cat(0xfe8beb7cc4723591, 0xf8c9991cd457c1ea) }, // -1199
+ { cat(0xe52c90fc6bc20f92, 0xf28b0e1c3f18864d), cat(0xcba322ca36c1c474, 0xc707adb0a9dfce54) }, // -1198
+ { cat(0x1dbd40c9efce72db, 0xf53c0b49cc139ea4), cat(0xa2e8e8a1c567d05d, 0x6c06248d54b30b77) }, // -1197
+ { cat(0xb16433d4bfd85be3, 0x2a966f6e3cdc7eea), cat(0x8253ed4e3786404a, 0xbcd1b6d776f5a2c5) }, // -1196
+ { cat(0xb56d1fbacc8d5fd1, 0xddbd7f16c7c73176), cat(0xd086487d25a39a11, 0x2e1c57bf24bc37a2) }, // -1195
+ { cat(0xf78a7fc8a3a44ca7, 0xe49798df0638f45e), cat(0xa6d1d397514fae74, 0x24e37965b6fcf94e) }, // -1194
+ { cat(0x2c6ecca082e9d6ec, 0xb6dfad7f382d904b), cat(0x8574a945daa62529, 0xb71c611e2bfd943f) }, // -1193
+ { cat(0xad7e143404a957e1, 0x2499159859e28078), cat(0xd587753c9109d50f, 0x8b609b637995b9fe) }, // -1192
+ { cat(0x8acb435cd0877980, 0xea141146ae4ecd2d), cat(0xaad2c4307407dda6, 0x091a15e92e116198) }, // -1191
+ { cat(0x6f0902b0a6d2c79a, 0x54dcda9ef1d8a424), cat(0x88a89cf390064aeb, 0x3a7b44ba8b411ae0) }, // -1190
+ { cat(0x4b419de771513f5d, 0x549490fe4fc106a0), cat(0xdaa76185b33d44ab, 0x90c53ac41201c49a) }, // -1189
+ { cat(0xa29ae4b9277432b1, 0x1076da650c9a6bb3), cat(0xaeec4e048f6436ef, 0xa7042f03419b03ae) }, // -1188
+ { cat(0x4ee250941f90288d, 0xa6c57b840a1522f6), cat(0x8bf03e6a0c502bf2, 0xec0358cf67af3625) }, // -1187
+ { cat(0xb16a1a8698e6a749, 0x0ad5926cdcee9e56), cat(0xdfe6ca4346e6acb7, 0xe0055ae572b1f03b) }, // -1186
+ { cat(0x8dee7b9ee0b885d4, 0x08aadb8a4a587eab), cat(0xb31f0835d25223c6, 0x4cd115845bc18cfc) }, // -1185
+ { cat(0x718b9618b3c6d176, 0x6d557c6ea1e06556), cat(0x8f4c0691750e8305, 0x0a40de037c9ad730) }, // -1184
+ { cat(0xe8df568dec714f23, 0xe22260b10300a223), cat(0xe54670e8bb4a6b3b, 0x439afcd260f7beb3) }, // -1183
+ { cat(0xba4c453e56c10c1c, 0xb4e84d5a68cd4e83), cat(0xb76b8d86fc3b88fc, 0x3615970eb3f9655c) }, // -1182
+ { cat(0x9509d0feabcda34a, 0x2a53711520a43ecf), cat(0x92bc7138c9c93a63, 0x5e77ac0bc32deab0) }, // -1181
+ { cat(0xbb42e7fddfaf6ba9, 0xdd524e883439fe18), cat(0xeac71b8e0fa85d6b, 0xca5913460516444d) }, // -1180
+ { cat(0x2f68b997e625efbb, 0x17750ba029c7fe79), cat(0xbbd27c71a6204abc, 0xa1e0dc380411d03e) }, // -1179
+ { cat(0xf2ba2e131e84bfc8, 0xdf90d619bb06652e), cat(0x9641fd27b819d563, 0xb4b3e36003417364) }, // -1178
+ { cat(0x5129e351ca6dffa7, 0xcc1af0292b3d6eb0), cat(0xf069950c59c2ef05, 0xedec9f000535856e) }, // -1177
+ { cat(0x0dbb1c416ebe661f, 0xd67bf35422978bc0), cat(0xc054773d149bf26b, 0x24bd4c00042ad125) }, // -1176
+ { cat(0x71627d0125651e7f, 0xdec98f768212d633), cat(0x99dd2c30dd498ebc, 0x1d643cccd02240ea) }, // -1175
+ { cat(0x82372e683bd4fd99, 0x6475b257368489eb), cat(0xf62ead1afba8e460, 0x2f06c7ae19d067dd) }, // -1174
+ { cat(0x01c5beb9c9773147, 0x83915b78f86a07ef), cat(0xc4f224159620b6b3, 0x58d2395814a6b97e) }, // -1173
+ { cat(0x67d165616df8f439, 0x360de2c72d219ff3), cat(0x9d8e8344781a2bc2, 0xad74faacdd522dfe) }, // -1172
+ { cat(0x0c823bcf165b205b, 0x89afd13eae9c331e), cat(0xfc17386d8cf6ac6a, 0xaf21911495504997) }, // -1171
+ { cat(0x0a01c9727848e6af, 0xa15974322549c27e), cat(0xc9ac2d2470c556bb, 0xbf4e0daa110d07ac) }, // -1170
+ { cat(0xa19b078ec6a0b88c, 0x81145cf4eaa16865), cat(0xa1568a838d6aabc9, 0x65d80aee740a6c89) }, // -1169
+ { cat(0x4e159fa56bb3c6d6, 0xcda9e3f7221ab9eb), cat(0x811208693deeefd4, 0x5179a2585cd523a1) }, // -1168
+ { cat(0x49bc32a245ec7157, 0xaf76398b69c45caa), cat(0xce8340a86317e620, 0x825c36f3c7bb6c35) }, // -1167
+ { cat(0x6e302881d189f446, 0x25f82e092169e3bc), cat(0xa535cd53827984e6, 0xceb02bf63962bcf7) }, // -1166
+ { cat(0x582686ce413b29d1, 0xb7f9be6db454b630), cat(0x842b0aa9352e03eb, 0xd88ceff82de8972c) }, // -1165
+ { cat(0x26a40ae39b91dc82, 0xbff5fd7c53babd19), cat(0xd378110ebb7cd312, 0xf414b326afda8b7a) }, // -1164
+ { cat(0xb8833be949417d35, 0x665e6463762efdae), cat(0xa92cda722f970f42, 0x5cdd5c1ef3153c61) }, // -1163
+ { cat(0x939c2fedd434642a, 0xb84b8382c4f2648b), cat(0x875715282612729b, 0x7d7de34bf5aa96b4) }, // -1162
+ { cat(0xec2d197c86ba39dd, 0xf3ac059e07ea3a78), cat(0xd88b550d09b71dc5, 0x959638798910f120) }, // -1161
+ { cat(0x23574796d22e94b1, 0x8fbcd14b39882ec6), cat(0xad3c440a6e2c17d1, 0x44782d2e0740c0e7) }, // -1160
+ { cat(0x1c45d2df0e8baa27, 0xa630a76f6139bf05), cat(0x8a969cd524f0130d, 0xd0602424d29a33ec) }, // -1159
+ { cat(0x606fb7cb4a79103f, 0x704dd8b2352931a2), cat(0xddbdc7bb6e4ceb49, 0x4d66a03aea905313) }, // -1158
+ { cat(0xe6bfc63c3b940cff, 0x8d0b13c1c420f481), cat(0xb1649fc9250a55d4, 0x3debb36255404275) }, // -1157
+ { cat(0x856638302fa9a3ff, 0xa408dc9b034d9068), cat(0x8dea196db73b77dc, 0xfe56291b77669b91) }, // -1156
+ { cat(0x3bd6c04d190f6ccc, 0x39a7c75e6baf4d72), cat(0xe31028af8b925961, 0x96f041c58bd75f4f) }, // -1155
+ { cat(0x63123370e0d923d6, 0x948639185625d78f), cat(0xb5a686f2d60eade7, 0xabf367d13cac4c3f) }, // -1154
+ { cat(0xe8db5c5a4d7a8312, 0x106b60e044eb12d9), cat(0x9152058f11a557ec, 0x898f8640fd56a365) }, // -1153
+ { cat(0x0e2bc6f6e25d9e83, 0x4d789b006e44eaf4), cat(0xe8833c181c3bbfe0, 0xdc18d6ce622438a3) }, // -1152
+ { cat(0xd82305924eb14b9c, 0x3dfa1599f1d0bbf6), cat(0xba029679b02fccb3, 0xe347123eb4e9c6e8) }, // -1151
+ { cat(0x79b59e0ea55aa2e3, 0x64c81147f4a6fcc5), cat(0x94cedec7c0263d5c, 0xb5d274fef7216bed) }, // -1150
+ { cat(0x8f88fce43bc437d2, 0x3ad9b53fedd7fad5), cat(0xee17cad93370622d, 0xefb72197f1cf1315) }, // -1149
+ { cat(0x72d3fd8363035fdb, 0x6247c43324acc8aa), cat(0xbe796f142926b4f1, 0x8c9281465b0c0f44) }, // -1148
+ { cat(0xc2433135e8cf7fe2, 0xb506368f508a3a22), cat(0x986125a9ba855d8e, 0x0a0ecdd1e2700c36) }, // -1147
+ { cat(0xd06b81efdae5996a, 0xbb3d241880dd29d0), cat(0xf3cea2a92a6efc16, 0x767e161c9d80138a) }, // -1146
+ { cat(0x4056018caf1e1455, 0x629750139a4a87d9), cat(0xc30bb55421f26345, 0x2b9811b07e000fa2) }, // -1145
+ { cat(0x3378013d58e4dd11, 0x1bac400faea20648), cat(0x9c095ddce7f51c37, 0x56134159fe6672e8) }, // -1144
+ { cat(0x1f26686227d494e8, 0x2c46cce5e4367072), cat(0xf9a8962e3fee938b, 0xbceb9bc330a3eb0d) }, // -1143
+ { cat(0xb285204e8643aa53, 0x569f0a51835ec05c), cat(0xc7ba11be998ba93c, 0x9722e3028d4fef3d) }, // -1142
+ { cat(0x286a803ed1cfbb75, 0xdee5a1dacf7f0049), cat(0x9fc80e32146fba96, 0xdf4f1c020aa658fe) }, // -1141
+ { cat(0x40aa66cae94c5f22, 0xfe3c362ae5980075), cat(0xffa67d1ced7f90f1, 0x654b6003443d5b30) }, // -1140
+ { cat(0x0088523bedd6b282, 0x64fcf822514666c4), cat(0xcc8530e3f132da5a, 0xb76f80029cfde28d) }, // -1139
+ { cat(0xcd39db6324abc201, 0xea63f9b50dd1ebd0), cat(0xa39dc0b65a8f1515, 0x5f8c66687d97e870) }, // -1138
+ { cat(0xa42e491c1d5634ce, 0x551cc7c40b0e5640), cat(0x82e49a2b7ba5aa77, 0x7fa38520647986c0) }, // -1137
+ { cat(0x6d16db602ef0547d, 0x54fad939ab4a239a), cat(0xd16dc378c5d5dd8b, 0xff6c0833d3f5a467) }, // -1136
+ { cat(0xbdabe2b358c04397, 0x772f142e22a1b615), cat(0xa78b02c704ab17a3, 0x32bcd35ca9915052) }, // -1135
+ { cat(0x97bcb55c47003612, 0xc5bf43581bb491aa), cat(0x8608cf059d55ac82, 0x8efd75e3badaa6a8) }, // -1134
+ { cat(0xf2c78893a4cd2351, 0x3c65388cf920e910), cat(0xd6747e6f6222ad9d, 0xb195896c5e2aa440) }, // -1133
+ { cat(0xf56c6d42ea3db5da, 0x96b76070c74d8740), cat(0xab906525e81bbe17, 0xc1446df04b555033) }, // -1132
+ { cat(0x91238a9bee97c4ae, 0xdef919f3d2a46c33), cat(0x894050eb201631ac, 0x9a9d24c03c444029) }, // -1131
+ { cat(0xb505aa9317593ab1, 0x64c1c31fb76d79ec), cat(0xdb9a1b11ccf04f7a, 0x90fb6e00606d3375) }, // -1130
+ { cat(0x90d1554279142ef4, 0x509b027fc5f12e56), cat(0xafae7c0e3d8d0c62, 0x0d95f199e6bdc2c4) }, // -1129
+ { cat(0xa70dddcec74358c3, 0x73af353304c0f1df), cat(0x8c8b9671cad73d1b, 0x3e118e14b897cf03) }, // -1128
+ { cat(0xd8162fb13ed2279f, 0x1f7ebb84d467e964), cat(0xe0df571c77bec82b, 0x96827cedf4261805) }, // -1127
+ { cat(0x79ab595a98a81fb2, 0x7f989603dd1fedea), cat(0xb3e5df49f9656cef, 0xab9b9724c351acd1) }, // -1126
+ { cat(0x2e22ade213b9b2f5, 0x32e07803174cbe55), cat(0x8feb1907fab78a59, 0x56161283cf748a41) }, // -1125
+ { cat(0x169de30352c2b7ee, 0xb7cd8cd1bee13087), cat(0xe644f4d99125aa28, 0x89bcea6c7f20dd35) }, // -1124
+ { cat(0xdee4b59c42355ff2, 0x2ca470a7cbe75a06), cat(0xb8372a47a75154ed, 0x3afd8856cc1a4a90) }, // -1123
+ { cat(0x4bea2ae3682ab328, 0x23b6c0863cb914d2), cat(0x935f55061f7443f0, 0xfbfe06abd67b6eda) }, // -1122
+ { cat(0xdfdd116bd9ddeb73, 0x6c579a706128214f), cat(0xebcbbb3cff206cb4, 0xc6633ddfbd924af6) }, // -1121
+ { cat(0x7fe40defe17e55f5, 0xf0461526b4201aa6), cat(0xbca2fc30cc19f090, 0x9eb5cb19647508c5) }, // -1120
+ { cat(0xffe9a4bfe79844c4, 0xc03810ebc34ce21e), cat(0x96e8c9c0a347f3a6, 0xe55e3c14505da09d) }, // -1119
+ { cat(0x330f6dffd8f3a13a, 0xcd268179387b0363), cat(0xf1747601053fec3e, 0x3bc9f9ba1a2f6763) }, // -1118
+ { cat(0xc272be6647294dc8, 0xa41ecdfa93959c50), cat(0xc129f800d0fff031, 0xc96e6161ae8c52b5) }, // -1117
+ { cat(0x685bcb8505baa4a0, 0x834bd7fba9447d0d), cat(0x9a87f99a40ccc027, 0xd4584de7bed6a891) }, // -1116
+ { cat(0x4092df3b3c5dd434, 0x0546265f753a61ad), cat(0xf73ff5c39ae13372, 0xed5a163f97bdda82) }, // -1115
+ { cat(0x66dbe5c8fd17dcf6, 0x6a9e85192a951af1), cat(0xc5ccc49c7be75c5b, 0xf114de9946317b9b) }, // -1114
+ { cat(0xb8afeb0730dfe3f8, 0x554b9dadbbaa7bf4), cat(0x9e3d6a16c985e37c, 0xc0dd7ee104f462e2) }, // -1113
+ { cat(0xf44cab3eb4996cc0, 0x8878fc492c43f987), cat(0xfd2f102475a30594, 0x67c8cb01a187049d) }, // -1112
+ { cat(0xf6a3bc322a145700, 0x6d2d96a0f0366139), cat(0xca8c0ce9f7b59e10, 0x530708ce1ad26a17) }, // -1111
+ { cat(0x2bb6302821a9df33, 0x8a8adee72691e761), cat(0xa209a3ee5fc47e73, 0x759f3a3e7bdb8813) }, // -1110
+ { cat(0xbc91c0201aee4c29, 0x3ba24bec1edb1f81), cat(0x81a14ff1e636cb8f, 0x914c2e9863160675) }, // -1109
+ { cat(0xfa82cd002b16e041, 0xf903acacfe2b659a), cat(0xcf687fe97057ac18, 0xe879e42704f00a55) }, // -1108
+ { cat(0xc868a4002278b367, 0xfa6956f0cb55eae2), cat(0xa5ed332126ac89ad, 0x86c7e9b8d0c00844) }, // -1107
+ { cat(0x39ed50001b93c2b9, 0x9521125a3c44bbe8), cat(0x84bdc280ebbd3af1, 0x389fee2d73ccd36a) }, // -1106
+ { cat(0x5caee6669286045c, 0x21ce83c393a12ca6), cat(0xd462d0ce45fb9181, 0xf43316af1fae1f10) }, // -1105
+ { cat(0xe3bf1eb87538037c, 0xe7d8696942e756eb), cat(0xa9e8a70b6b2fa79b, 0x29c2788c195818d9) }, // -1104
+ { cat(0xe965b22d2a9335fd, 0x8646baba9bec4589), cat(0x87ed526f88f2ec7c, 0x2168607014467a47) }, // -1103
+ { cat(0x0f091d1510eb8995, 0xa3a45df75fe06f42), cat(0xd97bb718db1e472d, 0x02409a4ced3d9073) }, // -1102
+ { cat(0x0c074a7740bc6e11, 0x4fb6b192b319f29b), cat(0xadfc927a48e505bd, 0x9b66e1d72431405c) }, // -1101
+ { cat(0xd66c3b929a30580d, 0xd95ef4755c14c216), cat(0x8b30752ea0b737ca, 0xe2b8b4ac1cf4337c) }, // -1100
+ { cat(0xbd79f8ea904d59af, 0xc23187222cee0356), cat(0xdeb3eeb101252611, 0x6ac121136186b8c7) }, // -1099
+ { cat(0xcac7fa55403de159, 0x68279f4e8a5802ab), cat(0xb2298bc0cdb751a7, 0x889a80dc4e05609f) }, // -1098
+ { cat(0x3bd32eaa99cb1aad, 0xecec7f7208466889), cat(0x8e87a300a492a7b9, 0x3a1533e3719de6e6) }, // -1097
+ { cat(0xc61eb110f611c449, 0x7b13ff1cda0a40db), cat(0xe40c380107510c5b, 0x9021ec9f1c2fd7d6) }, // -1096
+ { cat(0xd1b22740c4db036d, 0xfc0fff4a480833e2), cat(0xb6702ccd9f7409e2, 0xd9b4bd4c168cacab) }, // -1095
+ { cat(0xa7c1b9009d7c02be, 0x633fff6ea0068fe8), cat(0x91f3570ae5f66e4f, 0x14909770120a23bc) }, // -1094
+ { cat(0x3f9c5b342f2cd130, 0x9ecccbe4333db30d), cat(0xe98558116ff0b07e, 0x874dbf19b6769f94) }, // -1093
+ { cat(0x6616af5cf28a40f3, 0xb23d6fe9c297c271), cat(0xbad11341265a26cb, 0x9f7165ae2b921943) }, // -1092
+ { cat(0x1e788c4a5ba1cd8f, 0xc1cabfee35463527), cat(0x95740f6751e1b8a2, 0xe5f4515822db4769) }, // -1091
+ { cat(0xca5a7a10929c7c19, 0x36113316bba3883e), cat(0xef2018a54fcf8dd1, 0x6fed4ef36af87241) }, // -1090
+ { cat(0x084861a6dbb06347, 0x5e7428defc82d365), cat(0xbf4ce0843fd93e41, 0x2657725c55938e9b) }, // -1089
+ { cat(0x06a04e1f1626b5d2, 0xb1f68718ca0242b7), cat(0x990a4d36997a9834, 0x1eac5b7d1142d87c) }, // -1088
+ { cat(0x71007cfe89d78951, 0x1cbda4f4766a0458), cat(0xf4dd48575bf759ec, 0xfde09261b537c0c6) }, // -1087
+ { cat(0xc0cd30cba1793aa7, 0x4a3150c391ee69e0), cat(0xc3e439df7cc5e18a, 0x64b3a84e2a93009e) }, // -1086
+ { cat(0xcd70f3d61ac7621f, 0x6e8dda360e5854b4), cat(0x9cb694b2ca37e7a1, 0xea295371bba8cd4b) }, // -1085
+ { cat(0xaf1b1fbcf7a569cb, 0xe41629f016f3bab9), cat(0xfabdbab7a9f30c36, 0x4375524f92a7aedf) }, // -1084
+ { cat(0x58e27fca5fb787d6, 0x5011bb2678c2fbc7), cat(0xc897c892ee5c09c5, 0x02c441d9421fbf19) }, // -1083
+ { cat(0x13e8663b7fc60645, 0x0cdafc1ec7026306), cat(0xa0796d425849a16a, 0x689d017a9b4c98e1) }, // -1082
+ { cat(0xdcb9eb62cc9e6b6a, 0x70af30189f351c05), cat(0x80612435136e1abb, 0x86e4012ee2a3ad80) }, // -1081
+ { cat(0x6129789e1430abdd, 0x81184cf431ee933a), cat(0xcd6839ee857cf792, 0x716cceb16a9f7c01) }, // -1080
+ { cat(0xb4212d4b435a2317, 0x9a79d729c18ba8fc), cat(0xa453618b9dfd92db, 0x8df0a55abbb2c99a) }, // -1079
+ { cat(0xc34dbdd5cf7b4f46, 0x152e45bb013c8730), cat(0x8375e7a2e4cadbe2, 0xd7f3b77bc95bd47b) }, // -1078
+ { cat(0x6baf9622e5921870, 0x21e3a2c4cec73eb3), cat(0xd2563f6b07aaf96a, 0xf31f8bf9422c872c) }, // -1077
+ { cat(0x895944e8b7a8138c, 0xe7e94f03d89f655c), cat(0xa844ff88d2ef2def, 0x28e6099434f06c23) }, // -1076
+ { cat(0x077a9d86f95342d7, 0x1fedd8cfe07f844a), cat(0x869d993a4258f18c, 0x20b807a9c3f389b6) }, // -1075
+ { cat(0xa590fc0b288537be, 0x997c8e1967326d42), cat(0xd7628ec39d5b1c13, 0x678cd90f9fec0f89) }, // -1074
+ { cat(0x1e0d966f539dc632, 0x1463a4e11f5b8a9b), cat(0xac4ed89c7de27cdc, 0x52d7140c7ff00c6e) }, // -1073
+ { cat(0x180adebf7617d1c1, 0xa9e950b41916087c), cat(0x89d8ad49fe4eca49, 0xdbdf433d33267058) }, // -1072
+ { cat(0x2677cacbf0261c69, 0x0fdbb4535b5673fa), cat(0xdc8de20ffd4add42, 0xf9653861eb70b3c0) }, // -1071
+ { cat(0xb85fd56ff351b054, 0x0cafc375e2ab8ffb), cat(0xb07181a6643be435, 0x9450f9e7ef8d5c99) }, // -1070
+ { cat(0x2d19778cc2a7c043, 0x3d59692b1bbc7330), cat(0x8d279aeb83631cf7, 0xa9da6186593de3ae) }, // -1069
+ { cat(0x14f58c146aa6006b, 0x955bdb782c60b84c), cat(0xe1d8f7df389e94bf, 0x762a35a3c1fc9f7d) }, // -1068
+ { cat(0x43f7a3438884cd22, 0xdde315f9bd1a2d0a), cat(0xb4ad9318fa1876ff, 0x91bb5e1c9b307f97) }, // -1067
+ { cat(0x032c829c6d370a82, 0x4b1c119497482408), cat(0x908adc13fb46c599, 0x4162b1b07c26cc79) }, // -1066
+ { cat(0x0514042d7b8b4403, 0xab601c20f20d0672), cat(0xe74493532ba46f5b, 0x9bd11c4d93714728) }, // -1065
+ { cat(0x6a7669bdfc6f699c, 0x8919b01a5b3d9ec2), cat(0xb903a90f561d25e2, 0xe30db03e0f8dd286) }, // -1064
+ { cat(0xbb91ee3196bf87b0, 0x6dae267b7c314bcf), cat(0x9402eda5de7db7e8, 0xb5a48cfe72d7db9e) }, // -1063
+ { cat(0x928316b5bdff3f80, 0xaf7d0a5f2d1bac7d), cat(0xecd17c3c972f8ca7, 0x890747fd848c9297) }, // -1062
+ { cat(0x4202789164cc32cd, 0x5930d518f0e2f064), cat(0xbd746363ac260a1f, 0xa0d29ffe03a3a879) }, // -1061
+ { cat(0xce68607450a35bd7, 0x7a8d7747271bf384), cat(0x97904f82f01e6e7f, 0xb3dbb3319c82ed2d) }, // -1060
+ { cat(0x4a409a53b43892f2, 0x5daf253ea4f9859f), cat(0xf2807f37e6971732, 0xb95f851c2d9e4849) }, // -1059
+ { cat(0x3b66e1dc902d425b, 0x7e25b76550c79e19), cat(0xc20065c6521278f5, 0x61193749be1839d4) }, // -1058
+ { cat(0xfc524e4a0cf101e2, 0xcb515f84409fb1ae), cat(0x9b33849ea80ec72a, 0xb4142c3afe79c7dc) }, // -1057
+ { cat(0x93b6e3a9ae4e696a, 0xdee898d39a991c49), cat(0xf8526dcaa67e0b77, 0x8686ad2b30c2d961) }, // -1056
+ { cat(0xdc924fbaf1d85455, 0x7f207a42e21416a1), cat(0xc6a857d551fe6f92, 0xd2055755c09be11a) }, // -1055
+ { cat(0x16db72fbf4ad1044, 0x65b395024e767881), cat(0x9eed13110e65260f, 0x0e6aac449a164daf) }, // -1054
+ { cat(0x57c584c654481a07, 0x091f54d07d8a5a67), cat(0xfe481e81b0a1d67e, 0x7d777a075cf07c4b) }, // -1053
+ { cat(0x13046a38436ce19f, 0x3a7f770d313b7b86), cat(0xcb6ce5348d4e4531, 0xfdf92e6c4a59fd09) }, // -1052
+ { cat(0x0f36bb6035f0b47f, 0x61ff9270f42f9605), cat(0xa2bd842a0aa50427, 0xfe60f1f03b7b30d4) }, // -1051
+ { cat(0xd8f895e6918d5d32, 0xb4cc752729bfab37), cat(0x8231368808840353, 0x31e727f362c8f3dc) }, // -1050
+ { cat(0x27f4230a827bc851, 0x214721d842cc4525), cat(0xd04ebda674066bb8, 0x4fd83febd141862e) }, // -1049
+ { cat(0xecc34f3b9b9639da, 0x8105b4ad023d041d), cat(0xa6a56485299ebc93, 0x7313665641013824) }, // -1048
+ { cat(0x23cf72961611c7e2, 0x00d15d5734fd9ce4), cat(0x85511d37547efd42, 0xc275eb783400f9b7) }, // -1047
+ { cat(0x6c7f1dbcf01c7303, 0x34822ef1ee6294a0), cat(0xd54e952553fe6204, 0x6a56458d20018f8b) }, // -1046
+ { cat(0xbd327e30c016c268, 0xf6ce8bf4beb543b4), cat(0xaaa5441ddccb819d, 0x21de9e0a80013fa2) }, // -1045
+ { cat(0xfdc1fe8d66789b87, 0x2bd86ff6fef7695d), cat(0x8884367e4a3c67b0, 0xe7e54b3b999a994e) }, // -1044
+ { cat(0x62cffdaf0a5a9271, 0xdfc0b324cb257561), cat(0xda6d23fd4393d91b, 0x0ca211f8f5c4287e) }, // -1043
+ { cat(0x823ffe25a1e20ec1, 0x7fcd5c1d6f512ab4), cat(0xaebdb664360fe0e2, 0x7081a7fa5e3686cb) }, // -1042
+ { cat(0x01cccb514e4e7234, 0x663de34abf74222a), cat(0x8bcaf8502b3fe71b, 0x8d348661e4f86bd6) }, // -1041
+ { cat(0x6947abb54a171d20, 0xa396387798b9d042), cat(0xdfab26e6ab9971c5, 0xaeba709ca18d7956) }, // -1040
+ { cat(0xba9fbc9108127db3, 0xb611c6c613c7d9cf), cat(0xb2ef525222e127d1, 0x589526e3b4712dde) }, // -1039
+ { cat(0x954c96da6cdb97c2, 0xf80e389e76397b0c), cat(0x8f25db74e8b41fda, 0xad441f1c905a8b18) }, // -1038
+ { cat(0xbbadbe2a47c5bf9e, 0x59b05a97238f2b46), cat(0xe5095f217453662a, 0xaed364fa8090de8d) }, // -1037
+ { cat(0xc957cb550637cc7e, 0xae26aedf4fa5bc38), cat(0xb73ab28129dc51bb, 0xbf0f83fb9a0d7ed7) }, // -1036
+ { cat(0x07796f77382ca398, 0x8b52257f72eafcfa), cat(0x92955b9a87e37496, 0x3272cffc7b3dff13) }, // -1035
+ { cat(0x725be58b8d1438f4, 0x121d08cbeb1194c2), cat(0xea889290d96bedbd, 0x1d847ffa5ec9981e) }, // -1034
+ { cat(0x5b7cb7a2d74360c3, 0x41b0d3d655a7aa35), cat(0xbba07540adeff164, 0x179d332eb23ae018) }, // -1033
+ { cat(0xe2ca2c8245cf809c, 0x348d76451152ee91), cat(0x9619f766f18cc11c, 0xdfb0f5bef4fbe679) }, // -1032
+ { cat(0x0476ad9d3c7f342d, 0x20e256d4e884b0e8), cat(0xf0298bd7e8e134fa, 0xff81893187f970c3) }, // -1031
+ { cat(0x0392247dc9ff5cf0, 0xe71b78aa539d5a53), cat(0xc0213cacba4dc3fb, 0xff9ad4279ffac09c) }, // -1030
+ { cat(0x6941b6cb07ff7d8d, 0x85af93bb76177b76), cat(0x99b4308a2ea49cc9, 0x9948a9b94cc89a16) }, // -1029
+ { cat(0xdb9c57ab3fff2f48, 0xd5e5b92bf0259256), cat(0xf5ed1a76b1076142, 0x8edaa9287ada9023) }, // -1028
+ { cat(0x7c7d12ef6665bf6d, 0x77eafa898ceadb78), cat(0xc4bdaec55a6c4dce, 0xd8aeedb9fbe20ce9) }, // -1027
+ { cat(0x30640f25eb849924, 0x5fef2ed470bbe2c6), cat(0x9d648bd115237172, 0x46f257c7fcb4d721) }, // -1026
+ { cat(0xe7067ea3126dc1d3, 0xccb1e4871ac637a4), cat(0xfbd412e821d24f1d, 0x3e508c732dee2501) }, // -1025
+ { cat(0x526b988275249b0f, 0xd6f4b6d27bd1c61d), cat(0xc976758681750c17, 0x650d3d28f18b50ce) }, // -1024
+ { cat(0xdb8946cec41d48d9, 0x78c3c5752fdb04e4), cat(0xa12b91386790d679, 0x1da430ed8e090d71) }, // -1023
+ { cat(0x493a9f0bd0176d7a, 0xc703045dbfe26a50), cat(0x80efa76052da452d, 0xb150272471a0d78e) }, // -1022
+ { cat(0x0ec431ac80257bf7, 0xa4d1a095ffd0aa19), cat(0xce4c3f0084906eaf, 0x8219d83a4f67bf4a) }, // -1021
+ { cat(0xa569c156cceac992, 0xea414d44cca6ee7b), cat(0xa509cc006a0d2559, 0x34e179c83f8632a1) }, // -1020
+ { cat(0xb787cddf0a556e0f, 0x21cdd76a3d525862), cat(0x8407d666bb3db77a, 0x90b4616cff9e8ee7) }, // -1019
+ { cat(0xf272e2fe76ef167e, 0x9c7c8bdd2eea2703), cat(0xd33fbd712b95f25d, 0xb453cf14cc30e4a5) }, // -1018
+ { cat(0x285be8cb9258decb, 0xb063a31758bb5269), cat(0xa8ffcac0efab284a, 0xf6a9727709c0b6eb) }, // -1017
+ { cat(0xb9e320a2db7a4bd6, 0x26b61c12ad62a854), cat(0x8733089a5955b9d5, 0x9221285f3b009255) }, // -1016
+ { cat(0x8fd1cdd15f2a12f0, 0x3df02ceaaf044086), cat(0xd851a75d5bbc5c88, 0xe9cea6fec4cdb6ef) }, // -1015
+ { cat(0x730e3e4118ee758c, 0xfe59bd888c0366d2), cat(0xad0e1f7de2fd16d3, 0xee3eebff03d7c58c) }, // -1014
+ { cat(0x5c0b6500e0bec470, 0xcb7afe06d6691f0f), cat(0x8a71b2cb1bfdabdc, 0xbe98bccc03130470) }, // -1013
+ { cat(0x93456e67cdfe071a, 0xdf2b300af0a831b1), cat(0xdd82b7ab5ffc462d, 0xfdc12e13381e6d80) }, // -1012
+ { cat(0x429df1eca4cb38e2, 0x4c228cd58d535af4), cat(0xb1355fbc4cc9d1be, 0x649a8b42934b8acd) }, // -1011
+ { cat(0x9bb18e56ea3c2d81, 0xd6820a44710f7bf6), cat(0x8dc44c96a3d4a7cb, 0x83aed5cedc3c6f0a) }, // -1010
+ { cat(0xc5e8e3be43937c02, 0xf0d0106d81b25ff0), cat(0xe2d3adbdd2edd945, 0x9f7e22e49393e4dd) }, // -1009
+ { cat(0x37ed82fe9c75fccf, 0x270cd9f1348eb327), cat(0xb5762497dbf17a9e, 0x1931b583a9431d7e) }, // -1008
+ { cat(0x932468cbb05e63d8, 0xec0a47f42a0bc285), cat(0x912b50797cc12ee4, 0xe0f4913621027dfe) }, // -1007
+ { cat(0x85070e12b3ca395b, 0x1343a6537679373c), cat(0xe8454d8f2e01e4a1, 0x67edb5236803fcca) }, // -1006
+ { cat(0x9d9f3e755ca1c77c, 0x0f6951dc5ec75f63), cat(0xb9d10ad8f19b1d4d, 0xecbe2a82b99cca3b) }, // -1005
+ { cat(0x17b2985de3b49f96, 0x72baa7e37f05e5e9), cat(0x94a73be0c148e43e, 0x56fe8868947d6e96) }, // -1004
+ { cat(0xbf8426fc9f8765bd, 0x845dd96bfe6fd641), cat(0xedd85fce020e39fd, 0x57fda70dba624a89) }, // -1003
+ { cat(0x99368596e605eafe, 0x037e478998597834), cat(0xbe46b30b34d82e64, 0x466485a4951b6ed4) }, // -1002
+ { cat(0xadc537abeb37ef31, 0x9c650607ad14602a), cat(0x98388f3c2a468b83, 0x6b839e1d4415f243) }, // -1001
+ { cat(0xafa1f2acab8cb1e8, 0xfa3b3cd914ed66a9), cat(0xf38db1f9dd3dac05, 0x78d2969539bcb6d2) }, // -1000
+ { cat(0x8c818ef0893d5b20, 0xc82f63e0dd8ab887), cat(0xc2d7c194b0fe2337, 0x93dbabaa9496f8a8) }, // -999
+ { cat(0x3d34725a076448e7, 0x068c4fe717a22d39), cat(0x9bdfce108d981c2c, 0x764956221078c6ed) }, // -998
+ { cat(0x9520b6f6723a0e3e, 0x70e07fd825d0485b), cat(0xf9661680e28cf9e0, 0xbd422369b3f4717b) }, // -997
+ { cat(0xaa80925ec1c80b65, 0x2719ffe01e4039e3), cat(0xc784decd820a6180, 0x97681c548ff6c12f) }, // -996
+ { cat(0xbb9a0eb234a0091d, 0xb8e1998018336182), cat(0x9f9d7f0ace6eb466, 0xdf867d10732bcdbf) }, // -995
+ { cat(0xf8f67de9edccdb62, 0xc168f599c052359d), cat(0xff6264de1717870a, 0xff3d94e71eac7c65) }, // -994
+ { cat(0x2d91fe54be3d7c4f, 0x0120c47b0041c47e), cat(0xcc4eb718127938d5, 0x98fe10b8e556c9eb) }, // -993
+ { cat(0x57a7feaa31cac9d8, 0xcdb3d062669b0398), cat(0xa3722c1341fa93de, 0x13fe73c71ddf07ef) }, // -992
+ { cat(0x79533221c16f07e0, 0xa48fd9e852159c79), cat(0x82c1bcdc34c8764b, 0x4331f638e4b26cbf) }, // -991
+ { cat(0x28851d02cf180c9a, 0xa0e62973b688fa5c), cat(0xd135faf9ee0d8a12, 0x051cbd27d450adff) }, // -990
+ { cat(0x539db0cf0c133d48, 0x80b821295ed3fb7d), cat(0xa75e62618b3e080e, 0x6a7d641fdd0d57ff) }, // -989
+ { cat(0xdc7e270c09a8fdd3, 0x9a2ce7544bdcc931), cat(0x85e51b813c31a00b, 0x886450197da44665) }, // -988
+ { cat(0xc7303e79a90e62ec, 0x29e17220796141e7), cat(0xd63b5f352d1c3345, 0xa706e68f2f6d3d6f) }, // -987
+ { cat(0x05c031faeda51bf0, 0x21812819fab434b9), cat(0xab62b290f0e35c37, 0xb8d2520c25f0fdf3) }, // -986
+ { cat(0xd1668e6257b7498c, 0xe79a867b2ef69094), cat(0x891bc20d8d82b02c, 0x93db74d684c0cb28) }, // -985
+ { cat(0x4f0a7d6a25f20f47, 0xd8f73d91e4bdb420), cat(0xdb5f9ce27c044d14, 0x1fc587bda1347841) }, // -984
+ { cat(0x0c086454eb280c39, 0x7a5f6474b6fe29b3), cat(0xaf7fb0b5300370dc, 0xe6379fcae75d2d01) }, // -983
+ { cat(0x7006b6aa55b9a361, 0x2eb2b6c3c598215c), cat(0x8c6626f7599c5a4a, 0x51c6196f1f7dbd9a) }, // -982
+ { cat(0xb33df11089290568, 0x4ab78ad2d5c03560), cat(0xe0a3718bc293c3aa, 0x1c7028b1cbfc6290) }, // -981
+ { cat(0xc297f40d3a873786, 0xa22c6f0f1166911a), cat(0xb3b5f46fcedc9c88, 0x16c0208e3cc9e873) }, // -980
+ { cat(0xcedff670fb9f5f9e, 0xe8238c0c0deba748), cat(0x8fc4c38ca57d4a06, 0x7899b3a4fd6e538f) }, // -979
+ { cat(0xb166571b2c323297, 0xd9d279ace312a540), cat(0xe6079f476f2edcd7, 0x275c52a1957d527f) }, // -978
+ { cat(0x5ab845af568e8edf, 0xe1752e23e8dbb766), cat(0xb8061905f28be3df, 0x52b0421addfddb99) }, // -977
+ { cat(0xe22d048c453ed8b3, 0x1ac424e987162c52), cat(0x93381404c2098319, 0x0ef368157e64afad) }, // -976
+ { cat(0x9d14d413a1fe2784, 0xf7a03b0f3e89e083), cat(0xeb8cecd469a8d1c1, 0xb185735597077f7c) }, // -975
+ { cat(0x1743dcdc81981f9d, 0x92e695a5cba18069), cat(0xbc70bd76baed749a, 0xf46ac2aadf3932ca) }, // -974
+ { cat(0xdf697d7d3479b2e4, 0x75854484a2e799ed), cat(0x96c097922f245d48, 0xc3889bbbe5c75bd4) }, // -973
+ { cat(0xff0f2f2eba5c516d, 0x88d53a6dd1728fe2), cat(0xf13425b6b1d3c874, 0x6c0dc5f96fa55fba) }, // -972
+ { cat(0xcc0c25befb7d0df1, 0x3a442ebe4128731b), cat(0xc0f6849227dca05d, 0x233e37fabfb77fc8) }, // -971
+ { cat(0x7009b7cbfc640b27, 0x61d0256500ed28e3), cat(0x9a5ed074ecb0804a, 0x82982cc8995f996d) }, // -970
+ { cat(0xe675f2dffa39ab72, 0x3619d56e67e1db04), cat(0xf6fe1a54ade733aa, 0x6a8d14742898f57b) }, // -969
+ { cat(0x1ec4c24cc82e22c1, 0xc4e1778b864e48d0), cat(0xc59815108b1f5c88, 0x553da9f686e0c463) }, // -968
+ { cat(0x7f03cea3d3581bce, 0x371ac609383ea0a7), cat(0x9e13440d3c1916d3, 0x776487f86be70382) }, // -967
+ { cat(0x319fb1061ef35fb0, 0x582ad67526ca9aa4), cat(0xfceba0152cf4f152, 0x58a0d98d79719f37) }, // -966
+ { cat(0x8e195a6b4bf5e626, 0xacef11f7523baeea), cat(0xca5619aa8a5d8ddb, 0x7a1a47a46127b292) }, // -965
+ { cat(0x0b477b89099184eb, 0xbd8c0e5f74fc8bee), cat(0xa1de7aeed517a4af, 0x94e1d2e9e752f542) }, // -964
+ { cat(0x6f6c62d407a79d89, 0x64700b7f90ca098b), cat(0x817ec8bf10dfb6f2, 0xdd817587ec425dce) }, // -963
+ { cat(0xe57a37b9a5d8fc0f, 0x0719abff4e100f45), cat(0xcf314131b49924b7, 0xc8cf2273139d62e3) }, // -962
+ { cat(0xeac82c9484ad9672, 0x6c1489990b400c37), cat(0xa5c100f4907a83c6, 0x3a3f4ec27617824f) }, // -961
+ { cat(0xbbd356dd36f14528, 0x5676d47a6f66702c), cat(0x849a672a0d2ecfd1, 0xc832a5685e79350c) }, // -960
+ { cat(0x2c8557c857e86ea6, 0xf0be20c3e570b37a), cat(0xd42a3ea9aeb14c82, 0xd9eaa240972854e1) }, // -959
+ { cat(0x56d11306acb9f21f, 0x26fe809cb78d5c62), cat(0xa9bb65548bc10a02, 0x47eee833ac2043e7) }, // -958
+ { cat(0x78a7426bbd618e7f, 0x526533b092d77d1b), cat(0x87c91ddd3c9a6e68, 0x398becf6234d031f) }, // -957
+ { cat(0x8dd86a45fbcf4a65, 0x50a1ec4db7bf2e91), cat(0xd941c961fa90b0a6, 0xc2797b236bae6b65) }, // -956
+ { cat(0xd7e05504c972a1ea, 0xa6e7f03e2c98f20e), cat(0xadce3ab4c873c085, 0x68612f4f895855ea) }, // -955
+ { cat(0x1319dd9d6df54e55, 0x5253269823ad8e72), cat(0x8b0b622a39f6339d, 0xed1a8c3fa11377ef) }, // -954
+ { cat(0x1e8fc8fbe32216ee, 0xea1ea4269f7c171c), cat(0xde789d105cbd1f63, 0x14f746cc34ebf318) }, // -953
+ { cat(0xe53fd3fcb5b4df25, 0x881883521930127d), cat(0xb1fa17404a30e5e8, 0xdd929f09c3eff5ac) }, // -952
+ { cat(0x1dcca996f7c3e5b7, 0xa0139c41adc00eca), cat(0x8e61ac336e8d84ba, 0x4adbb26e36599157) }, // -951
+ { cat(0x62e10f57f2d30925, 0xccec2d35e2cce477), cat(0xe3cf79ebe415a12a, 0x115f83e38a28e88b) }, // -950
+ { cat(0x1be73f798f0f3a84, 0xa3f0242b1bd71d2c), cat(0xb63f94bcb677b421, 0xa77f9cb60820ba09) }, // -949
+ { cat(0xafec32c7a5a5c86a, 0x1cc01cef4978e423), cat(0x91cc76fd5ec629b4, 0x85ffb091a01a2e6d) }, // -948
+ { cat(0xe646b7a5d5d60d76, 0x946694b20f27d36b), cat(0xe94724c897a375ed, 0xa332b41c335d1715) }, // -947
+ { cat(0x51d22c84ab11a45e, 0xdd1edd5b3f530f89), cat(0xba9f50a0794f918a, 0xe8f55ce35c4a78de) }, // -946
+ { cat(0xdb0e8a03bc0e1d18, 0xb0e57de2990f3fa1), cat(0x954c4080610c746f, 0x20c44a4f7d0860b1) }, // -945
+ { cat(0x5e7da99f9349c827, 0x816f2fd0f4e5329b), cat(0xeee06733ce7a53e5, 0x013a107f2e73cde9) }, // -944
+ { cat(0xe531547fa907d352, 0xcdf28ca72a50f549), cat(0xbf19ec2971fb7650, 0xcdc80d328b8fd7ed) }, // -943
+ { cat(0x50f44399540642a8, 0xa4c20a1f550d9107), cat(0x98e189bac195f840, 0xa4a00a8ed60cacbe) }, // -942
+ { cat(0x4e539f5bb9a39dda, 0xa13676988815b4d8), cat(0xf49c0f9135bcc067, 0x6dccddb1567aadfd) }, // -941
+ { cat(0x0b7619162e1c7e48, 0x80f85ee06cde2a46), cat(0xc3b00c742afd66b9, 0x24a3e48ddec88b31) }, // -940
+ { cat(0x3c5e7a7824e3983a, 0x00c6b24d23e4ee9f), cat(0x9c8cd6c355978560, 0xea1cb6d7e56d3c27) }, // -939
+ { cat(0xfa30c3f36e38f390, 0x013dea15063b1764), cat(0xfa7af13888f26f01, 0x769457bfd57b9371) }, // -938
+ { cat(0xfb5a365c582d8fa6, 0x6764bb4404fc12b7), cat(0xc8625a93a0c1f267, 0x92104633112fa927) }, // -937
+ { cat(0x2f7b5eb0468ad951, 0xec5095d003fcdbc5), cat(0xa04eaedc809b2852, 0xdb403828da8c8753) }, // -936
+ { cat(0xbf95e559d208addb, 0x2373ab0ccffd7c9e), cat(0x803ef24a007c2042, 0x49002ced7ba39f75) }, // -935
+ { cat(0x98efd55c8341162b, 0x6bec44e14cc8c763), cat(0xcd3183a99a60339d, 0x4199e17bf905cbef) }, // -934
+ { cat(0xad8caab06900de89, 0x23236a4dd70705e9), cat(0xa4279c87aeb35c7d, 0xce14b4632d9e3cbf) }, // -933
+ { cat(0xf13d5559ed9a4ba0, 0xe8e921d7df38d187), cat(0x8352e39fbef5e397, 0xd810904f57b1ca32) }, // -932
+ { cat(0x4ec8888fe2907901, 0x74a8362631f48272), cat(0xd21e38ff97efd28c, 0x8ce74d4bbf82dd1e) }, // -931
+ { cat(0x0bd3a0731ba6c734, 0x5d535e84f4c39b8e), cat(0xa8182d994659753d, 0x3d85d76fcc68b0e5) }, // -930
+ { cat(0x097619f5afb89f5d, 0x1775e5372a36160c), cat(0x8679be14384790fd, 0xcad179263d208d84) }, // -929
+ { cat(0x0f235cbc4c5a9894, 0xf2563b8b76bcf012), cat(0xd72930205a0c1b2f, 0xaae8c1d6c83415a0) }, // -928
+ { cat(0x3f4f7d6370487a10, 0xc1de96092bca59a8), cat(0xac20f34d14d67c26, 0x2253ce456cf677b3) }, // -927
+ { cat(0x65d9311c59d394da, 0x34b211a0efd51487), cat(0x89b3f5d743dec9b8, 0x1b763e9df0c52c8f) }, // -926
+ { cat(0x6fc1e82d5c85baf6, 0xbab6829b1954eda4), cat(0xdc5322f2063142c0, 0x2bf0642fe7a1e0e5) }, // -925
+ { cat(0xf301868ab06afbf8, 0x955ecee27aaa57b6), cat(0xb042825b38276899, 0xbcc0502652e7e71d) }, // -924
+ { cat(0x8f346ba226bbfcc6, 0xdde5724ec888462c), cat(0x8d0201e29352ba14, 0x9700401ea8b985b1) }, // -923
+ { cat(0xb1ed7903712cc7a4, 0x963bea17a7407046), cat(0xe19ccfd0ebb79020, 0xf19a00310df5a2b5) }, // -922
+ { cat(0x8e579402c0f09fb6, 0xde9654dfb90059d1), cat(0xb47d730d895fa680, 0xc14800273e5e1bc4) }, // -921
+ { cat(0x0b7943356726e62b, 0xe54510b2fa66ae41), cat(0x90645c0ad44c8533, 0xcdd33352984b496a) }, // -920
+ { cat(0xdf286b88a50b09df, 0xd53b4deb2a3de39b), cat(0xe706f9aaed473b86, 0x161eb88426dedbdc) }, // -919
+ { cat(0xe5b9efa08408d4b3, 0x10fc3e55bb64b616), cat(0xb8d261558a9f62d1, 0xab4bc6d01f18afe3) }, // -918
+ { cat(0xeafb261a033a43c2, 0x73fcfeaafc5091ab), cat(0x93db81113bb2b574, 0x89096bd9b27a264f) }, // -917
+ { cat(0x44c509c3385d3937, 0x1ffb311193b41c45), cat(0xec92681b92b788ba, 0x74dbdfc2b729d6e6) }, // -916
+ { cat(0x6a373b02937dc75f, 0x4cc8f40e0fc349d1), cat(0xbd41ece2dbc606fb, 0x90afe6355f54abeb) }, // -915
+ { cat(0xee92959ba9316c4c, 0x3d6d900b3fcf6e41), cat(0x9767f0b57c9e6bfc, 0x73bfeb5de5dd5655) }, // -914
+ { cat(0x1750ef5f751be079, 0xfbe28011ffb24a01), cat(0xf23fe788c763dffa, 0x52ccabc96fc88a23) }, // -913
+ { cat(0x12a725e5f7498061, 0x964eccdb32f50801), cat(0xc1ccb93a391cb32e, 0xa8a3bca1263a081c) }, // -912
+ { cat(0xa885b7eb2c3acd1a, 0xdea570af5bf7399a), cat(0x9b0a2dc82db08f58, 0x86e963b41e94d349) }, // -911
+ { cat(0x0da2bfdead2ae1c4, 0x976f1ab22cbec290), cat(0xf8104940491a7ef4, 0x0b0f05ecfdbaeba9) }, // -910
+ { cat(0x0ae8997ef0ef1b03, 0xac58e22823cbceda), cat(0xc6736dcd07486590, 0x08d8d18a64958954) }, // -909
+ { cat(0xa253adff2725af36, 0x237a4e8683097248), cat(0x9ec2be3d9f6d1e0c, 0xd3e0a7a1ea113aa9) }, // -908
+ { cat(0x6a1f7ccb71d5e523, 0x6bf6e40a6b425073), cat(0xfe046395cbe1c9ae, 0x1fcdd903101b910f) }, // -907
+ { cat(0xbb4c63d5f4ab1db5, 0xeff8b66ebc350d29), cat(0xcb36b6116fe7d48b, 0x4ca4ad9c0ce2da72) }, // -906
+ { cat(0xfc3d1cab2a227e2b, 0x266091f2302a70ee), cat(0xa2922b412653106f, 0x7083be1670b57b8e) }, // -905
+ { cat(0x636416ef54e864ef, 0x51e6db2826885a58), cat(0x820e8900eb75a6bf, 0x8d3631ab8d5dfc72) }, // -904
+ { cat(0x9f068b1887da3b18, 0x830af8403da6f6f2), cat(0xd017419b1255d798, 0xe1f04f78e22ffa50) }, // -903
+ { cat(0xe59ed5ad397b627a, 0x026f2d0031525f28), cat(0xa6790148db77dfad, 0x818d0c60b4f32ea6) }, // -902
+ { cat(0x514bde242dfc4ec8, 0x01f28a668ddb7f54), cat(0x852d9aa0af931957, 0x9ad73d1a2a5c2552) }, // -901
+ { cat(0x8212fd06affa17a6, 0x698410a4162bfeec), cat(0xd515c4344c1e8ef2, 0x915861c376f9d550) }, // -900
+ { cat(0x01a8ca6bbffb461e, 0xbad00d5011bccbf0), cat(0xaa77d029d67ed8c2, 0x0de04e35f8c7ddda) }, // -899
+ { cat(0x9aed6ebc9995d1b2, 0x2f0cd7734163d65a), cat(0x885fd9bb11ff13ce, 0x71803e9193d317e1) }, // -898
+ { cat(0x917be460f5bc82b6, 0xb1ae2585356c8a29), cat(0xda32f5f81ccb52e3, 0xe8cd30e8ec84f302) }, // -897
+ { cat(0x412fe9e72afd355e, 0xf48b51375df06e87), cat(0xae8f2b2ce3d5dbe9, 0x870a8d87239d8f35) }, // -896
+ { cat(0x342654b8ef30f77f, 0x2a090dc5e4c0586c), cat(0x8ba5bc23e977e321, 0x38d53e05b617a5c4) }, // -895
+ { cat(0xed0a2127e51b2598, 0x4341afa3079a2713), cat(0xdf6f936ca8bfd1ce, 0xc155300923590939) }, // -894
+ { cat(0x24081a8650e28479, 0xcf67bfb59fae85a9), cat(0xb2bfa923ba330e3f, 0x0110f33a82ada0fb) }, // -893
+ { cat(0x50067b9ea71b9d2e, 0x3f8632f7b2f20487), cat(0x8effba82fb5c0b65, 0x9a73f5c8688ae72f) }, // -892
+ { cat(0xb33d929771c5c849, 0xff3d1e591e50073f), cat(0xe4cc5d9e5ef9abd5, 0xc3ecbc73da77d84b) }, // -891
+ { cat(0x28fe0edf8e37d36e, 0x65ca7eadb1d99f66), cat(0xb709e47eb2615644, 0x9cbd638fe1f979d6) }, // -890
+ { cat(0xed980be60b5fdc58, 0x516ecbbe27e14c51), cat(0x926e50655b8111d0, 0x7d644fa64e612e44) }, // -889
+ { cat(0x15c01309abcc93c0, 0x824adf96a63546e8), cat(0xea4a1a3bc59b4fb3, 0xfbd3b2a3b09b7d3b) }, // -888
+ { cat(0xde33426e230a0fcd, 0x3508b2deeb5dd253), cat(0xbb6e7b63047c3fc3, 0x2fdc8ee95a15fdc8) }, // -887
+ { cat(0x7e8f68581c080ca4, 0x2a6d5be58917db76), cat(0x95f1fc4f36c9cc9c, 0x264a0bede1ab316d) }, // -886
+ { cat(0xca7f0d59c673476d, 0x10aef96f41bfc589), cat(0xefe993b1f142e0f9, 0xd6dcdfe302ab8248) }, // -885
+ { cat(0xa1ff3de16b8f6c57, 0x408bfabf67cc9e08), cat(0xbfee0fc18dcf1a61, 0x78b0b31c0222cea0) }, // -884
+ { cat(0xe7ff64b4560c56ac, 0x33a32eff863d4b39), cat(0x998b3fce0b0c151a, 0xc6f3c27cce823ee6) }, // -883
+ { cat(0x3fff0786f013bde0, 0x529eb198d6c8785c), cat(0xf5ab9949ab46882a, 0xd7ec6a614a69fe3e) }, // -882
+ { cat(0x33326c6bf342fe4d, 0x0ee55ae0abd3937d), cat(0xc489476e229ed355, 0x7989eeb43b87fe98) }, // -881
+ { cat(0x8f5b89eff5cf31d7, 0x3f1de24d5642dc64), cat(0x9d3a9f8b4ee575dd, 0xfad4bef696066546) }, // -880
+ { cat(0xb22c0fe656184fbe, 0xcb6303aef06afa39), cat(0xfb90ff454b08bc96, 0x5e21318a89a3d53d) }, // -879
+ { cat(0xf4f00cb844e03fcb, 0xd5e8cfbf26bbfb61), cat(0xc940cc376f3a3078, 0x4b4dc13ba14fddca) }, // -878
+ { cat(0x2a59a3c69d803309, 0x77ed72ff522ffc4e), cat(0xa100a35f8c2e8d2d, 0x090b00fc810cb16f) }, // -877
+ { cat(0xbb7ae96bb1335c07, 0x93245bff74f3303e), cat(0x80cd4f7fa35870f0, 0xd408cd96cda3c125) }, // -876
+ { cat(0x2bf7dbdf81ebc672, 0x8506f998bb1eb396), cat(0xce154bff6bc0b4b4, 0x86747c247c393509) }, // -875
+ { cat(0x565fe31934bc9ec2, 0x0405947a2f4bc2df), cat(0xa4ddd665efcd5d5d, 0x385d301d302dc407) }, // -874
+ { cat(0xdeb31c142a307f01, 0x9cd14394f2a3024c), cat(0x83e4ab84bfd77de4, 0x2d1759b0f357d005) }, // -873
+ { cat(0x9784f9b9dd1a64cf, 0x614ed287ea9e6a13), cat(0xd30778d466259639, 0xe1bef5e7ebbfb33c) }, // -872
+ { cat(0x12d0c7c7e4151d72, 0xb43f0ed3221854dc), cat(0xa8d2c71051b7ab61, 0x816591865632f5ca) }, // -871
+ { cat(0xa8a706398344178e, 0xf698d8a8e8137716), cat(0x870f05a6a7c622b4, 0x6784746b7828c4a1) }, // -870
+ { cat(0x0dd809f59ed358e4, 0xbdc15aa7d9b8be8a), cat(0xd818090aa609d120, 0xa5a0ba458d0e0769) }, // -869
+ { cat(0xa4acd4c47f0f7a50, 0x97cde21fe160986e), cat(0xace0073bb807da80, 0x8480950470d805ed) }, // -868
+ { cat(0x1d57109d3272c840, 0x797181b31ab3ad25), cat(0x8a4cd2962cd31533, 0x9d33aa69f3e004be) }, // -867
+ { cat(0x2ef1b42eb71e0d33, 0xf582691e911f7b6f), cat(0xdd47b756ae1e8852, 0x951f770fec99a130) }, // -866
+ { cat(0x258e29bef8e4d75c, 0xc468541874192f8c), cat(0xb1062c4558186d0e, 0xddb2c5a656e14dc0) }, // -865
+ { cat(0x8471baff2d83df7d, 0x69ed10139014260a), cat(0x8d9e89d11346bda5, 0x7e289e1eabe77166) }, // -864
+ { cat(0x3a4f919848d2ff2f, 0x0fe1b35280203cdc), cat(0xe29742e81ed795d5, 0x96a76364463f1bd7) }, // -863
+ { cat(0x950c7479d3dbff58, 0xd9815c420019ca49), cat(0xb545cf2018ac77de, 0x121f82b69e98e312) }, // -862
+ { cat(0x10d6c394a97ccc47, 0x14677d0199ae3b6e), cat(0x9104a5b346f05fe4, 0xdb4c6892187a4f42) }, // -861
+ { cat(0x4e246c210f2e13a4, 0xed72619c2916c57d), cat(0xe8076f853e4d663a, 0xf87a40e9c0c3b203) }, // -860
+ { cat(0xd81d234da5be761d, 0x8ac1e7b020df0464), cat(0xb99f8c6a983deb62, 0x6061cd87cd695b35) }, // -859
+ { cat(0x134a82a484985e7e, 0x089b1fc01a4c0383), cat(0x947fa38879cb22b5, 0x19e7d79fd7877c2b) }, // -858
+ { cat(0x1edd9dd4075a30c9, 0xa75e99335d466c05), cat(0xed9905a729450454, 0xf63fbf6625a59378) }, // -857
+ { cat(0xe57e17dcd2ae8d6e, 0x1f7ee0f5e438566a), cat(0xbe140485ba9d9d10, 0xc4ffcc51b7b7a92c) }, // -856
+ { cat(0x1dfe797d75587124, 0xe5ff1a5e502d11ef), cat(0x9810039e2ee47da7, 0x03ffd6a7c62c8757) }, // -855
+ { cat(0xfcca5bfbeef3e83b, 0x09982a3080481cb1), cat(0xf34cd296b16d95d8, 0x0666243fa37a7224) }, // -854
+ { cat(0x63d51663258fecfc, 0x07acee8d336ce3c1), cat(0xc2a3dbabc12477e0, 0x051e83661c61f4ea) }, // -853
+ { cat(0x4fddab82847323fc, 0xd2f0bed75c571c9a), cat(0x9bb64956341d2cb3, 0x374b9c51b04e5d88) }, // -852
+ { cat(0x7fc9126a6d850661, 0x5181315893be942a), cat(0xf923a889ecfb7ab8, 0x5878fa1c4d4a2f40) }, // -851
+ { cat(0x663a7521f137384d, 0xdacdc113a9654355), cat(0xc74fba07f0c92ef9, 0xe060c816a43b5900) }, // -850
+ { cat(0x1e952a818dc5c6a4, 0xaf0b00dc878435de), cat(0x9f72fb398d6dbf2e, 0x4d1a39abb695e0cd) }, // -849
+ { cat(0x975510cf493c7107, 0x7e780160d8d38962), cat(0xff1e5ec27be2cb7d, 0x4829f5df8a8967ae) }, // -848
+ { cat(0xdf7740a5d4305a6c, 0x652ccde713dc6de8), cat(0xcc184bcec9823c64, 0x39bb2b193ba11fbe) }, // -847
+ { cat(0x192c33b7dcf37b89, 0xea8a3e527649f187), cat(0xa346a30bd4683050, 0x2e2f55adc94db2ff) }, // -846
+ { cat(0x7a89c2f97d8f9607, 0xeed4fea85ea18e05), cat(0x829ee8d643868d0c, 0xf1bf77be3aa48f32) }, // -845
+ { cat(0x2a7604c2627f5673, 0x17bb310d6435b008), cat(0xd0fe4156d270e1ae, 0x4f98bf96c43a7eb7) }, // -844
+ { cat(0x552b3701e865dec2, 0x79628da4502af33a), cat(0xa731cddf0ec0b48b, 0x72e0994569c8655f) }, // -843
+ { cat(0x44229267ed1e4bce, 0xc7820ae9d9bbf5c8), cat(0x85c1717f3f00906f, 0x8f1a143787d3844c) }, // -842
+ { cat(0xa03750a64830794a, 0xd8d01176292cbc73), cat(0xd6024f31fe674d7f, 0x4b5ced25a61f3a13) }, // -841
+ { cat(0x802c4085068d2dd5, 0x7a400df820f096c3), cat(0xab350c27feb90acc, 0x3c4a575151b294dc) }, // -840
+ { cat(0x002366d0d20a8b11, 0x2e99a4c680c0789c), cat(0x88f73ceccbc73bd6, 0x96a1df74415baa4a) }, // -839
+ { cat(0x669f0ae7b67744e8, 0x4a8f6e0a679a5a92), cat(0xdb252e47ac71f957, 0x57696586cef91076) }, // -838
+ { cat(0x5218d5862b929d86, 0xa20c580852e1e20f), cat(0xaf50f1d2f05b2ddf, 0x79211e057260d9f8) }, // -837
+ { cat(0x74e0aad1bc754ad2, 0x1b3d1339dbe7e80c), cat(0x8c40c1758d15be4c, 0x60e74b378eb3e193) }, // -836
+ { cat(0xee344482c7221150, 0x2b94eb8fc63fd9ad), cat(0xe0679bef4822ca13, 0xce3edebf4ab968eb) }, // -835
+ { cat(0x5829d0689f4e7440, 0x22dd893fd1ccae24), cat(0xb386165906823b43, 0x0b657eff6efaba56) }, // -834
+ { cat(0x1354a6ba190b9033, 0x4f17a0ffdb0a24e9), cat(0x8f9e784738682f68, 0xd5eacbff8bfbc845) }, // -833
+ { cat(0x52210ac35b45b385, 0x4b5901995e76a175), cat(0xe5ca5a0b8d737f0e, 0x23114665acc60d3b) }, // -832
+ { cat(0x74e73bcf7c37c2d1, 0x091401477ec54df7), cat(0xb7d514d60ac2cc0b, 0x4f41051e23d1a42f) }, // -831
+ { cat(0xc3ec2fd9302c9bda, 0x6da99a9f989dd7f9), cat(0x9310dd78089bd66f, 0x729a6a7e830e1cf2) }, // -830
+ { cat(0x6cad195b80475fc3, 0xe2a8f765c0fc8cc2), cat(0xeb4e2f26742c8a4b, 0xea90aa6404e36184) }, // -829
+ { cat(0x8a241449336c4c9c, 0xb553f91e33fd3d68), cat(0xbc3e8c1ec356d509, 0x8873bb83371c4e03) }, // -828
+ { cat(0x3b50103a8f89d6e3, 0xc4432db1c330fded), cat(0x969870189c45773a, 0xd38fc935c5b03e69) }, // -827
+ { cat(0x2bb34d2a7f42f16c, 0x6d38491c6b819647), cat(0xf0f3e68dc6d58b91, 0x527fa8560919fd75) }, // -826
+ { cat(0xefc2a421ff68c123, 0x8a936db056014506), cat(0xc0c31ed7d2446fa7, 0x7532ed11a0e19790) }, // -825
+ { cat(0xf3021ce7ff8700e9, 0x3ba9248d119a9d9f), cat(0x9a35b24641d05952, 0xc428bda7b3e7ac73) }, // -824
+ { cat(0x519cfb0ccc0b34a8, 0x5f7507481c2a95ca), cat(0xf6bc5070694d5bb7, 0xa0412f72b972ad86) }, // -823
+ { cat(0x747d95a3d66f5d53, 0x7f90d2a0168877d5), cat(0xc563738d210aafc6, 0x19cdbf8efac2246b) }, // -822
+ { cat(0xc397aae978591775, 0xffa70ee6786d2cab), cat(0x9de9293db4088c9e, 0x7b0affa595681d22) }, // -821
+ { cat(0x6c25de425a282589, 0x990b4b0a5a484777), cat(0xfca841fc5340e0fd, 0x91ab32a288a69504) }, // -820
+ { cat(0x89b7e501e1b9b7a1, 0x473c3c084839d2c6), cat(0xca2034c9dc33e731, 0x4155c21ba0854403) }, // -819
+ { cat(0xd4931d9b1afaf94d, 0xd296966d0694a89e), cat(0xa1b35d6e49c31f5a, 0x9aab01afb39dd002) }, // -818
+ { cat(0xdd427e15af2f2dd7, 0xdbabab8a6baa207f), cat(0x815c4abea168e5e2, 0x15559af2f617d99b) }, // -817
+ { cat(0x2ed0c9bc4b7eafbf, 0xc5df78dd791033fe), cat(0xcefa113102416fd0, 0x22229184bcf2f5c6) }, // -816
+ { cat(0xf240a1636f988c99, 0x6b192d7dfa735ccb), cat(0xa594da8d9b678ca6, 0x81b54136fd8f2b04) }, // -815
+ { cat(0x2833b44f8c7a0a14, 0x55adbdfe61f5e3d6), cat(0x8477153e15ec7085, 0x349100f8cad8ef37) }, // -814
+ { cat(0x0d1f86e5ad901020, 0x8915fcca36563956), cat(0xd3f1bb96897a4da1, 0xedb4ce5ade27e525) }, // -813
+ { cat(0xd74c6beaf1400ce6, 0xd41197082b782dde), cat(0xa98e2faba12ea481, 0x8af70b7be4ecb750) }, // -812
+ { cat(0xac3d23225a99a3eb, 0xdcdadf39bc6024b2), cat(0x87a4f2efb4255067, 0xa25f3c631d8a2c40) }, // -811
+ { cat(0xad2e9e9d5dc29fdf, 0xc7c4985c6099d44f), cat(0xd907eb19203bb3d9, 0x03cb93d1c8dd139a) }, // -810
+ { cat(0x24254bb117cee64c, 0x9fd079e3807b1040), cat(0xad9fef474cfc8fe0, 0xcfd60fdb071742e2) }, // -809
+ { cat(0x501dd627463f1ea3, 0xb30d2e4f99fc0d00), cat(0x8ae65905d730731a, 0x3fde73159f45cf1b) }, // -808
+ { cat(0xe696237209fe976c, 0x51aeb07f5cc67b33), cat(0xde3d5b3c8b80b829, 0xffca51bc32094b5e) }, // -807
+ { cat(0xb8781c5b3b3212bd, 0x0e2559ff7d6b95c2), cat(0xb1caaf63a2cd6021, 0x996ea7c9c1a10918) }, // -806
+ { cat(0x2d2ce37c2f5b4230, 0xd81de1993122de35), cat(0x8e3bbf82e8a44ce7, 0xadf21fd49ae73a7a) }, // -805
+ { cat(0x15149f2d18920381, 0x59c968f51b6afd21), cat(0xe392cc04a76d47d9, 0x165032edc4a52a5d) }, // -804
+ { cat(0x10dd4c2413a802cd, 0xe16ded90e2bbfdb4), cat(0xb60f099d52bdd314, 0x11d9c257d08421e4) }, // -803
+ { cat(0xda4aa3500fb99bd7, 0xe78b2473e8966490), cat(0x91a5a14aa897dc10, 0x0e47ceaca6d01b1c) }, // -802
+ { cat(0x90776bb34c5c2c8c, 0xa5ab6d8640f0a0e7), cat(0xe90902110dbfc680, 0x16d94aadd7b35e94) }, // -801
+ { cat(0xd9f922f5d6b023a3, 0xb7bc579e9a5a1a52), cat(0xba6d9b40d7cc9ecc, 0xdf143bbe46291876) }, // -800
+ { cat(0xae60e8c4abc01c82, 0xf963794baeae7b75), cat(0x95247c33dfd6e570, 0xb2769631d1ba79f8) }, // -799
+ { cat(0x4a34a7a112ccfa6b, 0x289f2879177d9255), cat(0xeea0c6b96624a24d, 0xea5756b61c5d8ff4) }, // -798
+ { cat(0x3b5d52e7423d9522, 0x86e5b9fa793141dd), cat(0xbee705611e83b50b, 0x21df7891b04ad990) }, // -797
+ { cat(0x95e442529b64774e, 0xd25161952dc1017e), cat(0x98b8d11a7ecfc408, 0xe7e5fa0e26a247a6) }, // -796
+ { cat(0x563a03b75f07254a, 0xea1bcf5516019bfd), cat(0xf45ae82a647fa00e, 0x3fd65ce37103a5d7) }, // -795
+ { cat(0x11c802f918d2843b, 0xee7ca5ddab347cca), cat(0xc37beceeb6cc800b, 0x6645171c5a695179) }, // -794
+ { cat(0xdb0668c7470ed02f, 0xf1fd517e229063d5), cat(0x9c6323f22bd6ccd5, 0xeb6a78e37b877460) }, // -793
+ { cat(0xc4d70e0ba4e4804c, 0xb6621bfd041a3955), cat(0xfa3839837957ae23, 0x1243f49f2c0bed67) }, // -792
+ { cat(0xd0ac0b3c83ea003d, 0x5eb4e330d014faaa), cat(0xc82cfacf944624e8, 0xdb69907f566ff11f) }, // -791
+ { cat(0x73bcd5ca032199ca, 0xb22a4f5a4010c888), cat(0xa023fbd9436b50ba, 0x49214065debff419) }, // -790
+ { cat(0x2963de3b35b47b08, 0x8e883f7b6673d3a0), cat(0x801cc97a9c55da2e, 0xa0e766b7e5665ce1) }, // -789
+ { cat(0x0f06305ebc53f80d, 0xb0d9ff2bd71fb900), cat(0xccfadbf760895d17, 0x67d8a4596f0a2e35) }, // -788
+ { cat(0xd8d1c04bc9dcc671, 0x5a47ff5645b2fa67), cat(0xa3fbe32c4d3ab0df, 0x8646e9e125a1be90) }, // -787
+ { cat(0x13db003ca17d6b8d, 0xe1d332ab6af5951f), cat(0x832fe8f03dc88d7f, 0x9e9f2180eae7cba7) }, // -786
+ { cat(0x52f80061026245af, 0xcfb8511244bc21cb), cat(0xd1e6418062da7bff, 0x6431cf34ab0c790b) }, // -785
+ { cat(0x75933380ceb5048c, 0xa62d0da836fce7d6), cat(0xa7eb6799e8aec999, 0x1cf4a5c3bc09fa6f) }, // -784
+ { cat(0xc475c2cd722a6a0a, 0x1e8a71535f30b978), cat(0x8655ec7b208bd47a, 0x7d90849c966e61f2) }, // -783
+ { cat(0xa0bc6ae25043dcdc, 0xfdaa4eebcb8128bf), cat(0xd6efe0c500dfba5d, 0x95b40760f0b09cb7) }, // -782
+ { cat(0xe6fd224ea69cb0b0, 0xcaeea5896f9a8700), cat(0xabf31a3733e62eb1, 0x449005e726f3b092) }, // -781
+ { cat(0xb8ca81d8854a26f3, 0xd58bb7a1261538cd), cat(0x898f482c2984f227, 0x6a0cd185b8c2f3a8) }, // -780
+ { cat(0x8e10cfc0d5437186, 0x227925cea35527ad), cat(0xdc187379dc07e9d8, 0xa9ae1c09279e52a7) }, // -779
+ { cat(0x0b40a633ddcf8e04, 0xe860eb0bb5ddb958), cat(0xb0138f94b00654ad, 0x548b49a0ec7ea886) }, // -778
+ { cat(0x090084f64b0c719d, 0x86b3ef3c917e2de0), cat(0x8cdc72dd599eaa24, 0x43a2a14d89feed38) }, // -777
+ { cat(0x74cda18a11ad8295, 0xa4531860e8c9e2ff), cat(0xe160b7c88f64436d, 0x39043548dccb1526) }, // -776
+ { cat(0x2a3e1ad4daf13544, 0x8375ad1a53d4b599), cat(0xb44d5fd3a5e9cf8a, 0x94035dd3e3d5aa85) }, // -775
+ { cat(0x54fe7bdd7bf42a9d, 0x35f7bdaea976f7ae), cat(0x903de642eb2172d5, 0x4335e4a983115537) }, // -774
+ { cat(0x21972c959320442e, 0xbcbf95e44257f2b0), cat(0xe6c9706b11cf1e22, 0x052307759e8221f2) }, // -773
+ { cat(0x1adf56de0f4d0358, 0x96ffab1d01dff559), cat(0xb8a126bc0e3f4b4e, 0x6a826c5e18681b28) }, // -772
+ { cat(0x48b2abe4d90a6913, 0xabffbc1734b32aae), cat(0x93b41efcd832a2a5, 0x2201f04b46b9af53) }, // -771
+ { cat(0x74511307c1aa41b9, 0x1332c68b87851116), cat(0xec5364c7c051043b, 0x699cb3aba45c4bb8) }, // -770
+ { cat(0x5d0da8d301550160, 0xdc289ed606040dab), cat(0xbd0f83d30040d02f, 0x87b08fbc837d0960) }, // -769
+ { cat(0xb0d7ba426777344d, 0x7ced4bde6b367156), cat(0x973f9ca8cd00a68c, 0x6c8d3fca02ca6de6) }, // -768
+ { cat(0xb48c5d370bf1ed48, 0xc7e212fd78571bbc), cat(0xf1ff610e14cdd747, 0x141532dcd143e30a) }, // -767
+ { cat(0x2a09e42c098e576d, 0x6cb4dbfdf9df4964), cat(0xc1991a71aa3e45d2, 0x76775be3da9cb5a2) }, // -766
+ { cat(0x8807e9bcd471df8a, 0xbd5d7ccb2e4c3ab6), cat(0x9ae0e1f48831d175, 0x2b92afe97bb0914e) }, // -765
+ { cat(0x0cd975faed82ff44, 0x622f2e11e3ad2abd), cat(0xf7ce36540d1c8255, 0x12844ca8c5e74ee4) }, // -764
+ { cat(0x0a4791958acf329d, 0x1b58f1a7e9575564), cat(0xc63e91dcd74a01dd, 0xa869d6ed6b1f7250) }, // -763
+ { cat(0xa1d2dade08a5c217, 0x4913f4865445ddea), cat(0x9e9874b0ac3b34b1, 0x5387df2455b2c1d9) }, // -762
+ { cat(0x361e2afcdaa2d025, 0x41b9873d53a2fca9), cat(0xfdc0bab446c5211b, 0xb8d96506ef84695c) }, // -761
+ { cat(0x5e7e88ca4882401d, 0xce2e05caa94f3087), cat(0xcb00955d056a80e2, 0xfa4784058c69ede3) }, // -760
+ { cat(0xe53207083a01cce4, 0xa4f19e3bbaa5c06c), cat(0xa266dde4045533e8, 0xc839366ad6bb24b5) }, // -759
+ { cat(0xb75b38d3619b0a50, 0x83f47e962eeb0057), cat(0x81ebe4b669ddc320, 0xa02dc522456283c4) }, // -758
+ { cat(0x5891f48568f81080, 0xd320ca89e4ab33be), cat(0xcfdfd4570fc93834, 0x337c6e9d3bd0d2d4) }, // -757
+ { cat(0x7a0e5d37872cda00, 0xa8e7086e5088f631), cat(0xa64ca9df3fd42cf6, 0x8f96bee42fda4243) }, // -756
+ { cat(0xc80b7dc605bd7b33, 0xba526d250d3a5e8e), cat(0x850a217f6643572b, 0xa612325026483502) }, // -755
+ { cat(0xd9abfc70092f2b85, 0xf6ea483b485d6416), cat(0xd4dd0265706bbeac, 0x3ce9ea19d6d9ee6a) }, // -754
+ { cat(0xe156638cd425bc6b, 0x2beea02f6d178345), cat(0xaa4a685126bc9889, 0xca54bb47df14bebb) }, // -753
+ { cat(0x1aab82d7101e3055, 0xbcbee68c5746029e), cat(0x883b86a752307a07, 0xd51095d318dd6563) }, // -752
+ { cat(0x91126af1b3638089, 0x2dfe3dad5870042f), cat(0xd9f8d7721d1a5cd9, 0x54e7561e8e2f089e) }, // -751
+ { cat(0xa741ef27c2b6006d, 0xbe64fe2446c00359), cat(0xae60ac5b4a7b7d7a, 0xaa52ab4ba4f26d4b) }, // -750
+ { cat(0x85ce58ec9bc4cd24, 0x9850cb5038999c47), cat(0x8b8089e2a1fc6462, 0x21dbbc3c83f5243c) }, // -749
+ { cat(0xa2e3c17a92d47b6d, 0xc081454d275c2d3f), cat(0xdf340fd1032d6d69, 0xcfc5f9fa6cbb6d2d) }, // -748
+ { cat(0xe8b634620f1062be, 0x339a9dd752b02432), cat(0xb2900ca735bdf121, 0x7304c7fb8a2f8a8a) }, // -747
+ { cat(0x53c4f6b4d8d9e898, 0x29487e45dbc01cf5), cat(0x8ed9a3b8f7cb274d, 0xf59d6cc93b593ba2) }, // -746
+ { cat(0xb93b24548e297426, 0xa873fd3c92ccfb21), cat(0xe48f6c5b2611d87c, 0xbc2f14752bc1f903) }, // -745
+ { cat(0x942f5043a4edf685, 0x538ffdca0f0a6281), cat(0xb6d9237c1e74ad30, 0x968c105dbc9b2d9c) }, // -744
+ { cat(0xdcf2a69c83f19204, 0x42d997d4d8d51b9b), cat(0x92474f967ec3bdc0, 0x78700d17ca15be16) }, // -743
+ { cat(0xfb1dd760d31c1cd3, 0x9e28f2ee27bb5f5e), cat(0xea0bb28a646c62cd, 0x8d8014f2dcef968a) }, // -742
+ { cat(0xc8e4ac4d75b0170f, 0xb1ba5bf1b962b2b1), cat(0xbb3c8ed51d23823e, 0x0accdd8f17261208) }, // -741
+ { cat(0x071d56a45e2678d9, 0x5afb7cc1611bc228), cat(0x95ca0bddb0e934fe, 0x6f0a4ad8df51a807) }, // -740
+ { cat(0xd82ef106fd0a5af5, 0x5e5f2e0234f936a5), cat(0xefa9ac95e7db87fd, 0x7e76de27cbb5d9a4) }, // -739
+ { cat(0x468bf405973b7bf7, 0x7eb28b34f72dc551), cat(0xbfbaf077ecaf9ffd, 0xfec57e863c917aea) }, // -738
+ { cat(0x053cc337ac2f965f, 0x988ed5c3f8f16aa8), cat(0x996259f98a261997, 0xff04653830746255) }, // -737
+ { cat(0x6ec79ebf79e5bd65, 0xc0e489398e4f110c), cat(0xf56a298f437028f3, 0x31a0a1f380ba36ee) }, // -736
+ { cat(0x256c7eff94b7cab7, 0xcd83a0fad83f40d6), cat(0xc454ee0c35f353f5, 0xc14d4e5c66fb5f25) }, // -735
+ { cat(0x512398cc76f96ef9, 0x71361a62469900ac), cat(0x9d10be702b290ff7, 0xcdd771e38595e5b7) }, // -734
+ { cat(0x81d28e13f18f17f5, 0x81f02a36d75b3445), cat(0xfb4dfd80450e7ff2, 0xe2f24fd26f563c58) }, // -733
+ { cat(0xce420b4327a5acc4, 0x67f354f8ac48f69e), cat(0xc90b31336a71fff5, 0x825b730ebf783046) }, // -732
+ { cat(0xa501a29c1fb7bd69, 0xecc2aa6089d3f87e), cat(0xa0d5c0f5eec19991, 0x3515f5a565f9c038) }, // -731
+ { cat(0x50ce1bb0195fcabb, 0x23ceeeb3a1766065), cat(0x80ab00c4bf0147a7, 0x5dab2aeab7fb002d) }, // -730
+ { cat(0xe7b02c4cf566112b, 0x6c7e4ab9025700a2), cat(0xcdde67a1319ba5d8, 0x95deab11265e66ae) }, // -729
+ { cat(0x1fc02370c451a755, 0xf065089401df33b5), cat(0xa4b1ec80f47c84ad, 0x44b222741eb1ebbf) }, // -728
+ { cat(0xb3001c5a36a7b911, 0x8d1da07667e5c2f7), cat(0x83c18a00c396d08a, 0x9d5b4ec34bc18965) }, // -727
+ { cat(0x1e6693c38aa5f4e8, 0xe1c900bd730937f1), cat(0xd2cf43346c2480dd, 0xc892179edf9c0f09) }, // -726
+ { cat(0x4b854302d55190ba, 0x4e3a66fdf5a0f98e), cat(0xa8a5cf5d23506717, 0xd3a812e57fb00c07) }, // -725
+ { cat(0xd604359bdddada2e, 0xa4fb8597f7b3fad8), cat(0x86eb0c4a82a6b8df, 0xdc86758466267005) }, // -724
+ { cat(0x2339ef5fc95e29e4, 0x3b2c08f325ecc48d), cat(0xd7de7a10d10ac166, 0x2da3ef3a3d0a4cd6) }, // -723
+ { cat(0x1c2e59196de4ee50, 0x2f566d8f518a36d7), cat(0xacb1fb40a73bcdeb, 0x57b658fb64083d78) }, // -722
+ { cat(0xb025141457ea5840, 0x25debe0c413b5f13), cat(0x8a27fc33b8fca4bc, 0x462b7a62b66cfdf9) }, // -721
+ { cat(0xe6a1b9ba2643c066, 0xa2fdfce0685efe84), cat(0xdd0cc6b927faa12d, 0x3d125d6abd7b2ff5) }, // -720
+ { cat(0x1ee7c7c81e9c99eb, 0xb597fd80537f3203), cat(0xb0d70560ecc880f0, 0xfda84abbcac8f32b) }, // -719
+ { cat(0xe586396ce54a14bc, 0x91466466a9328e69), cat(0x8d78d11a5706cd8d, 0x97b9d56308a0c288) }, // -718
+ { cat(0x08d6c247d5435460, 0xe870a0a441ea7d74), cat(0xe25ae82a24d7af48, 0xf2c2ef04da9ad0db) }, // -717
+ { cat(0xd3df01d31102a9e7, 0x205a1a1d0188645d), cat(0xb51586881d795907, 0x289bf26a487bda48) }, // -716
+ { cat(0x764c0175a73554b8, 0xe6ae7b4a67a0504b), cat(0x90de0539b12de0d2, 0x86e3285506c97b6d) }, // -715
+ { cat(0x23accf22a5222127, 0xd77d9210a5cd4d44), cat(0xe7c9a1f5e84967b7, 0x3e3840880adbf8af) }, // -714
+ { cat(0x4fbd72821db4e753, 0x12cadb4084a43dd0), cat(0xb96e1b2b203ab95f, 0x64f9cd39a24993bf) }, // -713
+ { cat(0x72fdf534e490b90f, 0x423be29a03b697da), cat(0x945815bc19c8944c, 0x50c7d7614ea142ff) }, // -712
+ { cat(0xb7fcbb87d41ac1b2, 0x039304299f8a8c8f), cat(0xed59bc602940ed46, 0xe7a625687dced198) }, // -711
+ { cat(0x2cca2f9fdce2348e, 0x694269bae6087073), cat(0xbde163802100bdd2, 0x52eb512064a5747a) }, // -710
+ { cat(0xf0a1bfb3171b5d3e, 0xba9b87c8b806c05c), cat(0x97e782cce733cb0e, 0xa8bc40e6b6eac394) }, // -709
+ { cat(0xe76932b824f89531, 0x2a9272dac00acd60), cat(0xf30c047b0b8611b1, 0x0dfa017124aad287) }, // -708
+ { cat(0xec54289350c6ddc0, 0xeedb8f15666f0ab3), cat(0xc2700395a2d1a7c0, 0xd7fb345a83bbdb9f) }, // -707
+ { cat(0x56a9ba0f73d24b00, 0xbf160c111ebf3bc3), cat(0x9b8ccfaae8a7b967, 0x132f5d15362fe2e6) }, // -706
+ { cat(0x2442c34bec83ab34, 0x64f0134e97985f9d), cat(0xf8e14c44a772c23e, 0x851894eebd196b0a) }, // -705
+ { cat(0x83689c3cbd362290, 0x50c00f7212e04c7e), cat(0xc71aa36a1f8f01cb, 0x9dad43f230e1226e) }, // -704
+ { cat(0xcf86e363ca91b540, 0x4099a5f4dbe6a398), cat(0x9f4882bb4c7267d6, 0x17bdcff4f3e74ebe) }, // -703
+ { cat(0x4c0b056c774f8866, 0xcdc2a3215fd76c26), cat(0xfeda6ac5471d72f0, 0x25fc7fee530bb131) }, // -702
+ { cat(0xa33c0456c5d939eb, 0xd7cee8e77fdf89b8), cat(0xcbe1ef0438e45bf3, 0x5196ccbea8d6275a) }, // -701
+ { cat(0x829669df04adc7ef, 0xdfd8ba52ccb2d494), cat(0xa31b259cfa50498f, 0x7478a3cbba44ec48) }, // -700
+ { cat(0xcedebb18d08b0659, 0x7fe0950f0a28aa10), cat(0x827c1e172ea6a13f, 0x9060830961d0bd06) }, // -699
+ { cat(0x17cac4f480de708f, 0x3300ee7e76a7767f), cat(0xd0c6968b7dd76865, 0xb3cd9e75694dfb3e) }, // -698
+ { cat(0x463bd0c39a4b8d3f, 0x5c00becb921f91ff), cat(0xa705453c64ac5384, 0x8fd7b1f7877195cb) }, // -697
+ { cat(0x382fda3615093dcc, 0x499a323c74e60e66), cat(0x859dd0fd1d56a936, 0xd9795b2c6c5ade3c) }, // -696
+ { cat(0x8d195d2354db9613, 0xa8f6b6c721701709), cat(0xd5c94e61c88aa857, 0xc25bc513e0916393) }, // -695
+ { cat(0xd7477db5dd7c780f, 0xba5ef89f4df345a1), cat(0xab0771e7d3a22046, 0x351637431a0de942) }, // -694
+ { cat(0x45d2caf7e463933f, 0xc84bfa190b290481), cat(0x88d2c18642e819d1, 0xc411c5cf480b2102) }, // -693
+ { cat(0x6fb7ab263a38eb99, 0x4079902811db3a68), cat(0xdaeacf3d37d9c2e9, 0x39b6094ba67834d0) }, // -692
+ { cat(0xbfc62284fb60bc7a, 0x99fad9b9a7e29520), cat(0xaf223f642cae3587, 0x615e6dd61ec690a6) }, // -691
+ { cat(0x996b4ed0c91a3062, 0x14c8ae2e1fe8774d), cat(0x8c1b65e9bd582ad2, 0xb44b8b11b23873b8) }, // -690
+ { cat(0x5bdee48141c3809c, 0xee0de37cffda587b), cat(0xe02bd642c88d1151, 0x2078de82b6c0b927) }, // -689
+ { cat(0xafe5839a9b02cd4a, 0x580b1c63ffe1e062), cat(0xb35645023a0a7440, 0xe6c718689233c752) }, // -688
+ { cat(0xbfeacfaee268a43b, 0x79a27d1cccb4b382), cat(0x8f783734fb3b9033, 0xebd279ed41c305db) }, // -687
+ { cat(0x66447f7e370dd392, 0x5c372e947abab8d0), cat(0xe58d252191f8e6b9, 0x7950c3153604d62c) }, // -686
+ { cat(0x1e9d32cb5f3e42db, 0x7cf8f210622efa40), cat(0xb7a41db474c71efa, 0xc773cf442b3711bd) }, // -685
+ { cat(0x4bb0f56f7f650249, 0x30c7280d1b58c833), cat(0x92e9b15d2a38e595, 0x6c5ca5d022927497) }, // -684
+ { cat(0x791b224bff0803a8, 0x4e0b73482bc14051), cat(0xeb0f822ea9f4a288, 0xad61094d041d8758) }, // -683
+ { cat(0x9415b50998d33620, 0x3e6f8f6cefcdcd0e), cat(0xbc0c682554c3b53a, 0x244da10a69b13913) }, // -682
+ { cat(0x434490d47a4291b3, 0x65260c57263e3da5), cat(0x96705351109c90fb, 0x503e1a6ebaf42da9) }, // -681
+ { cat(0x6ba0e7ba5d374f85, 0x6ea346f1d6c9fc3b), cat(0xf0b3b881b42db4c5, 0x4d302a4ac4b9e2a8) }, // -680
+ { cat(0x561a52fb7dc5d937, 0x8bb5d25b123b302f), cat(0xc08fc6ce29be2a37, 0x70f355089d618220) }, // -679
+ { cat(0x11aea8c9316b142c, 0x6fc4a848db628cf3), cat(0x9a0c9f0b549821c5, 0xf3f5dda07de79b4d) }, // -678
+ { cat(0x82b10e0eb5782047, 0x193aa6daf89dae51), cat(0xf67a981220f3693c, 0xb989629a630c2bae) }, // -677
+ { cat(0x688da4d8912ce69f, 0x47621f1593b15841), cat(0xc52ee00e80c2ba96, 0xfad44ee1e8d68958) }, // -676
+ { cat(0x53a483e07423ebb2, 0x9f81b277a95aad01), cat(0x9dbf19a533cefbab, 0xfbdd0be7ed786de0) }, // -675
+ { cat(0x1f6d9fcd869fdf84, 0x32691d8c422aae67), cat(0xfc64f5d51fb192ac, 0xc62e7973158d7c9a) }, // -674
+ { cat(0xe5f14ca46bb31936, 0x8eba7e09ce888b86), cat(0xc9ea5e44195adbbd, 0x6b586128de0aca14) }, // -673
+ { cat(0x84c10a1d22f5adc5, 0x3efb9807d86d3c6b), cat(0xa1884b69ade24964, 0x55e04dba4b3bd4dd) }, // -672
+ { cat(0xd09a6e7db59157d0, 0xff2facd3138a96bc), cat(0x8139d5ee24b50783, 0x77e6a49508fcaa4a) }, // -671
+ { cat(0x1a90b0c92282261b, 0x31e5e151b8ddbdfa), cat(0xcec2efe36dee726b, 0xf30aa0ee74c776de) }, // -670
+ { cat(0x15408d6db534eb48, 0xf4b7e77493e497fb), cat(0xa568bfe924bec1ef, 0xf5a21a585d6c5f18) }, // -669
+ { cat(0xaa9a0abe2a90bc3a, 0x5d5fec5d431d4663), cat(0x8453ccba83cbce59, 0x914e7b79e456b279) }, // -668
+ { cat(0x775cddfd10e79390, 0x956646fb9e953d6a), cat(0xd3b94790d2dfb08f, 0x4ee3f8c306f11d8f) }, // -667
+ { cat(0x5f7d7e640d860fa6, 0xddeb6bfc7eddcabb), cat(0xa961060d757fc072, 0xa5832d68d25a7e0c) }, // -666
+ { cat(0xb2cacb833e04d952, 0x4b22bcc9ff17d563), cat(0x8780d1a45dffcd28, 0x8468f120a84864d6) }, // -665
+ { cat(0x514478d1fcd48eea, 0x11d12e0ffe8c889e), cat(0xd8ce1c3a2fffaea7, 0x3a4181cdda0d6e24) }, // -664
+ { cat(0x410393db30aa0bee, 0x74a7580ccba3a07e), cat(0xad71b02e8ccc8bb8, 0xfb679b0b14d78b50) }, // -663
+ { cat(0x67360fe28d54d658, 0x5d52acd7094fb398), cat(0x8ac159bed70a0960, 0xc91faf3c10ac6f73) }, // -662
+ { cat(0x3ebce6374887bd5a, 0x2eeaae24dbb2b8f3), cat(0xde02293158100f01, 0x41cc4b934de0b252) }, // -661
+ { cat(0xfefd84f906d2fde1, 0xbf2224ea495bc729), cat(0xb19b542779a67267, 0x67d6a2dc3e4d5b74) }, // -660
+ { cat(0xff31372d9f0f3181, 0x65b4ea55077c9f54), cat(0x8e15dcec6151f51f, 0x86454f16983de2c3) }, // -659
+ { cat(0x31e85848fe7eb59b, 0xd5ee43bb3f2dcbba), cat(0xe3562e47021cbb65, 0xa3a2182426c96ad3) }, // -658
+ { cat(0x5b2046a0cb989149, 0x77f1cfc8ff57d62e), cat(0xb5de8b6c01b095ea, 0xe94e79b6856def0f) }, // -657
+ { cat(0x48e69ee70946daa1, 0x2cc1730732acab58), cat(0x917ed5f0015a1188, 0xbaa52e2b9df18c0c) }, // -656
+ { cat(0x4170fe3e753e2a9b, 0x7acf1e71eaaddef4), cat(0xe8caefe668901c0d, 0xf76eb045c98279ad) }, // -655
+ { cat(0x678d9831f764eee2, 0xc8a5b1f4bbbe4bf6), cat(0xba3bf31eba0ce33e, 0x5f8bc037d4686157) }, // -654
+ { cat(0x1fa479c192b72582, 0x3a1e27f6fc983cc5), cat(0x94fcc27efb3d8298, 0x4c6fccf976b9e779) }, // -653
+ { cat(0x99072935b78b6f36, 0xc3637324c759fad5), cat(0xee61373191fc0426, 0xe0b2e18f245ca58e) }, // -652
+ { cat(0xe0d2875e2c6f8c2b, 0xcf82c283d2ae6244), cat(0xbeb42c27a7fcd01f, 0x1a28b472837d513e) }, // -651
+ { cat(0xb3db9f7e89f2d689, 0x72cf02030ef1e836), cat(0x98902352ecca4018, 0xe1ba29f535fdda98) }, // -650
+ { cat(0x52f8ff30dcb7bda8, 0xb7b19cd1b1830d23), cat(0xf419d21e47aa0027, 0xcf904321effc90f4) }, // -649
+ { cat(0x7593ff5a4a2c97ba, 0x2c8e170e279c0a83), cat(0xc347db4b6c88001f, 0xd94035b4bffd40c3) }, // -648
+ { cat(0xf7a999150823ac94, 0xf071ac0b52e33b9c), cat(0x9c397c3c56d3334c, 0xadccf7c3ccca9a35) }, // -647
+ { cat(0x590f5b54d9d2adbb, 0x1a4f79abb7d1f8f9), cat(0xf9f59393be1eb87a, 0xafae593947aa9056) }, // -646
+ { cat(0x473f7c43e17557c8, 0xe1d92e22f974c72e), cat(0xc7f7a942fe7ef9fb, 0xbfbeadc76c887378) }, // -645
+ { cat(0x9f65fd031ac4463a, 0x4e47581bfac3d28b), cat(0x9ff95435986594c9, 0x6632249f8a06c2c6) }, // -644
+ { cat(0xff0994d1c46d3d2a, 0x16d88cf9913950de), cat(0xfff55388f3d5badb, 0xd6b6a0ff433e0470) }, // -643
+ { cat(0x98d4770e36bdca88, 0x1246d72e0dc773e5), cat(0xccc442d3f644957c, 0xabc54d990298038d) }, // -642
+ { cat(0x7a439271c564a206, 0x750578f1a49f8feb), cat(0xa3d035765e9d4463, 0xbc9dd7ad9baccfa4) }, // -641
+ { cat(0x2e9c7527d11d4e6b, 0x90d12d8e1d4c7322), cat(0x830cf791e54a9d1c, 0x96e4ac8ae2f0a61d) }, // -640
+ { cat(0x7dc721d94e954a45, 0xb481e27cfbad8503), cat(0xd1ae58e96eddc82d, 0xbe3aadab04b43cfb) }, // -639
+ { cat(0xfe38e7e10baaa1d1, 0x5d34b530c9579d9c), cat(0xa7bead878be4a024, 0x982ef1559d5cfd95) }, // -638
+ { cat(0x31c71fe73c888174, 0x4a9090f3d44617b0), cat(0x8632246c6fea19b6, 0xe0258dde177d97ab) }, // -637
+ { cat(0xb60b663ec740cf20, 0x774db4b953a3591a), cat(0xd6b6a0ad7fdcf5f1, 0x66a27c968bfc25de) }, // -636
+ { cat(0x91a2b8323900a5b3, 0x92a4909442e91415), cat(0xabc54d57997d918d, 0xebb530786ffceb18) }, // -635
+ { cat(0x0e1bc68e9400848f, 0xa883a6dd02541011), cat(0x896aa44614647471, 0x895dc0605997227a) }, // -634
+ { cat(0x1692d74a86673a7f, 0x7405d7c803b9b34e), cat(0xdbddd3a353d3ed82, 0x7562cd66f5be9d90) }, // -633
+ { cat(0x787579086b85c865, 0xf66b130669615c3e), cat(0xafe4a94f76432468, 0x5de8a4525e3217a6) }, // -632
+ { cat(0x605dfa6d22d16d1e, 0x5ebc0f38544de365), cat(0x8cb6edd92b68e9ed, 0x17ed5041e4f4dfb8) }, // -631
+ { cat(0xcd632a4837b57b63, 0xcac67ec086e3056e), cat(0xe124afc1df0e4314, 0xf3154d363b2165f3) }, // -630
+ { cat(0xd7828839c62ac91c, 0xa2386566d24f378b), cat(0xb41d5967e5a50277, 0x28ddd75e95b4518f) }, // -629
+ { cat(0xdf9ba02e38223a7d, 0x4e93845241d8f93c), cat(0x90177ab9848401f8, 0xed7e45e54490413f) }, // -628
+ { cat(0x329299e38d0390c8, 0x7db8d3b6cfc18ec7), cat(0xe68bf78f3a6ccff4, 0xaf306fd53a806866) }, // -627
+ { cat(0x287547e93d9c73d3, 0x97c70fc573013f06), cat(0xb86ff93f61f0a65d, 0x58f38caa953386b8) }, // -626
+ { cat(0xb9f76cba97b05ca9, 0x4638d96ac267659e), cat(0x938cc765e7f3b84a, 0xad8fa3bbaa8f9ef9) }, // -625
+ { cat(0x298be12a8c4d610e, 0xd6c15bde03d8a296), cat(0xec14723ca652c077, 0x7c1905f910e5cb29) }, // -624
+ { cat(0xee0980eed6a44da5, 0x789aafe4cfe08212), cat(0xbcdd2830850f005f, 0x967a6b2da71e3c20) }, // -623
+ { cat(0x24d4672578837151, 0x2d488cb70cb39b42), cat(0x9717535a040c004c, 0x7861ef57b8e4fce7) }, // -622
+ { cat(0x6e20a508c0d24ee8, 0x4874145814529202), cat(0xf1beebc339accd47, 0x2703188c5b07fb0b) }, // -621
+ { cat(0xf1b3b73a33db7253, 0x6d29a9e010420e68), cat(0xc1658968faf0a438, 0xec027a09e26cc8d5) }, // -620
+ { cat(0x8e295f61c315f50f, 0x8a87bb19a69b3eba), cat(0x9ab7a120c8c08360, 0xbccec807e8570711) }, // -619
+ { cat(0xb042323604efee7f, 0x440c5e8f70f8645d), cat(0xf78c350141340567, 0x947e0cd973be71b5) }, // -618
+ { cat(0xf368282b37265865, 0xd009e53f8d93837d), cat(0xc609c40100f66ab9, 0x43980a478fcb8e2a) }, // -617
+ { cat(0x8f868688f8eb79eb, 0x0cd4b7660adc6931), cat(0x9e6e366733f85561, 0x02e008393fd60b55) }, // -616
+ { cat(0xe5a40a74c178c311, 0xae2125701160a84e), cat(0xfd7d23d85326ef01, 0x9e33405b99567888) }, // -615
+ { cat(0xeae9a1f7012d68da, 0xf1b41df3411a203f), cat(0xcaca831375b8bf34, 0x7e8f66afaddec6d3) }, // -614
+ { cat(0x2254819267578715, 0x8e29b18f674819cc), cat(0xa23b9c0f916098f6, 0xcba5ebbfbe4bd243) }, // -613
+ { cat(0xb51067a852ac6c11, 0x3e87c13f85d347d6), cat(0x81c949a60de6e0c5, 0x6fb7efcc983ca835) }, // -612
+ { cat(0xee80a5da1de0ace8, 0x640c6865a2eba624), cat(0xcfa875d67ca49ad5, 0x7f8cb2e0f3944055) }, // -611
+ { cat(0xbecd517b4b1a23ed, 0x1cd6b9eae8bc84e9), cat(0xa6205e453083af11, 0x32d6f580c2dd0044) }, // -610
+ { cat(0x323ddac908e1b657, 0x4a456188ba306a54), cat(0x84e6b1d0f39c8c0d, 0xc2459133cf17336a) }, // -609
+ { cat(0x5062f7a80e35f08b, 0xaa089c0df6b3dd54), cat(0xd4a44fb4b8fa79af, 0x9d3c1b8618251f10) }, // -608
+ { cat(0x0d1bf9533e918d3c, 0x8806e33e5ef64aa9), cat(0xaa1d0c9093fb948c, 0x7dc9af9e79b74c0d) }, // -607
+ { cat(0x70e32ddc320e0a96, 0xd338b5cb7f2b6eee), cat(0x88173d407662dd3d, 0x316e2618615f700a) }, // -606
+ { cat(0xe7d1e2f9e9b010f1, 0x51f4561265124b16), cat(0xd9bec86723d161fb, 0x8249d68d6898b343) }, // -605
+ { cat(0x530e4f2e548cda5a, 0xa7f6ab41ea7508df), cat(0xae3239ec1ca78196, 0x01d4aba453ad5c36) }, // -604
+ { cat(0x0f3ea5beaa0a4848, 0x865eef67eec40719), cat(0x8b5b6189b0860144, 0xce43bc83762449c5) }, // -603
+ { cat(0x7ecaa2caa9aa0d40, 0xd6fe4bd97e0671c1), cat(0xdef89c0f80d6686e, 0x16d2c738bd06dc6e) }, // -602
+ { cat(0x98a21bd554880a9a, 0x45983cadfe6b8e34), cat(0xb2607cd933deb9f1, 0xabdbd293ca6be38b) }, // -601
+ { cat(0x46e8164443a0087b, 0x6ae0308b31efa4f6), cat(0x8eb39714297efb27, 0xbcafdba96ebcb609) }, // -600
+ { cat(0xd7d9bd3a05ccda5f, 0x1166b411e97f6e57), cat(0xe4528b537597f83f, 0x944c92a8b12df00e) }, // -599
+ { cat(0xacae30fb37d71518, 0xdab8900e5465f1df), cat(0xb6a86f75f7acc699, 0x43707553c0f18cd8) }, // -598
+ { cat(0x56f1c0c8f978ddad, 0x7bc6d9a510518e4c), cat(0x9220592b2c8a387a, 0x9c59f77633f470ad) }, // -597
+ { cat(0x8b1c67a7f58e2f7b, 0xf93e29081a1c16e0), cat(0xe9cd5b7847438d90, 0xfa298bf05320b448) }, // -596
+ { cat(0xa27d1fb9913e8c63, 0x2dcb54067b49abe6), cat(0xbb0aaf936c360ada, 0x61bad659dc1a29d3) }, // -595
+ { cat(0xe864196140fed6b5, 0xbe3c433862a15652), cat(0x95a2260f89c4d57b, 0x81624514b014ee42) }, // -594
+ { cat(0xda39c23534caf122, 0xc9fa0527043556e9), cat(0xef69d67f42d488c5, 0x9bd06e8780217d37) }, // -593
+ { cat(0xae949b5dc3d58db5, 0x6e619db8d02aabee), cat(0xbf87decc3576d3d1, 0x49738b9f99b4642c) }, // -592
+ { cat(0x5876e2b16977a491, 0x251ae493d9bbbcbe), cat(0x99397f09c45f0fda, 0xa1293c7fae29e9bd) }, // -591
+ { cat(0x27249de8a8bf6db5, 0x082b0752f5f92dfd), cat(0xf528cb42d3cb4c91, 0x01db93ff7d0fdc62) }, // -590
+ { cat(0x5283b186ed65f15d, 0xa0226c425e60f197), cat(0xc420a29bdca2a3a7, 0x34afa99930d97d1b) }, // -589
+ { cat(0xa8695ad25784c117, 0xb34ebd01e51a5ae0), cat(0x9ce6e87cb0821c85, 0xc3bfbae0f3e130e2) }, // -588
+ { cat(0x40a891508c079b59, 0x1ee4619ca1c3c499), cat(0xfb0b0d944d9cfa6f, 0x9f992b0186351b04) }, // -587
+ { cat(0x0086daa6d66c7c47, 0x4be9e7b081696a14), cat(0xc8d5a476a47d9526, 0x1947559ad1c4159d) }, // -586
+ { cat(0x339f15524523969f, 0x6fee52f39ababb43), cat(0xa0aae9f88397aa84, 0xe105de15749cde17) }, // -585
+ { cat(0x294c110e9db61219, 0x2658425c7bc895d0), cat(0x8088bb2d3612eed0, 0xb404b1aac3b0b1ac) }, // -584
+ { cat(0x42134e7dc9235028, 0x3d5a03c72c7422e5), cat(0xcda791e1f01e4ae7, 0x866de911391ab5e0) }, // -583
+ { cat(0x9b42a5316db5d9b9, 0xcaae696c23901beb), cat(0xa4860e4e59b1d586, 0x0524ba742daef7e6) }, // -582
+ { cat(0x15ceea8df15e47c7, 0xd558545682d9afef), cat(0x839e71d847c1779e, 0x6a83c85cf158c652) }, // -581
+ { cat(0x5617ddafe896d93f, 0xbbc086f0d15c4cb1), cat(0xd2971c8d3f9bf297, 0x10d2da2e4ef47083) }, // -580
+ { cat(0x11acb15986df1432, 0xfc9a058d7449d6f4), cat(0xa878e3a432e32878, 0xda4248250bf6c069) }, // -579
+ { cat(0x748a277ad24c1028, 0xca14d13df6a178c4), cat(0x86c71c835be8ed2d, 0x7b6839b73cc566ba) }, // -578
+ { cat(0x20dd0bf7b6e019da, 0xdcee1b965768c139), cat(0xd7a4fa6bc6417b7b, 0xf8a6c2bec7a23df7) }, // -577
+ { cat(0xb3e40992f8b347e2, 0x4a581611df8700fa), cat(0xac83fb896b6795fc, 0xc6ebceff061b64c5) }, // -576
+ { cat(0x5cb66e0f2d5c3981, 0xd51344db1938cd95), cat(0x8a032fa122b944ca, 0x38bca598d1af83d1) }, // -575
+ { cat(0x6123e34b7bc6c269, 0x54eba15e8ec148ee), cat(0xdcd1e5ce9df53add, 0x27943c27b5e59fb5) }, // -574
+ { cat(0x1a831c3c63056854, 0x43efb44ba5676d8c), cat(0xb0a7eb0bb190fbe4, 0x1fa9c9b95e514c91) }, // -573
+ { cat(0xe2027cfd1c045376, 0x9cbfc36fb785f13d), cat(0x8d53226fc140c983, 0x4c87d4944b743d40) }, // -572
+ { cat(0x699d94c82cd3b8bd, 0xc79938b2bf3cb52d), cat(0xe21e9d7f9b9adc05, 0x473fba86df206201) }, // -571
+ { cat(0xee17aa39bd762d64, 0x9fadc6f565ca2a8b), cat(0xb4e54acc7c7be337, 0x6c32fb9f18e6b4cd) }, // -570
+ { cat(0x24dfbb61645e8ab6, 0xe6249f2ab7d4eed6), cat(0x90b76f09fd2fe8f9, 0x235bfc7f471ef70b) }, // -569
+ { cat(0x6e32c568a0974457, 0xd6a0feaabfbb17bc), cat(0xe78be4dcc84ca7f5, 0x055ffa653e97f1ab) }, // -568
+ { cat(0xf1c23786e6df69df, 0xdee7322232fc12fd), cat(0xb93cb71706a3b990, 0xd119951dcbacc155) }, // -567
+ { cat(0xf49b5f9f1f19217f, 0xe585c1b4f5967597), cat(0x94309278d21c9473, 0xda7addb16fbd6777) }, // -566
+ { cat(0x542bcc31cb5b68cc, 0xa26f9c54bc23ef58), cat(0xed1a83f48360ed86, 0x2a5e2f824c623f26) }, // -565
+ { cat(0x76897027d5e2ba3d, 0x4ebfb043c9b65913), cat(0xbdaecff6cf80be04, 0xeeb1bf9b704e98eb) }, // -564
+ { cat(0xc53ac01fde4efb64, 0x3effc0363af84743), cat(0x97bf0cc572cd64d0, 0xbef4994926a54722) }, // -563
+ { cat(0xd52accffca17f8a0, 0x64cc66bd2b26d86a), cat(0xf2cb47a25148a14d, 0xfe5428750aa20b6a) }, // -562
+ { cat(0x10ef0a663b466080, 0x50a38564228579ef), cat(0xc23c394ea76d4dd7, 0xfea9b9f73bb4d5ef) }, // -561
+ { cat(0x73f26eb82f6b8066, 0xa6e937834ed12e59), cat(0x9b63610bb9243e46, 0x655494c5c95d77f2) }, // -560
+ { cat(0xb983e459e578cd71, 0x0b0ebf387e1b7d5a), cat(0xf89f01ac5b6d3070, 0xa220ee09422f2650) }, // -559
+ { cat(0x2e031d14b793d78d, 0xa27232939815fde2), cat(0xc6e59af0492426c0, 0x81b3f1a101bf51da) }, // -558
+ { cat(0xf19c1743c60fdfa4, 0x81f4f542e01197e8), cat(0x9f1e158d07501f00, 0x67c327b40165db14) }, // -557
+ { cat(0xb5c68b9fa34c9907, 0x3654bb9e334f5973), cat(0xfe9688e1a54cfe67, 0x0c6b72b99bd62b54) }, // -556
+ { cat(0x2b053c7fb5d6e0d2, 0x91dd62e4f5d9145c), cat(0xcbaba0b4843d9852, 0x7055f561497822aa) }, // -555
+ { cat(0xbc0430662b124d75, 0x417de8b72b14104a), cat(0xa2efb3c39cfe1375, 0x26ab2ab43ac68221) }, // -554
+ { cat(0x63368d1e88db712a, 0x9acb209288dcd9d5), cat(0x82595c9c7d980f90, 0xebbc2229c89ece81) }, // -553
+ { cat(0x052414fda7c581dd, 0xc478341da7c7c2ee), cat(0xd08efa93fc267f4e, 0x45f9d042da97b0cf) }, // -552
+ { cat(0xd0e9aa6486379b17, 0xd06029b15306358b), cat(0xa6d8c8766351ff71, 0xd194a69be212f3d8) }, // -551
+ { cat(0xda5488506b5faf46, 0x404cee27759e913c), cat(0x857a39f84f74cc5b, 0x0e10854981a8c313) }, // -550
+ { cat(0x90874080abcc4ba3, 0x9a14b03f22974ec6), cat(0xd5905cc07f2146f8, 0x1680d542690e04ec) }, // -549
+ { cat(0x0d390066efd6a2e9, 0x48108cff4edf7238), cat(0xaad9e3cd32810593, 0x4533ddceba719d8a) }, // -548
+ { cat(0xd760cd1f26454f21, 0x0673a3ff724c5b60), cat(0x88ae4fd75b9a6adc, 0x375cb1722ec14ad4) }, // -547
+ { cat(0x2567ae983d3bb1ce, 0x70b9066583ad5f00), cat(0xdab07fbef8f71160, 0x58944f1d179baaee) }, // -546
+ { cat(0x511fbee030fc8e3e, 0xc094051e02f118cd), cat(0xaef3996593f8dab3, 0x7a103f4a7949558b) }, // -545
+ { cat(0x0db2ff19c0ca0b65, 0x66dcd0e4cf27470b), cat(0x8bf61451432d7bc2, 0xc80cff6ec76dde09) }, // -544
+ { cat(0xaf84cb5c67a9abd5, 0x71614e3ae50ba4de), cat(0xdff02082051592d1, 0x4014cbe472496341) }, // -543
+ { cat(0x2603d5e386215644, 0x5ab43e95840950b1), cat(0xb326806804114241, 0x0010a31d283ab5ce) }, // -542
+ { cat(0x519cab1c6b4dde9d, 0x155cfede033aa6f4), cat(0x8f52005336743500, 0xccda1c1753622b0b) }, // -541
+ { cat(0xe8faab60abafca94, 0xeefb3163385dd7ed), cat(0xe550008523ed219a, 0xe15cf9beebd044de) }, // -540
+ { cat(0xba6222b3bc8ca210, 0xbf2f5ab5c6b1798b), cat(0xb773339db6574e15, 0x81172e3256403718) }, // -539
+ { cat(0x61e81bc2fd3d4e73, 0xcc25e22b055ac7a2), cat(0x92c28fb15eac3e77, 0x9a78f1c1de99c5ad) }, // -538
+ { cat(0x9ca692d1952ee3ec, 0x79d636ab3bc4729d), cat(0xead0e5e89779fd8c, 0x2a5b1c6964293c48) }, // -537
+ { cat(0x16eba8a7aa8be989, 0xfb11c555c969f54a), cat(0xbbda5186df94cad6, 0x8848e3878354303a) }, // -536
+ { cat(0x78bc86ec886fee07, 0xfc0e3777d454c43c), cat(0x96484138b2dd6f12, 0x06a0b60602a9c02e) }, // -535
+ { cat(0x27940b140d7fe33f, 0xf9b058bfba2139f9), cat(0xf0739b8deafbe4e9, 0xa43456700442cd17) }, // -534
+ { cat(0x52dcd5a9a4664f66, 0x6159e09961b42e61), cat(0xc05c7c7188c983ee, 0x1cf6ab8cd03570df) }, // -533
+ { cat(0xa8b0aaee1d1ea5eb, 0x8114b3ade7c3584d), cat(0x99e396c13a3acff1, 0xb0c5560a402ac0b2) }, // -532
+ { cat(0x411aab1694fdd645, 0x9b5452afd9388d48), cat(0xf638f13529f7b31c, 0x4e0889aa00446784) }, // -531
+ { cat(0xcdaeef4543fe4504, 0x7c4375597a93a43a), cat(0xc4fa5a90ee5fc27d, 0x0b3a07bb3369ec69) }, // -530
+ { cat(0x3e258c3769983736, 0xc9cf9114620fb695), cat(0x9d951540beb301fd, 0xa294d2fc292189ee) }, // -529
+ { cat(0x636f46bf0f59f1f1, 0x42e5b4ed69b2bdbb), cat(0xfc21bb9acab8032f, 0x6a87b7f9db68dcb0) }, // -528
+ { cat(0x82bf6bcc0c47f4c1, 0x02515d8abaf56495), cat(0xc9b496156ef99c25, 0xeed2f994af8716f3) }, // -527
+ { cat(0x9bcc563cd69ff700, 0xcea77e0895911d44), cat(0xa15d44ddf26149b7, 0xf2426143bf9f458f) }, // -526
+ { cat(0x163d11ca454cc59a, 0x3eec64d3aada7dd0), cat(0x81176a4b284dd493, 0x28351a9c994c37a6) }, // -525
+ { cat(0x89fb4faa087ad5c3, 0x97e0a152aaf72fb4), cat(0xce8bdd450d49541e, 0xa6bb5dc75bad25d6) }, // -524
+ { cat(0x6e62a621a062449c, 0x7980810eef2c2629), cat(0xa53cb1040aa11018, 0x8562b16c49575178) }, // -523
+ { cat(0x8b821e814d1b6a16, 0xc79a00d8bf5684ee), cat(0x84308d9cd54da67a, 0x044ef456a112a793) }, // -522
+ { cat(0xdf369735482bdcf1, 0x3f5cce27988a6e49), cat(0xd380e294887c3d90, 0x06e4ba2434eaa5b8) }, // -521
+ { cat(0xe5c545c439bcb0c0, 0xff7d71b946d52508), cat(0xa933e876d39697a6, 0x6bea2e835d888493) }, // -520
+ { cat(0xeb0437d02e308d67, 0x32cac161057750d3), cat(0x875cb9f8a945461e, 0xbcbb586917a06a0f) }, // -519
+ { cat(0x7806bfb37d1a7bd8, 0x5144689b3bf21aeb), cat(0xd8945cc10ed53cfd, 0xfac55a41bf671019) }, // -518
+ { cat(0x2cd232f5fdaec979, 0xda9d207c2ff4e256), cat(0xad437d673f10fd97, 0xfbd1150165ec0ce1) }, // -517
+ { cat(0xbd74f59197bf0794, 0xaee419fcf32a4eab), cat(0x8a9c645298da6479, 0x9640dd9ab7f00a4d) }, // -516
+ { cat(0xc8bb22828c64d8ed, 0xe4a02994b843b111), cat(0xddc706ea8e2a3a5c, 0x239afc2abfe676e2) }, // -515
+ { cat(0x3a2f4eced6b713f1, 0x83b35476f9cfc0db), cat(0xb16c058871bb61e3, 0x4faf3022331ec582) }, // -514
+ { cat(0x61bf723f122c0ff4, 0x695c4392617300af), cat(0x8df0046d27c91b1c, 0x3fbf59b4f5b2379b) }, // -513
+ { cat(0x9c6583981d134cba, 0x422d38ea3584cde5), cat(0xe319a0aea60e91c6, 0xcc655c54bc5058f8) }, // -512
+ { cat(0xb05136134a75d6fb, 0x68242d882ad0a4b7), cat(0xb5ae1a2551a5416b, 0xd6b77d1096a6ad93) }, // -511
+ { cat(0x8d0dc4dc3b9178c9, 0x201cf139bbda1d5f), cat(0x915814eaa7b76789, 0x7892ca73abb88adc) }, // -510
+ { cat(0xae7c6e2d2c1bf475, 0x002e4ec2c629c898), cat(0xe88cee443f8bd8db, 0xf41e10b912c0de2d) }, // -509
+ { cat(0x253058242349905d, 0x99bea5689e87d3ad), cat(0xba0a5836993cad7c, 0xc34b40940f00b1be) }, // -508
+ { cat(0xb759e01ce907a6b1, 0x47cbb786e5397624), cat(0x94d5135ee0fd5797, 0x02a29a100c008e31) }, // -507
+ { cat(0xbef6336174d90ab5, 0x3fac58d7d528bd06), cat(0xee21b897ce6225be, 0x6a9dc34ce000e382) }, // -506
+ { cat(0x325e8f812a473bc4, 0x32f0471310ed6405), cat(0xbe81607971e81e31, 0xeee49c3d8000b602) }, // -505
+ { cat(0x284ba600ee9f6303, 0x5bf36c0f40bde99e), cat(0x9867806127ece4f4, 0xbf1d49cacccd5e68) }, // -504
+ { cat(0xa6df70017dcbd19e, 0xf98579b2012fdc2f), cat(0xf3d8cd683fe16e54, 0x64fba9447ae230a6) }, // -503
+ { cat(0x857f8ccdfe3ca7b2, 0x6137948e67597cf3), cat(0xc313d78699812510, 0x50c95436c8b4f3b8) }, // -502
+ { cat(0x9dffa3d7fe96ec8e, 0xb42c76d852adfd8f), cat(0x9c0fdf9ee1341da6, 0xa70776923a2a5c93) }, // -501
+ { cat(0x9665d2f330f17a7d, 0xed13f15a1de32f4b), cat(0xf9b2ff649b8695d7, 0x71a58a839043c752) }, // -500
+ { cat(0xab84a8c28d8dfb97, 0xf0dcc114e4b5bf6f), cat(0xc7c265ea160544ac, 0x5aead5360d0305db) }, // -499
+ { cat(0x5603ba353e0b2fac, 0xc0b09a771d5e32c0), cat(0x9fceb7ee780436f0, 0x48bbddc4d7359e49) }, // -498
+ { cat(0xf005f6bb96784c47, 0x9ab42a582efd1dff), cat(0xffb1264a59a057e6, 0xdac62fa15855ca0e) }, // -497
+ { cat(0x266b2bc9452d09d2, 0xe229bb79bf30e4cc), cat(0xcc8db83b7ae6acb8, 0xaf04f2e779de3b3f) }, // -496
+ { cat(0x8522896dd0f0d4a8, 0xb4ee2f9498f3ea3d), cat(0xa3a49362c8b88a2d, 0x58d0c252c7e4fc32) }, // -495
+ { cat(0x6a82078b0d8d76ed, 0x5d8b5943ad8fee97), cat(0x82ea0f823a2d3b57, 0x7a409b756cb73028) }, // -494
+ { cat(0xaa69a5ab48e257e2, 0x2f455b9f7c197dbf), cat(0xd1767f36c37b9225, 0x90675f22478b8040) }, // -493
+ { cat(0x21ee1e22a0b5131b, 0x5904494c634797cc), cat(0xa791ff5f02c941b7, 0xa6b918e8393c669a) }, // -492
+ { cat(0x818b4b4ee6f7427c, 0x4736a109e906130a), cat(0x860e65e59bd43492, 0xebc747202dc9ebae) }, // -491
+ { cat(0xcf45454b0b25372d, 0x3ebdce7641a351a9), cat(0xd67d6fd5c620541e, 0x460ba500494312b0) }, // -490
+ { cat(0x3f6a9dd5a2842c24, 0x323171f83482a7ba), cat(0xab978cab04e6a9b1, 0xd1a2ea66a102755a) }, // -489
+ { cat(0x32bbb177b53689b6, 0x8e8df4c69068862f), cat(0x89460a226a52215b, 0x0e1beeb880cec448) }, // -488
+ { cat(0x1df91bf2bb8a75f0, 0xe4165470e70da37d), cat(0xdba3436a43b69bc4, 0xe35fe45a67b13a0d) }, // -487
+ { cat(0xe4c7498efc6ec4c0, 0xb678438d85a482cb), cat(0xafb5cf88362bafd0, 0xb5e6504852f42e70) }, // -486
+ { cat(0x83d2a13f30589d66, 0xf860360ad15068a2), cat(0x8c9172d35e895973, 0xc4b84039dbf68b8d) }, // -485
+ { cat(0x6c843531e6f42f0b, 0x27005677b54d7437), cat(0xe0e8b7b8974228b9, 0x3ac066c2f98a78e2) }, // -484
+ { cat(0x8a035dc1859025a2, 0x8599dec62aa45cf9), cat(0xb3ed5fc6df682094, 0x2f005235946ec71b) }, // -483
+ { cat(0x0802b1679e0ceae8, 0x6ae17f04eee9e3fa), cat(0x8ff1196be5ece6dc, 0xf266a82add256c16) }, // -482
+ { cat(0xd99de8a5c9ae44a7, 0x1168cb3b17dc9ff6), cat(0xe64e8f13097b0afb, 0x1d710d1161d579bc) }, // -481
+ { cat(0xe14b2084a15836ec, 0x0ded6f62797d4cc5), cat(0xb83ed8dc0795a262, 0x7df40a744e446163) }, // -480
+ { cat(0xb43c1a03b4469256, 0x718abf81facaa3d1), cat(0x93657a499faae84e, 0xcb29a1f6a503811c) }, // -479
+ { cat(0xed2cf66c53a41d57, 0x1c1132699144394e), cat(0xebd59075cc44a6e4, 0x78429cbdd4d2682d) }, // -478
+ { cat(0x57572b89dc834aac, 0x167428547436943f), cat(0xbcaad9f7d69d5250, 0x60354a31770eb9be) }, // -477
+ { cat(0x45df5607e39c3bbc, 0xdec35376c35edcff), cat(0x96ef14c6454aa840, 0x4cf76e8df8d89498) }, // -476
+ { cat(0x6fcbbcd96c2d2c61, 0x646bb8be056494cb), cat(0xf17e87a3a2110d33, 0xae58b0e327c0edc0) }, // -475
+ { cat(0xbfd630adf0242381, 0x1d22fa319dea10a3), cat(0xc132061c81a73dc2, 0xf1e08d828633f166) }, // -474
+ { cat(0x3311c08b26834f9a, 0x7db594f47e54da1c), cat(0x9a8e6b4a015297cf, 0x27e6d79b9e8ff452) }, // -473
+ { cat(0xb81c67450a6bb290, 0xc92287ed96ee29c6), cat(0xf74a45433550f2e5, 0x0ca48c2c30e653b6) }, // -472
+ { cat(0xc67d1f6a6ebc8eda, 0x3a820657abf1bb05), cat(0xc5d50435c440c250, 0xd6ea09bcf3eb762b) }, // -471
+ { cat(0x9eca7f885896d8ae, 0x9534d1dfbcc1626a), cat(0x9e44035e369a350d, 0x78bb3afd8fef91bc) }, // -470
+ { cat(0xfe10cc0d5a8af44a, 0x885482ff94689d76), cat(0xfd399efd2429ee7b, 0xf45ec4c8e64c1c60) }, // -469
+ { cat(0x31a709a4486f29d5, 0x39dd35994386e45f), cat(0xca947f30e9bb252f, 0xf6b237071ea349e7) }, // -468
+ { cat(0xc1526e1d06bf54aa, 0x94b0f7adcf9f1d19), cat(0xa21065c0bafc1dbf, 0xf88e926c1882a185) }, // -467
+ { cat(0x677524e40565dd55, 0x43c0c624a618e414), cat(0x81a6b7cd62634aff, 0xfa0ba8567a021ad1) }, // -466
+ { cat(0x725507d33bd62eee, 0xd2ce09d43cf4a020), cat(0xcf7126156a3877ff, 0xf6790d57299cf7b5) }, // -465
+ { cat(0xf510d30f6311bf25, 0x7571a176972a19b3), cat(0xa5f41e77882d2ccc, 0xc52da445bae3f95d) }, // -464
+ { cat(0x5da70f3f827498ea, 0xc45ae7921288148f), cat(0x84c34b92d357570a, 0x3757b69e2f1cc77e) }, // -463
+ { cat(0x95d818659d875b11, 0x3a2b0c1cea735418), cat(0xd46bac1e1ef224dd, 0x255924304b613f30) }, // -462
+ { cat(0xde4679eae46c48da, 0x94ef3ce3eec2a9ad), cat(0xa9efbce4e58e83e4, 0x1de0e9c03c4dcc26) }, // -461
+ { cat(0x7e9ec7ef1d236d7b, 0xaa58fd83256887be), cat(0x87f2fd83ead86983, 0x4b1a5499c9d7d685) }, // -460
+ { cat(0x976473182e9f1592, 0xaa27fc0508a73f96), cat(0xd984c8d3115a426b, 0xab5d542942f2f0d5) }, // -459
+ { cat(0x791d28e0254c1142, 0x21b9966a6d529945), cat(0xae03d3dc0de1cebc, 0x8917768768c25a44) }, // -458
+ { cat(0x941753e6843cda9b, 0x4e2e11eebddbadd1), cat(0x8b36431671817230, 0x6dac5ed2ba351503) }, // -457
+ { cat(0x5358863da0615dc5, 0x49e34fe462f9161a), cat(0xdebd3823e8cf1d1a, 0x4913caeac388219f) }, // -456
+ { cat(0xdc46d1cae6b44b04, 0x3b1c3fe9e8c744e2), cat(0xb230f9b653d8e415, 0x074308bbcfa01ae5) }, // -455
+ { cat(0x7d0574a25229d59c, 0xfc169987ed6c371b), cat(0x8e8d9491dcad8344, 0x05cf3a2fd94ce251) }, // -454
+ { cat(0xc808ba9d5042ef61, 0x93575c0caf138b5e), cat(0xe415ba82faaf386c, 0xd6185d195bae36e8) }, // -453
+ { cat(0x6cd3c87dd9cf25e7, 0xa912b00a25a93c4c), cat(0xb677c868c88c2d23, 0xde79e41449582bed) }, // -452
+ { cat(0xf0a96d317b0c1e52, 0xeda88cd4eaedc9d6), cat(0x91f96d20a070241c, 0xb1fb1cdd0779bcbd) }, // -451
+ { cat(0x4ddbe1e8c4e03084, 0xaf741487de4942f0), cat(0xe98f150100b36cfa, 0xb65e9494d8c2c796) }, // -450
+ { cat(0x0b164e53d0b35a03, 0xbf90106cb1d4358d), cat(0xbad8dd9a66f5f0c8, 0x91e543aa47023945) }, // -449
+ { cat(0x3c11d8430d5c4802, 0xffa6738a27dcf7a4), cat(0x957a4ae1ebf7f3d3, 0xa7ea9c8838ce9437) }, // -448
+ { cat(0xc682f39e7bc6d99e, 0x65d71f4372fb25d3), cat(0xef2a1169798cb952, 0xa6442da6c14a86be) }, // -447
+ { cat(0x3868c2e52fd247b1, 0xeb127f6928c8eb0f), cat(0xbf54dabac7a3c775, 0x51d02485676ed232) }, // -446
+ { cat(0x93870250f30e9fc1, 0x88db9920ed6d88d9), cat(0x9910aefbd2e96c5d, 0xdb0cea0452bf0e8e) }, // -445
+ { cat(0x85a4d08184e432cf, 0x415f5b67e248daf5), cat(0xf4e77e5fb7dbe096, 0x2b47dcd3b798174a) }, // -444
+ { cat(0x9e1d739ad0b68f0c, 0x344c491fe83a48c4), cat(0xc3ec65195fe31a11, 0xbc397d762c79ac3b) }, // -443
+ { cat(0x4b4ac2e240920c09, 0xc3703a7fecfb6d6a), cat(0x9cbd1dade64f480e, 0x302dfdf8239489c9) }, // -442
+ { cat(0xabaad16a00e9acdc, 0x6be6c3ffe19248a9), cat(0xfac82f7ca3b20ce3, 0x80499659d28742db) }, // -441
+ { cat(0x562241219a548a49, 0xefebcfffe7a83a21), cat(0xc8a025fd4fc1a3e9, 0x336e11e175390249) }, // -440
+ { cat(0x44e8341ae1dd3b6e, 0x598973331fb9c81a), cat(0xa0801e643fce1cba, 0x8f8b41812a9401d4) }, // -439
+ { cat(0x372029af1b1762be, 0xae078f5c19616ce2), cat(0x80667eb69971b095, 0x3fa29acdbba99b10) }, // -438
+ { cat(0x583375e4f8256aca, 0xb00c18935bcf149c), cat(0xcd70cabdc24f80ee, 0xcc375e15f90f5e80) }, // -437
+ { cat(0xe0292b1d9351223b, 0xc009ad42afd8dd4a), cat(0xa45a3bcb01d933f2, 0x3cf91811940c4b99) }, // -436
+ { cat(0xb354227e0f741b63, 0x0007bdcef313e43b), cat(0x837b6308ce475cc1, 0xca60e00e1009d614) }, // -435
+ { cat(0xebb9d0c9b2535f04, 0xccd92fb184eca05e), cat(0xd25f04dae3a56136, 0x109b0016800fbced) }, // -434
+ { cat(0x896173d48ea918d0, 0xa3e0f2f46a56e6b2), cat(0xa84c03e24fb780f8, 0x0d48ccdeccd963f1) }, // -433
+ { cat(0xd44df643a55413da, 0x1cb3f59055125228), cat(0x86a3364ea62c672c, 0xd76d70b23d7ab65a) }, // -432
+ { cat(0x53aff06c3bb9b95c, 0xfab988e6ee83b6a6), cat(0xd76b8a1770470b7a, 0xf248b450625df091) }, // -431
+ { cat(0x762659f02fc7c77d, 0x95613a5258695eec), cat(0xac560812c038d5fb, 0xf506f6a6b517f3a7) }, // -430
+ { cat(0xc4eb7b268c9fd2ca, 0xdde761db79ede589), cat(0x89de6cdbccfa44c9, 0x90d25eebc4132952) }, // -429
+ { cat(0x3b125ea41432eade, 0x2fd89c925cafd5a8), cat(0xdc971492e1906e0f, 0x4e1d64ac6ceb7551) }, // -428
+ { cat(0xfc0eb21cdcf588b1, 0xbfe07d41e3bfde20), cat(0xb078dd424e0d24d9, 0x0b4ab6f05722c440) }, // -427
+ { cat(0xc9a55b4a4a5e06f4, 0x99806434b633181a), cat(0x8d2d7dcea4d750ad, 0xa2a22bf378e89d00) }, // -426
+ { cat(0x0f6ef876dd633e54, 0x28cd6d212384f35c), cat(0xe1e262e43af21aaf, 0x6a9d131f27da94ce) }, // -425
+ { cat(0xa5f2605f17829843, 0x53d78a80e9372917), cat(0xb4b51be9c8c1aef2, 0xbbb0dc18ecaedd71) }, // -424
+ { cat(0x518eb37f46021369, 0x0fdfa200ba928746), cat(0x9090e3216d67bf28, 0x9627167a56f24ac1) }, // -423
+ { cat(0xe8e452653cd01f0e, 0x7fcc366790ea7209), cat(0xe74e38357bd931da, 0x89d823f6f183aace) }, // -422
+ { cat(0x53e9db8430a67f3e, 0xcca35eb940bb8e6d), cat(0xb90b602ac97a8e48, 0x6e46832bf4695572) }, // -421
+ { cat(0xa987e2d026eb98ff, 0x0a1c4bc766fc71f1), cat(0x940919bbd4620b6d, 0x250535bcc387778e) }, // -420
+ { cat(0xdc0c9e19d7df5b31, 0xa9c6dfa57193e982), cat(0xecdb5c5fba3678ae, 0xa1a1ef946c0bf27d) }, // -419
+ { cat(0x7cd6e4e1797f7c27, 0xbb057fb78e0fee01), cat(0xbd7c49e62e91fa25, 0x4e1b2610566ff531) }, // -418
+ { cat(0x971250b46132c9b9, 0x626acc92d80cbe68), cat(0x9796a184f20e61b7, 0x71af51a6ab8cc427) }, // -417
+ { cat(0x8b5081209b8475f5, 0x6a447a848ce130a6), cat(0xf28a9c07e9b09c58, 0xb5e54f71127ad372) }, // -416
+ { cat(0xd5da00e6e2d05e5d, 0xee9d2ed070b426eb), cat(0xc2087cd3215a16ad, 0x5e510c5a752f0f8e) }, // -415
+ { cat(0x117b33ebe8a6b1e4, 0xbee425738d5cebef), cat(0x9b39fd75b4481224, 0x4b7409e1f758d93f) }, // -414
+ { cat(0xe8c51fdfdaa44fd4, 0x64a03bec1561797e), cat(0xf85cc8bc53a6836d, 0x45867636588e2864) }, // -413
+ { cat(0x53d0e64caee9d976, 0xb6e6965677812dff), cat(0xc6b0a096a95202bd, 0xd1385e91e071b9ea) }, // -412
+ { cat(0x0fda51d6f254adf8, 0x925211dec600f199), cat(0x9ef3b3abbaa80231, 0x742d1874b38e2e55) }, // -411
+ { cat(0x7fc3b624b6ede327, 0x50834fcad667e8f4), cat(0xfe52b912c4400382, 0x537b5a54527d16ee) }, // -410
+ { cat(0x99695e83c58b1c1f, 0x739c3fd5785320c3), cat(0xcb7560dbd0333601, 0xdc62aea9db97458b) }, // -409
+ { cat(0xe12118696ad5b019, 0x2949ccaac6a8e703), cat(0xa2c44d7ca68f5e67, 0xe3822554afac37a2) }, // -408
+ { cat(0x4db4138788aaf347, 0x543b0a2238871f36), cat(0x8236a463b872b1ec, 0xb601b776f2f02c82) }, // -407
+ { cat(0x49201f3f4111853e, 0xed2b4369f40b6522), cat(0xd0576d6c5a511cad, 0xf002bf24b7e6ad9d) }, // -406
+ { cat(0x074ce5cc340e0432, 0x5755cf87f66f841c), cat(0xa6ac5789e1da7d57, 0xf33565b6f98557b1) }, // -405
+ { cat(0x9f70b7d6900b368e, 0xac44a6065ebf9ce3), cat(0x8556ac6e4e486446, 0x5c2ab7c5946aac8d) }, // -404
+ { cat(0x324df2f0e678574a, 0xad3aa33d6465c7d1), cat(0xd5577a4a16da3a0a, 0x2d112608ed777a7c) }, // -403
+ { cat(0x5b718f271ec6ac3b, 0xbdc8829783849fdb), cat(0xaaac61d4df14fb3b, 0x5740eb3a5792c863) }, // -402
+ { cat(0x4927a5b8e56bbcfc, 0x97d39bac6936e649), cat(0x8889e7dd7f43fc2f, 0x7900bc2eac756d1c) }, // -401
+ { cat(0xdb72a2c16f12c7fa, 0x8c85c5e0a857d6da), cat(0xda763fc8cb9ff9e5, 0x8e67937de0bbe1c6) }, // -400
+ { cat(0xaf8ee89abf423995, 0x3d37d18086acabe2), cat(0xaec4ffd3d61994b7, 0xa51fa93180964e38) }, // -399
+ { cat(0x260bed489901c7aa, 0x975fdacd388a231b), cat(0x8bd0cca9781476f9, 0x50e620f466dea4fa) }, // -398
+ { cat(0xd6797ba75b360c44, 0x25662ae1f410382b), cat(0xdfb47aa8c020be5b, 0xb4a367ed71643b29) }, // -397
+ { cat(0xdec7961f7c2b3d03, 0x511e88b4c3402cf0), cat(0xb2f6c887001a31e2, 0xf6e91ff127836287) }, // -396
+ { cat(0xe56c781930229735, 0xda7ed3c3cf668a59), cat(0x8f2bd39f334827e8, 0xc5874cc0ec691b9f) }, // -395
+ { cat(0xa247268eb36a8b89, 0x5d97b9394bd743c2), cat(0xe512ec31eba6a641, 0x3c0bae017a41c5cc) }, // -394
+ { cat(0xe838eba55c553c6d, 0xe47960faa3129c9b), cat(0xb742568e561eeb67, 0x633c8b3461ce37d6) }, // -393
+ { cat(0x202d895116aa96be, 0x50611a621c0ee3af), cat(0x929b7871de7f22b9, 0x1c306f5d1b0b5fdf) }, // -392
+ { cat(0x0048dbb4f110f130, 0x809b5d69c67e3918), cat(0xea925a4fca65045b, 0x604d7efb5e789965) }, // -391
+ { cat(0x003a495d8da7275a, 0x007c4abb0531c747), cat(0xbba8483fd51d9d15, 0xe6a46595e52d4784) }, // -390
+ { cat(0xccfb6de4715285e1, 0x99fd08959dc16c39), cat(0x962039ccaa7e1744, 0xb8838477ea8a9f9c) }, // -389
+ { cat(0x14c57ca0b550d635, 0xc32e7422960246c1), cat(0xf0338faddd968ba1, 0x2738d3f310ddcc2e) }, // -388
+ { cat(0x43d13080910d782b, 0x028b901bab350567), cat(0xc0293fbe4aded61a, 0x85c70ff5a717d68b) }, // -387
+ { cat(0xcfda8d33a73df9bc, 0x020940162290d11f), cat(0x99ba996508b244e2, 0x049f3ff7b8dfded5) }, // -386
+ { cat(0x195daeb90b965c60, 0x034200236a814e98), cat(0xf5f75bd4dab6d49c, 0xd431fff2c1663156) }, // -385
+ { cat(0xe117befa6fab7d19, 0x9c34cce922010bad), cat(0xc4c5e310aef8aa17, 0x1027fff56784f444) }, // -384
+ { cat(0x1a7965952622ca7a, 0xe35d70ba819a6fbe), cat(0x9d6b1c0d58c6ee78, 0xd9b999911f9d9037) }, // -383
+ { cat(0xc3f56f5509d143f7, 0xd22f1ac40290b2c9), cat(0xfbde93488e0b1727, 0xc2c28f4e98fc19f1) }, // -382
+ { cat(0x699125dda174365f, 0xdb58e2366873c23b), cat(0xc97edc3a0b3c1286, 0x356872a5473014c1) }, // -381
+ { cat(0x2140eb17b45cf84c, 0xaf7a4e91ed29682f), cat(0xa13249c808fcdb9e, 0x91205bb76c267701) }, // -380
+ { cat(0x8100bc12f6b0c6a3, 0xbf950ba7f0edecf2), cat(0x80f507d33a63e2e5, 0x40e6afc5f01ec59a) }, // -379
+ { cat(0xce6793518ab47105, 0xff54df731b1647ea), cat(0xce54d951f70637d5, 0x34a44c6fe697a290) }, // -378
+ { cat(0xd852dc413bc38d9e, 0x65dd7f8f48de9fef), cat(0xa510addb2c04f977, 0x5d503d265212e873) }, // -377
+ { cat(0x13757d00fc9c714b, 0x84b132d907187ff2), cat(0x840d57e2899d945f, 0x7dd9ca850e7586c3) }, // -376
+ { cat(0x525594ce60fa4edf, 0x3ab51e280b5a6650), cat(0xd3488c9da8fc2098, 0xc95c773b4a55a46b) }, // -375
+ { cat(0x41de10a51a61d8b2, 0x955db1b9a2aeb840), cat(0xa906d6e487301a13, 0xd449f8fc3b77b6bc) }, // -374
+ { cat(0x9b180d50e1e7e08e, 0xdde48e2e1bbef9cd), cat(0x8738abea05c014dc, 0xa9d4c7302f92f896) }, // -373
+ { cat(0x2b59aee7cfd9674a, 0xfca0e37cf9318fae), cat(0xd85aaca9a2ccee2d, 0xdc87a519e5b7f424) }, // -372
+ { cat(0x89148beca64785d5, 0x96e71c63fa8e0c8b), cat(0xad1556ee1bd724f1, 0x7d3950e1849329b6) }, // -371
+ { cat(0x3a76d656eb6c6b11, 0x4585b04ffba4d6d6), cat(0x8a7778be7cac1d8d, 0xfdc773e79d4287c5) }, // -370
+ { cat(0xf7248a24abe0ab4e, 0xd5a2b3b32c3af156), cat(0xdd8bf463faacfc16, 0x62d8b97295373fa1) }, // -369
+ { cat(0xc5b6d4ea231a22a5, 0x77b55c8f56958dde), cat(0xb13cc3832ef0c9ab, 0x8246fac210f8ffb4) }, // -368
+ { cat(0xd15f10bb4f481bb7, 0x92f77d3f7877a4b2), cat(0x8dca36028bf3d489, 0x350595680d93ffc3) }, // -367
+ { cat(0xe8981ac54ba692bf, 0x518bfb98c0bf6de9), cat(0xe2dd23374652eda8, 0x54d5bbd9af5332d2) }, // -366
+ { cat(0x2079af043c854232, 0xa7a32fad66ff8b21), cat(0xb57db5c5d1dbf153, 0x771163148c428f0f) }, // -365
+ { cat(0x19faf269ca0434f5, 0x52e8f2f11f32d5b4), cat(0x91315e37db165aa9, 0x2c0de8dd3d020c0c) }, // -364
+ { cat(0x299183dc766d2188, 0x84a7eb1b651e22ba), cat(0xe84efd262b56f775, 0x134974952e69ace0) }, // -363
+ { cat(0x87a79cb05ebdb46d, 0x36ecbc15ea7e822e), cat(0xb9d8ca84ef78c5f7, 0x42a12a10f1ee23e6) }, // -362
+ { cat(0x061fb08d1897c38a, 0x9256fcde553201bf), cat(0x94ad6ed0bf93d192, 0x9bb421a727f1b652) }, // -361
+ { cat(0xa365e748275938dd, 0xb6f19496eeb66931), cat(0xede24ae798ec8284, 0x2c53690b731c56e9) }, // -360
+ { cat(0xe91e52a01f7a93e4, 0x925add458bc520f4), cat(0xbe4ea252e0bd3536, 0x89dc540928e378ba) }, // -359
+ { cat(0xba7ea880192edcb6, 0xdb7be437a3041a5d), cat(0x983ee8424d642a92, 0x07e3766dba4f93c8) }, // -358
+ { cat(0x2a6440ccf517c78a, 0xf8c639f29e6cf6fb), cat(0xf397da03af06aa83, 0x3fd25715f6e5b941) }, // -357
+ { cat(0x885033d72a796c6f, 0x2d6b618ee523f8c9), cat(0xc2dfe19c8c055535, 0xcca845ab2beafa9a) }, // -356
+ { cat(0xa0402978eec789f2, 0x8abc4e0bea832d6d), cat(0x9be64e16d66aaa91, 0x70869e228988c87b) }, // -355
+ { cat(0x66cd0f27e4727650, 0xddfa1679773848af), cat(0xf9707cf1571110e8, 0xb40a969da8dada5f) }, // -354
+ { cat(0x8570d8ecb6c1f840, 0xb194dec792936d59), cat(0xc78d30c112740d86, 0xf66edee487157b7f) }, // -353
+ { cat(0x9df3e0bd5f019366, 0xf477189fa875f114), cat(0x9fa42700db900ad2, 0x5ebf18b6d27795ff) }, // -352
+ { cat(0x631fcdfbcb35b8a4, 0xba582765da564e86), cat(0xff6d0b3492801150, 0x9798278aea58efff) }, // -351
+ { cat(0x827fd7fca2916083, 0xc84685eb1511d86b), cat(0xcc573c2a0eccdaa6, 0xdfacec6f21e0bfff) }, // -350
+ { cat(0x68664663b5411a03, 0x069ed188dda7e056), cat(0xa378fcee723d7bb8, 0xb2f0bd25b4b3cccc) }, // -349
+ { cat(0x2051d1e95dcdae68, 0xd218a7a0b15319de), cat(0x82c730bec1cac960, 0x8f26fdb7c3c30a3d) }, // -348
+ { cat(0x66e94fdbc949170e, 0x1cf43f67821e8fca), cat(0xd13eb46469447567, 0x4b7195f2d2d1a9fb) }, // -347
+ { cat(0xebedd97ca10745a4, 0xe3f6991f9b4ba63b), cat(0xa7655d1d2103911f, 0x6f8e118f0f0e2195) }, // -346
+ { cat(0x898b1463b405d150, 0xb65ee0e615d61e96), cat(0x85eab0e41a6940e5, 0xf2d80e0c0c0b4e11) }, // -345
+ { cat(0x0f44ed6c533c821a, 0xbd649b09bc89ca89), cat(0xd6444e39c3db9b09, 0x848ce34679abb01c) }, // -344
+ { cat(0x0c372456a8fd34e2, 0x311d48d496d4a207), cat(0xab69d82e364948d4, 0x6a0a4f6b948959b0) }, // -343
+ { cat(0xd69283788730f71b, 0x5a7dd3dd4576e806), cat(0x892179be91d43a43, 0x88083f8943a1148c) }, // -342
+ { cat(0x5750d25a71e7f1c5, 0x5d961fc86f24a670), cat(0xdb68c2ca82ed2a05, 0xa67398db9f6820e1) }, // -341
+ { cat(0x45da41e1f4b98e37, 0x7e11b306bf508526), cat(0xaf87023b9bf0ee6a, 0xeb8fad7c7f8680b4) }, // -340
+ { cat(0x6b150181909471c5, 0xfe748f38990d3752), cat(0x8c6c01c9498d8b88, 0xbc72f130660533c3) }, // -339
+ { cat(0x78219c0280ed82d6, 0x63edb1f428152550), cat(0xe0accfa875af45a7, 0x93eb1b80a33b8605) }, // -338
+ { cat(0xf9b47ccecd8acf11, 0xe98af4c353441dd9), cat(0xb3bd72ed2af29e1f, 0xa988e2cd4f62d19d) }, // -337
+ { cat(0x949063d8a46f0c0e, 0x546f2a35dc367e48), cat(0x8fcac257558ee4e6, 0x213a4f0aa5e8a7b1) }, // -336
+ { cat(0x20e706276d7e79b0, 0x8718438960573072), cat(0xe61136f2227e3b09, 0xcec3b1aaa30dd91c) }, // -335
+ { cat(0x1a526b52bdfec7c0, 0x6c13693ab378f38f), cat(0xb80dc58e81fe95a1, 0x723627bbb5a4adb0) }, // -334
+ { cat(0xaea855dbcb323966, 0xbcdc542ef5fa5c72), cat(0x933e37a534cbaae7, 0x8e91b962f7b6f159) }, // -333
+ { cat(0x7dda22f9451d28a4, 0x616086b1899093ea), cat(0xeb96bf6ebadf77d8, 0xe41c5bd18c57e88f) }, // -332
+ { cat(0xcb14e8c76a7dba1d, 0x1ab39ef46e0d4322), cat(0xbc789925624c5fe0, 0xb67d16413d132072) }, // -331
+ { cat(0x6f43ed6c553161b0, 0xe2294bf6be710281), cat(0x96c6e0eab509e64d, 0x5eca783430dc19f5) }, // -330
+ { cat(0x186caf13bb8235e7, 0xd042132463e80402), cat(0xf13e34aabb430a15, 0x647726b9e7c68fef) }, // -329
+ { cat(0x79f08c0fc934f7ec, 0xa69b428383200335), cat(0xc0fe908895cf3b44, 0x505f522e53053ff2) }, // -328
+ { cat(0x618d3cd96dc3f98a, 0x1ee29b9c68e668f7), cat(0x9a65406d44a5c903, 0x737f74f1dc043328) }, // -327
+ { cat(0x027b948f16065c10, 0x316a9293db0a418b), cat(0xf70867153aa2db38, 0xb8cbee4fc66d1ea7) }, // -326
+ { cat(0x9b96107278051673, 0x5abba87648d5013c), cat(0xc5a05277621be293, 0xc7098b7305241885) }, // -325
+ { cat(0x4944d9f52cd0dec2, 0xaefc86c50710cdca), cat(0x9e19db92b4e31ba9, 0x6c07a2c26a8346d1) }, // -324
+ { cat(0x4207c321e14e3137, 0x7e60d7a1a4e7afa9), cat(0xfcf62c1dee382c42, 0x46729e03dd9ed7b5) }, // -323
+ { cat(0x34d30281810b5a92, 0xcb80ac8150b95954), cat(0xca5e89b18b602368, 0x385bb19cb14bdfc4) }, // -322
+ { cat(0x2a4268679a6f7ba8, 0xa2cd56cdda2de110), cat(0xa1e53af46f801c53, 0x60495ae3c1097fd0) }, // -321
+ { cat(0x21ceb9ec7b8c62ed, 0x4f0aabd7e1be4da7), cat(0x81842f29f2cce375, 0xe6a1158300d46640) }, // -320
+ { cat(0x36178fe0c5ad6b15, 0x4b44462635fd490a), cat(0xcf39e50feae16bef, 0xd768226b34870a00) }, // -319
+ { cat(0x2b460cb3d15788dd, 0xd5d0381e91976da2), cat(0xa5c7ea73224deff3, 0x12b9b522906c0800) }, // -318
+ { cat(0x55d1a3c30ddfa0b1, 0x77d9c67edadf8ae8), cat(0x849feec281d7f328, 0xdbc7c41ba6bcd333) }, // -317
+ { cat(0xbc829f9e7c99011b, 0xf2f60a649165ab0d), cat(0xd433179d9c8cb841, 0x5fa60692a46151eb) }, // -316
+ { cat(0xfd354c7eca1400e3, 0x28c4d51d411e2271), cat(0xa9c2794ae3a3c69a, 0xb2eb3875504ddb22) }, // -315
+ { cat(0x975dd6cbd4dccd82, 0x8703ddb100e4e85a), cat(0x87cec76f1c830548, 0x8f2293910d0b15b5) }, // -314
+ { cat(0x2562f146216148d0, 0xd8062f819b07da2a), cat(0xd94ad8b1c7380874, 0x18375281ae7822bc) }, // -313
+ { cat(0x511bf4381ab43a40, 0xacd1bf9ae26cae88), cat(0xadd57a27d29339f6, 0x79c5db9af1f9b563) }, // -312
+ { cat(0xa749902ce229c833, 0xbd749948b523bed3), cat(0x8b112e86420f6191, 0xfb04afaf27faf782) }, // -311
+ { cat(0x0ba8e6ae36a94052, 0xc8ba8edabb6c6485), cat(0xde81e40a034bcf4f, 0xf8077f7ea65e58d1) }, // -310
+ { cat(0x6fba5224f88766a8, 0xa0953f1562bd1d37), cat(0xb201833b35d63f73, 0x2cd2cc6551e513da) }, // -309
+ { cat(0x5961db50c6d2b886, 0xe6ddcc111bca7dc6), cat(0x8e679c2f5e44ff8f, 0x570f09eaa7ea7648) }, // -308
+ { cat(0xf5695ee7a4845a71, 0x7162e01b5faa62d6), cat(0xe3d8f9e563a198e5, 0x58180fddd97723a6) }, // -307
+ { cat(0x5dede5861d36aec1, 0x27824ce2b2eeb578), cat(0xb6472e511c81471d, 0xe0133fe4adf8e952) }, // -306
+ { cat(0xe4be5138175ef234, 0x1f9b70b55bf22ac6), cat(0x91d28b7416cdd27e, 0x4cdc331d57fa5441) }, // -305
+ { cat(0x6dfd4ec02564b6b9, 0xcc2be788931d113d), cat(0xe950df20247c83fd, 0x47c6b82ef32a2069) }, // -304
+ { cat(0xbe643f001dea2bc7, 0xd6898606dc1740fe), cat(0xbaa718e68396cffd, 0xd30560258f54e6ba) }, // -303
+ { cat(0x985032667e54efd3, 0x12079e6be345cd98), cat(0x95527a5202df0ccb, 0x0f37801e0c43ebc8) }, // -302
+ { cat(0x26e6b70a63bb1951, 0xb6729713053c7c26), cat(0xeeea5d5004981478, 0x1858ccfce06cac74) }, // -301
+ { cat(0x52522c084fc8e10e, 0x2b8edf426a96c9b8), cat(0xbf21e44003acdd2c, 0xe0470a63e6bd56c3) }, // -300
+ { cat(0x41db566d0ca0b40b, 0x560be5cebbabd493), cat(0x98e7e9cccfbd7dbd, 0x8038d51cb897789c) }, // -299
+ { cat(0x02f88a4814345345, 0x56796fb12c4620ec), cat(0xf4a642e14c6262c8, 0xcd27bb612758c0fa) }, // -298
+ { cat(0x02606ea01029dc37, 0x78612627569e80bd), cat(0xc3b8358109e84f07, 0x0a862f80ec4700c8) }, // -297
+ { cat(0x3519f219a687e35f, 0x9380eb52abb20097), cat(0x9c935e00d4b9d8d2, 0x6ed1bf9a569f33d3) }, // -296
+ { cat(0xee8fe9c2a40c9eff, 0x5267deeaac5000f1), cat(0xfa856334878fc150, 0xb14f98f6f0feb951) }, // -295
+ { cat(0xf20cbb021cd6e599, 0x0eb97f22237333f4), cat(0xc86ab5c39fa63440, 0x8dd9472bf3fefaa7) }, // -294
+ { cat(0xf4d6fc01b0abeae0, 0xd89465b4e928f65d), cat(0xa0555e361951c366, 0xd7e105bcc332621f) }, // -293
+ { cat(0x2a459667c08988b3, 0xe076b7c3edba5eb1), cat(0x80444b5e7aa7cf85, 0x7980d163cf5b81b3) }, // -292
+ { cat(0x76d5bd72cda8dab9, 0x672459397c5d644e), cat(0xcd3a1230c43fb26f, 0x28ce1bd2e55f35eb) }, // -291
+ { cat(0xf8aafdf57153e22d, 0xec1d142dfd178372), cat(0xa42e74f3d032f525, 0xba3e7ca8b77f5e55) }, // -290
+ { cat(0x2d5597f78ddcb4f1, 0x89b0dcf1974602c2), cat(0x83585d8fd9c25db7, 0xc831fd53c5ff7eab) }, // -289
+ { cat(0xe2228cbf49612182, 0x75e7c7e8f2099e02), cat(0xd226fc195c6a2f8c, 0x73832eec6fff3111) }, // -288
+ { cat(0xb4e870990780e79b, 0x918639872807b19b), cat(0xa81f301449ee8c70, 0x5c68f256bfff5a74) }, // -287
+ { cat(0x5d86c07a6c671faf, 0xa79e946c200627b0), cat(0x867f59a9d4bed6c0, 0x49ed8eabcccc485d) }, // -286
+ { cat(0x627133f713d832b2, 0xa5ca871366703f7f), cat(0xd732290fbacaf133, 0xa97c177947ad4095) }, // -285
+ { cat(0x4ec0f65f43135bc2, 0x1e3b9f42b859cc66), cat(0xac2820d9623bf429, 0x546345fa9fbdcd44) }, // -284
+ { cat(0x0bcd91e5cf42afce, 0x7e9619022d14a385), cat(0x89b9b3e11b6329ba, 0xa9e904c87fcb0a9d) }, // -283
+ { cat(0x4615b63c7ed1194a, 0x64235b36ae876c07), cat(0xdc5c5301c56b75f7, 0x7641a140cc7810fb) }, // -282
+ { cat(0x9e77c4fd3240e108, 0x501c48f88b9f899f), cat(0xb049dc016abc5e5f, 0x91ce1a9a3d2cda62) }, // -281
+ { cat(0x7ec63730f500b406, 0xa67d072d3c7fa14c), cat(0x8d07e33455637eb2, 0xdb0b487b6423e1e8) }, // -280
+ { cat(0xfe09f1e7ee678671, 0x0a61a5152d990214), cat(0xe1a63853bbd26451, 0x5e7873f8a0396973) }, // -279
+ { cat(0x64d4c1865852d1f4, 0x084e1daa8ae0ce76), cat(0xb484f9dc9641e9da, 0xb1f9f660802dedf6) }, // -278
+ { cat(0x1d77013846a8a7f6, 0x6d0b4aeed580a52b), cat(0x906a617d450187e2, 0x27fb2b80668b24c5) }, // -277
+ { cat(0xfbf19b8d3ddaa657, 0x14dede4aef343b78), cat(0xe7109bfba19c0c9d, 0x0cc512670a783ad4) }, // -276
+ { cat(0xfcc1493dcb1551df, 0x43e57ea258f695fa), cat(0xb8da1662e7b00a17, 0x3d6a751f3b936243) }, // -275
+ { cat(0x309aa0fe3c110e4c, 0x3651321b7a5ede62), cat(0x93e1ab8252f33b45, 0xcabb90e5c942b503) }, // -274
+ { cat(0xb42a9b30601b4a13, 0x8a1b835f2a3163cf), cat(0xec9c459d51852ba2, 0xddf8e7d60ed1219e) }, // -273
+ { cat(0x902215c04ce2a1a9, 0x3b4935e5bb5ab640), cat(0xbd49d14aa79dbc82, 0x4b2d8644d8a74e18) }, // -272
+ { cat(0xa681ab003d821aed, 0xc9075e5162aef833), cat(0x976e41088617ca01, 0xd5be0503e085d813) }, // -271
+ { cat(0x3d9c44cd2f36917c, 0x74d896e89de4c051), cat(0xf24a01a73cf2dccf, 0xbc633b39673c8cec) }, // -270
+ { cat(0x3149d0a425c54130, 0x5d7a1253b183cd0e), cat(0xc1d4ce1f63f57d72, 0xfd1c2f611f63a3f0) }, // -269
+ { cat(0x8dd4a6e9b7d100f3, 0x7dfb41dc8e030a72), cat(0x9b10a4e5e9913128, 0xca7cf2b4191c8326) }, // -268
+ { cat(0x7c877175f2e80185, 0x965ecfc7499e771c), cat(0xf81aa16fdc1b81da, 0xdd94b7868e94050a) }, // -267
+ { cat(0x306c5ac4c253346a, 0xdeb23fd2a14b927d), cat(0xc67bb4597ce2ce48, 0xb143c6053edcd0d5) }, // -266
+ { cat(0x8d237bd09b75c388, 0xb228330ee76fa864), cat(0x9ec95d1463e8a506, 0xf4363804324a40aa) }, // -265
+ { cat(0xe1d25fb42bef9f41, 0x1d0d1e7e3f190d6c), cat(0xfe0efb53d30dd4d7, 0xed238cd383aa0110) }, // -264
+ { cat(0xe7db7fc356594c34, 0x173db1fe98e0d78a), cat(0xcb3f2f7642717713, 0x241c70a936219a73) }, // -263
+ { cat(0xecaf996911e109c3, 0x45caf4cbad80ac6f), cat(0xa298f2c501f45f42, 0x8349f3ba91b47b8f) }, // -262
+ { cat(0x23bfadeda7e73b02, 0x9e3bf709579a238c), cat(0x8213f56a67f6b29b, 0x9c3b29620e29fc73) }, // -261
+ { cat(0x05ff7caf730b919d, 0xc9f98b4225c36c12), cat(0xd01fef10a657842c, 0x2d2b7569b0432d85) }, // -260
+ { cat(0x37ff96f2c26fa7b1, 0x6e613c34eb02bcdc), cat(0xa67ff273b8460356, 0x8a892abaf368f137) }, // -259
+ { cat(0x5fffabf5685952f4, 0x584dc9c3ef3563e3), cat(0x8533285c936b35de, 0xd53a88958f87275f) }, // -258
+ { cat(0x6665dfef0d5bb7ed, 0x5a160f9fe522396b), cat(0xd51ea6fa85785631, 0x552a74227f3ea565) }, // -257
+ { cat(0x851e4cbf3de2f98a, 0xae780c7fea81c789), cat(0xaa7eebfb9df9de8d, 0xddbb901b98feeab7) }, // -256
+ { cat(0xd0e50a3297e8c7a2, 0x252cd6ccbb9b0607), cat(0x8865899617fb1871, 0x7e2fa67c7a658892) }, // -255
+ { cat(0x1b081050f30e0c36, 0xa1e157adf8f809a5), cat(0xda3c0f568cc4f3e8, 0xc9e5d72d90a2741e) }, // -254
+ { cat(0xaf39a6a728d809c5, 0x4e4ddfbe60c66e1e), cat(0xae9672aba3d0c320, 0xa184ac2473b529b1) }, // -253
+ { cat(0x25c7b885ba466e37, 0x71d7e631e70524e5), cat(0x8bab8eefb6409c1a, 0x1ad089b6c2f7548e) }, // -252
+ { cat(0xa2d9273c5d3d7d25, 0x82f309e971a1d4a1), cat(0xdf78e4b2bd342cf6, 0x914da9246b255416) }, // -251
+ { cat(0x1be0ec304a979751, 0x358f3b2127b4aa1a), cat(0xb2c71d5bca9023f8, 0x743e20e9ef511012) }, // -250
+ { cat(0x7cb3f026a212df74, 0x2ad8fc1a862a21af), cat(0x8f05b1163ba6832d, 0x29cb4d87f2a7400e) }, // -249
+ { cat(0x611fe6a4368498b9, 0xde27f9c409dd02b1), cat(0xe4d5e82392a40515, 0x0fabaf3feaa5334a) }, // -248
+ { cat(0xe74cb8835ed07a2e, 0x4b532e366e4a688d), cat(0xb7118682dbb66a77, 0x3fbc8c33221dc2a1) }, // -247
+ { cat(0xb90a2d35e57394f1, 0xd5dc24f8583b86d8), cat(0x92746b9be2f8552c, 0x32fd3cf5b4e49bb4) }, // -246
+ { cat(0xf4dd152308b8ee4f, 0xbc936e5a26c5a48c), cat(0xea53df5fd18d5513, 0x84c86189216dc5ed) }, // -245
+ { cat(0x90b0ddb5a093f1d9, 0x63a92514ebd15070), cat(0xbb764c4ca7a4440f, 0x9d6d1ad41abe37f1) }, // -244
+ { cat(0x0d5a4af7b3a98e47, 0x82edb743efdaa6c0), cat(0x95f83d0a1fb69cd9, 0x4abdaf101564f98e) }, // -243
+ { cat(0x155d44bf85dc16d8, 0xd17c586cb2f77133), cat(0xeff394dcff8a948e, 0xddfc4b4cef07f5b0) }, // -242
+ { cat(0x444a9d6604b01247, 0x0dfd138a28c5f429), cat(0xbff610b0cc6edd3f, 0x17fd090a58d32af3) }, // -241
+ { cat(0x036ee4519d59a838, 0xd7fda93b53d19021), cat(0x9991a6f3d6bf1765, 0xacca6da1e0a8ef29) }, // -240
+ { cat(0x38b16d4f62290d27, 0xbffc41f8861c19ce), cat(0xf5b5d7ec8acb58a2, 0xae10af696774b1db) }, // -239
+ { cat(0x93c1243f81ba70ec, 0x99969b2d38167b0b), cat(0xc491798a08a2ad4e, 0xf1a6f2bab92a27e2) }, // -238
+ { cat(0xdc9a83660161f3f0, 0x7adee28a93452f3c), cat(0x9d412e0806e88aa5, 0x8e1f289560ee864e) }, // -237
+ { cat(0x60f738a33569864d, 0x91649daa853b7ec7), cat(0xfb9b7cd9a4a7443c, 0x169840ef017da3b1) }, // -236
+ { cat(0x80c5c6e8f7879ea4, 0x74507e22042f989f), cat(0xc94930ae1d529cfc, 0xdee033f26797b627) }, // -235
+ { cat(0x9a37d253f9394bb6, 0xc373981b368c7a19), cat(0xa1075a24e4421730, 0xb24cf65b8612f81f) }, // -234
+ { cat(0x482ca8432dc76fc5, 0x6929467c2ba394e1), cat(0x80d2ae83e9ce78f3, 0xc1d72b7c6b426019) }, // -233
+ { cat(0xd9e10d38493f193b, 0xdb753d937905bb01), cat(0xce1de40642e3f4b9, 0x36251260ab9d668e) }, // -232
+ { cat(0x14b40a936dcc142f, 0xe2c43142c737c8ce), cat(0xa4e4b66b68b65d60, 0xf81da84d5617853f) }, // -231
+ { cat(0x76f66edc57d6768c, 0xb569c10238f96d71), cat(0x83ea2b892091e44d, 0x934aed0aab460432) }, // -230
+ { cat(0xbe5717c6f2f0bdad, 0xef0f9b36c18f1582), cat(0xd31045a8341ca07c, 0x1ede48111209a050) }, // -229
+ { cat(0x6512796bf58d648b, 0x25a615c567a5aacf), cat(0xa8d9d1535ce3b396, 0x7f1839a741a14d0d) }, // -228
+ { cat(0x1da861232ad783a2, 0x8484de37861e223f), cat(0x8714a775e3e95c78, 0x65acfaec34810a71) }, // -227
+ { cat(0x95da35051158d29d, 0xa0d496bf3cfd0398), cat(0xd8210befd30efa5a, 0x3c47f7e05401aa4e) }, // -226
+ { cat(0xab14f7374113dbb1, 0x4d76deff63fd9c79), cat(0xace73cbfdc0bfb7b, 0x636cc64d1001550b) }, // -225
+ { cat(0xbc10c5c5cda97c8d, 0xd7924bff833149fb), cat(0x8a5296ffe33cc92f, 0x82bd6b70d99aaa6f) }, // -224
+ { cat(0x2ce7a2d615dbfa7c, 0x8c1d46659eb5432b), cat(0xdd50f1996b947518, 0xd12f124e28f77719) }, // -223
+ { cat(0x571fb578117cc863, 0xa34a9eb7b22a9c22), cat(0xb10d8e1456105dad, 0x7425a83e872c5f47) }, // -222
+ { cat(0xac195df9a79706b6, 0x1c3bb22c8e887ce8), cat(0x8da471a9de737e24, 0x5ceaecfed289e5d2) }, // -221
+ { cat(0xe028965c3f580abc, 0xf9f91d141740c7da), cat(0xe2a0b5dc971f303a, 0x2e44ae64840fd61d) }, // -220
+ { cat(0x19ba11e365e00897, 0x2e60e410129a397b), cat(0xb54d5e4a127f59c8, 0x2503beb6d00cab4b) }, // -219
+ { cat(0x7afb4182b7e66d45, 0xbeb3e9a675482dfc), cat(0x910ab1d4db9914a0, 0x1d9c9892400a22a2) }, // -218
+ { cat(0x2b2b9c045970aed5, 0xfdeca90a55404993), cat(0xe8111c87c5c1ba99, 0xc8fa8db6ccdd0437) }, // -217
+ { cat(0x88efb0037ac08bde, 0x64bd540844336e0f), cat(0xb9a74a0637ce2ee1, 0x6d953e2bd7173692) }, // -216
+ { cat(0x6d8c8ccf9566d64b, 0x83caa9a0368f8b40), cat(0x9485d4d1c63e8be7, 0x8addcb5645ac2ba8) }, // -215
+ { cat(0xe27a7ae5bbd7bd45, 0x9faaa900574c11ff), cat(0xeda2ee1c7064130c, 0x1162def06f79df73) }, // -214
+ { cat(0xb52ec8b7c9796437, 0xb2eeed99df700e66), cat(0xbe1bf1b059e9a8d6, 0x744f18c0592e4c5c) }, // -213
+ { cat(0x2a8bd3c63ac7835f, 0xc258be14b2c00b85), cat(0x98165af37b2153de, 0xc3727a337a8b704a) }, // -212
+ { cat(0x77461fa3913f3899, 0x36f46354513345a1), cat(0xf356f7ebf83552fe, 0x0583f6b8c4124d43) }, // -211
+ { cat(0xf904e61c743293ad, 0xc5904f76a75c37b4), cat(0xc2abf989935ddbfe, 0x6acff893d00ea435) }, // -210
+ { cat(0x9403eb49f68edc8b, 0x047372c552b02c90), cat(0x9bbcc7a142b17ccb, 0x88a66076400bb691) }, // -209
+ { cat(0x866caba98a7e2dab, 0x3a52513bb780474d), cat(0xf92e0c3537826145, 0xa7709a56ccdf8a82) }, // -208
+ { cat(0x6b8a22ee0864f155, 0xc841da962c669f71), cat(0xc75809c42c684dd1, 0x52c07b78a3e60868) }, // -207
+ { cat(0xbc6e825806b72777, 0xd367e211bd1ee5f4), cat(0x9f79a169bd203e41, 0x0f0062c6e984d386) }, // -206
+ { cat(0x2d7d9d59a4583f26, 0x1f0c9ce92e97d652), cat(0xff290242c83396ce, 0x7e67047175a15271) }, // -205
+ { cat(0x24647de1504698eb, 0x4c0a1720f21311dc), cat(0xcc20ce9bd35c78a5, 0x31ec038df7b441f4) }, // -204
+ { cat(0x1d1d31810d054722, 0xa33b45b3f4dc0e49), cat(0xa34d721642b06084, 0x27f002d7f95d0190) }, // -203
+ { cat(0x4a7dc1340a6a9f4e, 0xe8fc37c32a49a508), cat(0x82a45b450226b39c, 0xecc0024661173473) }, // -202
+ { cat(0x10c9352010aa987e, 0x41938c6b76dc3b3f), cat(0xd106f86e69d785c7, 0xe13336d701beba52) }, // -201
+ { cat(0x40a0f74cda221398, 0x347609ef9249c8ff), cat(0xa738c6bebb12d16c, 0xb428f8ac016561db) }, // -200
+ { cat(0x0080c5d714e80fac, 0xf6c4d4bfa83b0733), cat(0x85c7056562757456, 0xf6872d5667844e49) }, // -199
+ { cat(0xcd9ad624ee401914, 0xbe07bacc405e71eb), cat(0xd60b3bd56a5586f1, 0x8a71e223d8d3b074) }, // -198
+ { cat(0xd7af11b725001410, 0x98062f09cd185b22), cat(0xab3c2fddeeaad25a, 0xd527e81cad7626c3) }, // -197
+ { cat(0x12f274928400100d, 0x466b58d4a4137c1b), cat(0x88fcf317f22241e2, 0x441fece3bdf81f03) }, // -196
+ { cat(0x84b720ea6ccce67b, 0xa3def4876cebf9c5), cat(0xdb2e51bfe9d0696a, 0x06997b05fcc0319e) }, // -195
+ { cat(0x03c5b3eebd70b862, 0xe97f2a05f0bcc7d1), cat(0xaf58416654a6babb, 0x387ac8d1970027b2) }, // -194
+ { cat(0x696af658978d604f, 0x21328804c0970641), cat(0x8c469ab843b89562, 0x93956d7478ccec8e) }, // -193
+ { cat(0x0f118a2758e233b1, 0xceb740079a8b3d34), cat(0xe070f78d3927556a, 0x85bbe253f47b1417) }, // -192
+ { cat(0x0c0e081f7a4e8fc1, 0x722c3339486f642a), cat(0xb38d92d760ec4455, 0x37c981dcc395a9ac) }, // -191
+ { cat(0xd671a0192ea53fcd, 0xf4f028faa0591cef), cat(0x8fa475791a569d10, 0xf96e017d694487bc) }, // -190
+ { cat(0xf0b5ccf5176ecc7c, 0xbb19db2a9a282e4a), cat(0xe5d3ef282a242e81, 0x8f1668c8a86da5fa) }, // -189
+ { cat(0x26f7d72a79257063, 0xc8e17c2214ecf1d5), cat(0xb7dcbf5354e9bece, 0x0c11ed6d538aeb2f) }, // -188
+ { cat(0x8593128860eac04f, 0xd3e79681aa5727de), cat(0x9316ff75dd87cbd8, 0x09a7f12442d588f2) }, // -187
+ { cat(0x6f51b7409b1133b2, 0xeca5bd9c43bea62f), cat(0xeb57ff22fc0c7959, 0xa90cb506d155a7ea) }, // -186
+ { cat(0xbf74929a15a75c8f, 0x23b7cae3696551c0), cat(0xbc4665b596706114, 0x873d5d9f0dde1fee) }, // -185
+ { cat(0x65f6dbae77b916d8, 0xe95fd582bab77499), cat(0x969eb7c47859e743, 0x9f644ae5a4b1b325) }, // -184
+ { cat(0x6ff15f7d8c5b57c1, 0x7566226ac458ba8f), cat(0xf0fdf2d3f3c30b9f, 0x656d44a2a11c51d5) }, // -183
+ { cat(0xf3277f97a37c4634, 0x5deb4ebbd046fba5), cat(0xc0cb28a98fcf3c7f, 0x84576a1bb416a7dd) }, // -182
+ { cat(0x28ec6612e9303829, 0xe4bc3efca69f2fb8), cat(0x9a3c2087a63f6399, 0x36ac54e2f678864b) }, // -181
+ { cat(0x0e4709b7db8059dc, 0xa12d31943dcb7f8c), cat(0xf6c69a72a3989f5b, 0x8aad549e57273d45) }, // -180
+ { cat(0xd838d493160047e3, 0xb42427a9cb0932d6), cat(0xc56baec21c7a1916, 0x088aaa1845b8fdd0) }, // -179
+ { cat(0x1360aa0f44cd064f, 0xc3501fbb08d428ac), cat(0x9defbf01b061adab, 0x3a0888136afa64a7) }, // -178
+ { cat(0x8567767ed47b3d4c, 0x6bb365f80e204112), cat(0xfcb2cb35e702af78, 0x5cda735244c3d43e) }, // -177
+ { cat(0xd11f91ff10629770, 0x56291e600b4d00dc), cat(0xca28a291859bbf93, 0x7d7b8f7503cfdcfe) }, // -176
+ { cat(0x40e60e65a6b545f3, 0x7820e519a2a400b0), cat(0xa1ba1ba79e1632dc, 0x6462d92a69731732) }, // -175
+ { cat(0x00b80b84855dd18f, 0x934d8414821ccd59), cat(0x8161afb94b44f57d, 0x1d1be0eebac278f5) }, // -174
+ { cat(0x3459ac073bc94f4c, 0x1ee26ced9cfae228), cat(0xcf02b2c21207ef2e, 0x94f967e45e03f4bb) }, // -173
+ { cat(0xc37af005c96dd909, 0xb24ebd8ae3fbe820), cat(0xa59bc234db398c25, 0x43fab9837e699095) }, // -172
+ { cat(0x692f266b078b1407, 0xc1d897a24ffcb9b4), cat(0x847c9b5d7c2e09b7, 0x69956135febada11) }, // -171
+ { cat(0xa84b70ab3f44ecd9, 0x36275903b32df5ec), cat(0xd3fa922f2d1675f2, 0x42889b8997915ce8) }, // -170
+ { cat(0xb9d5f3bc329d8a47, 0x5e85e0cfc28b2b23), cat(0xa99541bf57452b28, 0x353a1607ac744a53) }, // -169
+ { cat(0xfb118fc9c217a1d2, 0xb204b3d9686f55b6), cat(0x87aa9aff79042286, 0x90fb44d2f05d0842) }, // -168
+ { cat(0xc4e8e60f9cf29c84, 0x50078628a7188923), cat(0xd910f7ff28069da4, 0x1b2ba1518094da04) }, // -167
+ { cat(0x3720b80c7d8ee39d, 0x0cd2d1ba1f46d41c), cat(0xada72ccc20054ae9, 0xaf561aa79a10ae6a) }, // -166
+ { cat(0xf8e6f9a397a582e4, 0x0a424161b29f1016), cat(0x8aec23d680043bee, 0x25de7bb9480d5854) }, // -165
+ { cat(0x27d7f5d28c3c04a0, 0x106a0235ea9819bd), cat(0xde469fbd99a05fe3, 0x6fca5f8ed9aef3bb) }, // -164
+ { cat(0xecacc4a8703003b3, 0x4054ce918879ae31), cat(0xb1d219647ae6b31c, 0x596eb2d8ae258fc8) }, // -163
+ { cat(0x23bd6a2059c002f5, 0xcd10a54139faf1c1), cat(0x8e41ade9fbebc27d, 0x14588f13be847307) }, // -162
+ { cat(0x6c624366f60004bc, 0x7b4dd535299182ce), cat(0xe39c49765fdf9d94, 0xed5a7e85fda0b80b) }, // -161
+ { cat(0x2381cf8591999d63, 0x95d7ddc421413572), cat(0xb616a12b7fe617aa, 0x577b986b314d6009) }, // -160
+ { cat(0x82ce3f9e0e147de9, 0x44acb169b4342ac1), cat(0x91abb422ccb812ee, 0xac62e055c10ab33a) }, // -159
+ { cat(0x9e16cc3016872fdb, 0xa1144f0f86b9de02), cat(0xe912b9d1478ceb17, 0x7a37cd5601aab85d) }, // -158
+ { cat(0x7e78a359ab9f597c, 0x80dd0c0c6bc7e4cf), cat(0xba756174393d88df, 0x94f971119aeef9e4) }, // -157
+ { cat(0x986082ae22e5e130, 0x67173cd6bc9fea3f), cat(0x952ab45cfa97a0b2, 0xdd945a747bf26183) }, // -156
+ { cat(0xf3cd9de36b09684d, 0x71bec7bdfa9976cb), cat(0xeeaaba2e5dbf6784, 0x95ba2a53f983cf38) }, // -155
+ { cat(0x5ca47e4f88d45371, 0x27cbd2fe62145f09), cat(0xbeeefb584aff8603, 0xaafb550ffacfd8fa) }, // -154
+ { cat(0xe3b6cb72d3dd0f8d, 0xb96fdbfeb4dd18d4), cat(0x98bf2f79d5993802, 0xef2f773ffbd97a61) }, // -153
+ { cat(0x6c57abeaec94e5af, 0x8f195ffdee2e8e20), cat(0xf46518c2ef5b8cd1, 0x7eb258665fc25d69) }, // -152
+ { cat(0xbd12efef23aa5159, 0x3f477ffe58253e80), cat(0xc38413cf25e2d70d, 0xfef5138519684aba) }, // -151
+ { cat(0xca758cbf4fbb7447, 0x65d2cccb79b76533), cat(0x9c69a97284b578d7, 0xff2a760414536efb) }, // -150
+ { cat(0x43ef47987f9253a5, 0x6fb7ae125c58a1eb), cat(0xfa42a8b73abbf48c, 0xcb772339ba1f17f9) }, // -149
+ { cat(0x698c3946cc750fb7, 0x8c92f1a849e08189), cat(0xc83553c5c8965d3d, 0x6f92829494e5acc7) }, // -148
+ { cat(0x54702dd23d2a72f9, 0x3d425aed07e6ce07), cat(0xa02aa96b06deb0fd, 0xf2db9baa10b7bd6c) }, // -147
+ { cat(0xdd268b0e975528c7, 0x6435158a6cb8a4d3), cat(0x802221226be55a64, 0xc2494954da2c9789) }, // -146
+ { cat(0xc83dab4a8bbb7472, 0x39ee88dd7ac107b7), cat(0xcd036837130890a1, 0x36dba887c37a8c0f) }, // -145
+ { cat(0x39caef6ed62f905b, 0x618ba0b12f00d2f9), cat(0xa402b9c5a8d3a6e7, 0x5f16206c9c6209a6) }, // -144
+ { cat(0x2e3bf2bf11bfa6af, 0x813c808dbf33dbfb), cat(0x8335616aed761f1f, 0x7f44e6bd49e807b8) }, // -143
+ { cat(0xb05feacb4f990ab2, 0x6860cdaf9852f991), cat(0xd1ef0244af2364ff, 0x3207d795430cd926) }, // -142
+ { cat(0xf37fef090c7a6ef5, 0x204d715946a8c7a7), cat(0xa7f26836f282b732, 0x8e6cac7768d7141e) }, // -141
+ { cat(0x5c6658d409fb8bf7, 0x4d0ac1143887061f), cat(0x865b86925b9bc5c2, 0x0b8a2392ba45a9b2) }, // -140
+ { cat(0xfa3d5aecdcc5acbe, 0xe1aace86c0d809cb), cat(0xd6f8d7509292d603, 0x45a9d2845d3c42b6) }, // -139
+ { cat(0x61caaf23e3d156ff, 0x1aef0b9f00acd4a3), cat(0xabfa45da0edbde69, 0x0487db9d17636892) }, // -138
+ { cat(0x4e3bbf4fe9744598, 0xe258d618cd571082), cat(0x899504ae72497eba, 0x6a06494a791c53a8) }, // -137
+ { cat(0xb05f987fdbed3c27, 0xd08e235ae224e737), cat(0xdc21a1171d42645d, 0x76707543f4fa1f73) }, // -136
+ { cat(0xc04c79ffe324301f, 0xda0b4f7be81d85c5), cat(0xb01ae745b101e9e4, 0x5ec05dcff72e7f8f) }, // -135
+ { cat(0x99d6c7ffe8e9c019, 0x7b3c3f96534ad16b), cat(0x8ce2529e2734bb1d, 0x1899e4a65f58660c) }, // -134
+ { cat(0x8fbe0ccca7dc668f, 0x2b9398f085448244), cat(0xe16a1dc9d8545e94, 0xf4296dd6fef3d67a) }, // -133
+ { cat(0xa631a3d6ecb0520c, 0x22dc7a5a0436ce9d), cat(0xb454e4a179dd1877, 0x29babe4598c311fb) }, // -132
+ { cat(0xb827b6458a26a809, 0xb57d2eae69c57217), cat(0x9043ea1ac7e41392, 0x87c89837ad68db2f) }, // -131
+ { cat(0xf372bd3c103dd9a9, 0x2261e44a42d58358), cat(0xe6d3102ad96cec1d, 0xa60dc059157491e5) }, // -130
+ { cat(0xc2c230fcd9cb1487, 0x4eb4b6a1cf1135e0), cat(0xb8a8d9bbe123f017, 0xb80b0047445d4184) }, // -129
+ { cat(0x0234f3fd7b08dd39, 0x0bc3c54e3f40f7e7), cat(0x93ba47c980e98cdf, 0xc66f336c36b10137) }, // -128
+ { cat(0x69ee532f2b4161f4, 0xdf9fa216cb9b263e), cat(0xec5d3fa8ce427aff, 0xa3e51f138ab4cebe) }, // -127
+ { cat(0x54bea8f289011b2a, 0x4c7fb4df0948eb65), cat(0xbd176620a501fbff, 0xb650e5a93bc3d898) }, // -126
+ { cat(0x43cbba5ba0cdaf55, 0x09ffc3e5a10722b7), cat(0x9745eb4d50ce6332, 0xf840b7ba963646e0) }, // -125
+ { cat(0x0612c3c5ce15e554, 0xdccc6ca29b3e9df1), cat(0xf209787bb47d6b84, 0xc0678c5dbd23a49a) }, // -124
+ { cat(0x6b423637d8118443, 0xe3d6bd4ee2987e5b), cat(0xc1a12d2fc3978937, 0x0052d6b1641c83ae) }, // -123
+ { cat(0x55ce91c6467469cf, 0xe97897724ee06516), cat(0x9ae757596946075f, 0x3375788de9b06958) }, // -122
+ { cat(0xefb0e93d3d870fb3, 0x0f2758b6e49a3b55), cat(0xf7d88bc24209a565, 0x1f225a7ca91a4226) }, // -121
+ { cat(0xbfc0ba97646c0c8f, 0x3f52ad5f1d482f78), cat(0xc646d63501a1511d, 0xb281e1fd541501b8) }, // -120
+ { cat(0x33009545e9f00a0c, 0x32a88ab27dd3592d), cat(0x9e9f11c4014dda7e, 0x2867e7fddcdd9afa) }, // -119
+ { cat(0xb800eed64319a9ad, 0x1dda7783fc855b7a), cat(0xfdcb4fa002162a63, 0x73d9732fc7c8f7f6) }, // -118
+ { cat(0x6000bf11cf47baf0, 0xe4aec603306aaf95), cat(0xcb090c8001ab551c, 0x5cadf5bfd3072cc5) }, // -117
+ { cat(0xe666ff41729fc8c0, 0xb6f238028d222611), cat(0xa26da3999aef7749, 0xe3be5e330f38f09d) }, // -116
+ { cat(0x51ebff678ee63a33, 0xc58e93353db4eb41), cat(0x81f14fae158c5f6e, 0x4fcb7e8f3f60c07e) }, // -115
+ { cat(0xb64665727e3d29ec, 0x6f4a8521fc54ab9b), cat(0xcfe87f7cef46ff16, 0xe612641865679a63) }, // -114
+ { cat(0x91d1eac1fe9754bd, 0x25d5374e6376efaf), cat(0xa6539930bf6bff45, 0x84db8346b786151c) }, // -113
+ { cat(0x74a7ef0198791097, 0x51775f71e92bf2f3), cat(0x850fadc09923329e, 0x03e2cf6bc604ddb0) }, // -112
+ { cat(0x543fe4cf5a5b4dbe, 0xe8beff1ca8465184), cat(0xd4e5e2cdc1d1ea96, 0x6c9e18ac7007c91a) }, // -111
+ { cat(0x10331d72aeaf7165, 0x86ff327d536b746a), cat(0xaa51823e34a7eede, 0xbd4b46f0599fd415) }, // -110
+ { cat(0xa68f4ac225592784, 0x6bff5b9775ef9055), cat(0x884134fe908658b2, 0x3109058d147fdcdd) }, // -109
+ { cat(0xd74baad03bc1d8d3, 0xdffef8f2564c1a21), cat(0xda01ee641a708de9, 0xe80e6f4820cc9495) }, // -108
+ { cat(0x7909557363017a43, 0x1998c7284509ae81), cat(0xae67f1e9aec07187, 0xecd8590680a3aa11) }, // -107
+ { cat(0x60d4445c4f3461cf, 0x47ad6c20373af201), cat(0x8b865b215899f46c, 0xbd79e0d20082ee74) }, // -106
+ { cat(0x67ba06fa1853cfb2, 0x0c48ad00585e5001), cat(0xdf3d5e9bc0f653e1, 0x2f2967b66737e3ed) }, // -105
+ { cat(0x862e6bfb46a972f4, 0xd6a08a66ad184001), cat(0xb2977ee300c50fe7, 0x58edec91ec2cb657) }, // -104
+ { cat(0x6b5856629eedf590, 0xabb3a1ebbdad0001), cat(0x8edf98b59a373fec, 0x4724bd4189bd5eac) }, // -103
+ { cat(0x1226f09dcb1655b4, 0x45ec3645fc480001), cat(0xe498f455c38b997a, 0x0b6dfb9c0f956447) }, // -102
+ { cat(0x0e858d4b08deaaf6, 0x9e5691d196a00001), cat(0xb6e0c377cfa2e12e, 0x6f8b2fb00c77836c) }, // -101
+ { cat(0x72047108d3e55592, 0x1845417478800001), cat(0x924d692ca61be758, 0x593c2626705f9c56) }, // -100
+ { cat(0x833a4e74863bbc1c, 0xf3a20253f4000001), cat(0xea1575143cf97226, 0xf52d09d71a3293bd) }, // -99
+ { cat(0x9c2ea52a04fc967d, 0x8fb4cea990000001), cat(0xbb445da9ca61281f, 0x2a8a6e45ae8edc97) }, // -98
+ { cat(0xe35884219d96deca, 0xd95d722140000001), cat(0x95d04aee3b80ece5, 0xbba1f1d158724a12) }, // -97
+ { cat(0x388da035c8f16477, 0xc22f1d0200000001), cat(0xefb3ab16c59b14a2, 0xc5cfe94ef3ea101e) }, // -96
+ { cat(0x93a4802b07278393, 0x01bf4a6800000001), cat(0xbfc2ef456ae276e8, 0x9e3fedd8c321a67e) }, // -95
+ { cat(0xa9506688d28602dc, 0x0165d52000000001), cat(0x9968bf6abbe85f20, 0x7e998b13cf4e1ecb) }, // -94
+ { cat(0x0ee70a7484099e2c, 0xcf09550000000001), cat(0xf5746577930d6500, 0xca8f44ec7ee36479) }, // -93
+ { cat(0x0bec085d366e1823, 0xd8d4440000000001), cat(0xc45d1df942711d9a, 0x3ba5d0bd324f8394) }, // -92
+ { cat(0x6ff006b0f858134f, 0xe0a9d00000000001), cat(0x9d174b2dcec0e47b, 0x62eb0d64283f9c76) }, // -91
+ { cat(0xe64cd7818d59b87f, 0xcddc800000000001), cat(0xfb5878494ace3a5f, 0x04ab48a04065c723) }, // -90
+ { cat(0x850a46013de16066, 0x3e4a000000000001), cat(0xc913936dd571c84c, 0x03bc3a19cd1e38e9) }, // -89
+ { cat(0x373b6b34318119eb, 0x6508000000000001), cat(0xa0dc75f1778e39d6, 0x696361ae3db1c721) }, // -88
+ { cat(0x2c2f88f68e00e189, 0x1da0000000000001), cat(0x80b05e5ac60b6178, 0x544f8158315b05b4) }, // -87
+ { cat(0xad18db241667cf41, 0xc900000000000001), cat(0xcde6fd5e09abcf26, 0xed4c0226b55e6f86) }, // -86
+ { cat(0x8a7a48e9ab863f67, 0xd400000000000001), cat(0xa4b8cab1a1563f52, 0x577001b891185938) }, // -85
+ { cat(0x0861d3ee22d1cc53, 0x1000000000000001), cat(0x83c7088e1aab65db, 0x792667c6da79e0fa) }, // -84
+ { cat(0x0d6953169e1c7a1e, 0x8000000000000001), cat(0xd2d80db02aabd62b, 0xf50a3fa490c30190) }, // -83
+ { cat(0xd78775abb1b061b2, 0x0000000000000001), cat(0xa8acd7c0222311bc, 0xc40832ea0d68ce0c) }, // -82
+ { cat(0xdf9f915627c04e28, 0x0000000000000001), cat(0x86f0ac99b4e8dafd, 0x69a028bb3ded71a3) }, // -81
+ { cat(0x3298e889d933b040, 0x0000000000000001), cat(0xd7e77a8f87daf7fb, 0xdc33745ec97be906) }, // -80
+ { cat(0xf547206e475c8d00, 0x0000000000000001), cat(0xacb92ed9397bf996, 0x49c2c37f07965404) }, // -79
+ { cat(0x2a9f4d2505e3a400, 0x0000000000000001), cat(0x8a2dbf142dfcc7ab, 0x6e3569326c784337) }, // -78
+ { cat(0xaa987b6e6fd2a000, 0x0000000000000001), cat(0xdd15fe86affad912, 0x49ef0eb713f39ebe) }, // -77
+ { cat(0xbbad2f8b8ca88000, 0x0000000000000001), cat(0xb0de65388cc8ada8, 0x3b25a55f43294bcb) }, // -76
+ { cat(0xfc8a8c6fa3ba0000, 0x0000000000000001), cat(0x8d7eb76070a08aec, 0xfc1e1de5cf543ca2) }, // -75
+ { cat(0x9410e0b29f900000, 0x0000000000000001), cat(0xe264589a4dcdab14, 0xc696963c7eed2dd1) }, // -74
+ { cat(0x4340b3c219400000, 0x0000000000000001), cat(0xb51d13aea4a488dd, 0x6babab6398bdbe41) }, // -73
+ { cat(0xcf66f634e1000000, 0x0000000000000001), cat(0x90e40fbeea1d3a4a, 0xbc8955e946fe31cd) }, // -72
+ { cat(0x18a4bd2168000000, 0x0000000000000001), cat(0xe7d34c64a9c85d44, 0x60dbbca87196b616) }, // -71
+ { cat(0xe083ca8120000000, 0x0000000000000001), cat(0xb975d6b6ee39e436, 0xb3e2fd538e122b44) }, // -70
+ { cat(0x4d363b9a80000000, 0x0000000000000001), cat(0x945e455f24fb1cf8, 0x8fe8caa93e74ef6a) }, // -69
+ { cat(0x4856c5c400000000, 0x0000000000000001), cat(0xed63a231d4c4fb27, 0x4ca7aaa863ee4bdd) }, // -68
+ { cat(0x6d1237d000000000, 0x0000000000000001), cat(0xbde94e8e43d0c8ec, 0x3d52eeed1cbea317) }, // -67
+ { cat(0x5741c64000000000, 0x0000000000000001), cat(0x97edd871cfda3a56, 0x97758bf0e3cbb5ac) }, // -66
+ { cat(0x25360a0000000000, 0x0000000000000001), cat(0xf316271c7fc3908a, 0x8bef464e3945ef7a) }, // -65
+ { cat(0x50f8080000000000, 0x0000000000000001), cat(0xc2781f49ffcfa6d5, 0x3cbf6b71c76b25fb) }, // -64
+ { cat(0x73f9a00000000000, 0x0000000000000001), cat(0x9b934c3b330c8577, 0x63cc55f49f88eb2f) }, // -63
+ { cat(0x5329000000000000, 0x0000000000000001), cat(0xf8ebad2b84e0d58b, 0xd2e0898765a7deb2) }, // -62
+ { cat(0x0f54000000000000, 0x0000000000000001), cat(0xc722f0ef9d80aad6, 0x424d3ad2b7b97ef5) }, // -61
+ { cat(0xd910000000000000, 0x0000000000000001), cat(0x9f4f2726179a2245, 0x01d762422c946590) }, // -60
+ { cat(0x8e80000000000000, 0x0000000000000001), cat(0xfee50b7025c36a08, 0x02f236d04753d5b4) }, // -59
+ { cat(0x7200000000000000, 0x0000000000000001), cat(0xcbea6f8ceb02bb39, 0x9bf4f8a69f764490) }, // -58
+ { cat(0x2800000000000000, 0x0000000000000001), cat(0xa321f2d7226895c7, 0xaff72d52192b6a0d) }, // -57
+ { cat(0x2000000000000000, 0x0000000000000001), cat(0x82818f1281ed449f, 0xbff8f10e7a8921a4) }, // -56
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xd0cf4b50cfe20765, 0xfff4b4e3f741cf6d) }, // -55
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xa70c3c40a64e6c51, 0x999090b65f67d924) }, // -54
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x85a36366eb71f041, 0x47a6da2b7f864750) }, // -53
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xd5d238a4abe98068, 0x72a4904598d6d880) }, // -52
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xab0e93b6efee0053, 0x8eea0d047a457a00) }, // -51
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x88d8762bf324cd0f, 0xa5880a69fb6ac800) }, // -50
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xdaf3f04651d47b4c, 0x3c0cdd765f114000) }, // -49
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xaf298d050e4395d6, 0x9670b12b7f410000) }, // -48
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x8c213d9da502de45, 0x4526f422cc340000) }, // -47
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xe0352f62a19e306e, 0xd50b2037ad200000) }, // -46
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xb35dbf821ae4f38b, 0xdda2802c8a800000) }, // -45
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x8f7e32ce7bea5c6f, 0xe4820023a2000000) }, // -44
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xe596b7b0c643c719, 0x6d9ccd05d0000000) }, // -43
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xb7abc627050305ad, 0xf14a3d9e40000000) }, // -42
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x92efd1b8d0cf37be, 0x5aa1cae500000000) }, // -41
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xeb194f8e1ae525fd, 0x5dcfab0800000000) }, // -40
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xbc143fa4e250eb31, 0x17d955a000000000) }, // -39
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x96769950b50d88f4, 0x1314448000000000) }, // -38
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xf0bdc21abb48db20, 0x1e86d40000000000) }, // -37
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xc097ce7bc90715b3, 0x4b9f100000000000) }, // -36
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9a130b963a6c115c, 0x3c7f400000000000) }, // -35
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xf684df56c3e01bc6, 0xc732000000000000) }, // -34
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xc5371912364ce305, 0x6c28000000000000) }, // -33
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9dc5ada82b70b59d, 0xf020000000000000) }, // -32
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xfc6f7c4045812296, 0x4d00000000000000) }, // -31
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xc9f2c9cd04674ede, 0xa400000000000000) }, // -30
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xa18f07d736b90be5, 0x5000000000000000) }, // -29
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x813f3978f8940984, 0x4000000000000000) }, // -28
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xcecb8f27f4200f3a, 0x0000000000000000) }, // -27
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xa56fa5b99019a5c8, 0x0000000000000000) }, // -26
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x84595161401484a0, 0x0000000000000000) }, // -25
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xd3c21bcecceda100, 0x0000000000000000) }, // -24
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xa968163f0a57b400, 0x0000000000000000) }, // -23
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x878678326eac9000, 0x0000000000000000) }, // -22
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xd8d726b7177a8000, 0x0000000000000000) }, // -21
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xad78ebc5ac620000, 0x0000000000000000) }, // -20
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x8ac7230489e80000, 0x0000000000000000) }, // -19
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xde0b6b3a76400000, 0x0000000000000000) }, // -18
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xb1a2bc2ec5000000, 0x0000000000000000) }, // -17
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x8e1bc9bf04000000, 0x0000000000000000) }, // -16
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xe35fa931a0000000, 0x0000000000000000) }, // -15
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xb5e620f480000000, 0x0000000000000000) }, // -14
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9184e72a00000000, 0x0000000000000000) }, // -13
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xe8d4a51000000000, 0x0000000000000000) }, // -12
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xba43b74000000000, 0x0000000000000000) }, // -11
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9502f90000000000, 0x0000000000000000) }, // -10
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xee6b280000000000, 0x0000000000000000) }, // -9
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xbebc200000000000, 0x0000000000000000) }, // -8
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9896800000000000, 0x0000000000000000) }, // -7
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xf424000000000000, 0x0000000000000000) }, // -6
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xc350000000000000, 0x0000000000000000) }, // -5
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x9c40000000000000, 0x0000000000000000) }, // -4
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xfa00000000000000, 0x0000000000000000) }, // -3
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xc800000000000000, 0x0000000000000000) }, // -2
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xa000000000000000, 0x0000000000000000) }, // -1
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0x8000000000000000, 0x0000000000000000) }, // 0
+ { cat(0xcccccccccccccccc, 0xcccccccccccccccd), cat(0xcccccccccccccccc, 0xcccccccccccccccc) }, // 1
+ { cat(0xd70a3d70a3d70a3d, 0x70a3d70a3d70a3d8), cat(0xa3d70a3d70a3d70a, 0x3d70a3d70a3d70a3) }, // 2
+ { cat(0x78d4fdf3b645a1ca, 0xc083126e978d4fe0), cat(0x83126e978d4fdf3b, 0x645a1cac083126e9) }, // 3
+ { cat(0xc154c985f06f6944, 0x67381d7dbf487fcc), cat(0xd1b71758e219652b, 0xd3c36113404ea4a8) }, // 4
+ { cat(0xcddd6e04c0592103, 0x85c67dfe32a0663d), cat(0xa7c5ac471b478423, 0x0fcf80dc33721d53) }, // 5
+ { cat(0xd7e45803cd141a69, 0x37d1fe64f54d1e97), cat(0x8637bd05af6c69b5, 0xa63f9a49c2c1b10f) }, // 6
+ { cat(0x8ca08cd2e1b9c3db, 0x8c8330a1887b6425), cat(0xd6bf94d5e57a42bc, 0x3d32907604691b4c) }, // 7
+ { cat(0x3d4d3d758161697c, 0x7068f3b46d2f8351), cat(0xabcc77118461cefc, 0xfdc20d2b36ba7c3d) }, // 8
+ { cat(0xfdd7645e011abac9, 0xf387295d242602a7), cat(0x89705f4136b4a597, 0x31680a88f8953030) }, // 9
+ { cat(0x2fbf06fcce912adc, 0xb8d8422ea03cd10b), cat(0xdbe6fecebdedd5be, 0xb573440e5a884d1b) }, // 10
+ { cat(0xf2ff38ca3eda88b0, 0x93e034f219ca40d6), cat(0xafebff0bcb24aafe, 0xf78f69a51539d748) }, // 11
+ { cat(0xf598fa3b657ba08d, 0x4319c3f4e16e9a45), cat(0x8cbccc096f5088cb, 0xf93f87b7442e45d3) }, // 12
+ { cat(0x88f4c3923bf900e2, 0x04f606549be42a07), cat(0xe12e13424bb40e13, 0x2865a5f206b06fb9) }, // 13
+ { cat(0x6d909c74fcc733e8, 0x03f805107cb68806), cat(0xb424dc35095cd80f, 0x538484c19ef38c94) }, // 14
+ { cat(0x57a6e390ca38f653, 0x3660040d3092066b), cat(0x901d7cf73ab0acd9, 0x0f9d37014bf60a10) }, // 15
+ { cat(0xbf716c1add27f085, 0x23ccd3484db670ab), cat(0xe69594bec44de15b, 0x4c2ebe687989a9b3) }, // 16
+ { cat(0xff8df0157db98d37, 0x4fd70f6d0af85a23), cat(0xb877aa3236a4b449, 0x09befeb9fad487c2) }, // 17
+ { cat(0x32d7f344649470f9, 0x0cac0c573bf9e1b6), cat(0x9392ee8e921d5d07, 0x3aff322e62439fcf) }, // 18
+ { cat(0x1e2652070753e7f4, 0xe11346f1f98fcf89), cat(0xec1e4a7db69561a5, 0x2b31e9e3d06c32e5) }, // 19
+ { cat(0x181ea8059f76532a, 0x4da9058e613fd93a), cat(0xbce5086492111aea, 0x88f4bb1ca6bcf584) }, // 20
+ { cat(0x467eecd14c5ea8ee, 0xa48737a51a997a95), cat(0x971da05074da7bee, 0xd3f6fc16ebca5e03) }, // 21
+ { cat(0x70cb148213caa7e4, 0x3a71f2a1c428c421), cat(0xf1c90080baf72cb1, 0x5324c68b12dd6338) }, // 22
+ { cat(0x8d6f439b43088650, 0x2ec18ee7d0209ce8), cat(0xc16d9a0095928a27, 0x75b7053c0f178293) }, // 23
+ { cat(0xd78c3615cf3a050c, 0xf23472530ce6e3ed), cat(0x9abe14cd44753b52, 0xc4926a9672793542) }, // 24
+ { cat(0x8c1389bc7ec33b47, 0xe9ed83b814a49fe1), cat(0xf79687aed3eec551, 0x3a83ddbd83f52204) }, // 25
+ { cat(0x3cdc6e306568fc39, 0x87f1362cdd507fe7), cat(0xc612062576589dda, 0x95364afe032a819d) }, // 26
+ { cat(0xca49f1c05120c9c7, 0x9ff42b5717739986), cat(0x9e74d1b791e07e48, 0x775ea264cf55347d) }, // 27
+ { cat(0x76dcb60081ce0fa5, 0xccb9def1bf1f5c09), cat(0xfd87b5f28300ca0d, 0x8bca9d6e188853fc) }, // 28
+ { cat(0x5f16f80067d80c84, 0xa3c7e58e327f7cd4), cat(0xcad2f7f5359a3b3e, 0x096ee45813a04330) }, // 29
+ { cat(0x18df2ccd1fe00a03, 0xb6398471c1ff9710), cat(0xa2425ff75e14fc31, 0xa1258379a94d028d) }, // 30
+ { cat(0x4718f0a419800802, 0xf82e038e34cc78da), cat(0x81ceb32c4b43fcf4, 0x80eacf948770ced7) }, // 31
+ { cat(0x0b5b1aa028ccd99e, 0x59e338e387ad8e29), cat(0xcfb11ead453994ba, 0x67de18eda5814af2) }, // 32
+ { cat(0x6f7c154ced70ae18, 0x47e8fa4f9fbe0b54), cat(0xa6274bbdd0fadd61, 0xecb1ad8aeacdd58e) }, // 33
+ { cat(0xbf967770bdf3be79, 0xd320c83fb2fe6f76), cat(0x84ec3c97da624ab4, 0xbd5af13bef0b113e) }, // 34
+ { cat(0x65bd8be79652ca5c, 0x85014065eb30b257), cat(0xd4ad2dbfc3d07787, 0x955e4ec64b44e864) }, // 35
+ { cat(0xeafe098611dbd516, 0xd0cdcd1e55c08eac), cat(0xaa242499697392d2, 0xdde50bd1d5d0b9e9) }, // 36
+ { cat(0xbbfe6e04db164412, 0x40a4a418449a0bbd), cat(0x881cea14545c7575, 0x7e50d64177da2e54) }, // 37
+ { cat(0x2cca49a15e8a0683, 0x9aa1068d3a9012c8), cat(0xd9c7dced53c72255, 0x96e7bd358c904a21) }, // 38
+ { cat(0x8a3b6e1ab2080536, 0x154d9ed7620cdbd3), cat(0xae397d8aa96c1b77, 0xabec975e0a0d081a) }, // 39
+ { cat(0x3b62be7bc1a0042b, 0x443e18ac4e70afdc), cat(0x8b61313bbabce2c6, 0x2323ac4b3b3da015) }, // 40
+ { cat(0x5f0463f935ccd378, 0x6d30277a171ab2f9), cat(0xdf01e85f912e37a3, 0x6b6c46dec52f6688) }, // 41
+ { cat(0x7f36b660f7d70f93, 0x8a8cec61ac155bfb), cat(0xb267ed1940f1c61c, 0x55f038b237591ed3) }, // 42
+ { cat(0xcc2bc51a5fdf3fa9, 0x3ba3f04e23444996), cat(0x8eb98a7a9a5b04e3, 0x77f3608e92adb242) }, // 43
+ { cat(0xe046082a32fecc41, 0xf9064d49d206dc22), cat(0xe45c10c42a2b3b05, 0x8cb89a7db77c506a) }, // 44
+ { cat(0x4d04d354f598a367, 0xfa6b7107db38b01b), cat(0xb6b00d69bb55c8d1, 0x3d607b97c5fd0d22) }, // 45
+ { cat(0x3d9d75dd9146e91f, 0xfb8927397c2d59b0), cat(0x9226712162ab070d, 0xcab3961304ca70e8) }, // 46
+ { cat(0xc8fbefc8e87174ff, 0xf8db71f5937bc2b2), cat(0xe9d71b689dde71af, 0xaab8f01e6e10b4a6) }, // 47
+ { cat(0x3a63263a538df733, 0x2d7c5b2adc630228), cat(0xbb127c53b17ec159, 0x5560c018580d5d52) }, // 48
+ { cat(0x2eb5b82ea93e5f5c, 0x24637c2249e8ce87), cat(0x95a8637627989aad, 0xdde7001379a44aa8) }, // 49
+ { cat(0x4abc59e441fd6560, 0x3a38c69d430e173e), cat(0xef73d256a5c0f77c, 0x963e66858f6d4440) }, // 50
+ { cat(0x6efd14b69b311de6, 0x94fa387dcf3e78fe), cat(0xbf8fdb78849a5f96, 0xde98520472bdd033) }, // 51
+ { cat(0x259743c548f417eb, 0xaa61c6cb0c31fa65), cat(0x993fe2c6d07b7fab, 0xe546a8038efe4029) }, // 52
+ { cat(0x3c25393ba7ecf312, 0xaa360ade79e990a2), cat(0xf53304714d9265df, 0xd53dd99f4b3066a8) }, // 53
+ { cat(0x96842dc95323f5a8, 0x882b3be52e5473b5), cat(0xc428d05aa4751e4c, 0xaa97e14c3c26b886) }, // 54
+ { cat(0xab9cf16ddc1cc486, 0xd355c98425105c91), cat(0x9ced737bb6c4183d, 0x55464dd69685606b) }, // 55
+ { cat(0xac2e4f162cfad40a, 0xebbc75a03b4d60e7), cat(0xfb158592be068d2e, 0xeed6e2f0f0d56712) }, // 56
+ { cat(0x568b727823fbdcd5, 0x8963914cfc3de71f), cat(0xc8de047564d20a8b, 0xf245825a5a445275) }, // 57
+ { cat(0x453c5b934ffcb0aa, 0xd44fa770c9cb1f4c), cat(0xa0b19d2ab70e6ed6, 0x5b6aceaeae9d0ec4) }, // 58
+ { cat(0x37637c75d996f3bb, 0xdd0c85f3d4a27f70), cat(0x808e17555f3ebf11, 0xe2bbd88bbee40bd0) }, // 59
+ { cat(0x256bfa5628f185f9, 0x61ada31fba9d98b3), cat(0xcdb02555653131b6, 0x3792f412cb06794d) }, // 60
+ { cat(0x51232eab53f46b2d, 0xe7be1c196217ad5c), cat(0xa48ceaaab75a8e2b, 0x5fa8c3423c052dd7) }, // 61
+ { cat(0x40e8f222a99055be, 0x52fe7ce11b46244a), cat(0x83a3eeeef9153e89, 0x1953cf68300424ac) }, // 62
+ { cat(0x34a7e9d10f4d55fd, 0x51972e34f8703a10), cat(0xd29fe4b18e88640e, 0x8eec7f0d19a03aad) }, // 63
+ { cat(0x2a1fee40d90aab31, 0x0e128b5d938cfb40), cat(0xa87fea27a539e9a5, 0x3f2398d747b36224) }, // 64
+ { cat(0xbb4cbe9a473bbc27, 0x3e753c4adc70c900), cat(0x86ccbb52ea94baea, 0x98e947129fc2b4e9) }, // 65
+ { cat(0x9214642a0b92c6a5, 0x30bb93aafa4e0e66), cat(0xd7adf884aa879177, 0x5b0ed81dcc6abb0f) }, // 66
+ { cat(0xa8105021a2dbd21d, 0xc0960fbbfb71a51f), cat(0xac8b2d36eed2dac5, 0xe272467e3d222f3f) }, // 67
+ { cat(0xb9a6a6814f1641b1, 0x66de72fcc927b74c), cat(0x8a08f0f8bf0f156b, 0x1b8e9ecb641b58ff) }, // 68
+ { cat(0xf5d770cee4f0691b, 0xd7ca5194750c5879), cat(0xdcdb1b2798182244, 0xf8e431456cf88e65) }, // 69
+ { cat(0x9179270bea59edaf, 0xdfd50e105da379fa), cat(0xb0af48ec79ace837, 0x2d835a9df0c6d851) }, // 70
+ { cat(0x0dfa85a321e18af3, 0x19773e737e1c6195), cat(0x8d590723948a535f, 0x579c487e5a38ad0e) }, // 71
+ { cat(0x165da29e9c9c1184, 0xf58b971f302d68ef), cat(0xe2280b6c20dd5232, 0x25c6da63c38de1b0) }, // 72
+ { cat(0x4517b54bb07cdad0, 0xc46fac18f3578725), cat(0xb4ecd5f01a4aa828, 0x1e38aeb6360b1af3) }, // 73
+ { cat(0x9dac910959fd7bda, 0x36bfbce0c2ac6c1e), cat(0x90bd77f3483bb9b9, 0xb1c6f22b5e6f48c2) }, // 74
+ { cat(0x2f7a81a88ffbf95d, 0x2465fb01377a4696), cat(0xe7958cb87392c2c2, 0xb60b1d1230b20e04) }, // 75
+ { cat(0xbf953486d9966117, 0x5051959a92c83878), cat(0xb94470938fa89bce, 0xf808e40e8d5b3e69) }, // 76
+ { cat(0x6610f6d247ab80df, 0x737477aedbd36060), cat(0x9436c0760c86e30b, 0xf9a0b6720aaf6521) }, // 77
+ { cat(0xa34e57b6d91267cb, 0xebed8c4af95233cd), cat(0xed246723473e3813, 0x290123e9aab23b68) }, // 78
+ { cat(0x82a512f8ada85309, 0x898ad6a2610e8fd7), cat(0xbdb6b8e905cb600f, 0x5400e987bbc1c920) }, // 79
+ { cat(0x021da8c6f15375a1, 0x3ad57881e73ed979), cat(0x97c560ba6b0919a5, 0xdccd879fc967d41a) }, // 80
+ { cat(0x3695dad7e8858901, 0xf7bbf4030b97c25b), cat(0xf2d56790ab41c2a2, 0xfae27299423fb9c3) }, // 81
+ { cat(0xf877e246539e0734, 0xc62ff668d61301e2), cat(0xc24452da229b021b, 0xfbe85badce996168) }, // 82
+ { cat(0x605fe83842e4d290, 0x9e8cc520ab4267e8), cat(0x9b69dbe1b548ce7c, 0xc986afbe3ee11aba) }, // 83
+ { cat(0x33cca6c06b07b74d, 0xca7ad5011203d974), cat(0xf8a95fcf88747d94, 0x75a44c6397ce912a) }, // 84
+ { cat(0x5ca3b899ef395f71, 0x6ec8aa67419cadf6), cat(0xc6ede63fa05d3143, 0x91503d1c79720dbb) }, // 85
+ { cat(0x16e9607b25c77f8d, 0xf23a21ec347d57f8), cat(0x9f24b832e6b0f436, 0x0dd9ca7d2df4d7c9) }, // 86
+ { cat(0x24a89a5ea2d8cc16, 0x505d0313872ef327), cat(0xfea126b7d78186bc, 0xe2f610c84987bfa8) }, // 87
+ { cat(0xb6ed484bb57a3cde, 0xa6b0cf42d28bf5b9), cat(0xcbb41ef979346bca, 0x4f2b40a03ad2ffb9) }, // 88
+ { cat(0xf8bdd36fc461ca4b, 0xb88d729bdba32afa), cat(0xa2f67f2dfa90563b, 0x728900802f0f32fa) }, // 89
+ { cat(0xc6fe42bfd04e3b6f, 0xc6d78ee3161c2262), cat(0x825ecc24c873782f, 0x8ed400668c0c28c8) }, // 90
+ { cat(0xa4ca04661a16c57f, 0xa48c17d1bcf9d09c), cat(0xd097ad07a71f26b2, 0x7e2000a41346a7a7) }, // 91
+ { cat(0xea3b36b814df0466, 0x1d3cdfdafd94a6e3), cat(0xa6dfbd9fb8e5b88e, 0xcb4ccd500f6bb952) }, // 92
+ { cat(0xee95c56010b269eb, 0x4a97197bfe108583), cat(0x857fcae62d8493a5, 0x6f70a4400c562ddb) }, // 93
+ { cat(0xe422d566811d7645, 0x4424f593301a6f38), cat(0xd59944a37c0752a2, 0x4be76d3346f0495f) }, // 94
+ { cat(0x834f111ecdb12b6a, 0x9cea5e0f59aebf60), cat(0xaae103b5fcd2a881, 0xd652bdc29f26a119) }, // 95
+ { cat(0x690c0db23e2755ee, 0xe3eeb1a5e1589919), cat(0x88b402f7fd75539b, 0x11dbcb0218ebb414) }, // 96
+ { cat(0x74e015e9fd0bbcb1, 0x6cb11c3c9bc0f4f5), cat(0xdab99e59958885c4, 0xe95fab368e45eced) }, // 97
+ { cat(0x2a4cde54ca6fca27, 0x8a2749ca1633f72b), cat(0xaefae51477a06b03, 0xede622920b6b23f1) }, // 98
+ { cat(0x883d7eaa3b8ca1b9, 0x3b52a16e78299289), cat(0x8bfbea76c619ef36, 0x57eb4edb3c55b65a) }, // 99
+ { cat(0x40626443927a9c5b, 0x921dcf1726a8ea74), cat(0xdff9772470297ebd, 0x59787e2b93bc56f7) }, // 100
+ { cat(0x004eb69c752ee37c, 0x74e4a5ac1eed885d), cat(0xb32df8e9f3546564, 0x47939822dc96abf9) }, // 101
+ { cat(0x99d89216c42582c9, 0xf71d51567f246d17), cat(0x8f57fa54c2a9eab6, 0x9fa946824a12232d) }, // 102
+ { cat(0xc2f41cf139d59e0f, 0xf1c88223fea0ae8b), cat(0xe55990879ddcaabd, 0xcc420a6a101d0515) }, // 103
+ { cat(0x9bf67d8dc7de180c, 0xc16d34e998808ba3), cat(0xb77ada0617e3bbcb, 0x09ce6ebb40173744) }, // 104
+ { cat(0x4991fe0b064b4670, 0x9abdc3ee139a094f), cat(0x92c8ae6b464fc96f, 0x3b0b8bc90012929d) }, // 105
+ { cat(0xdc1cc9ab3d453d80, 0xf7960649b8f6754b), cat(0xeadab0aba3b2dbe5, 0x2b45ac74ccea842e) }, // 106
+ { cat(0xe34a3aef64376467, 0x2c780507c72b9109), cat(0xbbe226efb628afea, 0x890489f70a55368b) }, // 107
+ { cat(0xe9082f25e9c5e9ec, 0x239337396c22da6e), cat(0x964e858c91ba2655, 0x3a6a07f8d510f86f) }, // 108
+ { cat(0xa80d183ca93ca979, 0xd2852528ad0490af), cat(0xf07da27a82c37088, 0x5d767327bb4e5a4c) }, // 109
+ { cat(0xecd74696edca212e, 0x42041dba2403a6f3), cat(0xc06481fb9bcf8d39, 0xe45ec2862f71e1d6) }, // 110
+ { cat(0x8a45d21257d4e758, 0x34d017c81ccfb8c2), cat(0x99ea0196163fa42e, 0x504bced1bf8e4e45) }, // 111
+ { cat(0xaa09501d5954a559, 0xee19bfa6947f8e03), cat(0xf64335bcf065d37d, 0x4d4617b5ff4a16d5) }, // 112
+ { cat(0x54d440177aaa1de1, 0x8b47cc8543993e69), cat(0xc5029163f384a931, 0x0a9e795e65d4df11) }, // 113
+ { cat(0xdd7699ac6221b181, 0x3c39706a9c7a9854), cat(0x9d9ba7832936edc0, 0xd54b944b84aa4c0d) }, // 114
+ { cat(0xfbf0f5e09d02b59b, 0x938f1a442d90f3b9), cat(0xfc2c3f3841f17c67, 0xbbac2078d443ace2) }, // 115
+ { cat(0x965a5e4d4a689149, 0x42d8e1d02473f62e), cat(0xc9bcff6034c13052, 0xfc89b393dd02f0b5) }, // 116
+ { cat(0xab7b7ea43b86daa1, 0x02471b0ce9f65e8b), cat(0xa163ff802a3426a8, 0xca07c2dcb0cf26f7) }, // 117
+ { cat(0xbc62cbb696057bb4, 0x01d27c0a54c51870), cat(0x811ccc668829b887, 0x0806357d5a3f525f) }, // 118
+ { cat(0xc7047924233bf920, 0x02ea601087a1c0b2), cat(0xce947a3da6a9273e, 0x733d226229feea32) }, // 119
+ { cat(0x9f36c7501c2ffa80, 0x025519a6d2e7cd5b), cat(0xa54394fe1eedb8fe, 0xc2974eb4ee658828) }, // 120
+ { cat(0x18f89f7349bffb99, 0x9b7747b8a8b97116), cat(0x843610cb4bf160cb, 0xcedf722a585139ba) }, // 121
+ { cat(0x5b27658542ccc5c2, 0x925872c10df581bd), cat(0xd389b47879823479, 0x4aff1d108d4ec2c3) }, // 122
+ { cat(0x7c1f846a9bd7049b, 0xa846c2340b2ace31), cat(0xa93af6c6c79b5d2d, 0xd598e40d3dd89bcf) }, // 123
+ { cat(0xc9b2d0554978d07c, 0x869f01c33c223e8d), cat(0x87625f056c7c4a8b, 0x11471cd764ad4972) }, // 124
+ { cat(0xa91e1a220f27b3fa, 0x70fe69386036ca7c), cat(0xd89d64d57a607744, 0xe871c7bf077ba8b7) }, // 125
+ { cat(0x20e4e1b4d8ec8ffb, 0x8d98542d19c56ec9), cat(0xad4ab7112eb3929d, 0x86c16c98d2c953c6) }, // 126
+ { cat(0x4d83e7c3e0bd3ffc, 0x7146a9bdae378bd4), cat(0x8aa22c0dbef60ee4, 0x6bcdf07a423aa96b) }, // 127
+ { cat(0xe26ca6063461fffa, 0x4ed775fc49f27953), cat(0xddd0467c64bce4a0, 0xac7cb3f6d05ddbde) }, // 128
+ { cat(0x4ebd519e904e6661, 0xd8ac5e636e5b9443), cat(0xb1736b96b6fd83b3, 0xbd308ff8a6b17cb2) }, // 129
+ { cat(0xd897747ed9d851e7, 0xe089e51c58494369), cat(0x8df5efabc5979c8f, 0xca8d3ffa1ef463c1) }, // 130
+ { cat(0x5a8bed97c2f3b63f, 0xcda96e93c07538a7), cat(0xe3231912d5bf60e6, 0x10e1fff697ed6c69) }, // 131
+ { cat(0xaed657ac9bf62b66, 0x3e212543005dc6ec), cat(0xb5b5ada8aaff80b8, 0x0d819992132456ba) }, // 132
+ { cat(0xf24512f07cc4ef84, 0xfe80ea9c004b058a), cat(0x915e2486ef32cd60, 0x0ace1474dc1d122e) }, // 133
+ { cat(0xea081e4d946e4c07, 0xfd9b10f99a11a276), cat(0xe896a0d7e51e1566, 0x77b020baf9c81d17) }, // 134
+ { cat(0x21a0183e10583cd3, 0x3148da61480e1b92), cat(0xba121a4650e4ddeb, 0x92f34d62616ce413) }, // 135
+ { cat(0x1ae679cb4046970f, 0x5aa0aeb439a4e2db), cat(0x94db483840b717ef, 0xa8c2a44eb4571cdc) }, // 136
+ { cat(0xf7d7294533a424e5, 0x5dcde4538f6e37c5), cat(0xee2ba6c0678b597f, 0x746aa07ded582e2c) }, // 137
+ { cat(0xf978edd0f61cea51, 0x17d7e9dc72be9304), cat(0xbe89523386091465, 0xf6bbb397f1135823) }, // 138
+ { cat(0xc793f173f81721da, 0x797987e38efedc03), cat(0x986ddb5c6b3a76b7, 0xf89629465a75e01c) }, // 139
+ { cat(0xd8ecb58659be9c90, 0xc25c0c9f4b316005), cat(0xf3e2f893dec3f126, 0x5a89dba3c3efccfa) }, // 140
+ { cat(0x4723c46b7afee3a7, 0x01e33d4c3c278004), cat(0xc31bfa0fe5698db8, 0x486e494fcff30a62) }, // 141
+ { cat(0x9f4fd055fbff1c85, 0x9b1c3109c9b93336), cat(0x9c1661a651213e2d, 0x06bea10ca65c084e) }, // 142
+ { cat(0xfee61a232ccb60d5, 0xc4f9e80fa92851f0), cat(0xf9bd690a1b68637b, 0x3dfdce7aa3c673b0) }, // 143
+ { cat(0xcbeb481c23d5e711, 0x6a618672edb9db27), cat(0xc7caba6e7c5382c8, 0xfe64a52ee96b8fc0) }, // 144
+ { cat(0xd655d349b644b8da, 0xbb81385bf1617c1f), cat(0x9fd561f1fd0f9bd3, 0xfeb6ea8bedefa633) }, // 145
+ { cat(0xf089520f8a078e2a, 0xc59b8d5fe89bf9cb), cat(0xffbbcfe994e5c61f, 0xfdf17746497f7052) }, // 146
+ { cat(0xc06ddb3fa19fa4ef, 0x047c711986e32e3c), cat(0xcc963fee10b7d1b3, 0x318df905079926a8) }, // 147
+ { cat(0x338b15cc814c83f2, 0x69fd27479f1c24fd), cat(0xa3ab66580d5fdaf5, 0xc13e60d0d2e0ebba) }, // 148
+ { cat(0x5c6f44a39aa39cc1, 0xee641f6c7f49b731), cat(0x82ef85133de648c4, 0x9a984d73dbe722fb) }, // 149
+ { cat(0x60b2076c2a9f6136, 0x4a39cbe0cba9251b), cat(0xd17f3b51fca3a7a0, 0xf75a15862ca504c5) }, // 150
+ { cat(0x4d5b3923554c4dc5, 0x082e3cb3d620ea7c), cat(0xa798fc4196e952e7, 0x2c48113823b73704) }, // 151
+ { cat(0xa448fa82aaa3716a, 0x6cf1ca29781a5530), cat(0x8613fd0145877585, 0xbd06742ce95f5f36) }, // 152
+ { cat(0xd3a7f737776be8aa, 0x47e943758cf6eeb3), cat(0xd686619ba27255a2, 0xc80a537b0efefebd) }, // 153
+ { cat(0xa9532c2c5f8986ee, 0x9fedcf913d92588f), cat(0xab9eb47c81f5114f, 0x066ea92f3f326564) }, // 154
+ { cat(0xbaa8f0237fa138be, 0xe657d940fe0ead40), cat(0x894bc396ce5da772, 0x6b8bba8c328eb783) }, // 155
+ { cat(0x2aa7e69f329b8dfe, 0x3d595b9b30177b99), cat(0xdbac6c247d62a583, 0xdf45f746b74abf39) }, // 156
+ { cat(0x88865218f5493e64, 0xfde11615c012c947), cat(0xafbd2350644eeacf, 0xe5d1929ef90898fa) }, // 157
+ { cat(0xa06b74e0c43a9850, 0xcb1a781166756dd2), cat(0x8c974f7383725573, 0x1e414218c73a13fb) }, // 158
+ { cat(0x33df2167a05dc081, 0x44f726823d88afb7), cat(0xe0f218b8d25088b8, 0x306869c13ec3532c) }, // 159
+ { cat(0x8fe5b452e6b166cd, 0xd0c5b868313a262c), cat(0xb3f4e093db73a093, 0x59ed216765690f56) }, // 160
+ { cat(0xa6515d0f1ef4523e, 0x409e2d202761b823), cat(0x8ff71a0fe2c2e6dc, 0x47f0e785eaba72ab) }, // 161
+ { cat(0xa3b561b1cb208396, 0xcdc9e1cd0bcf8d05), cat(0xe65829b3046b0afa, 0x0cb4a5a3112a5112) }, // 162
+ { cat(0x1c911af4a2806945, 0x716e4e3da30c70d1), cat(0xb84687c269ef3bfb, 0x3d5d514f40eea742) }, // 163
+ { cat(0xe3a748c3b533876a, 0xc1250b6482705a41), cat(0x936b9fcebb25c995, 0xcab10dd900beec34) }, // 164
+ { cat(0x6c3edad2bb85a577, 0x9b6e78a0d0b3c39b), cat(0xebdf661791d60f56, 0x111b495b3464ad21) }, // 165
+ { cat(0x89cbe2422f9e1df9, 0x49252d4d73c302e2), cat(0xbcb2b812db11a5de, 0x7415d448f6b6f0e7) }, // 166
+ { cat(0x3b0981ce8c7e7e61, 0x0750f10ac30268b5), cat(0x96f5600f15a7b7e5, 0x29ab103a5ef8c0b9) }, // 167
+ { cat(0xf80f36174730ca34, 0xd88181aad19d7455), cat(0xf18899b1bc3f8ca1, 0xdc44e6c3cb279ac1) }, // 168
+ { cat(0x933f5e7905c0a1c3, 0xe0679aef0e179044), cat(0xc13a148e3032d6e7, 0xe36a52363c1faf01) }, // 169
+ { cat(0x0f65e52d9e33b49c, 0xb386158c0b460d03), cat(0x9a94dd3e8cf578b9, 0x82bb74f8301958ce) }, // 170
+ { cat(0xe56fd515c9ec542d, 0xec09bc13453ce19e), cat(0xf7549530e188c128, 0xd12bee59e68ef47c) }, // 171
+ { cat(0x84597744a189dcf1, 0x89a163429dca4e18), cat(0xc5dd44271ad3cdba, 0x40eff1e1853f29fd) }, // 172
+ { cat(0x037ac5d0813b1727, 0xa14de90217d50b47), cat(0x9e4a9cec15763e2e, 0x9a598e4e043287fe) }, // 173
+ { cat(0x38c46fb401f8250c, 0x354974d02621aba4), cat(0xfd442e4688bd304a, 0x908f4a166d1da663) }, // 174
+ { cat(0x2d69f2f667f9b73c, 0xf76df70ceb4e22ea), cat(0xca9cf1d206fdc03b, 0xa6d90811f0e4851c) }, // 175
+ { cat(0xf1218f2b86615f63, 0xf924c5a3ef71b588), cat(0xa21727db38cb002f, 0xb8ada00e5a506a7c) }, // 176
+ { cat(0xc0e7a5bc6b81191c, 0xc7509e1cbf8e2ad3), cat(0x81ac1fe293d599bf, 0xc6f14cd848405530) }, // 177
+ { cat(0x67d9092d78ce8e94, 0x721a969465b04485), cat(0xcf79cc9db955c2cc, 0x7182148d4066eeb4) }, // 178
+ { cat(0x5314075793d87210, 0x5b487876b7c036d1), cat(0xa5fb0a17c777cf09, 0xf468107100525890) }, // 179
+ { cat(0x75a99f7943138e73, 0x7c39f9f893002bda), cat(0x84c8d4dfd2c63f3b, 0x29ecd9f40041e073) }, // 180
+ { cat(0x22a8ff286b527d85, 0x938ff65a84cd12f7), cat(0xd47487cc8470652b, 0x7647c3200069671f) }, // 181
+ { cat(0x1bba65b9ef753137, 0xa93ff8486a3da8c5), cat(0xa9f6d30a038d1dbc, 0x5e9fcf4ccd211f4c) }, // 182
+ { cat(0x7c951e2e592a8dc6, 0x20fff9d3883153d1), cat(0x87f8a8d4cfa417c9, 0xe54ca5d70a80e5d6) }, // 183
+ { cat(0x2dbb637d5b77493d, 0x01998fb8d9e8861b), cat(0xd98ddaee19068c76, 0x3badd624dd9b0957) }, // 184
+ { cat(0xbe2f82caaf92a0fd, 0x9ae13fc714ba04e3), cat(0xae0b158b4738705e, 0x9624ab50b148d445) }, // 185
+ { cat(0x9826023bbfa880ca, 0xe24dcc9f43c803e9), cat(0x8b3c113c38f9f37e, 0xde83bc408dd3dd04) }, // 186
+ { cat(0x26a336c5ff740144, 0x9d49476539400641), cat(0xdec681f9f4c31f31, 0x6405fa00e2ec94d4) }, // 187
+ { cat(0x521c2bd199299a9d, 0x4aa105ea94333834), cat(0xb23867fb2a35b28d, 0xe99e619a4f23aa43) }, // 188
+ { cat(0x41b0230e1421487d, 0xd54d9e55435c2cf6), cat(0x8e938662882af53e, 0x547eb47b7282ee9c) }, // 189
+ { cat(0x9c4d04e3536873fc, 0x887c30886bc6ae57), cat(0xe41f3d6a7377eeca, 0x20caba5f1d9e4a93) }, // 190
+ { cat(0xe370d0b5dc538ffd, 0x39fcf3a056388b79), cat(0xb67f6455292cbf08, 0x1a3bc84c17b1d542) }, // 191
+ { cat(0x1c5a40917d0fa664, 0x2e63f619de93a2c7), cat(0x91ff83775423cc06, 0x7b6306a34627ddcf) }, // 192
+ { cat(0x6090674f2e7f70a0, 0x4a3989c2fdb90471), cat(0xe998d258869facd7, 0x2bd1a438703fc94b) }, // 193
+ { cat(0x1a0d1f728b9926e6, 0xa1c7a168cafa69f4), cat(0xbae0a846d2195712, 0x8974836059cca109) }, // 194
+ { cat(0xe1a419286fadb8b8, 0x816c8120a261ee5d), cat(0x9580869f0e7aac0e, 0xd45d35e6ae3d4da0) }, // 195
+ { cat(0x9c39c1da4c49278d, 0x9be0ce9a9d697d62), cat(0xef340a98172aace4, 0x86fb897116c87c34) }, // 196
+ { cat(0x49c7ce483d0752d7, 0xafe70baee454644e), cat(0xbf5cd54678eef0b6, 0xd262d45a78a0635d) }, // 197
+ { cat(0xa16ca50697390f12, 0xf31f3c8be9dd1d0c), cat(0x991711052d8bf3c5, 0x751bdd152d4d1c4a) }, // 198
+ { cat(0x357aa1a42528181e, 0x51cb94130fc82e79), cat(0xf4f1b4d515acb93b, 0xee92fb5515482d44) }, // 199
+ { cat(0xf7954e1cea8679b1, 0xdb09434273068b94), cat(0xc3f490aa77bd60fc, 0xbedbfc4411068a9c) }, // 200
+ { cat(0xc6110b4a5538615b, 0x15a1029b8f386faa), cat(0x9cc3a6eec6311a63, 0xcbe3303674053bb0) }, // 201
+ { cat(0x3ce81210885a355e, 0x89019dc5b1f3e5dc), cat(0xfad2a4b13d1b5d6c, 0x796b805720085f81) }, // 202
+ { cat(0xca5341a6d37b5de5, 0x3a67b16af4c31e49), cat(0xc8a883c0fdaf7df0, 0x6122cd128006b2cd) }, // 203
+ { cat(0xa1dc348575fc4b1d, 0xc852f455909c183b), cat(0xa086cfcd97bf97f3, 0x80e8a40eccd228a4) }, // 204
+ { cat(0xe7e35d379196a27e, 0x39dbf6aada1679c9), cat(0x806bd9714632dff6, 0x00ba1cd8a3db53b6) }, // 205
+ { cat(0x0c9efb8c1c243730, 0x5c9324449023f60e), cat(0xcd795be870516656, 0x67902e276c921f8b) }, // 206
+ { cat(0xd6e59609b01cf8f3, 0x7d42836a0ce991a5), cat(0xa46116538d0deb78, 0x52d9be85f074e608) }, // 207
+ { cat(0x78b7ab3af34a60c2, 0xca9b9c54d7214151), cat(0x8380dea93da4bc60, 0x4247cb9e59f71e6d) }, // 208
+ { cat(0xf45911f7ebaa346a, 0xddc5c6ee2502021a), cat(0xd267caa862a12d66, 0xd072df63c324fd7b) }, // 209
+ { cat(0xc37a74c65621c388, 0xb16b058b50ce6815), cat(0xa8530886b54dbdeb, 0xd9f57f830283fdfc) }, // 210
+ { cat(0x02c85d6b781b02d3, 0xc1226ad5da3eb9ab), cat(0x86a8d39ef77164bc, 0xae5dff9c02033197) }, // 211
+ { cat(0x37a6fbdf26919e1f, 0x9b6a44895d312911), cat(0xd77485cb25823ac7, 0x7d633293366b828b) }, // 212
+ { cat(0xc61f2fe5b8747e7f, 0xaf8836d44a8dba74), cat(0xac5d37d5b79b6239, 0x311c2875c522ced5) }, // 213
+ { cat(0x9e7f598493906532, 0xf2d35f103ba4952a), cat(0x89e42caaf9491b60, 0xf41686c49db57244) }, // 214
+ { cat(0xfd988f3a85b3d51e, 0x515231b392a0eea9), cat(0xdca04777f541c567, 0xecf0d7a0fc5583a0) }, // 215
+ { cat(0xfe13a5c86af64418, 0x410e8e29421a5887), cat(0xb080392cc4349dec, 0xbd8d794d96aacfb3) }, // 216
+ { cat(0xcb42eb06bbf83679, 0xcda53e876815139f), cat(0x8d3360f09cf6e4bd, 0x64712dd7abbbd95c) }, // 217
+ { cat(0x786b11a45ff38a5c, 0x7c3b973f0cee85cb), cat(0xe1ebce4dc7f16dfb, 0xd3e8495912c62894) }, // 218
+ { cat(0xf9ef41504cc2d516, 0xc9c945cc0a586b09), cat(0xb4bca50b065abe63, 0x0fed077a756b53a9) }, // 219
+ { cat(0x94bf6773709bddab, 0xd4a104a33b79ef3b), cat(0x9096ea6f3848984f, 0x3ff0d2c85def7621) }, // 220
+ { cat(0x546572524dc62f79, 0x5434d4385f297ec4), cat(0xe757dd7ec07426e5, 0x331aeada2fe589cf) }, // 221
+ { cat(0x76b78ea83e3825fa, 0xa9c3dcf9e5bacbd0), cat(0xb913179899f68584, 0x28e2557b59846e3f) }, // 222
+ { cat(0x2bc60bb9cb601e62, 0x21697d94b7c8a30d), cat(0x940f4613ae5ed136, 0x871b7795e136be99) }, // 223
+ { cat(0x4609ac5c7899ca36, 0x9bdbfc21260dd1ae), cat(0xece53cec4a314ebd, 0xa4f8bf5635246428) }, // 224
+ { cat(0x6b3af049fa14a1c5, 0x497cc9b41e71748b), cat(0xbd8430bd08277231, 0x50c6ff782a838353) }, // 225
+ { cat(0xbc2f26a194dd4e37, 0x6dfd6e29b1f45d3c), cat(0x979cf3ca6cec5b5a, 0xa705992ceecf9c42) }, // 226
+ { cat(0xf9e50a9c216216bf, 0x166249dc4fed61fa), cat(0xf294b943e17a2bc4, 0x3e6f5b7b17b2939d) }, // 227
+ { cat(0xc7ea6ee34de81232, 0x784ea17d0cbde7fb), cat(0xc21094364dfb5636, 0x985915fc12f542e4) }, // 228
+ { cat(0x6cbb8be90b200e8e, 0xc6a54dfda3cb1ffc), cat(0x9b407691d7fc44f8, 0x79e0de63425dcf1d) }, // 229
+ { cat(0x47927974de99b0e4, 0x71087cc90611ccc7), cat(0xf867241c8cc6d4c0, 0xc30163d203c94b62) }, // 230
+ { cat(0x6c752df7187af3e9, 0xf406ca3a6b41709f), cat(0xc6b8e9b0709f109a, 0x359ab6419ca1091b) }, // 231
+ { cat(0x89f757f8e0625cbb, 0x299f082ebc345a19), cat(0x9efa548d26e5a6e1, 0xc47bc5014a1a6daf) }, // 232
+ { cat(0x0ff2265b009d612b, 0x75cb404ac6ba29c1), cat(0xfe5d54150b090b02, 0xd3f93b35435d7c4c) }, // 233
+ { cat(0xa65b51e266e44dbc, 0x5e3c336f0561bb01), cat(0xcb7ddcdda26da268, 0xa9942f5dcf7dfd09) }, // 234
+ { cat(0x1eaf74b51f1d0afd, 0x183029259de7c8ce), cat(0xa2cb1717b52481ed, 0x54768c4b0c64ca6e) }, // 235
+ { cat(0x188c5d5db27da264, 0x1359ba847e53070b), cat(0x823c12795db6ce57, 0x76c53d08d6b70858) }, // 236
+ { cat(0x8dad622f83fc3706, 0x855c5da0ca1e71ab), cat(0xd0601d8efc57b08b, 0xf13b94daf124da26) }, // 237
+ { cat(0xd7bde82603302c05, 0x377d17b3d4e527bc), cat(0xa6b34ad8c9dfc06f, 0xf42faa48c0ea481e) }, // 238
+ { cat(0x12fe53519c26899d, 0xc5fdac8fdd841fca), cat(0x855c3be0a17fcd26, 0x5cf2eea09a55067f) }, // 239
+ { cat(0xeb30854f603da8fc, 0x6ffc474c95a032dc), cat(0xd5605fcdcf32e1d6, 0xfb1e4a9a90880a64) }, // 240
+ { cat(0xef5a043f803153fd, 0x26636c3d448028b0), cat(0xaab37fd7d8f58178, 0xc8e5087ba6d33b83) }, // 241
+ { cat(0x25e19cff99c10ffd, 0xb84f89ca9d3353c0), cat(0x888f99797a5e012d, 0x6d8406c952429603) }, // 242
+ { cat(0xa30294cc2934e662, 0xc07f42ddc8521f9a), cat(0xda7f5bf590966848, 0xaf39a475506a899e) }, // 243
+ { cat(0x82687709ba90b84f, 0x0065cf17d374e615), cat(0xaecc49914078536d, 0x58fae9f773886e18) }, // 244
+ { cat(0x6853926e2eda2d0c, 0x0051727975f71e77), cat(0x8bd6a141006042bd, 0xe0c8bb2c5c6d24e0) }, // 245
+ { cat(0x4085b716b15d14e0, 0x008250c2565830be), cat(0xdfbdcece67006ac9, 0x67a791e093e1d49a) }, // 246
+ { cat(0x006af8def44a7719, 0x9a01da3511e026ff), cat(0xb2fe3f0b8599ef07, 0x861fa7e6dcb4aa15) }, // 247
+ { cat(0xcd2260b25d085f47, 0xae67e1c40e4cebff), cat(0x8f31cc0937ae58d2, 0xd1b2ecb8b0908810) }, // 248
+ { cat(0xe1d09ab6fb409872, 0xb0a636067d47dffe), cat(0xe51c79a85916f484, 0x82b7e12780e7401a) }, // 249
+ { cat(0xe7da155f2f66e05b, 0xc084f80531064ccb), cat(0xb749faed14125d36, 0xcef980ec671f667b) }, // 250
+ { cat(0x86481118f2b8b37c, 0x9a03f99dc0d1d709), cat(0x92a1958a7675175f, 0x0bfacd89ec191ec9) }, // 251
+ { cat(0x0a0ce827eac11f2d, 0xc3398f62ce1c8b42), cat(0xea9c227723ee8bcb, 0x465e15a979c1cadc) }, // 252
+ { cat(0x6e70b9b9889a7f57, 0xcf613f823e7d3c35), cat(0xbbb01b9283253ca2, 0x9eb1aaedfb016f16) }, // 253
+ { cat(0xbec094946d4865df, 0xd91a9934feca9691), cat(0x96267c7535b763b5, 0x4bc1558b2f3458de) }, // 254
+ { cat(0xcacdba871540a2ff, 0xc1c42854caddbdb4), cat(0xf03d93eebc589f88, 0x793555ab7eba27ca) }, // 255
+ { cat(0xa23e2ed27766e8cc, 0x9b03537708b16490), cat(0xc0314325637a1939, 0xfa911155fefb5308) }, // 256
+ { cat(0x4e9825752c5253d6, 0xe2690f926d5ab6da), cat(0x99c102844f94e0fb, 0x2eda7444cbfc426d) }, // 257
+ { cat(0x7dc03beead508624, 0x9d74e5b7155df15c), cat(0xf6019da07f549b2b, 0x7e2a53a146606a48) }, // 258
+ { cat(0x97ccfcbef10d381d, 0x4ac3eaf8dde4c116), cat(0xc4ce17b399107c22, 0xcb550fb4384d21d3) }, // 259
+ { cat(0x463d96ff273dc67d, 0xd56988c717ea3412), cat(0x9d71ac8fada6c9b5, 0x6f773fc3603db4a9) }, // 260
+ { cat(0x70628b31d862d72f, 0xbbdc0e0b5976b9b6), cat(0xfbe9141915d7a922, 0x4bf1ff9f0062baa8) }, // 261
+ { cat(0x59e86f5b138245bf, 0xc97cd809145efaf8), cat(0xc987434744ac874e, 0xa327ffb266b56220) }, // 262
+ { cat(0x47ed25e27601d166, 0x3aca466da9e59594), cat(0xa139029f6a239f72, 0x1c1fffc1ebc44e80) }, // 263
+ { cat(0xd3241e4ec4ce411e, 0x956e9ebe218477a9), cat(0x80fa687f881c7f8e, 0x7ce66634bc9d0b99) }, // 264
+ { cat(0xb839ca17a14a01ca, 0x88b0fdfd026d8c42), cat(0xce5d73ff402d98e3, 0xfb0a3d212dc8128f) }, // 265
+ { cat(0xf9c7d4dfb43b34a2, 0x06f3fe6401f13d02), cat(0xa5178fff668ae0b6, 0x626e974dbe39a872) }, // 266
+ { cat(0x616caa4c902f5d4e, 0x6bf6651cce5a9735), cat(0x8412d9991ed58091, 0xe858790afe9486c2) }, // 267
+ { cat(0xcf1443adb37efbb0, 0xacbd6e947d5dbeba), cat(0xd3515c2831559a83, 0x0d5a5b44ca873e03) }, // 268
+ { cat(0x3f436957c2cbfc8d, 0x56fdf210644afefb), cat(0xa90de3535aaae202, 0x711515d0a205cb36) }, // 269
+ { cat(0xcc35eddfcf0996d7, 0x78cb280d1d08cbfc), cat(0x873e4f75e2224e68, 0x5a7744a6e804a291) }, // 270
+ { cat(0xe0564966180f57bf, 0x27ab73482e747994), cat(0xd863b256369d4a40, 0x90bed43e40076a82) }, // 271
+ { cat(0x19dea11e79a5dfcc, 0x1fbc5c39bec39476), cat(0xad1c8eab5ee43b66, 0xda3243650005eecf) }, // 272
+ { cat(0x7b1880e52e1e4ca3, 0x4c96b02e3236105f), cat(0x8a7d3eef7f1cfc52, 0x482835ea666b2572) }, // 273
+ { cat(0xf82734a1e363add2, 0x14244d16b6bce6fe), cat(0xdd95317f31c7fa1d, 0x40405643d711d583) }, // 274
+ { cat(0xc685c3b4b5e957db, 0x43503dabc563ebfe), cat(0xb1442798f49ffb4a, 0x99cd11cfdf41779c) }, // 275
+ { cat(0xd2049c909187797c, 0x35d9caefd11cbccb), cat(0x8dd01fad907ffc3b, 0xae3da7d97f6792e3) }, // 276
+ { cat(0x833a941a82725bf9, 0xefc2de4c81c79478), cat(0xe2e69915b3fff9f9, 0x16c90c8f323f516c) }, // 277
+ { cat(0x02954348685b7cc7, 0xf3024b7067d2dd2d), cat(0xb58547448ffffb2d, 0xabd40a0c2832a78a) }, // 278
+ { cat(0x9baa9c39ed15fd6c, 0xc2683c59eca8b0f1), cat(0x91376c36d99995be, 0x23100809b9c21fa1) }, // 279
+ { cat(0xf910f9f648232f14, 0x6a40608fe10de7e8), cat(0xe858ad248f5c22c9, 0xd1b3400f8f9cff68) }, // 280
+ { cat(0xfa73fb2b6ce8f276, 0xbb66b3a64da4b986), cat(0xb9e08a83a5e34f07, 0xdaf5ccd93fb0cc53) }, // 281
+ { cat(0x952995bc5720c1f8, 0x95ebc2eb7150946c), cat(0x94b3a202eb1c3f39, 0x7bf7d71432f3d6a9) }, // 282
+ { cat(0xeea8ef93be9acff4, 0x2312d178b54dba45), cat(0xedec366b11c6cb8f, 0x2cbfbe86b7ec8aa8) }, // 283
+ { cat(0xf220bfa96548a65c, 0xe8dbdac6f77161d1), cat(0xbe5691ef416bd60c, 0x23cc986bc656d553) }, // 284
+ { cat(0x8e8099545106eb7d, 0x8716489f2c5ab4a7), cat(0x9845418c345644d6, 0x830a13896b78aaa9) }, // 285
+ { cat(0x4a675bba1b3e4595, 0xa4f07431e091210c), cat(0xf3a20279ed56d48a, 0x6b43527578c1110f) }, // 286
+ { cat(0x6eb9162e7c31d144, 0x83f39027e6da80d6), cat(0xc2e801fb244576d5, 0x229c41f793cda73f) }, // 287
+ { cat(0xbefa78253027da9d, 0x365c73531f1533df), cat(0x9becce62836ac577, 0x4ee367f9430aec32) }, // 288
+ { cat(0xfe5d8d084d0c90fb, 0x8a2d8551cb551fca), cat(0xf97ae3d0d2446f25, 0x4b0573286b44ad1d) }, // 289
+ { cat(0xfeb13da03da3a72f, 0xa1be04416f774ca2), cat(0xc795830d75038c1d, 0xd59df5b9ef6a2417) }, // 290
+ { cat(0xcbc0fe19cae9528c, 0x8164d034592c3d4f), cat(0x9faacf3df73609b1, 0x77b191618c54e9ac) }, // 291
+ { cat(0xdf9b302944a88414, 0x023ae6ba2846c87d), cat(0xff77b1fcbebcdc4f, 0x25e8e89c13bb0f7a) }, // 292
+ { cat(0xb2e28cedd086d010, 0x01c8b894ed056d31), cat(0xcc5fc196fefd7d0c, 0x1e53ed49a96272c8) }, // 293
+ { cat(0x8f1ba3f1739f0cd9, 0x9b06fa10bd9df0f4), cat(0xa37fce126597973c, 0xe50ff107bab528a0) }, // 294
+ { cat(0x3f494ff45c7f3d7a, 0xe26bfb4097b18d90), cat(0x82cca4db847945ca, 0x50d98d9fc890ed4d) }, // 295
+ { cat(0xfedbb32093fec8c4, 0x9d799200f2b5af4d), cat(0xd1476e2c07286faa, 0x1af5af660db4aee1) }, // 296
+ { cat(0x657c8f4d43323a36, 0xe461419a5bc48c3e), cat(0xa76c582338ed2621, 0xaf2af2b80af6f24e) }, // 297
+ { cat(0x1dfd3f71028e94f8, 0xb6b4347b7c9d3cfe), cat(0x85f0468293f0eb4e, 0x25bbf56008c58ea5) }, // 298
+ { cat(0x2ffb98b4d0e4218d, 0xf12053f8c761fb30), cat(0xd64d3d9db981787d, 0x092cbbccdad5b108) }, // 299
+ { cat(0x8cc946f70d834e0b, 0x274d0ffa391b2f5a), cat(0xab70fe17c79ac6ca, 0x6dbd630a48aaf406) }, // 300
+ { cat(0x0a3a9f2c0acf71a2, 0x85d73ffb60e28c48), cat(0x892731ac9faf056e, 0xbe311c083a225cd2) }, // 301
+ { cat(0x105dcb79aae5829d, 0xa2f1fff89b0413a6), cat(0xdb71e91432b1a24a, 0xc9e82cd9f69d6150) }, // 302
+ { cat(0xa6b16f9488b79bb1, 0x4f27fffa159cdc85), cat(0xaf8e5410288e1b6f, 0x07ecf0ae5ee44dd9) }, // 303
+ { cat(0x855abfaa06f9495a, 0xa5b99994de1716d1), cat(0x8c71dcd9ba0b4925, 0x9ff0c08b7f1d0b14) }, // 304
+ { cat(0x3bc465dcd7f5422a, 0xa2c28f54968b57b4), cat(0xe0b62e2929aba83c, 0x331acdabfe94de87) }, // 305
+ { cat(0x2fd0517d799101bb, 0xb56872aa120912f7), cat(0xb3c4f1ba87bc8696, 0x8f48a4899877186c) }, // 306
+ { cat(0x8ca6a79794740162, 0xf786c221a807425f), cat(0x8fd0c16206306bab, 0xa5d3b6d479f8e056) }, // 307
+ { cat(0xadd7728c20b99bd1, 0x8c0ad035d9a536fe), cat(0xe61acf033d1a45df, 0x6fb92487298e33bd) }, // 308
+ { cat(0x8b12c209b3c7afda, 0xd66f0cf7e150f8cb), cat(0xb8157268fdae9e4c, 0x5960ea05bad82964) }, // 309
+ { cat(0x3c0f01a15c9fbfe2, 0x4525a3f9810d93d6), cat(0x93445b8731587ea3, 0x7ab3ee6afbe0211d) }, // 310
+ { cat(0xc67e69022dcc6636, 0xd509065c01af52f0), cat(0xeba09271e88d976b, 0xf7864a44c633682e) }, // 311
+ { cat(0x386520ce8b09eb5f, 0x10d4051667bf758d), cat(0xbc807527ed3e12bc, 0xc605083704f5ecf2) }, // 312
+ { cat(0x2d1db3d86f3b22b2, 0x73dcd0deb965f7a4), cat(0x96cd2a865764dbca, 0x380406926a5e5728) }, // 313
+ { cat(0x14fc52f3e52b6ab7, 0x1fc7b4978f098c39), cat(0xf148440a256e2c76, 0xc00670ea43ca250d) }, // 314
+ { cat(0x7730425cb755eef8, 0xe6395d460c07a361), cat(0xc1069cd4eabe89f8, 0x999ec0bb696e840a) }, // 315
+ { cat(0xc5c03516f9118bfa, 0x51c77dd1a3394f81), cat(0x9a6bb0aa55653b2d, 0x47b233c92125366e) }, // 316
+ { cat(0x6f99ee8b281c132a, 0x1c7262e905287f34), cat(0xf712b443bbd52b7b, 0xa5e9ec7501d523e4) }, // 317
+ { cat(0x2614bed5b9b00f54, 0xe38eb587375398f7), cat(0xc5a890362fddbc62, 0xeb2189f734aa831d) }, // 318
+ { cat(0xeb43cbde2e2672aa, 0x4fa55e05c5dc7a5f), cat(0x9e20735e8cb16382, 0x55b46e5f5d5535b0) }, // 319
+ { cat(0xab9fac96b03d8443, 0xb2a230093c93f6fe), cat(0xfd00b897478238d0, 0x8920b098955522b4) }, // 320
+ { cat(0xefb2f0788cfe0369, 0x5bb4f33a96dcc598), cat(0xca66fa129f9b60a6, 0xd41a26e077774ef6) }, // 321
+ { cat(0xbfc259fa0a64cf87, 0x7c90c295457d6ae0), cat(0xa1ebfb4219491a1f, 0x1014ebe6c5f90bf8) }, // 322
+ { cat(0xcc9b7b2e6eb70c6c, 0x63a7021104645580), cat(0x818995ce7aa0e1b2, 0x7343efebd1940993) }, // 323
+ { cat(0x475f2b7d7df1ad7a, 0x390b3681a0a088cd), cat(0xcf42894a5dce35ea, 0x52064cac828675b9) }, // 324
+ { cat(0xd2b28931318e2461, 0xc73c2b9ae6e6d3d7), cat(0xa5ced43b7e3e9188, 0x419ea3bd35385e2d) }, // 325
+ { cat(0xdbc2075a8e0b504e, 0x38fcefaf1f1f0fe0), cat(0x84a57695fe98746d, 0x014bb630f7604b57) }, // 326
+ { cat(0xf936722a7cdee6e3, 0x8e617f7e9831b2ff), cat(0xd43bf0effdc0ba48, 0x0212bd1b2566def2) }, // 327
+ { cat(0x60f85b5530b2524f, 0xa51acc65468e28cc), cat(0xa9c98d8ccb009506, 0x680efdaf511f18c2) }, // 328
+ { cat(0x4d937c4426f50ea6, 0x1daf09ea9ed820a3), cat(0x87d4713d6f33aa6b, 0x8672648c40e5ad68) }, // 329
+ { cat(0x48ebfa06a4bb4aa3, 0x62b1a977648d0105), cat(0xd953e8624b85dd78, 0xd71d6dad34a2af0d) }, // 330
+ { cat(0xd3effb3883c90882, 0xb55aedf91d3d9a6b), cat(0xaddcb9e83c6b1793, 0xdf4abe242a1bbf3d) }, // 331
+ { cat(0x765995c6cfd406ce, 0xf77bf19417647b89), cat(0x8b16fb203055ac76, 0x4c3bcb5021afcc31) }, // 332
+ { cat(0x56f5bc714c86714b, 0x25931c20256d9274), cat(0xde8b2b66b3bc4723, 0xad2c788035e61382) }, // 333
+ { cat(0x125e305aa39ec108, 0xeadc16801df141f6), cat(0xb208ef855c969f4f, 0xbdbd2d335e51a935) }, // 334
+ { cat(0x41e4f37bb6189a6d, 0x88b0120017f434c5), cat(0x8e6d8c6ab0787f72, 0xfe30f0f5e50e20f7) }, // 335
+ { cat(0x363b1f2c568dc3e2, 0x744ce999bfed213b), cat(0xe3e27a444d8d98b7, 0xfd1b1b2308169b25) }, // 336
+ { cat(0x2b627f56aba49cb5, 0x29d72147ccbdb42f), cat(0xb64ec836a47146f9, 0x9748e2826cdee284) }, // 337
+ { cat(0xbc4ecc45561d4a2a, 0x87df4dd30a315cf3), cat(0x91d8a02bb6c10594, 0x79071b9b8a4be869) }, // 338
+ { cat(0x607e13a223621044, 0x0c987c84dd1bc7eb), cat(0xe95a99df8ace6f53, 0xf4d82c2c107973dc) }, // 339
+ { cat(0xe6cb42e81c4e7369, 0xa3ad306a4a7c9fef), cat(0xbaaee17fa23ebf76, 0x5d79bcf00d2df649) }, // 340
+ { cat(0xebd5cf2016a52921, 0x4fbdc0550863b326), cat(0x9558b4661b6565f8, 0x4ac7ca59a424c507) }, // 341
+ { cat(0xdfbc7e99bdd50e9b, 0xb2c933bb409f8509), cat(0xeef453d6923bd65a, 0x113faa2906a13b3f) }, // 342
+ { cat(0x1963987afe440baf, 0xc23a8fc9007f9da1), cat(0xbf29dcaba82fdeae, 0x7432ee873880fc33) }, // 343
+ { cat(0x144fad2f31d00959, 0x682ed96d99ffb14e), cat(0x98ee4a22ecf3188b, 0x9028bed2939a635c) }, // 344
+ { cat(0xba1915184fb34228, 0xa6b15be28fff8215), cat(0xf4b0769e47eb5a78, 0xe6a797b752909ef9) }, // 345
+ { cat(0x61adaa79d95c34ed, 0x52277cb53fff9b44), cat(0xc3c05ee50655e1fa, 0x521fac92a873b261) }, // 346
+ { cat(0x4e2488617ab02a57, 0x74ec63c43332e29d), cat(0x9c99e58405118195, 0x0e7fbd42205c8eb4) }, // 347
+ { cat(0xb03a73cf2ab376f2, 0x54ad6c6d1eb7d0fb), cat(0xfa8fd5a0081c0288, 0x1732c869cd60e453) }, // 348
+ { cat(0x8cfb8fd8eef5f8c1, 0xdd5789f0e55fda63), cat(0xc873114cd3499ba0, 0x128f06bb0ab3e9dc) }, // 349
+ { cat(0xd72fa647259193ce, 0x4aac6e5a51197b82), cat(0xa05c0dd70f6e1619, 0xa8726bc8d55cbb16) }, // 350
+ { cat(0xac261e9f5141430b, 0x6ef0584840e12f9c), cat(0x8049a4ac0c5811ae, 0x205b896d777d6278) }, // 351
+ { cat(0x79d697654eced1ab, 0xe4b3c0739b01e5c5), cat(0xcd42a11346f34f7d, 0x0092757bf2623727) }, // 352
+ { cat(0xc7dedf843f0bdaef, 0xea2966c2e267eb04), cat(0xa4354da9058f72ca, 0x66db912ff51b5f52) }, // 353
+ { cat(0xd318b2d0326fe259, 0x88211f024eb988d0), cat(0x835dd7ba6ad928a1, 0xebe2da8cc415e5db) }, // 354
+ { cat(0x1e8deae6b7196a28, 0xd9ce9803b128dae7), cat(0xd22fbf90aaf50dcf, 0xdfd15dae06896fc6) }, // 355
+ { cat(0x7ed7ef1ef8e121ba, 0x47d8799c8dba48b9), cat(0xa82632da225da4a6, 0x4ca77e24d2078c9e) }, // 356
+ { cat(0x324658e593e74e2e, 0x9fe0614a0afb6d61), cat(0x8684f57b4eb15085, 0x0a1f981d74d2d6e5) }, // 357
+ { cat(0x1d3d5b08eca549e4, 0x33009ba9ab2be234), cat(0xd73b225ee44ee73b, 0x4365c02f215157d5) }, // 358
+ { cat(0x4a977c0723b76e50, 0x28cd495488efe82a), cat(0xac2f4eb2503f1f62, 0x9c51668c1aa77977) }, // 359
+ { cat(0x6edf966c1c92bea6, 0x870aa1106d8cb9bb), cat(0x89bf722840327f82, 0x16a7853ce21f945f) }, // 360
+ { cat(0xb165bd79c751310a, 0x71aa9b4d7c145c5e), cat(0xdc65837399ea659c, 0xf10c086169cc2098) }, // 361
+ { cat(0x278497949f74273b, 0x8e2215d79676b04b), cat(0xb05135f614bb847d, 0x8da339e787d6807a) }, // 362
+ { cat(0xec6a12dd4c5cec2f, 0xa4e81179452bc03c), cat(0x8d0dc4c4dd62d064, 0x714f618606453394) }, // 363
+ { cat(0x7a43516213c7e04c, 0x3b0ce8c208460060), cat(0xe1afa13afbd14d6d, 0x82189c09a3a1ec21) }, // 364
+ { cat(0xfb690de80fd319d6, 0x95a3ed68069e66b4), cat(0xb48c80fbfca77124, 0x6813b007b61b234d) }, // 365
+ { cat(0xfc540b200ca8e178, 0x77b657866bb1ebc3), cat(0x9070672ffd52c0e9, 0xecdc8cd2f815b5d7) }, // 366
+ { cat(0xc6ecde99addb025a, 0x5923bf3d791cac6b), cat(0xe71a3eb32eeace43, 0x14941484c022bc8c) }, // 367
+ { cat(0x9f23e547be48ceae, 0xadb632979416f056), cat(0xb8e1cbc28bef0b68, 0xdd43439d66823070) }, // 368
+ { cat(0xe5b6510631d3d88b, 0xbe2b5bac7678c045), cat(0x93e7d6353cbf3c53, 0xe435cfb11ece8d26) }, // 369
+ { cat(0xd5f081a382ec8dac, 0x637892ad8a5acd3a), cat(0xeca623886131fa1f, 0xd3894c4e97b0e1d7) }, // 370
+ { cat(0xde5a014f9bf07156, 0xb5fa0ef13b7bd762), cat(0xbd51b606b427fb4c, 0xa93aa37212f3e7df) }, // 371
+ { cat(0x1848010c7cc05aab, 0xc4c80bf42f9645e8), cat(0x9774919ef68662a3, 0xba954f8e758fecb3) }, // 372
+ { cat(0x5a0cce7a6133c446, 0x07a67986b28a0973), cat(0xf2541c318a709dd2, 0xc42218e3ef4cadeb) }, // 373
+ { cat(0x7b3d71fb80f6369e, 0x6c852e055ba1a129), cat(0xc1dce35ad526e4a8, 0x9ce813e98c3d57ef) }, // 374
+ { cat(0x95cac19600c4f87e, 0xbd375804494e1a87), cat(0x9b171c48aa8583ba, 0x17200fee09caacbf) }, // 375
+ { cat(0xefaacf5667a18d97, 0x952559a07549c40b), cat(0xf824fa0ddda26c5c, 0xf1cce649a9444798) }, // 376
+ { cat(0x26223f7852e7a479, 0x441de14d2aa169a3), cat(0xc683fb3e4ae856b0, 0xc170b83aedd03947) }, // 377
+ { cat(0x1e81cc604252e9fa, 0x9ce4b43dbbb45482), cat(0x9ecffc31d586abc0, 0x9ac0936257d9c76c) }, // 378
+ { cat(0xfd9c7a339d51765d, 0xc7d45395f9208736), cat(0xfe199382ef3ddf9a, 0x91341f03bfc2d8ac) }, // 379
+ { cat(0x647d2e8fb10df84b, 0x06437611941a05c5), cat(0xcb47a9358c317fae, 0xda9018cfcc9be08a) }, // 380
+ { cat(0x5064253fc0d7f9d5, 0x9e9c5e74767b37d1), cat(0xa29fba913cf46625, 0x7ba67a3fd6e31a08) }, // 381
+ { cat(0x738350ffcd7994aa, 0xe549e529f862930e), cat(0x8219620dca5d1e84, 0x62eb94ffdf1c14d3) }, // 382
+ { cat(0x526bb4cc7bf5baab, 0x08763b765a3751af), cat(0xd0289ce2dd61ca6d, 0x6b1287ffcb602152) }, // 383
+ { cat(0xa8562a3d2ff7c888, 0xd391c92b7b5f748c), cat(0xa686e3e8b11b0857, 0x88db9fffd5e6810e) }, // 384
+ { cat(0xed11bb64265fd3a0, 0xa9416dbc62b2c3a4), cat(0x8538b653c0e26d12, 0xd3e2e66644b8673e) }, // 385
+ { cat(0x7b4f9239d6ffb901, 0x0ecf15fa37846c39), cat(0xd5278a1f9b03e1b7, 0xb96b0a3d3ac0a531) }, // 386
+ { cat(0x95d941c7df32fa67, 0x3f0c1194f936bcfa), cat(0xaa86081948cfe7c6, 0x2def3b642f008427) }, // 387
+ { cat(0x44adce397f5bfb85, 0xcc09a7aa60f8972f), cat(0x886b39add3d98638, 0x24bf62b68c0069b9) }, // 388
+ { cat(0x3aafb05bfef9926f, 0xacdc3f77018dbeb1), cat(0xda4529161fc27059, 0xd4656abdaccd75f5) }, // 389
+ { cat(0x955959e3326141f2, 0xf0b032c59ad7cbc1), cat(0xae9dba78196859e1, 0x76b78897bd712b2a) }, // 390
+ { cat(0x777aae4f5b81018f, 0x26f35bd148aca301), cat(0x8bb161f9aded14b4, 0x5ef93a12fdf42288) }, // 391
+ { cat(0x8bf77d4bc59b35b1, 0xd7ebc61ba77a9e67), cat(0xdf82365c497b5453, 0xcb285ceb2fed040d) }, // 392
+ { cat(0xd65f976fd148f7c1, 0x79896b4952c87eb9), cat(0xb2ce91e36dfc4376, 0x3c204a55bff0d00a) }, // 393
+ { cat(0x451945f30dd3f967, 0x946def6ddbd39894), cat(0x8f0ba7e924c9cf91, 0xc9b36eaafff3d9a2) }, // 394
+ { cat(0x6e8ed651afb98f0c, 0x20afe57c92ec2753), cat(0xe4df730ea142e5b6, 0x0f857dde6652f5d0) }, // 395
+ { cat(0x5872450e262e0c09, 0xb3bfeaca0f2352a9), cat(0xb71928d88102515e, 0x72d1317eb8425e40) }, // 396
+ { cat(0x138e9da4eb5809a1, 0x5c9988a1a5b5dbba), cat(0x927a87139a684118, 0x5bda8dfef9ceb1cd) }, // 397
+ { cat(0x1f4a95d4abc00f68, 0x9428da9c3c562c5d), cat(0xea5da4ec2a406826, 0xf95daffe5c7de948) }, // 398
+ { cat(0x7f6ede43bc99a5ed, 0x4353e21696ab56b1), cat(0xbb7e1d89bb66b9b8, 0xc77e266516cb2106) }, // 399
+ { cat(0x65f24b6963ae1e57, 0x690fe8121222abc1), cat(0x95fe7e07c91efafa, 0x3931b850df08e738) }, // 400
+ { cat(0xa31d45756c49ca25, 0x74e6401ce9d112ce), cat(0xeffd9672db64c4c3, 0x8eb5f3b4980e3ec0) }, // 401
+ { cat(0x1c176ac456a16e84, 0x5d85001721740f0b), cat(0xbffe11f57c509d69, 0x3ef7f62a133e989a) }, // 402
+ { cat(0xb012bbd0454df203, 0x7e0400128129a5a3), cat(0x99980e5dfd0d4aba, 0x98c65e880f6546e1) }, // 403
+ { cat(0x801df94d3bafe99f, 0x3006668401dc3c37), cat(0xf5c016fcc815445d, 0xc13d640ce56ed7cf) }, // 404
+ { cat(0x667e610a9626547f, 0x599eb8699b169693), cat(0xc499abfd6cddd04b, 0x00fde9a3eabf130c) }, // 405
+ { cat(0x51feb408781ea9ff, 0x7ae560547c12120f), cat(0x9d47bccabd7e403c, 0x00cb214feeff4270) }, // 406
+ { cat(0x4ffdecda59caa998, 0xc4a233ba601ce9b2), cat(0xfba5faddfbfd3393, 0x3478354cb1986a4d) }, // 407
+ { cat(0xd997f0aeae3bbae0, 0x9d4e8fc84ce3ee28), cat(0xc951957e6330f60f, 0x5d2cf7708e13883d) }, // 408
+ { cat(0xe1465a25582fc8b3, 0xb10ba639d71cbe86), cat(0xa10e1131e8f3f80c, 0x4a8a5f8d3e760697) }, // 409
+ { cat(0x810514eaacf306f6, 0x273c84fb127d6538), cat(0x80d80dc18729933d, 0x086eb2d7652b3879) }, // 410
+ { cat(0x680821777b1e7189, 0xd860d4c4ea623b8d), cat(0xce267c68d842852e, 0x73e45158a1dec0c2) }, // 411
+ { cat(0x866ce792c8e527a1, 0x79e7109d884e960b), cat(0xa4eb96ba469b9dbe, 0xc31d0de0817f009b) }, // 412
+ { cat(0x9ebd860f071db94d, 0xfb1f407e06a544d5), cat(0x83efabc8387c7e32, 0x35b0d7e6cdff33af) }, // 413
+ { cat(0x312f3ce4d82f8ee3, 0x2b6533fcd76ed488), cat(0xd31912d9f3fa6383, 0x891af30ae331ec4c) }, // 414
+ { cat(0x8dbf63ea468c724f, 0x55ea8ffd792576d3), cat(0xa8e0dbe18ffb82cf, 0xa0e25c08b5c189d6) }, // 415
+ { cat(0xd7cc4fee9ed6c1d9, 0x118873312db79243), cat(0x871a49813ffc68a6, 0x1a4eb006f7ce07de) }, // 416
+ { cat(0xf2e07fe431579c8e, 0x8273eb81e2bf506b), cat(0xd82a0f35332d743c, 0xf6e44cd7f2e33fca) }, // 417
+ { cat(0x5be6ccb68ddfb072, 0x01f656018232a6bc), cat(0xacee7290f5bdf697, 0x2be9d71328b5cca2) }, // 418
+ { cat(0x16523d5ed7e626c1, 0x9b2b780134f55230), cat(0x8a585ba72afe5edf, 0x5654ac0f53c4a3b5) }, // 419
+ { cat(0x56e9fbcaf309d79c, 0x2b78c001ee55504c), cat(0xdd5a2c3eab3097cb, 0xbd54467eec6dd2bb) }, // 420
+ { cat(0x1254c96f28d4ac7c, 0xef93ccce5844403d), cat(0xb114f032228d463c, 0x97769ecbf057dbc9) }, // 421
+ { cat(0x41dd6df2871089fd, 0x8c763d71e03699cb), cat(0x8daa59c1b53dd1ca, 0x12c54bd659dfe307) }, // 422
+ { cat(0x02fbe31da4e7432f, 0x4723958300575c77), cat(0xe2aa2935eec94fa9, 0xb7a212f08fcc9e72) }, // 423
+ { cat(0x35964f4aea529c25, 0xd282de0266ac49f9), cat(0xb554edc4bf0772ee, 0x2c81a8c0730a185b) }, // 424
+ { cat(0xf7ab72a2550ee351, 0x75357e6852236e61), cat(0x9110be36ff3928be, 0x8a0153cd28d4e048) }, // 425
+ { cat(0xbf78b76a21b16bb5, 0x8855970d5038b09b), cat(0xe81ac9f1985b7464, 0x10021faea7bb0074) }, // 426
+ { cat(0x32c6f921b48defc4, 0x6d1145a4402d5a16), cat(0xb9af07f479e2c383, 0x4001b2f21fc8cd2a) }, // 427
+ { cat(0xc238c74e2a0b2636, 0xbda76ae9ccf114de), cat(0x948c065d2e4f02cf, 0x6667c25b4ca0a421) }, // 428
+ { cat(0x9d27a549dcdea38a, 0xc90bde42e181bafd), cat(0xedacd6fb7d4b37b2, 0x3d72d092143439cf) }, // 429
+ { cat(0x1752eaa17d7ee93b, 0xd4097e9be79afbfe), cat(0xbe23df2f976f5fc1, 0xcac24074dcf694a6) }, // 430
+ { cat(0xdf7588813132542f, 0xdcd4654986159665), cat(0x981cb28c7925e634, 0xa235005d7d921084) }, // 431
+ { cat(0x6588da684eb6ed19, 0x6153d54270228a3a), cat(0xf3611dad8ea309ed, 0xd054cd6262834da1) }, // 432
+ { cat(0x513a4853722bf0e1, 0x1aa9776859b53b62), cat(0xc2b417be0bb5a18b, 0x0d10a44eb535d7b4) }, // 433
+ { cat(0x742ea042c1bcc0b4, 0x15545f86ae2a95e8), cat(0x9bc34631a2f7b46f, 0x3da6e9d890f7dfc3) }, // 434
+ { cat(0x204a9a04692e0120, 0x222098d77d10efd9), cat(0xf938704f6b25ed7e, 0xc90b0fc0e7f2ff9f) }, // 435
+ { cat(0x4d087b36ba8b3419, 0xb4e6e0ac640d8cae), cat(0xc76059d92284bdff, 0x073c0c9a5328cc7f) }, // 436
+ { cat(0xa406c8f8953c29ae, 0x2a524d56b6713d58), cat(0x9f8047e0e86a3198, 0xd296707b75ba3d32) }, // 437
+ { cat(0x0671418dbb9375e3, 0x76ea15578a4ec88c), cat(0xff33a634a7104f5a, 0xea8a4d9255f6c851) }, // 438
+ { cat(0x6b8dce0afc75f7e9, 0x2bee77793b723a0a), cat(0xcc2951c3b8d9d915, 0x886ea475119239da) }, // 439
+ { cat(0x560b0b3bfd2b2cba, 0x898b92c762c1c808), cat(0xa354416960ae4744, 0x6d25505da7a82e48) }, // 440
+ { cat(0xab3c08fcca88f095, 0x3ad60f05e89b066d), cat(0x82a9cdede6f1d29d, 0x241dd9e486202506) }, // 441
+ { cat(0xdec674c7aa74b421, 0xf7bce4d640f80a48), cat(0xd10fafe30b1c842e, 0xa02fc3073d003b3d) }, // 442
+ { cat(0x189ec3d2eec3c34e, 0x5fca50ab672cd506), cat(0xa73fbfe8d5b069be, 0xe68c9c05ca6695cb) }, // 443
+ { cat(0x46e569758bcfcf71, 0xe63b73bc528a4405), cat(0x85cc99871159ee32, 0x520a166b0852116f) }, // 444
+ { cat(0x3e3bdbef46194be9, 0x705f1f93b743a008), cat(0xd61428d81bc316b6, 0xe9a9bd780d501be5) }, // 445
+ { cat(0xfe96498c38143cba, 0xc04c1942f902e66d), cat(0xab4353e01635abc5, 0x87bafdf9a4401650) }, // 446
+ { cat(0x98783ad6934363c8, 0x99d67a9bfa68b857), cat(0x8902a98011c4896a, 0xd2fbfe615033450d) }, // 447
+ { cat(0x2726c48a85389fa7, 0x5c8a5dc65d745a25), cat(0xdb377599b6074244, 0x84c663cee6b86e7c) }, // 448
+ { cat(0x1f5236d537607fb9, 0x16d517d1e45d14ea), cat(0xaf5f9147c4d29b6a, 0x03d1e972522d2530) }, // 449
+ { cat(0x4c41c5775f80662d, 0xabddaca7e9e410bc), cat(0x8c4c74396a4215ee, 0x6974bac1db5750f3) }, // 450
+ { cat(0xe0693bf2326709e2, 0xac95e10ca96ce792), cat(0xe07a538f1069bcb0, 0xa8bac4695ef21b1e) }, // 451
+ { cat(0xb387632828526e4e, 0xf077e73d54571fa8), cat(0xb3950fa5a6bafd5a, 0x209569ede58e7c18) }, // 452
+ { cat(0x8f9f828686a8583f, 0x26c6529776ac1954), cat(0x8faa72eaebc8caae, 0x807787f18471fce0) }, // 453
+ { cat(0x7f659da40aa6f398, 0x3e0a1dbf24468eec), cat(0xe5dd84ab12dadde4, 0x00bf3fe8d3e9949a) }, // 454
+ { cat(0x65eae4833bb8c2e0, 0x31a1b165b69ed8bd), cat(0xb7e46a22757be4b6, 0x66ff6653dcbadd48) }, // 455
+ { cat(0xeb225068fc93cf19, 0xc14e27849218ad64), cat(0x931d21b52ac983c5, 0x1f32b84316fbe439) }, // 456
+ { cat(0x11d080a7fa861829, 0x3549d8d41cf4489f), cat(0xeb61cf8844759fa1, 0xcb845a04f19306c3) }, // 457
+ { cat(0x74a6cd532ed1aced, 0xc43b13dce3f6a080), cat(0xbc4e3fa036c47fb4, 0xa2d04803f4759f02) }, // 458
+ { cat(0xc3b8a4428bdaf0be, 0x3695a97d832bb399), cat(0x96a4ffb35f03995d, 0x4f0d0669905e18ce) }, // 459
+ { cat(0x05f43a0412f7e796, 0xbdbc42626b791f5c), cat(0xf107ff8564d28efb, 0xb1ae70a8e6fcf47e) }, // 460
+ { cat(0x9e5cfb3675931fab, 0xcafd01e855fa7f7d), cat(0xc0d332d11d753f2f, 0xc1585a20b8ca5d31) }, // 461
+ { cat(0xb1e3fc2b91427fbc, 0xa2640186ab2ecc64), cat(0x9a428f0db12a98f3, 0x01137b4d60a1e427) }, // 462
+ { cat(0x83066045b53732c7, 0x6a399c0aab7e13d2), cat(0xf6d0e4e2b510f4b8, 0x01b8c5489a9ca03f) }, // 463
+ { cat(0x68d1e69e2a928f05, 0xee947cd555fe7642), cat(0xc573ea4ef740c3c6, 0x67c7043a154a19cc) }, // 464
+ { cat(0x20a7ebb1bba8726b, 0x2543971111985e9b), cat(0x9df6550bf9009c9e, 0xb96c0361aaa1ae3d) }, // 465
+ { cat(0xcdd9791c5f73ea45, 0x086c24e81c26fdc5), cat(0xfcbd54dff4cdc764, 0x5be005691102b061) }, // 466
+ { cat(0x0b1460e37f8fee9d, 0xa05683ece352649e), cat(0xca3110b32a3e391d, 0x164cd120da688d1b) }, // 467
+ { cat(0x08dd1a4f993ff217, 0xb378698a4f751d4b), cat(0xa1c0da28ee982db0, 0xdea3da80aeba0a7c) }, // 468
+ { cat(0xa0b0e1d947665b46, 0x292d213b72c4176f), cat(0x816714ed8bacf15a, 0x4bb64866f22e6ec9) }, // 469
+ { cat(0x9ab49c8ed8a3c53d, 0x0eae9b925139bf18), cat(0xcf0b54af45e1822a, 0x12bd40a4b6b0b142) }, // 470
+ { cat(0xaef6e3a57a1c9dca, 0x72254941da9498e0), cat(0xa5a2aa25d18134ee, 0x756433b6f88d5a9b) }, // 471
+ { cat(0x58c582eac816e4a1, 0xf4eaa1017baa13e7), cat(0x848221b7dacdc3f1, 0xf7835c9260711549) }, // 472
+ { cat(0x27a26b114024a103, 0x217768025f76863e), cat(0xd40369262ae2d31c, 0xbf38941d671b5542) }, // 473
+ { cat(0x1fb52274335080cf, 0x4df92001e5f86b65), cat(0xa99c541e88b575b0, 0x98fa101785af7768) }, // 474
+ { cat(0xe62a81f68f739a3f, 0x7194199b1e6055ea), cat(0x87b0434ba0912af3, 0xad94d9ac6af2c5ec) }, // 475
+ { cat(0xd6aa698a7f1f5d32, 0x4f535c2b63cd5643), cat(0xd91a0545cdb51185, 0xe287c2ad77ead647) }, // 476
+ { cat(0xdeeebad5327f7dc1, 0xd90f7cef830aab69), cat(0xadae6a9e3e2a746b, 0x1b9fcef12cbbde9f) }, // 477
+ { cat(0x18befbddc1ff97ce, 0x473f9726026eef87), cat(0x8af1eee4fe885d22, 0x7c7fd8c0f0964bb3) }, // 478
+ { cat(0x2797f962cfff594a, 0x0b98f1d66a4b18d8), cat(0xde4fe4a197409503, 0xfa66279b1a8a12b8) }, // 479
+ { cat(0x52dffab57332add4, 0xd613f4ab883c13e0), cat(0xb1d983b479007736, 0x61eb52e27ba1a893) }, // 480
+ { cat(0xa8b32ef78f5bbe43, 0xde765d560696764d), cat(0x8e479c9060cd2c2b, 0x81890f1b961aed42) }, // 481
+ { cat(0xdab84b25b22c639f, 0xca56fbbcd75723ae), cat(0xe3a5c74d67aead12, 0x68db4b5f56917b9d) }, // 482
+ { cat(0xaef9d5b7c1bd1c7f, 0xd51262fd791282f2), cat(0xb61e390ab9588a75, 0x20af6f7f787462e4) }, // 483
+ { cat(0xbf2e4493016416cc, 0xaa751bfdfa75358f), cat(0x91b1c73bc77a085d, 0xb3bf8c65f9f6b583) }, // 484
+ { cat(0x31e3a0eb356cf147, 0x7721c6632a55227d), cat(0xe91c71f93f29a6fc, 0x52cc13d65cbdef39) }, // 485
+ { cat(0xf4b61a55c457276c, 0x5f4e384f5510e864), cat(0xba7d27fa98ee1f30, 0x423cdcab7d64bf60) }, // 486
+ { cat(0x2a2b48449d1285f0, 0x4c3e9372aa73ed1d), cat(0x9530ecc87a5818f3, 0x6830b089311d65e7) }, // 487
+ { cat(0x437873a0fb50d64d, 0x46ca858443ecae95), cat(0xeeb4ae0d908cf4b8, 0xa6b44da84e956fd8) }, // 488
+ { cat(0xcf938fb3fc40ab71, 0x056ed1369cbd5877), cat(0xbef6f1a473a3f6fa, 0x1ef6a486a5445979) }, // 489
+ { cat(0x3fa93fc33033bc5a, 0x6abf0dc54a311393), cat(0x98c58e1d294ff8c8, 0x18c5506bb769e12e) }, // 490
+ { cat(0x65db99384d1f93c3, 0xddfe7c6edd1b5284), cat(0xf46f49c842198e0c, 0xf46ee712bf0fceb0) }, // 491
+ { cat(0x84afadc6a4194303, 0x17fec9f24a7c4203), cat(0xc38c3b069b47a4d7, 0x29f2527565a63ef3) }, // 492
+ { cat(0x9d5957d21ce10268, 0xdfff07f508636803), cat(0x9c702f387c3950ac, 0x218ea85deaeb658f) }, // 493
+ { cat(0xc88ef2e9c7ce6a41, 0x6664d9880d6bd99e), cat(0xfa4d185a605bb446, 0x9c1773c977df08e5) }, // 494
+ { cat(0x3a0bf587d30b8834, 0x51ea47a00abcae18), cat(0xc83dad1519e2f69e, 0xe345f63ac64c071e) }, // 495
+ { cat(0xfb3cc46ca8d60690, 0x4188394cd563be7a), cat(0xa031574414b59218, 0xb5d191c89ea338e4) }, // 496
+ { cat(0xc8fd69f087119ed9, 0xce06943d7782fec8), cat(0x8027790343c474e0, 0x917474a07ee8fa50) }, // 497
+ { cat(0xa7fbdcb40b4f648f, 0xb00a86c8bf37fe0c), cat(0xcd0bf4d206072167, 0x4f20ba9a64a7f6e7) }, // 498
+ { cat(0xb9964a29a2a5ea0c, 0x8cd538a098f9980a), cat(0xa40990a804d2811f, 0x7280954850865f1f) }, // 499
+ { cat(0x2e11d4ee1bb7ee70, 0x70aa93b3ad9479a2), cat(0x833ada2003db9a7f, 0x8ecd4439da0518e6) }, // 500
+ { cat(0xe34fbb1692bfe3e7, 0x1aaa85ec48ed8f69), cat(0xd1f7c3666c9290cc, 0x17aed38fc33b5b09) }, // 501
+ { cat(0xb5d9627875664fec, 0x155537f03a57a5ed), cat(0xa7f9691ebd420d70, 0x12f242d968fc48d4) }, // 502
+ { cat(0xc4ade8605deb7323, 0x44442cc02eac84be), cat(0x866120e56434d78c, 0xdbf5024787303a43) }, // 503
+ { cat(0xa116409a2fdf1e9e, 0xd3a04799e4473ac9), cat(0xd701ce3bd387bf47, 0xc654d07271e6c39f) }, // 504
+ { cat(0x80de9a14f318e54b, 0xdc803947e9d2956e), cat(0xac0171c97606329f, 0xd1dd738ec185694c) }, // 505
+ { cat(0x9a4bae7728e0b76f, 0xe399c76cbb0eddf2), cat(0x899ac16df804f54c, 0xa7e45c72346abaa3) }, // 506
+ { cat(0x5d45e3f1db01257f, 0xd28fa57ac4e4964f), cat(0xdc2acf1659a1887a, 0xa63a2d8387112a9f) }, // 507
+ { cat(0xe437e98e48cdb799, 0x753fb7956a50783f), cat(0xb0223f45148139fb, 0xb82e8acf9f40eee5) }, // 508
+ { cat(0xe9c65471d3d7c614, 0x5dcc92ddeea6c699), cat(0x8ce8329daa00fb2f, 0xc68ba23fb29a58b7) }, // 509
+ { cat(0xa93d53e952f2d686, 0xfc7a84964aa470f5), cat(0xe173842f7667f84c, 0x70df69ff842a278c) }, // 510
+ { cat(0x20fddcbaa8c24538, 0xc9fb9d4508838d91), cat(0xb45c69bf91ecc6a3, 0x8d7f87ff9cee860a) }, // 511
+ { cat(0xe7317d62209b6a93, 0xd4c94a9da0693e0d), cat(0x9049ee32db23d21c, 0x7132d332e3f204d4) }, // 512
+ { cat(0x0b8262369a92441f, 0xbadbaa95cd753015), cat(0xe6dcb0515e9fb693, 0xe85151eb065007bb) }, // 513
+ { cat(0x6f9b81c54875034c, 0x957c8877d790f344), cat(0xb8b08d0de54c920f, 0xed0ddb226b733962) }, // 514
+ { cat(0x5949349dd390cf70, 0x7796d39312da5c37), cat(0x93c070d7eaa3a80c, 0xbda4af4ebc5c2de8) }, // 515
+ { cat(0x287520fc85b47f1a, 0x58f15284eaf6f9f1), cat(0xec671af31105d9ad, 0xfc3ab21793c6afda) }, // 516
+ { cat(0x5390e7306af6cc15, 0x13f44203ef2bfb27), cat(0xbd1f48c27404ae24, 0xc9c88e794305597b) }, // 517
+ { cat(0x760d85c055923cdd, 0xa99034cff28995b9), cat(0x974c3a35299d581d, 0x6e3a0b94359de12f) }, // 518
+ { cat(0xf015a2cd55b6c7c9, 0x0f4d214cb7428928), cat(0xf21390550f622695, 0x7d29ac2055c9684b) }, // 519
+ { cat(0xc0114f0aaaf89fd4, 0x0c3db43d5f686dba), cat(0xc1a940440c4e8544, 0x6421568044a1203c) }, // 520
+ { cat(0x000dd8d55593b310, 0x09caf6977f86be2e), cat(0x9aedcd033d0b9dd0, 0x501aab99d080e697) }, // 521
+ { cat(0xcce2f48888ec51b3, 0x42de5758cc0ac9e3), cat(0xf7e2e19ec812961a, 0x19c445c2e734a424) }, // 522
+ { cat(0x3d825d3a0723748f, 0x68b1df7a3cd56e4f), cat(0xc64f1ae56cdbab48, 0x149d049bec2a1cea) }, // 523
+ { cat(0x979b7dc805b5f6d9, 0x208e4c61ca445840), cat(0x9ea5af1df0afbc39, 0xaa1736e32354e3ee) }, // 524
+ { cat(0xf29262d9a2bcbe28, 0x3416e09c76d3c066), cat(0xfdd5e4fcb44c605c, 0x435857d1d2216cb0) }, // 525
+ { cat(0x28751be14efd64ec, 0xf678b3b05f0fcd1e), cat(0xcb1183fd5d09e6b0, 0x35e0464174e78a27) }, // 526
+ { cat(0x86c4164dd8cab723, 0xf8608fc04c0ca418), cat(0xa27469977da18559, 0xc4b36b6790b93b52) }, // 527
+ { cat(0x0569ab717a3bc5b6, 0x604d3fcd09a3b67a), cat(0x81f6badf97b46aae, 0x36f5ef860d60fc42) }, // 528
+ { cat(0x6f0f78b5905fa2bd, 0x66e1ffae75d2bd8f), cat(0xcff12aff5920aab0, 0x57efe5a3489b2d36) }, // 529
+ { cat(0x25a5fa2ad9e61bca, 0xb8b4cc8b91756473), cat(0xa65a88cc474d5559, 0xdff31e1c3a15bdc5) }, // 530
+ { cat(0xb7b7fb557b1e7ca2, 0x2d5d706fa7911d29), cat(0x85153a3d05d7777b, 0x198f4b49c811649d) }, // 531
+ { cat(0x25f32bbbf830c769, 0xe22f1a4c3f4e950e), cat(0xd4eec394d6258bf8, 0x28e54542d9b56dc9) }, // 532
+ { cat(0x84c289632cf3d2bb, 0x1b58e1d6990baa72), cat(0xaa589c7711b7a32c, 0xed843768ae2abe3a) }, // 533
+ { cat(0x03ced44f57297562, 0x7c471b1214095528), cat(0x8846e3927492e8f0, 0xbe035f86f1bbcb62) }, // 534
+ { cat(0x6c7e207ef1dbef03, 0xfa0b5e83534221d9), cat(0xda0b05b720eb0e4d, 0xfcd2327182c61236) }, // 535
+ { cat(0x56cb4d325b1658cf, 0xfb3c4b9c429b4e47), cat(0xae6f37c5b3ef3ea4, 0xca41c1f4689e74f8) }, // 536
+ { cat(0x123c3dc1e278470c, 0xc8fd0949cee2a506), cat(0x8b8c2c9e298c321d, 0x6e9b019053b1f72d) }, // 537
+ { cat(0xe9f9fc696a5a0b47, 0xa7fb420fb16aa1a3), cat(0xdf46adc9dc138362, 0x4a919c1a1f832514) }, // 538
+ { cat(0xbb2e638788480906, 0x1ffc34d95abbb482), cat(0xb29ef16e49a935e8, 0x3ba7b014e6028410) }, // 539
+ { cat(0x628b82d2d36cd404, 0xe6635d7aaefc9068), cat(0x8ee58df1d4875e53, 0x62ec8cdd84ced00d) }, // 540
+ { cat(0x37459e1e1f14866e, 0x3d6bc8c44b2db3da), cat(0xe4a27cb620d896eb, 0xd17a7afc07b14ce2) }, // 541
+ { cat(0x2c37b1b1b276d1f1, 0xcabca09d08f15cae), cat(0xb6e863c4e713abef, 0xdac86263395aa3e8) }, // 542
+ { cat(0xf02c8e27c1f8a7f4, 0xa230807da0c116f2), cat(0x92538303ec0fbcbf, 0xe239e84f61154fec) }, // 543
+ { cat(0x804749d9365aa654, 0x36b400c90134f183), cat(0xea1f3806467f9466, 0x36c30d4bce887fe1) }, // 544
+ { cat(0x669f6e475eaeeb76, 0x92299a3a675d8e02), cat(0xbb4c2cd1d1ffa9eb, 0x5f0271097206ccb4) }, // 545
+ { cat(0xebb2be9f7ef255f8, 0x74ee14fb85e4719c), cat(0x95d68a4174cc87ef, 0x7f35273ac19f0a29) }, // 546
+ { cat(0x791dfdcbfe50898d, 0x87e354c5a3071c2c), cat(0xefbdaa02547a7318, 0xcb883ec468fe76a9) }, // 547
+ { cat(0xfa7e64a331da07a4, 0x6cb5dd6ae8d27cf0), cat(0xbfcaee68439528e0, 0xa2d36569ed985eed) }, // 548
+ { cat(0xfb9850828e48061d, 0x23c4b12253db9726), cat(0x996f25203610ed80, 0x8242b787f146b257) }, // 549
+ { cat(0x5f5a1a6a7d4009c8, 0x393ab503b95f583d), cat(0xf57ea1cd234e48cd, 0x9d378c0cb53dea26) }, // 550
+ { cat(0x4c481521fdccd4a0, 0x2dc890cfc77f79cb), cat(0xc4654e3db5d83a3e, 0x175fa33d5dcb21b8) }, // 551
+ { cat(0xa36cddb4cb0a43b3, 0x57d3a70c9f992e3c), cat(0x9d1dd8315e4694fe, 0x79194f644b08e7c6) }, // 552
+ { cat(0x6be162bade76d2b8, 0x8c85d814328eb05f), cat(0xfb62f3823070ee63, 0xf4f54bd3ab4172d7) }, // 553
+ { cat(0x89811bc8b1f8a893, 0xa39e46768ed88d19), cat(0xc91bf601c05a584f, 0xf72aa30fbc345bdf) }, // 554
+ { cat(0x6e00e306f4c6ed42, 0xe94b6b920be070e1), cat(0xa0e32b3499e1e03f, 0xf8eee8d9635d164c) }, // 555
+ { cat(0xf19a4f38c3d25768, 0xbaa2bc74d64d271b), cat(0x80b5bc2a14b4b366, 0x60bf20ade9174509) }, // 556
+ { cat(0x1c2a185ad2ea2574, 0x5dd12d87bd483e91), cat(0xcdef937687878570, 0x9acb677ca8253b43) }, // 557
+ { cat(0x49bb46af0f21b790, 0x4b0dbe0631069874), cat(0xa4bfa92b9f9f9df3, 0xaf091f96ecea95cf) }, // 558
+ { cat(0x07c90558d8e7c60d, 0x08d7cb38273879f6), cat(0x83cc8756194c7e5c, 0x8c074c78bd8877d9) }, // 559
+ { cat(0x72db3bc15b0c7014, 0xdaf2dec03ec0c323), cat(0xd2e0d889c213fd60, 0xe00bad8dfc0d8c8e) }, // 560
+ { cat(0x5be2963448d6c010, 0xaf28b23365670283), cat(0xa8b3e06e34dccab3, 0xe66fbe0b300ad6d8) }, // 561
+ { cat(0x7cb544f6a0abccda, 0x25ba28291dec0202), cat(0x86f64d24f717088f, 0xeb8c9808f33bdf13) }, // 562
+ { cat(0x94553b2434461490, 0x3c5d0d0e9646699d), cat(0xd7f07b6e5824da7f, 0xdf4759a7eb92fe85) }, // 563
+ { cat(0x76aa95b690381073, 0x637da40bab6b87b1), cat(0xacc062beacea4866, 0x4c391486560f3204) }, // 564
+ { cat(0x9222115ed9c6738f, 0x82cae9a2ef89395b), cat(0x8a33823223eea051, 0xd694106b780c2803) }, // 565
+ { cat(0xb69ce897c2d71f4c, 0x0477dc37e5a85bc4), cat(0xdd1f36b69fe433b6, 0x24201a458ce04005) }, // 566
+ { cat(0xc54a53ac9bdf4c3c, 0xd05fe35feaed1636), cat(0xb0e5c55ee650295e, 0x834ce1d13d803337) }, // 567
+ { cat(0x376ea956e31909ca, 0x404cb5e6558a782c), cat(0x8d849de5850cede5, 0x35d71b0dcaccf5c6) }, // 568
+ { cat(0x8be442249e8e7610, 0x66e1230a227726ac), cat(0xe26dc96f3b47e308, 0x5624f8161147efa3) }, // 569
+ { cat(0xa31d01b6e53ec4d9, 0xebe74f3b4ec5b889), cat(0xb524a125c9064f39, 0xde83f9ab4106594f) }, // 570
+ { cat(0x827d9af8b7656a47, 0xefec3f62a56afa08), cat(0x90ea1a84a0d1d8fb, 0x1869948900d1e10c) }, // 571
+ { cat(0x03fc2b278bd576d9, 0x7fe0656aa244c33f), cat(0xe7dcf73a9ae95b2b, 0x5a4287419ae96814) }, // 572
+ { cat(0x366355b93caac57a, 0xccb384554e9d68ff), cat(0xb97d929548baaf55, 0xe1ced29ae2545343) }, // 573
+ { cat(0x91e91160fd556ac8, 0xa3c2d0443ee45400), cat(0x946475443a2ef2ab, 0x1b0bdbaf1b76a902) }, // 574
+ { cat(0xb641b567fbbbde0d, 0xd2d14d39fe3a1fff), cat(0xed6d886d29e4b778, 0x2b462c4b5f24419d) }, // 575
+ { cat(0xf834911ffc964b3e, 0x42410a94cb61b333), cat(0xbdf139f0ee5092c6, 0x8904f03c4c1d014a) }, // 576
+ { cat(0xc690741996dea298, 0x3500d543d5e7c28f), cat(0x97f42e5a5840756b, 0xa0d0c0303ce40108) }, // 577
+ { cat(0x70e72028f1643759, 0xee67bb9fbca60418), cat(0xf3204a2a26cd88ac, 0x34813380616cce74) }, // 578
+ { cat(0x8d85b353f4502c47, 0xf1ec961963b80346), cat(0xc2803b54ebd7a089, 0xc39a8f99e78a3ec3) }, // 579
+ { cat(0xd79e290ff6a689d3, 0x27f078144fc66905), cat(0x9b99c910bcac806e, 0x36153fae52d4ff02) }, // 580
+ { cat(0xf296a8198aa40fb8, 0x3fe72686e60a41a1), cat(0xf8f60e812de0cd7d, 0x235532b08487fe6a) }, // 581
+ { cat(0xf5455347a21cd960, 0x331f520584d5014e), cat(0xc72b3ecdbe4d7130, 0xe910f55a039ffebb) }, // 582
+ { cat(0xf76aa9061b4a4780, 0x28e5db379d77343f), cat(0x9f55cbd7cb71275a, 0x540d9114cfb3322f) }, // 583
+ { cat(0xbf110e702baa0c00, 0x416fc525c8beb9fd), cat(0xfeefac8c78b50bc3, 0xb9af4e87b2b8504c) }, // 584
+ { cat(0xff40d859bc880999, 0xcdf3041e3a322e64), cat(0xcbf2f0706090d636, 0x2e25d86c8ef9d9d6) }, // 585
+ { cat(0xff67137afd39a147, 0xd7f59ce4fb5b5850), cat(0xa328c059e6da44f8, 0x24eb138a0bfb14ab) }, // 586
+ { cat(0xff85a92f30fae76c, 0xacc47d83fc491374), cat(0x82870047ebe1d0c6, 0x83ef42d4d66276ef) }, // 587
+ { cat(0xff3c41e51b2b0be1, 0x146d959ffa0e8586), cat(0xd0d800731302e7a4, 0x064b9e215703f17f) }, // 588
+ { cat(0xcc3034b748ef3cb4, 0x1057aae661a5379e), cat(0xa713338f4268b950, 0x05094b4ddf365acc) }, // 589
+ { cat(0x3cf35d5f6d8c3090, 0x0d12ef1eb4842c7f), cat(0x85a8f60c35209440, 0x04076f717f5eaf0a) }, // 590
+ { cat(0x94b895657c1380e6, 0x7b517e978739e0ca), cat(0xd5db2346bb675399, 0xa00be58265644b43) }, // 591
+ { cat(0x43c6ddeac9a933eb, 0x95dacbac6c2e4d6f), cat(0xab15b5d22f85dc7a, 0xe66feaceb7836f69) }, // 592
+ { cat(0x03057e556e20f656, 0x117bd62389bea459), cat(0x88de2b0e8c6b16c8, 0xb85988a55f9c5921) }, // 593
+ { cat(0x9e6f3088b034bd56, 0x825fbd05a93106f4), cat(0xdafd11b0e0ab57a7, 0x8d5c0dd565c6f501) }, // 594
+ { cat(0x1858f3a08cf6fdde, 0xceb2fd9e20f40590), cat(0xaf30daf3e6ef7952, 0xd77cd7ddeb0590ce) }, // 595
+ { cat(0xe047294d3d9264b2, 0x3ef597b1b3f66ada), cat(0x8c27158febf2c775, 0x7930acb188d140a4) }, // 596
+ { cat(0x9a0b75486283d450, 0x64bc25e91ff0aaf6), cat(0xe03e88e646513f22, 0x5b81144f414ecdd4) }, // 597
+ { cat(0xae6f9106b5364373, 0x83c9b7edb326ef2b), cat(0xb3653a51d1da98e8, 0x4934103f67723e43) }, // 598
+ { cat(0x8b8c74055dc502c2, 0xcfd493248f5258ef), cat(0x8f842ea7db154720, 0x3a900cff85f4fe9c) }, // 599
+ { cat(0x127a533bc93b379e, 0x19541ea0e5508e4b), cat(0xe5a04aa62b553e99, 0xf74ce198d654ca94) }, // 600
+ { cat(0x0ec842963a95c618, 0x14434bb3eaa6d83c), cat(0xb7b36eeb55ddcbae, 0x5f70b47a4510a210) }, // 601
+ { cat(0xa56d0211c877d1ac, 0xdd02a2f655524697), cat(0x92f5f255de4b0958, 0x4c5a29fb6a73b4d9) }, // 602
+ { cat(0xd57b3682da594f7a, 0xfb376b23bbb6d758), cat(0xeb231d5630780ef3, 0xad5d0ff8aa52baf5) }, // 603
+ { cat(0x44629202484772c8, 0xc8f92282fc9245e0), cat(0xbc1c177826c6725c, 0x8ab0d993bb75625e) }, // 604
+ { cat(0x36b5419b6d05f56d, 0x6d941b9bfd41d180), cat(0x967cdf9352385b7d, 0x3bc0ae0fc92ab518) }, // 605
+ { cat(0xf1220292480988af, 0x15b9c5c66202e8cc), cat(0xf0c7cc1ee9f3c595, 0x2c677ce60eaabb59) }, // 606
+ { cat(0x8db4cedb6cd46d58, 0xde2e37d1e80253d7), cat(0xc09fd67f218fd144, 0x2385fd84d88895e1) }, // 607
+ { cat(0xa490a57c5710577a, 0x4b582ca7eccea979), cat(0x9a197865b4730dd0, 0x1c6b313713a077e7) }, // 608
+ { cat(0x6db43bfa24e6f25d, 0x4559e10cae17758e), cat(0xf68f270920b81619, 0xc711e8581f67263f) }, // 609
+ { cat(0x24902ffb50b8c1e4, 0x377b1a708b45f7a5), cat(0xc53f526db3c67814, 0x9f4186ace5ec1e99) }, // 610
+ { cat(0xea0cf32f73c70183, 0x5f95aec06f6b2c84), cat(0x9dcc41f15c9ec676, 0xe5ce05571e567ee0) }, // 611
+ { cat(0x1014b84bec719c05, 0x65bc4acd7f11e0d3), cat(0xfc7a031bc76470be, 0x3c7cd558308a649b) }, // 612
+ { cat(0xd9aa2d0989f47cd1, 0x1e303bd798db1a42), cat(0xc9fb35afd2b6c098, 0x3063dde026d51d48) }, // 613
+ { cat(0xae21bda13b29fd74, 0x1826964613e27b68), cat(0xa195c48ca89233ac, 0xf38317e685774aa0) }, // 614
+ { cat(0x581afe1a95bb3129, 0xacebab6b431b95ed), cat(0x81449d3d53a82957, 0x2935acb86ac5d54d) }, // 615
+ { cat(0xc02b302a892b81dc, 0x47df78ab9e92897b), cat(0xced42ec885d9dbbe, 0xa855e127113c887b) }, // 616
+ { cat(0x6688f3553a8934b0, 0x397f93bc7edba12f), cat(0xa5768bd39e47e2fe, 0xed1180ec0dca06c9) }, // 617
+ { cat(0xeba0c2aa953a908c, 0xfacc7630657c80f3), cat(0x845ed642e5064f32, 0x574133f00b08056d) }, // 618
+ { cat(0x129ad110eec41a7b, 0x2ae0bd1a3bfa67ea), cat(0xd3caf06b080a1850, 0x8b9b864cde733be3) }, // 619
+ { cat(0x4215740d8bd0152f, 0x558097482ffb8655), cat(0xa96f26bc066e79da, 0x0949383d7ec2964f) }, // 620
+ { cat(0x681129a46fd9aa8c, 0x4466df6cf32f9eab), cat(0x878c1efcd1f1fb14, 0xd43a93646568783f) }, // 621
+ { cat(0x734ea907195c4413, 0xa0a498ae51e5caaa), cat(0xd8e03194831cc4ee, 0x205db8a0a240c065) }, // 622
+ { cat(0xc2a55405ade369a9, 0x4d507a250e516eef), cat(0xad8027aa027d6a58, 0x19e493b3b50099ea) }, // 623
+ { cat(0x021ddcd157e92154, 0x3dd9fb50d841258c), cat(0x8accec8801fdeeac, 0xe183a95c90cd47ef) }, // 624
+ { cat(0x69c9614ef30e9bb9, 0xfc8ff8815a01d5ad), cat(0xde14ada669964aae, 0x359f7560e7aed97e) }, // 625
+ { cat(0xee3ab43f28d87c94, 0xca0cc6cde19b1157), cat(0xb1aa24852145088b, 0x5e192ab3ec8be131) }, // 626
+ { cat(0xf1c89032871396dd, 0x6e709f0b1ae27446), cat(0x8e21b6d0e76a6d3c, 0x4b47555cbd3cb427) }, // 627
+ { cat(0xb60db3840b528afb, 0xe3e764de916a53a2), cat(0xe36924817243e1fa, 0x120bbbc7952ded0c) }, // 628
+ { cat(0x5e715c69a2a86f2f, 0xe985ea4ba78842e8), cat(0xb5edb6cdf5031b2e, 0x74d62fd2ddbe573d) }, // 629
+ { cat(0xe5277d214eed25bf, 0xee04bb6fb939cf20), cat(0x918af8a4c4027c25, 0x2a44f30f17cb78fd) }, // 630
+ { cat(0x083f2e9bb17b6f99, 0x7cd45f19285c7e9a), cat(0xe8de5aa1399d936e, 0xaa07eb4b59458e63) }, // 631
+ { cat(0xa0328bafc12f8c7a, 0xca437f47537d3215), cat(0xba4b7bb42e17a925, 0x54d322a2add13eb5) }, // 632
+ { cat(0x80286fbfcdbfa395, 0x6e9c65d2a930f4de), cat(0x95092fc35812edb7, 0x770f4ee88b0dcbc4) }, // 633
+ { cat(0x66a71932e2cc38ef, 0x1760a2eaa84e5495), cat(0xee7519388ceb15f2, 0x58187e40de7c793a) }, // 634
+ { cat(0x1eec1428b5702d8c, 0x12b3b58886a51078), cat(0xbec4142d3d88de5b, 0x79ad31cd7ec9fa95) }, // 635
+ { cat(0x18bcdced5df357a3, 0x42295e06d21da6c6), cat(0x989cdcf0fe071849, 0x2e2427d798a19544) }, // 636
+ { cat(0x5ac7c7e22febbf6b, 0x9d0efcd7b695d7a3), cat(0xf42e2e4e633e8d41, 0xe36d0c8c2768eed3) }, // 637
+ { cat(0x156c9fe8265632bc, 0x7da59712f877dfb6), cat(0xc358250b82987101, 0x82bda3a352ba58a9) }, // 638
+ { cat(0xaabd4cb9b844f563, 0x97b7ac0f2d2cb2f8), cat(0x9c4684093546c0ce, 0x02314fb5dbc846ed) }, // 639
+ { cat(0x112ee12926d4bbd2, 0x8c59134b7b7ab7f3), cat(0xfa0a6cdb8871347c, 0xd04ee5efc60d3e49) }, // 640
+ { cat(0xa758b420ebdd630e, 0xd6ada9092f955ff6), cat(0xc808571606c0f6ca, 0x403f1e596b3dcb6d) }, // 641
+ { cat(0xb913c34d897de8d8, 0xabbe20d426111991), cat(0xa006ac119f00c56e, 0x99cc184788fe3c57) }, // 642
+ { cat(0x940fcf713acb20ad, 0x5631b3dceb40e141), cat(0x800556747f33d125, 0x47d679d2d3fe96ac) }, // 643
+ { cat(0x20194be85e11cde2, 0x2382b9617867cece), cat(0xccd55720cb861b6e, 0xd95729515330f114) }, // 644
+ { cat(0x80143cb9e4db0b1b, 0x4f9bc7812d1fd8a5), cat(0xa3dddf4d6f9e7c58, 0xaddf54410f5a5a76) }, // 645
+ { cat(0xccdcfd6183e26f49, 0x0c7c9f9a8a7fe084), cat(0x8317e5d78c7ec9e0, 0x8b1910340c48485e) }, // 646
+ { cat(0xe1619568d303e541, 0xad943290dd99673a), cat(0xd1bfd625ad97a967, 0x44f4e6b9ad4073ca) }, // 647
+ { cat(0x1ab477870f365101, 0x57a9c20d7e145295), cat(0xa7ccab5157ac8785, 0xd0c3ebc7bdcd296f) }, // 648
+ { cat(0x7bc392d27291da67, 0x79549b3dfe76a877), cat(0x863d55daac8a0604, 0xa70323063170edf2) }, // 649
+ { cat(0x2c6c1e1d841c90a5, 0x8eedc52ffd8aa725), cat(0xd6c8895de0dcd66d, 0xd80504d6b5817cb7) }, // 650
+ { cat(0xbd234b4ad016da1e, 0x0bf16a8ccad55284), cat(0xabd3a117e71711f1, 0x799d9d78913463c5) }, // 651
+ { cat(0x641c3c3bd9abe1b1, 0xa3278870a2444203), cat(0x89761a7985ac0e5a, 0xc7b14ac6da904fd1) }, // 652
+ { cat(0x06939392f5dfcf82, 0x9ea5a71a9d3a0338), cat(0xdbf02a5c09134a2a, 0xd91baad7c41a194f) }, // 653
+ { cat(0x9edc760f2b1972ce, 0xe551527bb0fb35c6), cat(0xaff355166da90822, 0x4749557969ae7aa5) }, // 654
+ { cat(0x4be391a5bc145bd8, 0xb77441fc8d95c49f), cat(0x8cc2aa7857ba6ce8, 0x39077794548b9551) }, // 655
+ { cat(0x1305b5d5f9ba2c8d, 0xf2539cc748efa0fe), cat(0xe1377726f2c3e173, 0x8e7258ed54128882) }, // 656
+ { cat(0x759e2b119494f071, 0x8ea94a3907261a65), cat(0xb42c5f525bcfe78f, 0xa5284724434206ce) }, // 657
+ { cat(0x5e18227476dd8d27, 0xa5543b60d284e1ea), cat(0x90237f75163fec72, 0xea869f5035ce6bd8) }, // 658
+ { cat(0xc9c03720be2f483f, 0x6eed2bce1da16977), cat(0xe69f3254f066471e, 0x440a9880561712f3) }, // 659
+ { cat(0xd499c5b3cb590699, 0x258a8971b14dedf9), cat(0xb87f5b7726b838e5, 0x033bad337812758f) }, // 660
+ { cat(0x43ae37c309140547, 0x513ba127c10b24c7), cat(0x939915f8ebc693ea, 0x68fc8a8f9341f7a6) }, // 661
+ { cat(0x6c49f2d1a8200872, 0x1b929b72ce783ad8), cat(0xec282327dfa41fdd, 0x74c74418eb9cbf70) }, // 662
+ { cat(0x56a18f0e2019a05b, 0x494215f571f9c8ad), cat(0xbcece8ecb2e9b317, 0x909f69ad894a32c0) }, // 663
+ { cat(0x78813f3e80148049, 0x0768119127fb06f1), cat(0x9723ed8a28baf5ac, 0x73b2baf13aa1c233) }, // 664
+ { cat(0x8d9b98640020cd41, 0xa5734f4ea65e7181), cat(0xf1d315a9dac4bc47, 0x1f845e4ec4360385) }, // 665
+ { cat(0x3e161383334d7101, 0x51290c3eeb7ec134), cat(0xc175aaee489d636c, 0x1936b1d89cf802d1) }, // 666
+ { cat(0xfe780f9c290ac0cd, 0xda873cff22cbcdc3), cat(0x9ac488bea07de923, 0x475ef4ad4a600240) }, // 667
+ { cat(0xca59b29374de0149, 0x5da52e6504794938), cat(0xf7a0daca9a630e9e, 0xd897ede210999d34) }, // 668
+ { cat(0xa1e15ba92a4b343a, 0xb150f1ea69faa0fa), cat(0xc61a48a2151c0bb2, 0x46dff181a6e14a90) }, // 669
+ { cat(0xe7e77c875508f695, 0x5aa727eebb2ee72e), cat(0x9e7b6d4e7749a2f5, 0x057ff467b8b43ba6) }, // 670
+ { cat(0x730bfa7221a7f0ee, 0xf771d97df84b0b7d), cat(0xfd92487d8ba904bb, 0x3bffed72c1205f71) }, // 671
+ { cat(0xc26ffb8e81532725, 0x92c17acb2d08d5fe), cat(0xcadb6d313c8736fc, 0x2ffff1289a804c5a) }, // 672
+ { cat(0x6859960b9aa8ec1e, 0x0f012f08f0d3de65), cat(0xa2492427639f5f30, 0x26665a86e2003d15) }, // 673
+ { cat(0xb9e144d61553f018, 0x0c00f26d8d764b84), cat(0x81d41cec4fb2b28c, 0xeb851538b4ccfdaa) }, // 674
+ { cat(0x5c9ba15688864cf3, 0x4667ea48e256df39), cat(0xcfb9c7e07f8450e1, 0x78d4eec12147fc44) }, // 675
+ { cat(0x16e2e7786d383d8f, 0x6b8655071b78b294), cat(0xa62e3980660373e7, 0x93dd8bcdb439969d) }, // 676
+ { cat(0x458252c6bdc697a5, 0xef9eaa6c15fa2877), cat(0x84f1c799eb35f652, 0xdcb13ca4902e1217) }, // 677
+ { cat(0x3c03b7a462d75909, 0x7f6443e02329da57), cat(0xd4b60c29785656ea, 0xfab52dd419e35025) }, // 678
+ { cat(0x3002f9504f12ada1, 0x32b69cb34f54aeac), cat(0xaa2b3cedf9deabef, 0x2ef757dce182a684) }, // 679
+ { cat(0x599bfaa6a5a88ae7, 0x5bc54a290c43bef0), cat(0x88229724c7e55658, 0xf25f797d81355203) }, // 680
+ { cat(0xf5c65dd76f741172, 0x2c6edd0e7a05fe4d), cat(0xd9d0f1d473088a27, 0xea325bfc01eee99e) }, // 681
+ { cat(0xc49eb17925f6745b, 0x56bf173ec804cb71), cat(0xae40c176c26d3b53, 0x21c1e330018bee18) }, // 682
+ { cat(0x36e55ac75191f6af, 0x7898df656cd0a2c1), cat(0x8b67012bcebdc90f, 0x4e34b5c0013cbe7a) }, // 683
+ { cat(0x24a22ad88283244b, 0xf427cbd57ae76ace), cat(0xdf0b3512e462db4b, 0xb054560001faca5d) }, // 684
+ { cat(0xb6e82246cecf503c, 0xc35309779585ef0b), cat(0xb26f5da8b6b57c3c, 0x8d1044ccce623b7d) }, // 685
+ { cat(0xc58681d23f0c4030, 0x9c426df9446b25a2), cat(0x8ebf7e20922ac9ca, 0x0a736a3d71e82f97) }, // 686
+ { cat(0x6f3d9c83981399e7, 0x606a498ed3dea29d), cat(0xe465969a8377a943, 0x43ebdd2f1ca6b28c) }, // 687
+ { cat(0x25cae39c79a947ec, 0x4d21d47243188217), cat(0xb6b7abaecf92edcf, 0x69897dbf4a1ef53d) }, // 688
+ { cat(0x1e3be949faedd323, 0x70e7dd2835ad34e0), cat(0x922c8958a60f24a5, 0xee0797cc3b4bf764) }, // 689
+ { cat(0xfd2ca8765e4951d2, 0x4e3fc84055e1ee32), cat(0xe9e0dbc109b1d43c, 0xb00c26139213256c) }, // 690
+ { cat(0x6423b9f84b6ddb0e, 0xa4ffd366ab1b24f5), cat(0xbb1a49673af4a9ca, 0x26701e760e75b78a) }, // 691
+ { cat(0xe9b62e603c57e272, 0x1d9975ebbc15b72b), cat(0x95aea11f625d54a1, 0xb859b1f80b915fa1) }, // 692
+ { cat(0x0f89e3cd2d596a50, 0x2f5befdf9355f1de), cat(0xef7dce989d622102, 0xc08f832678e89903) }, // 693
+ { cat(0x3fa1830a8aadeea6, 0x8c498cb2dc44c17e), cat(0xbf97d87a1781b402, 0x33a602852d86e0cf) }, // 694
+ { cat(0xffb468d53bbe5885, 0x3d07a3c249d09acb), cat(0x994646c812ce299b, 0x5c84ced0f138b3d8) }, // 695
+ { cat(0x65ed74885f96f408, 0x61a5d2d0761a9145), cat(0xf53d3e0ceae375c5, 0x60d47e1b1b8dec8e) }, // 696
+ { cat(0xeb245d39e6125cd3, 0x8151757391aeda9e), cat(0xc430fe70bbe92b04, 0x4d76cb48e2d7f071) }, // 697
+ { cat(0x88e9e42e51a84a42, 0xcddac45c748be218), cat(0x9cf3fec096542269, 0xd7923c3a4f1326c1) }, // 698
+ { cat(0x74a96d16e90d439e, 0x162ad3c720dfd026), cat(0xfb1ffe00f0869d76, 0x25b6c6c3b1b83e02) }, // 699
+ { cat(0xf6edf0df20d7694b, 0x44ef0fd280b30ceb), cat(0xc8e664cd8d387df8, 0x1e2bd23627c69801) }, // 700
+ { cat(0x5f24c0b280ac543c, 0x3725a642008f3d89), cat(0xa0b850a470f9fe60, 0x18230e91b96bacce) }, // 701
+ { cat(0xe5b7008ecd56a9c9, 0xc5b7b834cd3f646e), cat(0x809373b6c0c7feb3, 0x4682720e2defbd71) }, // 702
+ { cat(0x6f8b3417aef10fa9, 0x3c5926bae1ff0716), cat(0xcdb8b92467a66452, 0x0a6a5016afe5fbe9) }, // 703
+ { cat(0xf2d5c346258da620, 0xfd141efbe7ff38de), cat(0xa493c75052eb8374, 0xd521d9abbfeb2fed) }, // 704
+ { cat(0x28ab029e847151b3, 0xfda9b2631fff60b2), cat(0x83a96c40425602c3, 0xddb4ae22ffef598b) }, // 705
+ { cat(0x7444d0fda0b54f86, 0x62a91d6b66656783), cat(0xd2a8ad339d566ad2, 0xfc5449d1997ef5ab) }, // 706
+ { cat(0x90370d97b3c43f9e, 0xb55417891eb78602), cat(0xa886f0f617785575, 0x96a9d4a7adff2aef) }, // 707
+ { cat(0x735f3e12f636994b, 0xc44346074bc604cf), cat(0x86d25a5e792d112a, 0xdeee43b957ff558c) }, // 708
+ { cat(0xebcb9684bd242879, 0x3a053cd8793cd47e), cat(0xd7b6f6fd8eae81de, 0x317d39288ccbbc13) }, // 709
+ { cat(0xefd61203ca835394, 0x2e6a97139430a9fe), cat(0xac925f313ef2017e, 0x8dfdc753a3d6300f) }, // 710
+ { cat(0xf311a80308690fa9, 0xbebbac0fa9c087ff), cat(0x8a0eb28dcbf4cdfe, 0xd7fe390fb644f33f) }, // 711
+ { cat(0xeb4f73380d74e5dc, 0x645f79b2a9340ccb), cat(0xdce450e2dfee1664, 0x8cc9f4e5f06e51ff) }, // 712
+ { cat(0x55d928f9a45d84b0, 0x504c615bba900a3c), cat(0xb0b6a71be65811ea, 0x0a3b2a518d250e66) }, // 713
+ { cat(0xde4753fae9e46a26, 0xa6a381162ed9a1ca), cat(0x8d5eec1651e00e54, 0xd4fc21dad750d851) }, // 714
+ { cat(0x30721ff7dca0a9d7, 0x71059b56b15c360f), cat(0xe23179bd4fcce3ba, 0xee60362af21af3b6) }, // 715
+ { cat(0x59f4e65fe3b3bb12, 0xc0d14912277cf80c), cat(0xb4f461643fd71c95, 0x8b802b558e7bf62b) }, // 716
+ { cat(0x47f71eb31c8fc8db, 0xcd743a74ec63f9a3), cat(0x90c3811cffdf4a11, 0x3c6689113ec991bc) }, // 717
+ { cat(0xa658311e9419415f, 0xaf205d87e09ff5d2), cat(0xe79f34fb32fedce8, 0x60a40e81fe0f4f93) }, // 718
+ { cat(0x1eacf418767a9ab2, 0xf2804ad31a199175), cat(0xb94c2a628f324a53, 0x80833ece64d90c76) }, // 719
+ { cat(0x188a5ce05ec87bc2, 0x5b99d575ae7adac4), cat(0x943ceeb53f5b6ea9, 0x339c323eb71409f8) }, // 720
+ { cat(0x8daa2e33cada5f9d, 0x5f5c88bc4a5e2ad3), cat(0xed2e4abb98924aa8, 0x529383978b534326) }, // 721
+ { cat(0x0aee8b5ca2484c7d, 0xe5e3a096a1e4ef0f), cat(0xbdbea22fad41d553, 0x7542cfac6f75cf52) }, // 722
+ { cat(0xd58ba2b081d37064, 0xb7e94d454e50bf3f), cat(0x97cbb4f2f1017775, 0xf768a6238c5e3f74) }, // 723
+ { cat(0xbc129de7361f1a3a, 0xbfdbaed54a1acb98), cat(0xf2df87eb1b358bef, 0xf24109d27a306587) }, // 724
+ { cat(0x96754b1f5e7f482e, 0xffe2f2443b48a2e0), cat(0xc24c6cbc15c46ff3, 0x283407db94f3846c) }, // 725
+ { cat(0x452aa27f7ecc39bf, 0x331bf50362a0824d), cat(0x9b7056fcde36bff5, 0xb9c3397c772936bd) }, // 726
+ { cat(0x084437326479f5fe, 0xb82cbb389dcd9d48), cat(0xf8b3be61638accbc, 0x5c6b8f2d8b752462) }, // 727
+ { cat(0x069cf8f51d2e5e65, 0x6023c8fa17d7b106), cat(0xc6f631e782d57096, 0xb0560c246f90e9e8) }, // 728
+ { cat(0x387d93f74a8b7eb7, 0x801ca0c81312f405), cat(0x9f2b5b1f9bddf3ab, 0xc044d6838c73ee53) }, // 729
+ { cat(0x5a6286587745978c, 0x002dce0ceb51866f), cat(0xfeabc4ff5fc985df, 0x9a07bd9f471fe3b8) }, // 730
+ { cat(0x484ed1e05f6adfa3, 0x3357d80a55dad1f2), cat(0xcbbc9d99196e04b2, 0xe19fcae5d27fe960) }, // 731
+ { cat(0x6d0bdb19e5ef194f, 0x5c46466eab1574c2), cat(0xa2fd4ae0e124d08f, 0x1ae63beb0eccbab3) }, // 732
+ { cat(0xbda315ae518c143f, 0x7d05052555aac3ce), cat(0x82643be71a83da0c, 0x1584fcbc0bd6fbc2) }, // 733
+ { cat(0x2f6b55e3b5aced32, 0x61a1a1d555de0617), cat(0xd0a05fd82a6c9013, 0x55a1946012f192d1) }, // 734
+ { cat(0xf2bc44b62af0bdc1, 0xe7b4817777e4d1ac), cat(0xa6e6b3135523a675, 0xde1add19a8c14240) }, // 735
+ { cat(0x5bc9d091bbf3cb01, 0x862a012c5fea4156), cat(0x85855c0f774fb85e, 0x4b48b0e153cdce9a) }, // 736
+ { cat(0x92dc80e92cb944cf, 0x3d1001e09976cef0), cat(0xd5a22ce58bb2c096, 0xdedab49bb9494a90) }, // 737
+ { cat(0xdbe39a5423c76a3f, 0x640cce4d47923f27), cat(0xaae823ead6289a12, 0x4be22a162dd43ba6) }, // 738
+ { cat(0xe31c7b768305ee99, 0x1cd70b71060e98ec), cat(0x88b9b65578207b41, 0xd64e8811be4362eb) }, // 739
+ { cat(0x382d925738097dc1, 0xc7be78b4d67dc179), cat(0xdac2bd558d00c536, 0x23b0d9b5fd389e46) }, // 740
+ { cat(0x60247512933acb01, 0x6c986090ab97cdfb), cat(0xaf0231113d9a375e, 0x82f3e15e642d4b6b) }, // 741
+ { cat(0x19b6c40edc2f08cd, 0xf079e6da22dfd7fc), cat(0x8c01c0da97ae92b2, 0x025cb44b83576f89) }, // 742
+ { cat(0x29246ce4937e747c, 0xb3f63e29d166265f), cat(0xe002ce2a8c4a8450, 0x03c786df388be5a8) }, // 743
+ { cat(0xedb6bd83a931f6ca, 0x2991cb54a784eb80), cat(0xb33571bba36ed040, 0x0306057f606feaec) }, // 744
+ { cat(0xbe2bcacfba8e5f08, 0x21416f76ec6a5600), cat(0x8f5df4961c58a699, 0x9c04d132b38cbbf0) }, // 745
+ { cat(0x3046114c5db0980d, 0x02024bf17a43bccc), cat(0xe56320f02d5aa428, 0xf9a14eb785adf981) }, // 746
+ { cat(0x59d1a7704af3acd7, 0x34cea3279502fd70), cat(0xb78280c024488353, 0xfae7722c6af19467) }, // 747
+ { cat(0xe17485f36f295712, 0x90a54f52dd9bfdf3), cat(0x92cecd66836d35dc, 0xc8b9282388c14385) }, // 748
+ { cat(0x025409857ea88b50, 0xe76ee55162932fec), cat(0xeae47bd738aebc94, 0x745b736c0e0205a3) }, // 749
+ { cat(0x01dcd46acbba090d, 0x85f2510de875bff0), cat(0xbbe9fcac2d5896dd, 0x29e2c2bcd8019e1c) }, // 750
+ { cat(0x017d76bbd62e6da4, 0x6b2840d7ed2afff3), cat(0x9654ca23577a124a, 0x87e89bca4667b1b0) }, // 751
+ { cat(0x35958ac6237d7c3a, 0x450d348caeab331e), cat(0xf087a9d225901d44, 0x0ca75faa0a3f82b3) }, // 752
+ { cat(0x91446f04e931302e, 0x9da42a0a2555c27f), cat(0xc06c87db51401769, 0xa3b91954d4ff9bc2) }, // 753
+ { cat(0x7436bf3720f4268b, 0xb15021a1b777cecc), cat(0x99f06caf743345ee, 0x1c941443dd994968) }, // 754
+ { cat(0x2057985834b9d745, 0xe88035cf8bf2e479), cat(0xf64d7ab253853cb0, 0x2db9ba062f5ba8a7) }, // 755
+ { cat(0x19dfad135d617904, 0xba002b0c6ff58394), cat(0xc50ac88ea93763c0, 0x249494d1bf7c86ec) }, // 756
+ { cat(0x14b2f0dc4ab460d0, 0x94ccef3d265e02dd), cat(0x9da23a0bba92b633, 0x5076dd7499306bf0) }, // 757
+ { cat(0xbab7e7c6dded67b4, 0x2147e52ea3c99e2e), cat(0xfc36c345f7512385, 0x4d8afbedc1e71319) }, // 758
+ { cat(0x2ef98638b18ab95c, 0xe76cb7588307b1bf), cat(0xc9c56904c5da82d1, 0x0ad59657ce5275ae) }, // 759
+ { cat(0x25946b608e08944a, 0x52bd5f7a026c8e32), cat(0xa16aba6a37e20240, 0xd577ab7971db9158) }, // 760
+ { cat(0x1e1055e6d806dd08, 0x4231192e6856d828), cat(0x81222ebb5fe801cd, 0x7792ef945b160de0) }, // 761
+ { cat(0xc9b3bca48cd7c80d, 0x36b4f5170d57c040), cat(0xce9d1792330ccfaf, 0x25b7e5ba2b567c99) }, // 762
+ { cat(0x07c2fd5070aca00a, 0x922a5dac0aac99cd), cat(0xa54a7941c270a625, 0xb7c65161bc45307b) }, // 763
+ { cat(0xd30264405a23b33b, 0xa821e489a223ae3e), cat(0x843b94349b8d51b7, 0xc638411afd0426c8) }, // 764
+ { cat(0xeb3706cd5d05eb92, 0xa69ca0dc369f7d2f), cat(0xd39286ba927bb5f2, 0xd6c0682b2e6d0ada) }, // 765
+ { cat(0xbc2c05711737efa8, 0x854a1a49c54c6426), cat(0xa94205620ec95e5b, 0xdf005355bebda248) }, // 766
+ { cat(0x3023378dac2cbfba, 0x043b483b043d1ceb), cat(0x8768044e723ab1e3, 0x18cd0f77cbcae83a) }, // 767
+ { cat(0x4d0525af79e132c3, 0x39f87391a061c7de), cat(0xd8a66d4a505de96b, 0x5ae1b25946117390) }, // 768
+ { cat(0x0a6a848c6180f568, 0xfb2d29414d1b064c), cat(0xad51f108404b2122, 0xaf1af514380df60d) }, // 769
+ { cat(0x6ebb9d3d1acd9120, 0xc8f0edcdd748d1d6), cat(0x8aa7f40699d5b41b, 0xbf48c4102cd7f80a) }, // 770
+ { cat(0xb12c2ec82ae281ce, 0x0e4e4949587482f0), cat(0xddd98670f622b9c5, 0xfedad34d148cc010) }, // 771
+ { cat(0xc0f0256cef1b9b0b, 0x3ea5076de05d358d), cat(0xb17ad1f3f81bc7d1, 0x98af0f70dd3d6673) }, // 772
+ { cat(0x33f35123f27c7c08, 0xfeea6c57e6b0f7a4), cat(0x8dfbdb2993496ca7, 0xad58d927176451f6) }, // 773
+ { cat(0xb9854e9fea60c674, 0xcb10ad59711b25d3), cat(0xe32c91dc1edbe10c, 0x488e283e8bd3b656) }, // 774
+ { cat(0x61377219884d6b90, 0xa273bde12748eb0f), cat(0xb5bd417ce57cb409, 0xd3a4ecfed642f845) }, // 775
+ { cat(0xb42c5b47a03defa6, 0xe85c97e752a0bc0c), cat(0x91643463eaca29a1, 0x761d8a657835936a) }, // 776
+ { cat(0xb9e0920c33964c3e, 0x4094263eea9ac67a), cat(0xe8a053d3114375cf, 0x23627708c055b8aa) }, // 777
+ { cat(0x94b3a809c2dea365, 0x007684ff22156b95), cat(0xba19dca8da9c5e3f, 0x4f81f8d3cd116088) }, // 778
+ { cat(0x43c2ecd49be54f84, 0x005ed0cc1b445611), cat(0x94e17d53e216b1cc, 0x3f9b2d763da7806d) }, // 779
+ { cat(0x0604ae20f96ee5a0, 0x0097b479c53a234e), cat(0xee359553035782e0, 0x65c51589fc3f33e2) }, // 780
+ { cat(0x04d08b4d9458b7b3, 0x33ac90616a94e90b), cat(0xbe9144426912cf19, 0xeb04113b30328fe8) }, // 781
+ { cat(0x9d73a2a476ad5fc2, 0x8fbd404deedd873c), cat(0x9874369b87423f47, 0xef36742f59c20cb9) }, // 782
+ { cat(0xc8b9043a577bcc6a, 0x7f9533afe495a52d), cat(0xf3ed242c0b9d320c, 0xb1f0b9e55c69adf5) }, // 783
+ { cat(0x6d60d02eac6309ee, 0xcc775c8cb6de1dbd), cat(0xc3241cf0094a8e70, 0x8e5a2e5116baf191) }, // 784
+ { cat(0x8ab3d9bef04f3b25, 0x705f7d3d5f1817cb), cat(0x9c1ce3f33aa20b8d, 0x3eae8b74122f27a7) }, // 785
+ { cat(0xaab95c64b3b1f83b, 0xe6ff2ec898268c77), cat(0xf9c7d31ec43678e1, 0xfde41253504b72a5) }, // 786
+ { cat(0x889449ea295b2cfc, 0xb8cc256d46853d2c), cat(0xc7d30f4bd02b93e7, 0xfe500ea90d092884) }, // 787
+ { cat(0x6d436e54ede28a63, 0xc709b78a9ed0fdbd), cat(0x9fdc0c3ca689431f, 0xfea67220d73a86d0) }, // 788
+ { cat(0x7b9f16ee496a7706, 0x0b42bf44314e62c8), cat(0xffc679faa40ed1cc, 0xcaa3e9ce252a714d) }, // 789
+ { cat(0xc94c12583abb926b, 0x3c3565d02771e8a0), cat(0xcc9ec7fbb6724170, 0xa21cbb0b50eec10a) }, // 790
+ { cat(0xd43cdb79c8960ebc, 0x302ab7d9b927ed4d), cat(0xa3b239962b8e9ac0, 0x81b095a2a725673b) }, // 791
+ { cat(0x769715fb06de7230, 0x26889314941ff10b), cat(0x82f4fade893ee233, 0x9af3aae885b785c9) }, // 792
+ { cat(0x5758232b3e30b6b3, 0x70da84edb9ccb4dd), cat(0xd187f7ca753169ec, 0x2b1f77da6f8c0942) }, // 793
+ { cat(0xdf79b5bc31c09229, 0x2715372494a3c3e4), cat(0xa79ff96ec42787f0, 0x227f93152609a101) }, // 794
+ { cat(0x192e2afcf49a0e87, 0x52775f5076e96984), cat(0x861994589cec6cc0, 0x1b99427751a14d9b) }, // 795
+ { cat(0xc1e377fb20f67da5, 0x50befee724a8a8d2), cat(0xd68f53c0fb13e133, 0x5f5b9d8bb5cee291) }, // 796
+ { cat(0x0182c66280c53151, 0x0d6598b8ea20870f), cat(0xaba5dc9a62764dc2, 0xb2afb13c91724edb) }, // 797
+ { cat(0x679bd1e867042774, 0x0ab7ad60bb4d38d9), cat(0x89517d484ec50b02, 0x288c8dca0df50be2) }, // 798
+ { cat(0x3f5fb640a4d37253, 0x44591567921527c1), cat(0xdbb595407e08119d, 0x0dadafa9afee796a) }, // 799
+ { cat(0xff7fc50083dc5b75, 0xd0474452db441fce), cat(0xafc47766cb39a7b0, 0xd7be2621598b9454) }, // 800
+ { cat(0x99330400697d15f7, 0xd9d29d0f15d01971), cat(0x8c9d2c523c2e1fc0, 0xac981e81146fa9dd) }, // 801
+ { cat(0x8eb806670f2e898c, 0x8fb761b1bc8028b5), cat(0xe0fb7a1d2d169934, 0x4759ca6820b2a962) }, // 802
+ { cat(0x3ef99eb8d8f207a3, 0xa62c4e27ca002091), cat(0xb3fc61b0f0dee0f6, 0x9f7b08534d5bbab5) }, // 803
+ { cat(0x65947efa4728061c, 0x84f03e863b334d41), cat(0x8ffd1af3f3e580c5, 0x4c626d0f71162ef7) }, // 804
+ { cat(0x6f53fe5d3ea6702d, 0xa1806409f8521534), cat(0xe661c4b9863c013b, 0xad6a4818b4f04b25) }, // 805
+ { cat(0x8c4331e4321ec024, 0x8133833b2d0e775d), cat(0xb84e36fad1c99a96, 0x2455067a2a59d5b7) }, // 806
+ { cat(0x3d028e50281899b6, 0xcdc2cf628a71f917), cat(0x9371c59574a14878, 0x1d10d1fb5514aaf9) }, // 807
+ { cat(0xc80416e6a68dc2be, 0x16047f0410b65b58), cat(0xebe93c22543540c0, 0x2e814ff88821118e) }, // 808
+ { cat(0xa0034585520b0231, 0xab36cc034091e2ad), cat(0xbcba9681dcf76700, 0x25343ffa0680dad8) }, // 809
+ { cat(0xe669046aa808ce8e, 0x22923ccf66db1bbe), cat(0x96fbab9b172c5266, 0x8429ccc80533e246) }, // 810
+ { cat(0xa3db3a44400e1749, 0xd0e9fae5715e92c9), cat(0xf192ac2b5846ea3d, 0xa042e140085303a4) }, // 811
+ { cat(0xe97c2e9d000b45d4, 0xa72195845ab20f07), cat(0xc1422355e038bb64, 0x8035810006a8cfb6) }, // 812
+ { cat(0xedfcf217333c37dd, 0x52814469e2280c06), cat(0x9a9b4f77e693c91d, 0x335e00ccd220a62b) }, // 813
+ { cat(0xe32e50251ec6bfc8, 0x8402070fd040133c), cat(0xf75ee58ca41fa82e, 0xb89667ae1d0109df) }, // 814
+ { cat(0x4f58401db238996d, 0x366805a640334297), cat(0xc5e58470834c868b, 0xc6deb958173407e6) }, // 815
+ { cat(0x3f79cce48e93adf0, 0xf85337b8335c3546), cat(0x9e5136c0690a053c, 0x9f18944678f66cb8) }, // 816
+ { cat(0xcbf614a0e41f7cb4, 0xc08525f38560553c), cat(0xfd4ebe00a8100860, 0xfe8dba0a5b23e126) }, // 817
+ { cat(0xd65e76e71ce5fd5d, 0x66d0eb2937804430), cat(0xcaa564cd534006b3, 0xfed7c80848e980eb) }, // 818
+ { cat(0xdeb1f8b8e3eb3117, 0x8573ef542c669cf3), cat(0xa21dea3ddc33388f, 0xff13066d072133ef) }, // 819
+ { cat(0xb227fa2d83228dac, 0x6ac325dcf0521729), cat(0x81b188317cf5c6d9, 0x98dc052405b4298c) }, // 820
+ { cat(0x837329e26b6a7c47, 0x11383c94b3b68b75), cat(0xcf82738261893e28, 0xf4933b6cd5ed0f47) }, // 821
+ { cat(0x02c287e855eec9d2, 0x742cfd43c2f86f91), cat(0xa601f601e7a0fe87, 0x2a0f62bd77f0d906) }, // 822
+ { cat(0x02353986ab256e41, 0xf68a643635938c74), cat(0x84ce5e67ec80cb9f, 0x54d91bcac65a4738) }, // 823
+ { cat(0x9d21f5a44508b069, 0x8a7706bd2285ad86), cat(0xd47d63d97a67ac32, 0x215b5faad6f6d859) }, // 824
+ { cat(0xb0e7f7b69da08d21, 0x3b926bca82048ad2), cat(0xa9fde97ac852f028, 0x1aaf7fbbdf2be047) }, // 825
+ { cat(0x8d865fc54ae6d74d, 0xc941efd534d06f0e), cat(0x87fe546239dbf353, 0x488c662fe5bcb36c) }, // 826
+ { cat(0xaf3d660877d7bee2, 0xdb9cb2eebae71816), cat(0xd996ed69f62cb885, 0x40e0a37fd5fab8ad) }, // 827
+ { cat(0xbf6451a05fdfcbe8, 0xafb08f25625279ac), cat(0xae125787f823c6d1, 0x00b3b5ffde622d57) }, // 828
+ { cat(0x65e9dae6b3196fed, 0x595a0c1de841faf0), cat(0x8b41df9ff9b638a7, 0x33c2f7ffe51b5779) }, // 829
+ { cat(0x3ca95e3deb5be648, 0x8ef679c9739cc4b3), cat(0xdecfcc3329238dd8, 0x52d18ccca1c558c2) }, // 830
+ { cat(0xca211831891651d3, 0xa591fb078fb09d5c), cat(0xb23fd68f541c7179, 0xdbdad70a1b044701) }, // 831
+ { cat(0xd4e7468e07450e42, 0xeadb2f393fc07de3), cat(0x8e997872a9b05ac7, 0xe31578d4e269d267) }, // 832
+ { cat(0x87d870e33ed4e39e, 0x4491e5286600c96b), cat(0xe428c0b775e6f7a6, 0x38225aee370fb70c) }, // 833
+ { cat(0x3979f3e8ff10b618, 0x36db1db9eb33d456), cat(0xb6870092c4b8c61e, 0x934eaf24f8d95f3d) }, // 834
+ { cat(0x94618fed98da2b46, 0x9248e494bc2976ab), cat(0x92059a0f03c704e5, 0x42a558ea60ade5ca) }, // 835
+ { cat(0xba35b315c15d120a, 0x83a7d4212d0f2445), cat(0xe9a29018060b3b08, 0x6aa227dd677ca2dd) }, // 836
+ { cat(0x94f7c277cde40e6e, 0xcfb97680f0d8e9d1), cat(0xbae873466b3c2f39, 0xeee81fe452ca1be4) }, // 837
+ { cat(0x10c6352ca4b671f2, 0x3fc79200c0ad87da), cat(0x9586c29ebc3025c7, 0xf2534cb6a8a1afea) }, // 838
+ { cat(0xe7a388476df0b650, 0x660c1cce0115a62a), cat(0xef3e04312d19d60c, 0xb6ebadf10dcf7fdc) }, // 839
+ { cat(0x1fb6069f8b26f840, 0x51a34a3e674484ee), cat(0xbf64d0275747de70, 0x925624c0d7d93317) }, // 840
+ { cat(0xe62b387fa2859366, 0xa7b5d4feb9039d8b), cat(0x991d7352ac397ec0, 0x7511b700acadc278) }, // 841
+ { cat(0xa3785a65d0d5b8a4, 0x3f8954cac19f6278), cat(0xf4fbebb779f5979a, 0x54e924cde11603f4) }, // 842
+ { cat(0x4f937b84a7116083, 0x660777089ae5e860), cat(0xc3fcbc92c7f7ac7b, 0x7720ea3e4dab365d) }, // 843
+ { cat(0x72dc62d085a78069, 0x1e6c5f3a1584b9e7), cat(0x9cca30756cc62395, 0xf8e721cb7155c517) }, // 844
+ { cat(0x51609e1a6f72670e, 0x9713cb90226df63e), cat(0xfadd1a557ad69f56, 0x5b0b69458222d4f2) }, // 845
+ { cat(0xdab3b1aebf8eb8d8, 0x78dca2d9b524c4fe), cat(0xc8b0e1ddfbdee5de, 0xaf3c54379b4f10c1) }, // 846
+ { cat(0x155c8e25660bc713, 0x93e3b57af7509d98), cat(0xa08d817e6318b7e5, 0x58fd102c7c3f409b) }, // 847
+ { cat(0x777d3e8451a305a9, 0x431c912f2c407e14), cat(0x807134651c13c651, 0x13fda689fcff66e2) }, // 848
+ { cat(0xbf2eca6d4f6b3c42, 0x04fa81e5139a6352), cat(0xcd81ed6e9352d6e8, 0x1ffc3da994cbd7d0) }, // 849
+ { cat(0xff58a1f10c55c9ce, 0x6a6201840faeb5dc), cat(0xa467f12542a8abec, 0xe6636487aa3caca6) }, // 850
+ { cat(0x32ad4e5a7044a171, 0xeeb4ce033fbef7e3), cat(0x83865a843553bcbd, 0x851c506c88308a1f) }, // 851
+ { cat(0x84487d5d806dcf1c, 0xb121499ecc64bfd1), cat(0xd27090d38885fac8, 0xd4fa1a47404da9cb) }, // 852
+ { cat(0xd039fde466be3f4a, 0x274dd47f09ea330e), cat(0xa85a0d7606d1956d, 0x772e7b6c337154a2) }, // 853
+ { cat(0x0cfb31838564ff6e, 0x85d7dd326e54f5a5), cat(0x86ae712b38a7aabd, 0xf8f1fc568f8ddd4f) }, // 854
+ { cat(0x47f84f38d56e657d, 0xa2f2fb83e3bb22a1), cat(0xd77d81dec10c4463, 0x27e993bdb27c954b) }, // 855
+ { cat(0xd32d0c2d778b8464, 0x825bfc6982fc1bb4), cat(0xac6467e5673d0382, 0x865476315b96ddd5) }, // 856
+ { cat(0x75bda35792d60383, 0x9b7cc9ee0263495d), cat(0x89e9ecb785ca6935, 0x384391c116124b11) }, // 857
+ { cat(0xbc629ef284899f38, 0xf8c7a97cd09edbc8), cat(0xdca97abf3c770ebb, 0x8d38e934f01d44e8) }, // 858
+ { cat(0xfd1bb25b9d3ae5c7, 0x2d6c87970d4be306), cat(0xb0879565c9f8d896, 0x0a93edc3f34a9d86) }, // 859
+ { cat(0x30e2f5161762516c, 0x2456d2df3dd64f38), cat(0x8d3944516e60ad44, 0xd543249cc2a2179f) }, // 860
+ { cat(0xb49e54f0256a1be0, 0x3a24849862f07ec0), cat(0xe1f53a1be3cde207, 0xbb9ea0fad10358fe) }, // 861
+ { cat(0xc3b1dd8ceabb4980, 0x2e839d46b58d3233), cat(0xb4c42e7cb63e4e6c, 0x961880c8a735e0cb) }, // 862
+ { cat(0x9c8e4ad7222f6e00, 0x2536176bc470f4f6), cat(0x909cf1fd5e983ebd, 0x44e06706ec2b1a3c) }, // 863
+ { cat(0x2db077be9d18b000, 0x3b89bf12d3e7ee56), cat(0xe761832efdc06462, 0x07cd71a4ad11c394) }, // 864
+ { cat(0x248d2c987dad5999, 0xc93aff42431ff1df), cat(0xb91acf58cb00504e, 0x6ca45aea240e3610) }, // 865
+ { cat(0x83a423ad31577ae1, 0x6dc8cc35027ff4b2), cat(0x941572ad6f337371, 0xf0837bee833e91a6) }, // 866
+ { cat(0x05d36c484ef25e35, 0x7c7479ee6a665450), cat(0xecef1de24b858583, 0x1a6bf97d9eca82a4) }, // 867
+ { cat(0x6b0f89d3725b7e91, 0x305d2e58551ea9da), cat(0xbd8c17e83c6ad135, 0xaebcc797b23b9bb6) }, // 868
+ { cat(0xbc0c6e42c1e2cba7, 0x59e42513774bbb15), cat(0x97a346536388a75e, 0x2563d2dfc1c9495e) }, // 869
+ { cat(0xf9ad7d379c9e12a5, 0x5ca03b5258792b54), cat(0xf29ed6ebd2743efd, 0x089fb7cc69420efd) }, // 870
+ { cat(0x6157975fb07e7551, 0x16e695db79fa8910), cat(0xc218abefdb903264, 0x06e62ca387680bfe) }, // 871
+ { cat(0xb44612b2f3985dda, 0x78b877e2c7fba0da), cat(0x9b46eff3160cf51c, 0xd251bd4f9f866ffe) }, // 872
+ { cat(0xba09b784b8f3c95d, 0x8df3f304732c348f), cat(0xf8717feb567b21c7, 0xb6e92ee5cc0a4cca) }, // 873
+ { cat(0x61a15f9d60c3077e, 0x0b298f36c289c3a6), cat(0xc6c13322ab95b49f, 0xc58758b7d66ea3d5) }, // 874
+ { cat(0xb481194ab3cf3931, 0xa287a5c5686e361e), cat(0x9f00f5b556115d4c, 0x9e05e09311f21caa) }, // 875
+ { cat(0xed9b5baab94b8eb5, 0xd0d9093bda49f030), cat(0xfe67ef8889b56214, 0x30096751b6502ddd) }, // 876
+ { cat(0x57af7c88943c722b, 0x0d7a6dc97b6e59c0), cat(0xcb86593a07c44e76, 0x8cd452a7c50cf17e) }, // 877
+ { cat(0x4625fd3a10305b55, 0xa461f16dfc5847cd), cat(0xa2d1e0fb3969d85e, 0xd710421fd0d72798) }, // 878
+ { cat(0x381e642e7359e2aa, 0xe9e7f457fd136ca4), cat(0x824180c8fabb137f, 0x1273681973df52e0) }, // 879
+ { cat(0x8cfd6d171ef63777, 0xdca653bffb52476d), cat(0xd068ce0e5df81f31, 0xb71f0cf586321e33) }, // 880
+ { cat(0xa3fdf0df4bf82c5f, 0xe3b842fffc41d2be), cat(0xa6ba3e71e4c67f5a, 0xf8e5a3f79e8e7e8f) }, // 881
+ { cat(0x4ffe5a4c3cc689e6, 0x4fc69bfffd017565), cat(0x8561cb8e509ecc48, 0xc71e1cc61871fed9) }, // 882
+ { cat(0xb3309079fad7430a, 0x193dc666619bef07), cat(0xd56945b080fe13a7, 0xa4fcfad68d83315b) }, // 883
+ { cat(0xf5c07394c8ac35a1, 0xadcb051eb47cbf39), cat(0xaaba9e26cd980fb9, 0x50ca62453e028de2) }, // 884
+ { cat(0xf7cd2943d3bcf7b4, 0x8b08d0e55d3098fa), cat(0x88954b523e133fc7, 0x73d51b6a98020b1b) }, // 885
+ { cat(0x594842061f94bf87, 0x44dae7d561e75b2a), cat(0xda887883968532d8, 0xb954f8aa8cd011c6) }, // 886
+ { cat(0x7aa034d1b2dd6605, 0xd0af1fdde7ec48ef), cat(0xaed3939c786a8f13, 0xc7772d553d73416b) }, // 887
+ { cat(0xfbb35d748f1784d1, 0x73bf4cb18656a0bf), cat(0x8bdc7616c6bba5a9, 0x6c5f5777645c3455) }, // 888
+ { cat(0x2c522f20e4f26e1b, 0xec654782708a9acb), cat(0xdfc72357a45f6f75, 0x7a32258bd3c6ba23) }, // 889
+ { cat(0x56a825b3ea5b8b49, 0x89ea9f9b8d3baf09), cat(0xb305b5dfb6b2bf91, 0x2e8e846fdc9efb4f) }, // 890
+ { cat(0xabb9b7c321e2d5d4, 0x6e554c7c70fc8c07), cat(0x8f37c4b2f88effa7, 0x5872038cb07f2f72) }, // 891
+ { cat(0xdf8f8c6b696aefba, 0x4a2213fa4e60e00b), cat(0xe5260784c0e4cc3e, 0xf3e99f4780cb7f1d) }, // 892
+ { cat(0xb2d93d22babbf2fb, 0x6e81a9950b80b33c), cat(0xb7519f9d671d7032, 0x5cbae5d2cd6f98e4) }, // 893
+ { cat(0x28adca822efcc262, 0xbece21440933c297), cat(0x92a7b2e4527df35b, 0x7d625175712613ea) }, // 894
+ { cat(0x411610d04b2e03d1, 0x3149ced341ec6a8a), cat(0xeaa5eb06ea631ef8, 0xc89d4f224ea35310) }, // 895
+ { cat(0x00de73d9d5be6974, 0x276e3f0f67f0553c), cat(0xbbb7ef38bb827f2d, 0x6d4aa5b50bb5dc0d) }, // 896
+ { cat(0x67185cae4498545c, 0xec583272b98d10fd), cat(0x962cbf609601ff57, 0x8aa21e2a6fc4b00a) }, // 897
+ { cat(0x0b5a2de3a0f3ba2e, 0x46f383eac27b4e61), cat(0xf047989a899ccbbf, 0x443696aa4c6de677) }, // 898
+ { cat(0x0914f182e72961be, 0x9f2936556862a51a), cat(0xc03946e207b0a2ff, 0x69c5455509f1852c) }, // 899
+ { cat(0x6daa5acf1f544e32, 0x18edc511204eea7b), cat(0x99c76be80626e8cc, 0x549dd110d4c13756) }, // 900
+ { cat(0x7c43c47e9886e383, 0x5b16081b66e4aa5f), cat(0xf60bdfd9a371747a, 0x20fc81b4879b8bbd) }, // 901
+ { cat(0xfd0303987a0582cf, 0x7c11a015ebea21e5), cat(0xc4d64cae1c5ac394, 0xe73067c39fafa2fd) }, // 902
+ { cat(0x64026946c80468a5, 0xfcdae677efee8184), cat(0x9d783d5816af02dd, 0x85c05302e6261bfe) }, // 903
+ { cat(0xa003dba4733a4109, 0x949170bfe64a68d4), cat(0xfbf39559bde4d162, 0x6f9a1e6b09d69330) }, // 904
+ { cat(0x4ccfe2e9f5c83407, 0xaa0df3ccb83b8710), cat(0xc98faaae3183dab5, 0x2614e5226e45428d) }, // 905
+ { cat(0x70a64f21916cf66c, 0x880b29709362d273), cat(0xa13fbbbe8e03155d, 0xb810b74ebe9dced7) }, // 906
+ { cat(0x8d51d8e7a78a5ebd, 0x39a2878d42b57529), cat(0x80ffc9653e68dde4, 0x934092a5654b0bdf) }, // 907
+ { cat(0x154fc172a5aa312e, 0xc29da5aed122550e), cat(0xce660f0863dafca0, 0xeb9a843bd544dfcc) }, // 908
+ { cat(0x7773012884882758, 0x9bb15158a74eaa72), cat(0xa51e726d1caf3080, 0xbc7b9cfcaa9d7fd6) }, // 909
+ { cat(0x92c267539d39b913, 0xafc10de085d8885b), cat(0x84185b8a7d58f39a, 0x3062e3fd554accab) }, // 910
+ { cat(0xead0a5529529281f, 0x7f9b49673c8da6f8), cat(0xd35a2c10c88e5290, 0x4d6b066222114778) }, // 911
+ { cat(0xef0d510eddba867f, 0x99490785ca0aebfa), cat(0xa914f00d6d3ea873, 0x71226b81b4da9f93) }, // 912
+ { cat(0x25a440d8b1620532, 0xe1073937d4d58995), cat(0x8743f33df0feed29, 0x274ebc67c3e21943) }, // 913
+ { cat(0xa2a067c11bd00851, 0x680b8ebfbaef4287), cat(0xd86cb8631b317b75, 0x0bb12d72d3035b9e) }, // 914
+ { cat(0xe8805300e30cd374, 0x533c7232fbf29b9f), cat(0xad23c6b5af5ac92a, 0x6fc0f128a8cf7c7e) }, // 915
+ { cat(0xed33759a4f3d75f6, 0xa8fd2828c98ee2e6), cat(0x8a83055e25e23a88, 0x59672753ba3f96cb) }, // 916
+ { cat(0x151f22907ec8bcbd, 0xdb2ea6a7a8e49e3d), cat(0xdd9e6efd0969f740, 0x8f0b721f9065be13) }, // 917
+ { cat(0x10e5b540656d63cb, 0x15beebb953ea1831), cat(0xb14b8bfda121929a, 0x0c092819405164dc) }, // 918
+ { cat(0x40b7c43384578308, 0xde32562ddcbb468d), cat(0x8dd60997b41adbae, 0x7007534766a783e3) }, // 919
+ { cat(0xcdf2d385a08c04da, 0xfd1d56afc7920a7b), cat(0xe2f00f59202af917, 0x19a5520bd7726c9e) }, // 920
+ { cat(0xd7f57604807003e2, 0x6417788c9fa80863), cat(0xb58cd91419bbfa78, 0xe1510e6fdf8ebd4b) }, // 921
+ { cat(0xacc45e6a00599cb5, 0x1cdf93a3b2ecd382), cat(0x913d7a767afcc860, 0xb440d8597fa5643c) }, // 922
+ { cat(0x47a09710008f6121, 0xc7cc1f6c517aec03), cat(0xe8625d8a5e61409a, 0xba015a28cc3bd394) }, // 923
+ { cat(0x6c8078d99a0c4db4, 0x9fd67f89dac8bcd0), cat(0xb9e84ad5184dcd48, 0x94cde1ba3cfca943) }, // 924
+ { cat(0x8a0060ae14d6a490, 0x7fdecc6e48a0970d), cat(0x94b9d57746a4a43a, 0x10a4b494fd96edcf) }, // 925
+ { cat(0x7667011687bdd41a, 0x66314716da9a8b47), cat(0xedf6225871076d29, 0xb43aba87fc24afb2) }, // 926
+ { cat(0x5eb8cdab9fcb1015, 0x1e8dd278aee20906), cat(0xbe5e81e05a6c5754, 0x902efb9ffcea2628) }, // 927
+ { cat(0x4bc70aefb308d9aa, 0x7ed7db93bf1b3a6b), cat(0x984b9b19e1f045dd, 0x402596199721b820) }, // 928
+ { cat(0x460b44b2b80e2910, 0xcaf2f8ec64f85d78), cat(0xf3ac2b5c9cb3a2fb, 0x99d5bcf5be9c59cd) }, // 929
+ { cat(0xd1a29d5bc671ba73, 0xd58f2d89ea604ac6), cat(0xc2f022b07d5c8262, 0xe177ca5e3216ae3d) }, // 930
+ { cat(0x7482177c9ec161f6, 0x44728ad4bb803bd2), cat(0x9bf34ef3977d351b, 0xe793084b5b455831) }, // 931
+ { cat(0x87368bfa979bcff0, 0x6d8411545f3392e9), cat(0xf9854b1f58c854f9, 0x7284da122ba226b5) }, // 932
+ { cat(0x6c2ba32edfafd98d, 0x2469a776b28fa8bb), cat(0xc79dd5b2ad6d10c7, 0x8ed0ae74efb4ebc4) }, // 933
+ { cat(0x89bc828be62647a4, 0x1d2152c55ba62096), cat(0x9fb177c22457409f, 0xa573bec3f2f72303) }, // 934
+ { cat(0x0f94041309d6d906, 0x95021e0892a36755), cat(0xff825936a08b9a99, 0x08b9313984be9e6c) }, // 935
+ { cat(0xd9433675a178ad9e, 0xdd9b4b3a0ee91f78), cat(0xcc68475ee6d61547, 0x3a2dc0fad0987ebc) }, // 936
+ { cat(0x1435c52ae793be18, 0xb14908fb3f20e5f9), cat(0xa3869f7f1f11aa9f, 0x61be33fbda139897) }, // 937
+ { cat(0x435e3755860fcb46, 0xf43a6d95cc1a5194), cat(0x82d219327f41554c, 0x4e31c32fe1a946df) }, // 938
+ { cat(0xd2305888d67faba4, 0xb9f715bc79c3b5ba), cat(0xd1502850cb9bbbad, 0x49e9384c9c420afe) }, // 939
+ { cat(0x74f37a0711ffbc83, 0xc7f8de3061695e2e), cat(0xa7735373d6162fbd, 0xd4ba93707d01a265) }, // 940
+ { cat(0xc3f5fb38db32fd36, 0x3993e4f381211825), cat(0x85f5dc5cab44f2fe, 0x43c875f3973481ea) }, // 941
+ { cat(0x06565ec15eb7fb89, 0xf5b96e526834f36f), cat(0xd6562d611207eb30, 0x6c73efec2520cfde) }, // 942
+ { cat(0xd1deb2344bc662d4, 0xc4945841ecf72925), cat(0xab78244da80655c0, 0x56c32656841a3fe4) }, // 943
+ { cat(0xdb188e903c9eb577, 0x03a9e034bd928751), cat(0x892ce9d7b99eab00, 0x4568eb7869ae9983) }, // 944
+ { cat(0xc4f4174d2dcabbf1, 0x9f76338795b73ee8), cat(0xdb7b0fbf8f6444cd, 0x3bdb125a42b0f59f) }, // 945
+ { cat(0x6a5cdf70f16efcc1, 0x4c5e8f9faaf8ff20), cat(0xaf95a632d91d03d7, 0x6315a848355a5e19) }, // 946
+ { cat(0x21e3e5f3f458ca34, 0x3d1872e62260cc1a), cat(0x8c77b828adb0cfdf, 0x8277b9d35de1e4e1) }, // 947
+ { cat(0x03063cb986f476b9, 0xfb5a51703701468f), cat(0xe0bf8d0de2b47fcc, 0x03f2c2ebc9696e35) }, // 948
+ { cat(0x359e96fad25d2bc7, 0xfc48412692676ba6), cat(0xb3cc70d7e890663c, 0xcff568bca12124f7) }, // 949
+ { cat(0x5e1878c8a84a896c, 0xc9d367520eb922eb), cat(0x8fd6c0acba0d1e97, 0x0cc453ca1a80ea5f) }, // 950
+ { cat(0xc9c0c1410d440f14, 0x761f0bb67df504ab), cat(0xe624677ac34830f1, 0xae06ec7690ce43cb) }, // 951
+ { cat(0x6e33cdcda4367276, 0xc4e5a2f864c403bc), cat(0xb81d1f9569068d8e, 0x24d256c540a50309) }, // 952
+ { cat(0xf1c30b0ae9c5285f, 0x03eae8c6b7033630), cat(0x934a7faaba6ba471, 0xb70eabd10084026d) }, // 953
+ { cat(0x4f9e781176084098, 0x0644a7a458052380), cat(0xebaa65ddf712a0b5, 0xf1b112e800d33716) }, // 954
+ { cat(0x72e52cdac4d366e0, 0x0503b950466a82cd), cat(0xbc88517e5f421a2b, 0x27c0dbeccd75c5ab) }, // 955
+ { cat(0xf58423e2370f8580, 0x0402faa69ebb9bd7), cat(0x96d374651901ae88, 0xec9a498a3df7d155) }, // 956
+ { cat(0xbc069fd05818d599, 0xa004c43dcac5c625), cat(0xf15253d4f4cf7da7, 0xe0f6dc1063261bbc) }, // 957
+ { cat(0xc99ee640467a447a, 0xe66a3697d56b04eb), cat(0xc10ea9772a3f97b9, 0x80c57cd9e8eb4963) }, // 958
+ { cat(0x6e18b8336b950395, 0x8521c54644559d89), cat(0x9a72212c21cc7961, 0x33d130ae53ef6de9) }, // 959
+ { cat(0x49c126b8ac219f55, 0xa1cfa20a06ef6274), cat(0xf71d01e03613f568, 0x52e84de3b97f1642) }, // 960
+ { cat(0x07cdb893bce7b2aa, 0xe7d94e6e6bf2b52a), cat(0xc5b0ce4cf80ff786, 0xa8b9d7e961327835) }, // 961
+ { cat(0x063e2d42fd862888, 0xb97aa525232890ee), cat(0x9e270b70c6732c6b, 0xba2e46544dc1f9c4) }, // 962
+ { cat(0x09fd1537fc09da74, 0x5bf76ea1d1da817d), cat(0xfd0b45813d8513df, 0x904a0a207c698fa0) }, // 963
+ { cat(0x07fdaa933007e1f6, 0xaff9254e417b9aca), cat(0xca6f6acdcad0dcb2, 0xd9d4d4e6c9ee0c80) }, // 964
+ { cat(0x9ffe220f599fe7f8, 0x8cc7510b6796156f), cat(0xa1f2bbd7d573e3c2, 0x47dd771f07f1a399) }, // 965
+ { cat(0x7ffe81a5e14cb993, 0xa3d2a73c52de778c), cat(0x818efcacaac31c9b, 0x6cb12c18d327b614) }, // 966
+ { cat(0x999735d635478f52, 0x9fb771fa1e30bf46), cat(0xcf4b2de111382dc5, 0x7ab5135aeb72bced) }, // 967
+ { cat(0xe145c4ab5dd2d90e, 0xe62c5b2e7e8d65d2), cat(0xa5d5be4da760249d, 0xfbc40f7bef8efd8a) }, // 968
+ { cat(0x1a9e36ef7e42473f, 0x1e89e28b98711e41), cat(0x84aafea485e683b1, 0x963672c98c72646f) }, // 969
+ { cat(0x2a96be4bfd36d864, 0xfda96a78f3e83068), cat(0xd444caa0d63d9f82, 0x89f0b7a8e0b70718) }, // 970
+ { cat(0xbbabcb6ffdc579ea, 0x64878860c32026ba), cat(0xa9d0a21a44fe1935, 0x3b26f953e6f8d279) }, // 971
+ { cat(0xfc896f8ccb046188, 0x506c6d1a35b3522f), cat(0x87da1b483731adc4, 0x2f52610febfa41fa) }, // 972
+ { cat(0x2da8b27ade6d68da, 0x1a4714f6bc521d17), cat(0xd95cf8738b82afa0, 0x4bb701b3132a032b) }, // 973
+ { cat(0xf153c1fbe52453e1, 0xae9f43f896a81746), cat(0xade3f9f60935594d, 0x095f348f42880288) }, // 974
+ { cat(0x5aa967fcb750431a, 0xf219032d455345d1), cat(0x8b1cc7f8075de10a, 0x6de5c3a5ced3353a) }, // 975
+ { cat(0x910f0cc78bb39e91, 0x835b38486eeba2e8), cat(0xde947326722fce77, 0x163c6c3c7e1ebb90) }, // 976
+ { cat(0x40d8d706095c7eda, 0xcf7c2d06bf22e8ba), cat(0xb2105c1ec1bfd85f, 0x44fd23639818960d) }, // 977
+ { cat(0x33e0ac04d449ff15, 0x72c9bd9eff4f2095), cat(0x8e737ce567ccad19, 0x03fdb5e9467a11a4) }, // 978
+ { cat(0x1fcde007ba0ffe88, 0xb7a92f64cbb1cdbb), cat(0xe3ebfb08a6144828, 0x0662bca870c34f6d) }, // 979
+ { cat(0x4ca4b33961a6653a, 0x2c87591d6fc17162), cat(0xb656626d51a9d353, 0x384efd538d690c57) }, // 980
+ { cat(0x7083c2944e1eb761, 0xbd3914178c9ac11c), cat(0x91deb5244154a90f, 0x603f310fa45409df) }, // 981
+ { cat(0xb40604207cfdf235, 0xfb8e868c142ace92), cat(0xe9645506ceeddb4b, 0xcd31e81906ecdc98) }, // 982
+ { cat(0x5cd19ce6ca64c1c4, 0xc93ed209a9bbd875), cat(0xbab6aa6bd8be4909, 0x70f4b9ad9f23e3ad) }, // 983
+ { cat(0x170e171f08509b03, 0xd43241a1549646c4), cat(0x955eeebcad65073a, 0xc0c3c7be18e982f1) }, // 984
+ { cat(0x58168b64da1a919f, 0xb9ea029bba8a0ad3), cat(0xeefe4ac77bd4d85e, 0x01393f968e426b1b) }, // 985
+ { cat(0xacded5ea4815414c, 0x94bb3549620808a9), cat(0xbf31d56c6310ad18, 0x00fa99453e9b88e2) }, // 986
+ { cat(0xbd7f118839aa9aa3, 0xaa2f5dd44e6cd3ba), cat(0x98f4aabd1c0d5746, 0x672ee1043216071b) }, // 987
+ { cat(0x6264e8d9f5ddc439, 0x104bc953b0ae1f90), cat(0xf4baaac82ce2253d, 0x71e49b39e9bcd82c) }, // 988
+ { cat(0xe850ba47f7e49cfa, 0x736fd442f3be7fa7), cat(0xc3c888a023e81dca, 0xc183af6187ca4689) }, // 989
+ { cat(0xed0d61d32cb6e3fb, 0x8f8ca9cf296532ec), cat(0x9ca06d4ce9867e3b, 0xce02f2b46ca1d207) }, // 990
+ { cat(0xe1af02eb7abe3992, 0x7f477618423b84ac), cat(0xfa9a487b0f3d96c6, 0x166b1ded7a9c833f) }, // 991
+ { cat(0xb48c0255fbcb6141, 0xff6c5e79ce9603bd), cat(0xc87b6d2f3f64789e, 0x7855b18ac87d35cc) }, // 992
+ { cat(0x2a099b77fca2b434, 0xcc56b1fb0bab3631), cat(0xa062bdbf65e9fa18, 0x60448e08a0642b0a) }, // 993
+ { cat(0x8807af93308229c3, 0xd6abc195a2ef5e8e), cat(0x804efe32b7ee61ad, 0x19d071a08050226e) }, // 994
+ { cat(0x400c4c1eb4037606, 0x2446028904b230e3), cat(0xcd4b3051264a35e1, 0xc2e71c3400803717) }, // 995
+ { cat(0x333d09b2299c5e6b, 0x5038020736f4f3e9), cat(0xa43c26a751d4f7e7, 0xcf1f49c33399c5ac) }, // 996
+ { cat(0x5c30d48e87b04b89, 0x0cf99b38f8c3f654), cat(0x8363521f74aa5fec, 0xa5b2a168f6149e23) }, // 997
+ { cat(0xc6b4874a72b3ac0e, 0x7b28f85b279ff086), cat(0xd23883658776ffe1, 0x091dcf0e5687636b) }, // 998
+ { cat(0x38906c3b8ef6233e, 0xc8ed937c1fb326d1), cat(0xa82d35ead2c59980, 0xd417d8d845391c56) }, // 999
+ { cat(0x2d4056960bf81c32, 0x3a57a930195c1f0e), cat(0x868a9188a89e1467, 0x101313e03760e378) }, // 1000
+ { cat(0x1533bdbcdff36050, 0x5d590eb35bc69816), cat(0xd7441c0dda96870b, 0x4ceb5300589b058d) }, // 1001
+ { cat(0xddc2fe30b32919d9, 0xe4473ef5e3054678), cat(0xac367cd7e21205a2, 0xa3ef7599e07c0470) }, // 1002
+ { cat(0x4b0264f3c28747e1, 0x836c325e4f376b94), cat(0x89c530acb4db37b5, 0x4ff2c47b19fcd05a) }, // 1003
+ { cat(0xde6a3b1f9da53fcf, 0x38ad1d63b1f245b9), cat(0xdc6eb44787c525ee, 0xe6513a5e8ffae6f6) }, // 1004
+ { cat(0xb1ee95b2e484330c, 0x2d574ab627f50494), cat(0xb0589039396a84bf, 0x1ea761e53ffbebf8) }, // 1005
+ { cat(0x5b25448f1d368f3c, 0xf112a22b532a6a10), cat(0x8d13a6942deed098, 0xe552b4b76663232d) }, // 1006
+ { cat(0xc5086db1c8574b94, 0xb4ea9d121eaa434c), cat(0xe1b90a86afe480f4, 0xa21dedf23d6b6b7b) }, // 1007
+ { cat(0x3739f15b06ac3c76, 0xf7221741b221cf70), cat(0xb494086bbfea00c3, 0xb4e4be5b6455ef96) }, // 1008
+ { cat(0xf8fb277c055696c5, 0x9281ac348e8172c0), cat(0x90766d22ffee6702, 0xf71d6515e9de5944) }, // 1009
+ { cat(0x5b2b7260088a8ad5, 0xb735e05417358467), cat(0xe723e1d1997d719e, 0x582f08230fca286e) }, // 1010
+ { cat(0x7c22c1e66d3ba244, 0x9291804345c469ec), cat(0xb8e981747acac14b, 0x79bf39b5a63b538b) }, // 1011
+ { cat(0x301bce51f0fc81d0, 0x75413369049d218a), cat(0x93ee0129fbd5676f, 0x9498faf7b82f7609) }, // 1012
+ { cat(0x4cf94a1cb4c7361a, 0x55351f0e6dc835a9), cat(0xecb001dcc6223f18, 0xedc1918c59e589a8) }, // 1013
+ { cat(0x3d943b4a2a38f815, 0x10f74c0b8b069154), cat(0xbd599b1704e8327a, 0x57ce0e09e1846e20) }, // 1014
+ { cat(0x647695d4ee93f9aa, 0x73f909a2d59edaaa), cat(0x977ae278d0b9c1fb, 0x7971a4d4b469f1b3) }, // 1015
+ { cat(0x3a5756217db98f77, 0x1ff4dc37bc315ddc), cat(0xf25e3727b45c6992, 0x5be907baba431c52) }, // 1016
+ { cat(0x9512ab4dfe2e0c5f, 0x4cc3e35fc9c117e3), cat(0xc1e4f8ec9049ee0e, 0xafed9fc895027d0e) }, // 1017
+ { cat(0x774222a4cb5809e5, 0xd7031c4ca167464f), cat(0x9b1d93f0736e580b, 0xbff14ca0773530d8) }, // 1018
+ { cat(0x25369dd4788cdca2, 0xf19e93adcf0ba3b2), cat(0xf82f531a524a2679, 0x331badcd8b884e27) }, // 1019
+ { cat(0xb75ee4a9fa0a4a1b, 0xf47edc8b0c094fc2), cat(0xc68c427b75081ec7, 0x5c1624a46fa03e85) }, // 1020
+ { cat(0x5f7f1d54c8083b49, 0x90657d3c09a10c9b), cat(0x9ed69b95f739b239, 0x16781d50594cfed1) }, // 1021
+ { cat(0xff31c887a673920f, 0x4d6f2ec675ce7a91), cat(0xfe242c2325291d28, 0x23f3621a287b314e) }, // 1022
+ { cat(0x328e3a061ec2db3f, 0x7125bf052b0b9541), cat(0xcb50234f50edb0ec, 0xe98f81ae86c8f43f) }, // 1023
+ { cat(0xf53e94d1b2357c32, 0xc0eaff3755a2ddce), cat(0xa2a682a5da57c0bd, 0x87a601586bd3f698) }, // 1024
+ { cat(0xc43210a7c1c4635b, 0xcd88cc2c44824b0b), cat(0x821eceeb15130097, 0x9fb8011389765ee0) }, // 1025
+ { cat(0x06b6810c693a3892, 0xe27479e06d9d44de), cat(0xd0314b11bb519a8c, 0x32c001b8dbf097ce) }, // 1026
+ { cat(0x389200d6ba94fa0f, 0x1b90618057b103e5), cat(0xa68dd5a7c90e153c, 0xf56667c7165a130b) }, // 1027
+ { cat(0x6074cd789543fb3f, 0x49404e0046273651), cat(0x853e44863a71aa97, 0x2ab85305ab7b426f) }, // 1028
+ { cat(0x00bae25a886cc532, 0x0ecd499a09d856e8), cat(0xd5306da390b5ddbe, 0xaac084d5df2b9d7f) }, // 1029
+ { cat(0xcd624eaed38a375b, 0x3f0aa14807e04586), cat(0xaa8d2482da2b17cb, 0xbbcd37117f561798) }, // 1030
+ { cat(0x711b722576082c48, 0xff3bb4399fe69e05), cat(0x8870ea024822796f, 0xc970f8dacc44dfad) }, // 1031
+ { cat(0x1b5f1d08bcd9e074, 0xcb92b9f5cca43008), cat(0xda4e4336d9d0c24c, 0x75818e2ae06e32af) }, // 1032
+ { cat(0xe2b27da09714b390, 0xa2dbc7f7d6e9c006), cat(0xaea5029247da3509, 0xf79ad8224d24f558) }, // 1033
+ { cat(0xb55b97b3ac108fa6, 0xe8afd32cabee3338), cat(0x8bb73541d314f73b, 0x2c7be01b70ea5de0) }, // 1034
+ { cat(0xeef8f2b9134db2a4, 0xa77fb847797d1ec0), cat(0xdf8b886951bb252b, 0x7a5fccf8b4aa2fcd) }, // 1035
+ { cat(0x58c728940f715bb6, 0xec662d05faca7f00), cat(0xb2d606baa7c8ea89, 0x2eb30a609088263e) }, // 1036
+ { cat(0xad6c207672c1162b, 0xf051bd9e623b98cd), cat(0x8f119efbb96d886d, 0xbef5a1e6da0684fe) }, // 1037
+ { cat(0x7be033f0b79b56ac, 0xb3b5fc309d2c27af), cat(0xe4e8fe5f8f15a715, 0xfe55cfd7c33da197) }, // 1038
+ { cat(0x6319c326f9491223, 0xc2f7fcf3b0f01fbf), cat(0xb720cb7fa5aaec11, 0x9844a64635cae7ac) }, // 1039
+ { cat(0xe8e168ebfaa0db4f, 0xcf2cca5c8d8ce632), cat(0x9280a2cc8488bcda, 0xe036eb6b5e3bec89) }, // 1040
+ { cat(0x749bdb132a9af87f, 0xb1e143c748e17050), cat(0xea676ae0d40dfaf7, 0xcd24abdefd2cada9) }, // 1041
+ { cat(0xf6e315a8eee26066, 0x27e7696c3a4df374), cat(0xbb85ef1a433e625f, 0xd750897f30f08aed) }, // 1042
+ { cat(0xf8b5aaed8be84d1e, 0x8652babcfb718f90), cat(0x9604bf4835cb81e6, 0x45da0798f3f3a257) }, // 1043
+ { cat(0x5abc44af46407b64, 0x0a1df794c5827f4c), cat(0xf007987389459ca3, 0xa2f6728e531f6a26) }, // 1044
+ { cat(0x15636a25d1cd2f83, 0x3b4b2c77046865d7), cat(0xc006138fa1047d4f, 0xb591f53ea8e5ee85) }, // 1045
+ { cat(0x111c54eb0e3dbf9c, 0x2f6f56c59d205179), cat(0x999e760c80d0643f, 0xc474c43220b7f204) }, // 1046
+ { cat(0x81c6ee44e395ff60, 0x4be557a29500825a), cat(0xf5ca567a67b3d399, 0x3a546d1d01265006) }, // 1047
+ { cat(0x349f2503e944cc4d, 0x0984461baa66ceaf), cat(0xc4a1dec852f642e0, 0xfb76bdb0cdb84005) }, // 1048
+ { cat(0x5d4c1d9cba9d703d, 0xa1369e7c88523ef2), cat(0x9d4e4bd37591cf1a, 0x62c5648d71603337) }, // 1049
+ { cat(0xc879c8fac42f19fc, 0x352430c7408397ea), cat(0xfbb0795255b6182a, 0x37a23a7be899eb8b) }, // 1050
+ { cat(0xa0616d9569bf47fc, 0xf7502705cd361321), cat(0xc959faa84491acee, 0x92e82ec986e1893c) }, // 1051
+ { cat(0x19e78addee329ffd, 0x92a6859e3dc4dc1b), cat(0xa114c8869d415725, 0x425358a138b46dca) }, // 1052
+ { cat(0xe18608b18b5bb331, 0x421ed14b649d7ce2), cat(0x80dd6d387dcddf51, 0x01dc46e7609057d4) }, // 1053
+ { cat(0xcf3cdab5abc5eb82, 0x036482123a95949d), cat(0xce2f15272fafcbb4, 0xcfc6d7d89a808c87) }, // 1054
+ { cat(0x7297155e2304bc68, 0x02b6ce74fbaadd4b), cat(0xa4f277528c8ca2f7, 0x0c9f1313aecd3d39) }, // 1055
+ { cat(0xf545aab1b59d6386, 0x68923ec3fc88b109), cat(0x83f52c420a0a1bf8, 0xd6e5a8dc8bd7642d) }, // 1056
+ { cat(0x2209111c55c89f3d, 0x741d3139940de80d), cat(0xd321e069a9a9c65a, 0xf16f749412f239e3) }, // 1057
+ { cat(0x4e6da749de3a18fd, 0xf67dc0fadcd7ecd8), cat(0xa8e7e6baee216b7b, 0xf4592a100f282e4f) }, // 1058
+ { cat(0xd857b907e4fb4731, 0x91fe33fbe3dff0ad), cat(0x871febc8be8122c9, 0x904754d9a5b9bea5) }, // 1059
+ { cat(0xf3bf8e7307f871e8, 0xe996b99306331aae), cat(0xd83312daca6837a8, 0xe6d887c2a2c2caa2) }, // 1060
+ { cat(0x5c993ec26cc6c187, 0x214561426b5c1558), cat(0xacf5a8af08535fba, 0x5246d3021bcf0882) }, // 1061
+ { cat(0x7d4765685705679f, 0x4dd11a9b89167779), cat(0x8a5e208c06a91961, 0xdb6bdc01afd8d39b) }, // 1062
+ { cat(0xc8723bda24d57298, 0x7c81c42c0e8a58c2), cat(0xdd636746710e8f02, 0xf8ac9335e627b8f8) }, // 1063
+ { cat(0x6d282fe1b7112879, 0xfd349cf00ba1e09b), cat(0xb11c529ec0d87268, 0xc6f075c4b81fc72d) }, // 1064
+ { cat(0x2420264e2c0db9fb, 0x30f6e3f33c81807c), cat(0x8db042189a46c1ed, 0x6bf3916a2ce638f1) }, // 1065
+ { cat(0x0699d6e379af8ff8, 0x4e57d31ec7359a60), cat(0xe2b39cf42a0acfe2, 0x465282437b09f4b5) }, // 1066
+ { cat(0xd214abe92e260cc6, 0xa5130f4bd291484d), cat(0xb55c7d9021a23fe8, 0x384201cf95a19090) }, // 1067
+ { cat(0xa8108987581e709e, 0xea75a5d6420dd371), cat(0x9116cad9b481ccb9, 0xc69b34a6114e0d40) }, // 1068
+ { cat(0x401a75a559ca4dcb, 0x10bc3c8a0349524e), cat(0xe82477c2ba69478f, 0xa42b87701bb01534) }, // 1069
+ { cat(0x00152aeaae3b716f, 0x409696d4cf6ddb72), cat(0xb9b6c63561edd2d9, 0x5022d2c01626775d) }, // 1070
+ { cat(0x99aa88bbbe95f459, 0x007878aa3f8b15f5), cat(0x9492382ab4be4247, 0x734f0f0011b85f7d) }, // 1071
+ { cat(0x5c440df930efed5b, 0x33f3f44398de8987), cat(0xedb6c04454639d3f, 0x1ee4e4cce926ff2f) }, // 1072
+ { cat(0x49d00b2dc0bff115, 0xc329903613e53ad3), cat(0xbe2bcd0376b61765, 0xb250b70a541f328c) }, // 1073
+ { cat(0x07d9a28b00998dab, 0x0287a691a9842f0f), cat(0x98230a692bc4df84, 0x8ea6f8d51018f53d) }, // 1074
+ { cat(0xa62904119a8f4911, 0x9da5d74f75a04b4b), cat(0xf36b43db793aff3a, 0x7dd7f48819c18861) }, // 1075
+ { cat(0xb820d00e153f6da7, 0xb151790c5e19d5d6), cat(0xc2bc36492dc8cc2e, 0xcb132a067b0139e7) }, // 1076
+ { cat(0x601a400b4432be1f, 0xc10dfa704b47de45), cat(0x9bc9c50757d3d68b, 0xd5a8ee6b959a94b9) }, // 1077
+ { cat(0x669066786d1dfcff, 0x9b4990b3aba6306e), cat(0xf942d4d88c862412, 0xef74b0ac2290edf5) }, // 1078
+ { cat(0x854051f9f0e4ca66, 0x15d473c2efb826be), cat(0xc768aa46d6d1b675, 0x8c5d5a234eda57f7) }, // 1079
+ { cat(0xd1004194c0b70851, 0xab105c9bf2f9b898), cat(0x9f86ee9f12415ec4, 0x704aae82a57b7992) }, // 1080
+ { cat(0x1b339c2134580d4f, 0x781a2dc6518f8dc0), cat(0xff3e4a981d35646d, 0x80777d9dd5925c1e) }, // 1081
+ { cat(0x48f61680f6acd772, 0xc67b57d1dad93e33), cat(0xcc31d5467dc45057, 0x99f9314b1141e34b) }, // 1082
+ { cat(0x6d91ab9a5ef0ac5b, 0xd1fc46417be0fe90), cat(0xa35b11053169d9df, 0xae60f43c0dce4f6f) }, // 1083
+ { cat(0xbe0e22e1e58d56af, 0xdb303834631a6540), cat(0x82af40d0f454ae4c, 0x8b80c3633e3ea5f2) }, // 1084
+ { cat(0x6349d1696f488ab2, 0xf84d26ba382a3b99), cat(0xd11867b4ba2116e0, 0xdf346bd1fd310984) }, // 1085
+ { cat(0x4f6e412125d3a228, 0xc6a41efb6021c947), cat(0xa746b95d61b4124d, 0x7f5d230e64273ad0) }, // 1086
+ { cat(0x0c58341a84a94e87, 0x055018c919b4a106), cat(0x85d22de44e29a83d, 0xff7db5a51cec2f0d) }, // 1087
+ { cat(0x7a26b9c407754a71, 0xa219c141c2ba9b3c), cat(0xd61d163a16a90d2f, 0xff2f89082e46b1ae) }, // 1088
+ { cat(0xc81efb03392aa1f4, 0x81ae34349bc87c30), cat(0xab4a782e78873dbf, 0xff593a6cf1d227be) }, // 1089
+ { cat(0x067f2f35c7554e5d, 0x348b5cf6e306c9c0), cat(0x890860252d38fe33, 0x32adc85727db52ff) }, // 1090
+ { cat(0x70cb7ebc722216fb, 0x8745618b04d7a934), cat(0xdb4099d51527fd1e, 0xb77c73bea62bb7fe) }, // 1091
+ { cat(0x5a3c65638e81abfc, 0x6c37813c03dfba90), cat(0xaf66e177441ffdb2, 0x2c638fcbb822f998) }, // 1092
+ { cat(0x7b63844fa5348996, 0xbcf934300319620d), cat(0x8c524df9034ccaf4, 0xf04fa63c934f2e13) }, // 1093
+ { cat(0x2bd26d4c3b87428a, 0xc7f5204cd1c2367a), cat(0xe083aff4d21477ee, 0x4d4c3d2db87eb01f) }, // 1094
+ { cat(0xbca857702f9f686f, 0x065db370a7ce91fc), cat(0xb39c8cc3db439325, 0x0aa3642493988ce5) }, // 1095
+ { cat(0x3086ac59bfb2b9f2, 0x6b7e2926eca54196), cat(0x8fb0709caf694284, 0x0882b683a946d71e) }, // 1096
+ { cat(0x4da446f5ff845cb7, 0x1263750b143b9c23), cat(0xe5e71a944bdb9da0, 0x0d9df0d2a8715830) }, // 1097
+ { cat(0xd7b69f2b32d04a2c, 0x0eb5f73c102fb01c), cat(0xb7ec15436fe2e480, 0x0ae4c0a886c11359) }, // 1098
+ { cat(0x12f87f55c2403b56, 0x722b2c300cf2f34a), cat(0x93234435f31bea00, 0x08b70086d2340f7b) }, // 1099
+ { cat(0x518d988936cd2bbd, 0x837846b347eb1edc), cat(0xeb6ba05651c64333, 0x4124cda483867f2b) }, // 1100
+ { cat(0x413e13a0f8a422fe, 0x02c69ef5d3227f17), cat(0xbc5619dea7d1cf5c, 0x341d7150693865bc) }, // 1101
+ { cat(0x3431a94d93b68264, 0xcf054bf7dc1b98df), cat(0x96ab47e5530e3f7c, 0xf67df440542d1e30) }, // 1102
+ { cat(0xed1c4215b92403d4, 0x7e6edff2f9c5c165), cat(0xf1120ca21e7d3261, 0x8a632066ed14fd19) }, // 1103
+ { cat(0x8a7d01aafa833643, 0x9858b328c7d16784), cat(0xc0db3d4e7eca8eb4, 0x6eb5b3858a7730e1) }, // 1104
+ { cat(0xd530ce22620291cf, 0xad13c28706411f9d), cat(0x9a48fdd8656ed890, 0x58915c6ad52c271a) }, // 1105
+ { cat(0xbb8149d09cd0e94c, 0x481f9da4d6ce98fb), cat(0xf6db2fc0a24af41a, 0x274efa448846a4f7) }, // 1106
+ { cat(0x2f9aa173b0a72109, 0xd34c7e1d78a5472f), cat(0xc57c2633b508c348, 0x1f7261d06d0550c6) }, // 1107
+ { cat(0x8c7bb45c8d5280d4, 0xa909fe7dfa1dd28c), cat(0x9dfceb5c90d3cf6c, 0xe5f51b0d2404409e) }, // 1108
+ { cat(0x13f920941550ce21, 0x0e7663fcc362ea79), cat(0xfcc7defa8152e57b, 0x09882b4839a06764) }, // 1109
+ { cat(0xdcc74d434440a4e7, 0x3ec51cca35e8bb94), cat(0xca397f2ecddbeac8, 0xd46cef6cfae6b91c) }, // 1110
+ { cat(0xb09f71029d0083ec, 0x32374a3b5e53c944), cat(0xa1c798f23e4988a0, 0xa9f0bf8a62522db0) }, // 1111
+ { cat(0xc07f8d9bb0cd3656, 0x8e92a1c918430769), cat(0x816c7a5b6507a080, 0x87f3cc6eb50e8af3) }, // 1112
+ { cat(0x9a65af5f814856f0, 0xe41dcfa826d1a575), cat(0xcf13f6f8a1a5cd9a, 0x731fad7dee7dab1f) }, // 1113
+ { cat(0xaeb7bf7f9aa0458d, 0x834b0c868574845e), cat(0xa5a9926081517148, 0x5c195797f1fe227f) }, // 1114
+ { cat(0x255fcc66154d0471, 0x35d5a39ed12a037e), cat(0x8487a84d3441276d, 0x167aac798e64e866) }, // 1115
+ { cat(0x3bcc7a3ceee1a0b5, 0x22ef6c314ea99f30), cat(0xd40c407b86cea57b, 0x572aad8f4a3b0d70) }, // 1116
+ { cat(0xc97061ca58b48090, 0xe8bf89c10bbae5c0), cat(0xa9a366c938a5512f, 0x78eef13f6e95a459) }, // 1117
+ { cat(0x078d1b0846f6cd40, 0xba32d49a6fc8b7cd), cat(0x87b5ebd42d510dbf, 0x93f25a992544837b) }, // 1118
+ { cat(0x727b5e73a4be1534, 0x5d1e20f719412615), cat(0xd92312ed154e7c65, 0xb983c4283ba0d25e) }, // 1119
+ { cat(0x2862b1f61d64ddc3, 0x7db1b3f8e100eb44), cat(0xadb5a8bdaaa53051, 0x61363686961a41e5) }, // 1120
+ { cat(0x538227f81783e49c, 0x648e2993e733ef6a), cat(0x8af7ba315550f374, 0x4dc4f86bab4834b7) }, // 1121
+ { cat(0x859d0cc0259fd42d, 0x6db042863eb97f0f), cat(0xde5929e888818586, 0xe2d4c0ac45405458) }, // 1122
+ { cat(0xd14a7099b7b31024, 0x57c03538322dff3f), cat(0xb1e0ee53a0679e05, 0x8243cd569dcd1046) }, // 1123
+ { cat(0xdaa1f3ae2c8f401d, 0x13002a935b57ff66), cat(0x8e4d8b7619ec7e6a, 0xce9ca4454b0a736b) }, // 1124
+ { cat(0xf76985e37a7eccfb, 0x5199ddb892266570), cat(0xe3af4589c313fd77, 0xb0faa06ede771f12) }, // 1125
+ { cat(0xc5ee04b5fb98a3fc, 0x4147e493a81eb78d), cat(0xb625d13b0276645f, 0xc0c88058b1f8e5a8) }, // 1126
+ { cat(0x37f19d5e62e08330, 0x343983a9534bc60a), cat(0x91b7da959b91e9e6, 0x33d399e08e60b7ba) }, // 1127
+ { cat(0xbfe8fbca37cd9eb3, 0x86c26c421edfa343), cat(0xe9262a88f8e9763d, 0x1fb8f634170125f6) }, // 1128
+ { cat(0xccba63082ca47ef6, 0x0568569b4be61c36), cat(0xba84eed3fa545e97, 0x4c93f829ac00eb2b) }, // 1129
+ { cat(0x0a2eb5a023b6cbf8, 0x0453787c3cb81692), cat(0x9537257661dd1879, 0x0a0ff9baf000bc23) }, // 1130
+ { cat(0x104abc336c57acc0, 0x06ebf3f9fac0241c), cat(0xeebea25702fb5a5b, 0x434cc2c4b3346038) }, // 1131
+ { cat(0xa6a2302923795700, 0x05898ffb2f001ce3), cat(0xbefee8459bfc4849, 0x02a3cf03c2904cf9) }, // 1132
+ { cat(0x854e8cedb5faac00, 0x046e0cc8f2667d83), cat(0x98cbed047cc9d36d, 0x9bb63f3635403d94) }, // 1133
+ { cat(0x6ee414af89911333, 0x3a49ae0e50a3fc04), cat(0xf4797b3a6142ebe2, 0x92bd31f0553395ba) }, // 1134
+ { cat(0x58b676f2d4740f5c, 0x2ea1580b73b66336), cat(0xc39462951a9befe8, 0x756427f3775c77c8) }, // 1135
+ { cat(0x13c52bf576c33f7c, 0xf21aacd5f62b8292), cat(0x9c76b54415498cb9, 0xf78353292c49f96d) }, // 1136
+ { cat(0x860846558ad1ff2e, 0x502aae232378d0e9), cat(0xfa57886ceedc145c, 0xbf38850ead4328ae) }, // 1137
+ { cat(0x9e6d05113bdb328b, 0x7355581c1c60a721), cat(0xc84606bd8be3437d, 0x65c6d0d88a9c208b) }, // 1138
+ { cat(0x4b8a6a742fe28ed5, 0xf5dde0167d1a1f4e), cat(0xa03805646fe902ca, 0xb7d240ad3bb01a09) }, // 1139
+ { cat(0x6fa1eec359820bde, 0x5e4b19ab9748190b), cat(0x802cd11d2654023b, 0xc641cd5762f34807) }, // 1140
+ { cat(0x7f697e055c034630, 0x96de8f78f20cf4de), cat(0xcd1481c83d5336c6, 0x0a02e2256b1ed9a5) }, // 1141
+ { cat(0x9921319de335d1c0, 0x78b20c60c1a3f718), cat(0xa41067d364429238, 0x08024e8455b247b7) }, // 1142
+ { cat(0xadb427b182917499, 0xfa2809e7014ff8e0), cat(0x8340530f836874f9, 0xa001d869de28395f) }, // 1143
+ { cat(0x7c5372b59db5875c, 0xc373430b354cc167), cat(0xd20084e59f0d87f5, 0xcccfc0a963738eff) }, // 1144
+ { cat(0x3042c22ae4913917, 0x02c29c08f7709ab9), cat(0xa8006a514c0ad32b, 0x0a3fcd544f8fa599) }, // 1145
+ { cat(0xc035682250742dac, 0x023549a0c5f3aefa), cat(0x8666bb743cd575bc, 0x08330aa9d93fb7ad) }, // 1146
+ { cat(0xcd224036e7204913, 0x36bba9013cb917f7), cat(0xd70ac586c7bbef93, 0x4051aaa95b9925e2) }, // 1147
+ { cat(0xd74e99c585b36da8, 0xf89620cdca2dacc5), cat(0xac089e056c965942, 0x99daeeede2e0eb1b) }, // 1148
+ { cat(0xdf72149e048f8aed, 0x93ab4d716e8af09e), cat(0x89a07e6abd451435, 0x47e258be4f1a55af) }, // 1149
+ { cat(0x65835430074c117c, 0x1f787be8b0de4dc9), cat(0xdc33fd77953b5388, 0x7303c1307e908919) }, // 1150
+ { cat(0x1e02a9c005d67463, 0x4c6063208d7ea4a1), cat(0xb0299792ddc90fa0, 0x5c0300f39873a0e1) }, // 1151
+ { cat(0xe4ceee3337dec382, 0xa3804f4d3dfeea1b), cat(0x8cee12dbe4a0d94d, 0x1668cd8fad294d80) }, // 1152
+ { cat(0x6e17e385263138d1, 0x059a187b9664a9c4), cat(0xe17ceaf96dce287b, 0x570e15b2aea87c01) }, // 1153
+ { cat(0xf1acb6041e8dc70d, 0x9e14e062deb6ee36), cat(0xb463ef2df171b9fc, 0x45a4de288bb9fccd) }, // 1154
+ { cat(0xc156f8034ba49f3e, 0x1810b3824bc58b5f), cat(0x904ff28b278e2e63, 0x6aea4b53a2fb30a4) }, // 1155
+ { cat(0x0224c00545d431fc, 0xf34dec03ac6f4564), cat(0xe6e650dea5b04a38, 0xab107885d191e76e) }, // 1156
+ { cat(0x681d666a9e435b30, 0xc2a4bccfbd25d11d), cat(0xb8b840b21e26a1c6, 0xef40606b0e0e52be) }, // 1157
+ { cat(0xb9b11ebbb1cf7c27, 0x021d63d9641e40e4), cat(0x93c69a28181ee7d2, 0x59004d2271a50efe) }, // 1158
+ { cat(0x291b645f82e59371, 0x9cfbd2f56cfd34a0), cat(0xec70f6a68cfe3fb6, 0xf4cd48371c3b4b31) }, // 1159
+ { cat(0xedaf837f9beadc5a, 0xe3fca8c45730f6e6), cat(0xbd272bb870cb662b, 0xf70aa02c1695d5c0) }, // 1160
+ { cat(0x57bf9c6616557d15, 0x8330870378f3f8b8), cat(0x975289605a3c51bc, 0xc5a219bcdede449a) }, // 1161
+ { cat(0x593293d68a2261bc, 0x051a719f27ecc127), cat(0xf21da89a29fa1c61, 0x3c368f9497ca075d) }, // 1162
+ { cat(0xe0f54312081b8163, 0x37485ae5b98a341f), cat(0xc1b153ae87fb49e7, 0x635ed943aca19f7d) }, // 1163
+ { cat(0x80c435a8067c6782, 0x92a048b7c7a1c34c), cat(0x9af442f20662a185, 0xe918adcfbd4e1931) }, // 1164
+ { cat(0x0139ef733d93d8d0, 0xea9a0df2d902d213), cat(0xf7ed37e9a3d1026f, 0xdb5aafb2c87cf51c) }, // 1165
+ { cat(0xcdc7f2c297a97a40, 0xbbae718f140241a9), cat(0xc6575fee1ca73526, 0x4915595bd3972a7c) }, // 1166
+ { cat(0x716cc23546212e9a, 0x2fbec13f43350154), cat(0x9eac4cbe7d5290eb, 0x6daaade30fac21fd) }, // 1167
+ { cat(0x1be136bba3684a90, 0x4c6468653854ceed), cat(0xfde07aca621db4ab, 0xe2aaafd1b2ad032f) }, // 1168
+ { cat(0x164dc562e9203ba6, 0xa38386b76043d8be), cat(0xcb19fbd51b4af6ef, 0xe8888ca7c224028c) }, // 1169
+ { cat(0x11d7d11bedb362eb, 0xb602d22c4d0313cb), cat(0xa27b2fddaf6f2bf3, 0x206d3d5301b66870) }, // 1170
+ { cat(0x4179741657c2b589, 0x5e68a82370cf4309), cat(0x81fc264af2bf565c, 0x19f0fddc015eb9f3) }, // 1171
+ { cat(0x68c25356f2d12275, 0x63daa69f1ae5380e), cat(0xcff9d6de513223c6, 0x8fe7fc9335645cb8) }, // 1172
+ { cat(0xba350f78c240e85d, 0xe97bb87f48b7600b), cat(0xa66178b1da8e8305, 0x3fecca0f5de9e3c6) }, // 1173
+ { cat(0xfb5da5fa3500b9e4, 0xbac96065d3c5e66f), cat(0x851ac6f4aed868d0, 0xfff0a1a5e4bb1c9e) }, // 1174
+ { cat(0x922f6ff6bb345ca1, 0x2adbcd6fb93ca3e5), cat(0xd4f7a4bab15a414e, 0x664dcf6fd45e9431) }, // 1175
+ { cat(0xa825f32bc8f6b080, 0xef163df2fa96e984), cat(0xaa5fb6fbc115010b, 0x850b0c5976b21027) }, // 1176
+ { cat(0x8684c2896d9226cd, 0x8c11cb28c878bad0), cat(0x884c926300dd9a6f, 0x9da2704792280cec) }, // 1177
+ { cat(0x3da1374248e9d7af, 0x4682dea7a727914d), cat(0xda141d6b3495c3e5, 0xc903e6d8e9d9ae47) }, // 1178
+ { cat(0x6480f901d3ee4625, 0xd2024bb952860dd7), cat(0xae767def5d449cb7, 0xd4031f13ee47be9f) }, // 1179
+ { cat(0x839a60ce432504eb, 0x0e683c944204d7e0), cat(0x8b91fe59176a16f9, 0x7668e5a98b6c987f) }, // 1180
+ { cat(0x9f5d67b06b6e6e44, 0xe3d9fa86d007bfcc), cat(0xdf4ffd5b58a9be5b, 0xf0a7d5dc12475a65) }, // 1181
+ { cat(0xb2b11fc055f1f1d0, 0xb647fb9f0cd2ffd6), cat(0xb2a6644913bafeaf, 0xf3b977e341d2aeb7) }, // 1182
+ { cat(0x288db30044c18e40, 0x91d32fb270a8ccac), cat(0x8eeb836da9626559, 0x8fc7931c34a88bc6) }, // 1183
+ { cat(0x0daf84cd3acf4a00, 0xe951e5ea4ddae112), cat(0xe4ac057c4237088f, 0x4c7284f9edda793d) }, // 1184
+ { cat(0x3e2603d7623f6e67, 0x210e51883e48b40f), cat(0xb6f00463682c06d9, 0x09f5372e57e1fa97) }, // 1185
+ { cat(0x64eb3645e832beb8, 0xe73ea7a031d3c33f), cat(0x92599d1c53566be0, 0xd4c42c25131b2edf) }, // 1186
+ { cat(0x07debd3ca6b7978e, 0x3ecaa5cd1c860531), cat(0xea28fb6085571301, 0x546d136e84f84aff) }, // 1187
+ { cat(0x9fe56430855fac71, 0xcbd55170e39e6a8e), cat(0xbb53fc4d3778dc01, 0x105742bed0c6a265) }, // 1188
+ { cat(0xe6511cf39de6238e, 0x3caaa78d82e5220b), cat(0x95dcc9d75f93e334, 0x0d129bcbda3881ea) }, // 1189
+ { cat(0xa3b4fb1f6309d27d, 0x2dddd8e26b083678), cat(0xefc7a95898ec9eb9, 0xae842c795d273644) }, // 1190
+ { cat(0x4fc3fc191c07db97, 0x57e4ad81ef39c52d), cat(0xbfd2ede07a56e561, 0x5869bd2de41f5e9d) }, // 1191
+ { cat(0xa6366347499fe2df, 0x7983be018c2e3757), cat(0x99758b19fb78b781, 0x1387ca8b1ce5e54a) }, // 1192
+ { cat(0x3d23d20ba8ffd165, 0x8f39300279e38bbf), cat(0xf588de8ff8c1259b, 0x5272ddab616fd544) }, // 1193
+ { cat(0xfdb641a2ed997451, 0x3f60f3352e4fa2ff), cat(0xc46d7ed993cdb7af, 0x7528b155e78caa9c) }, // 1194
+ { cat(0xfe2b67b58ae129da, 0x991a5c2a8b72e8cc), cat(0x9d24657adca492f2, 0xc4208dde52d6eee3) }, // 1195
+ { cat(0x96abd92277cea95d, 0xc1c3c6aa78b7dae0), cat(0xfb6d6f2afaa0eb1e, 0x069a7c96eaf17e39) }, // 1196
+ { cat(0x78897a81f9722117, 0xce36388860931580), cat(0xc92458ef2ee7227e, 0x6baeca12558dfe94) }, // 1197
+ { cat(0x606dfb9b2df4e746, 0x3e91c6d38075aacd), cat(0xa0e9e0bf58b8e865, 0x22f23b41de0b3210) }, // 1198
+ { cat(0xe6be62e28b2a529e, 0x98749f0f99f7bbd7), cat(0x80bb1a32ad60b9ea, 0x825b629b1808f4d9) }, // 1199
+ { cat(0x0aca37d0deaa1dca, 0x8d8764e5c325f958), cat(0xcdf829eaaf012977, 0x36f89dc4f34187c3) }, // 1200
+ { cat(0xa23b5fda4bbb4b08, 0x71391d849c1e6113), cat(0xa4c687eef267545f, 0x5f2d4b03f5ce0635) }, // 1201
+ { cat(0x1b62b3150962a26d, 0x2760e46a167eb410), cat(0x83d20658c1ec437f, 0x7f576f365e3e6b5e) }, // 1202
+ { cat(0x923784ee756a9d7b, 0x7234a0a9bd97867f), cat(0xd2e9a3c13646d265, 0x988be523c9fd7896) }, // 1203
+ { cat(0xdb5f9d8b91221795, 0xf4f6e6ee31460533), cat(0xa8bae9675e9f0eb7, 0xad3cb74fd4cac6de) }, // 1204
+ { cat(0xe2b2e46fa74e7944, 0xc3f8b8be8dd19dc2), cat(0x86fbedec4bb2722c, 0x8a96f90caa3bd24b) }, // 1205
+ { cat(0x9deb07190bb0c207, 0x9ff45aca7c829603), cat(0xd7f97cad45ea5047, 0x4424c1addd2c83ac) }, // 1206
+ { cat(0xe4bc05ada2f3ce6c, 0x7ff6af08639bab36), cat(0xacc796f104bb736c, 0x3683ce24b0f06956) }, // 1207
+ { cat(0xb6fcd157b58fd856, 0xccc558d382e2ef5e), cat(0x8a39458d9d62c2bc, 0xf86971b6f3f38778) }, // 1208
+ { cat(0xbe614ef2bc195a24, 0x7ad55aec049e4bca), cat(0xdd286f48fbd13794, 0xc0a8b5f18652725a) }, // 1209
+ { cat(0xcb810bf563477b50, 0x624448bcd07ea308), cat(0xb0ed25d3fca75faa, 0x33ba2b279ea85b7b) }, // 1210
+ { cat(0xd600d65de905fc40, 0x4e9d06fd7398826d), cat(0x8d8a84a996ec4c88, 0x2961bc1fb220492f) }, // 1211
+ { cat(0x5667bd630e6ffa00, 0x7dc80b2f1f5a6a47), cat(0xe2773aa8f17a140d, 0x0f02c6991d007519) }, // 1212
+ { cat(0x11ec978271f32e66, 0xcb066f58e5e1eea0), cat(0xb52c2eed8dfb433d, 0xa59bd214173390e1) }, // 1213
+ { cat(0xdb23ac685b28f1eb, 0xd59ebf7a51818bb3), cat(0x90f0258ad7fc35ca, 0xeae30e7678f60d80) }, // 1214
+ { cat(0xf83913da2b74b646, 0x229798c3b59c12b8), cat(0xe7e6a277bff9efab, 0x116b4a5727f0159a) }, // 1215
+ { cat(0x9360dcae892a2b6b, 0x4edfad695e167560), cat(0xb9854ec6332e5955, 0xa7890845b98cde15) }, // 1216
+ { cat(0xa91a4a253a8822bc, 0x3f1957877e785de6), cat(0x946aa56b5c251444, 0x860739d1613d7e77) }, // 1217
+ { cat(0xdb5d436ec40d0460, 0x64f558d8ca5a2fd7), cat(0xed776f122d08206d, 0xa33ec2e89b959725) }, // 1218
+ { cat(0x4917692569a40380, 0x50c44713d514f312), cat(0xbdf925a824068057, 0xb5cbcf207c77ac1e) }, // 1219
+ { cat(0xa0df8751215002cd, 0x0d69d2764410c275), cat(0x97fa8486833866ac, 0x916fd8e6c9f9567e) }, // 1220
+ { cat(0x3498d881cee66ae1, 0xaf0fb723a01ad0bb), cat(0xf32a6da405270aad, 0xb57fc17143288a64) }, // 1221
+ { cat(0x5d47139b0beb88b4, 0x8c0c9282e67bda2f), cat(0xc28857b66a85a224, 0x9133012768ed3b83) }, // 1222
+ { cat(0xb105a948d65606f6, 0xd6707535852fe1c0), cat(0x9ba0462b886ae81d, 0x40f59a85ed8a9602) }, // 1223
+ { cat(0x81a2a8748a233e57, 0xbd80bb88d5196932), cat(0xf9007045a7117362, 0x0188f73caf442337) }, // 1224
+ { cat(0x9ae886c3a1b5cb79, 0x6466fc6d7747875c), cat(0xc7338d0485a78f81, 0x9ad3f8fd59034f5f) }, // 1225
+ { cat(0xaf206bcfb4916f94, 0x5052638ac5d2d2b0), cat(0x9f5c70d06aec72ce, 0x157660caad9c3f7f) }, // 1226
+ { cat(0x7e9a461920e8b286, 0xe6ea38de09515119), cat(0xfefa4e1a44ad847c, 0xef23ce1115c6cbff) }, // 1227
+ { cat(0x987b6b474d86f538, 0xb8bb60b1a10dda7a), cat(0xcbfb71ae9d579d30, 0xbf4fd80dab056fff) }, // 1228
+ { cat(0x46c9229f7138c42d, 0x6095e6f480d7e1fc), cat(0xa32f8e254aac7dc0, 0x990cacd7bc045999) }, // 1229
+ { cat(0x9f074ee5f42d69bd, 0xe6de525d33dfe7fd), cat(0x828c71b76ef0649a, 0x140a23dfc99d147a) }, // 1230
+ { cat(0xcb3ee4a32048a92f, 0xd7ca1d61ec99732d), cat(0xd0e0b5f24b1a3a90, 0x201039660f61ba5d) }, // 1231
+ { cat(0x6f6583b5b36d5426, 0x463b4ab4bd478f58), cat(0xa71a2b283c14fba6, 0x800cfab80c4e2eb1) }, // 1232
+ { cat(0x591e02f7c2bddceb, 0x6b62a22a31060c46), cat(0x85ae88ecfcdd961e, 0xccd72ef9a371bef4) }, // 1233
+ { cat(0x283004bf9dfc94ab, 0xdf0436a9e809ad3d), cat(0xd5e40e47fafc2364, 0x7af1e4c29f1c64ba) }, // 1234
+ { cat(0xecf336ffb196dd56, 0x4c035eee533af0fe), cat(0xab1cd839959682b6, 0xc8c183cee5b05094) }, // 1235
+ { cat(0x8a5c2bffc1457dde, 0xa335e58b75c8c0cb), cat(0x88e3e02e1145355f, 0x0701363f1e26a6dd) }, // 1236
+ { cat(0x10937999353bfc97, 0x6b896f4589413478), cat(0xdb06337ce86ebbcb, 0x3e6856cb63710afc) }, // 1237
+ { cat(0xda0f947a90fcca12, 0xbc6df29e07675d2d), cat(0xaf382930b9f22fd5, 0xcb86abd5e9273bfc) }, // 1238
+ { cat(0x7b3fa9fba730a1a8, 0x96be5bb19f85e424), cat(0x8c2cedc094c1bfde, 0x3c6bbcab20ec2ffd) }, // 1239
+ { cat(0x5ecc432c3eb435da, 0x8aca2c4f65a3069f), cat(0xe047e2cdbacf9963, 0x93df94450179e662) }, // 1240
+ { cat(0xb23d0289cbc35e48, 0x6f082372b7b59ee6), cat(0xb36cb571623fade9, 0x4319436a6794b84e) }, // 1241
+ { cat(0x5b640207d635e506, 0xbf39b5f55fc47f1f), cat(0x8f8a2ac11b6624ba, 0x9c1435eeb943c6a5) }, // 1242
+ { cat(0xf8a0033fbd23080a, 0xcb8f8988993a64fd), cat(0xe5a9de01c5703ac4, 0x2ced23178ed2d76e) }, // 1243
+ { cat(0xc6e668ffca826cd5, 0x6fa607a07a951d98), cat(0xb7bb18016ac02f03, 0x57241c12d8a8ac58) }, // 1244
+ { cat(0x6beb873308685711, 0x261e6c806210e479), cat(0x92fc133455668c02, 0xac1ce34246ed56ad) }, // 1245
+ { cat(0xdfdf3eb80d73be81, 0xd69714009ce7d3f5), cat(0xeb2ceb86ef0a799d, 0xe02e386a0b15577b) }, // 1246
+ { cat(0xe64c322cd78fcb9b, 0x12127666e3eca991), cat(0xbc23ef9f25a1fae4, 0xb3582d21a277792f) }, // 1247
+ { cat(0x8509c1bd793fd615, 0xa80ec51f1cbd5474), cat(0x96832618eae7fbea, 0x2913574e1b92c759) }, // 1248
+ { cat(0x3b42cf958ecc89bc, 0x4017a1cb612eed86), cat(0xf0d1d68e44a65fdd, 0x0e85587cf8ead88f) }, // 1249
+ { cat(0x2f68a6113f0a07c9, 0xccdfb4a2b4258ad2), cat(0xc0a7ded836eb7fe4, 0x0b9de063fa557a0c) }, // 1250
+ { cat(0xf2ba1e74326e6ca1, 0x70b2f6e8901e08a8), cat(0x9a1fe579c589331c, 0xd617e6b661ddfb3c) }, // 1251
+ { cat(0x1df6972050b0adcf, 0x1ab7f17419c9a773), cat(0xf6996f293c0eb82e, 0x23597123cfc991fb) }, // 1252
+ { cat(0xe4c545b373c08b0c, 0x155ff45ce16e1f8f), cat(0xc5478c20fcd89358, 0x1c478db63fd474c8) }, // 1253
+ { cat(0x83d1048f8fcd3c09, 0xaab329e3e78b4c73), cat(0x9dd2d680ca46dc46, 0x7d060af833105d6d) }, // 1254
+ { cat(0x394e6db27faec675, 0xddeb763972787a51), cat(0xfc848a67aa0afa0a, 0x61a344c051b3c8af) }, // 1255
+ { cat(0x2dd857c1ffbf052b, 0x17ef91c78ec6c841), cat(0xca03a1ec8808c808, 0x4e1c3700415ca08c) }, // 1256
+ { cat(0xbe46ac9b32ff3755, 0xacbfa7d2d89f069a), cat(0xa19c818a066d6cd3, 0x71b02c00344a1a09) }, // 1257
+ { cat(0x31d223af5bff5f77, 0xbd661fdbe07f387c), cat(0x814a013b38578a42, 0xc159bcccf6a1ae6e) }, // 1258
+ { cat(0x4fb69f7ef99898bf, 0x957032f96731f3f9), cat(0xcedccec526f276d1, 0x355c6147f102b0b0) }, // 1259
+ { cat(0x72f87f98c7ad46ff, 0xaac028c785c18ffa), cat(0xa57d7237525b9240, 0xf77d1a9ff40226f3) }, // 1260
+ { cat(0x28c6cc7a39576bff, 0xbbcced6c6b013ffb), cat(0x84645b5f75160e9a, 0x5f97487ff6681f29) }, // 1261
+ { cat(0x74714729f558accc, 0x5fae48ad7801fff8), cat(0xd3d3c56588234a90, 0x98f20d998a4031db) }, // 1262
+ { cat(0x905a9f54c446f0a3, 0x7fbea08ac667fffa), cat(0xa97637846ce90873, 0xad8e7147a1ccf4af) }, // 1263
+ { cat(0x40487f77036bf3b5, 0xffcbb3a23853332e), cat(0x8791c6038a5406c2, 0xf13ec1061b0a5d59) }, // 1264
+ { cat(0xcd40cbf19f131f89, 0x9945ec36c0851eb0), cat(0xd8e93cd276ecd79e, 0x4ecace702b43c88e) }, // 1265
+ { cat(0x7100a327b275b2d4, 0x7a9e5692339db227), cat(0xad8763db925712e5, 0x0bd571f355cfd3a5) }, // 1266
+ { cat(0x8d9a1c1fc1f7c243, 0x954b7874f617c1b9), cat(0x8ad2b64941df4250, 0xd6445b2911730fb7) }, // 1267
+ { cat(0x7c29c699365936d2, 0x8878c0bb235935f4), cat(0xde1df075363203b4, 0x8a06f841b584e5f2) }, // 1268
+ { cat(0x30216badc5142bdb, 0xa0609a2f4f7a9190), cat(0xb1b18d2a91c19c90, 0x6e6bf9ce2ad0b7f5) }, // 1269
+ { cat(0x268122f16a76897c, 0x804d4825d92edada), cat(0x8e27a4220e347d40, 0x58566171bbda2cc4) }, // 1270
+ { cat(0x0a6837e8aa574260, 0xcd48736fc1e4915c), cat(0xe372a0367d20c866, 0xf3bd68b5f95d146d) }, // 1271
+ { cat(0xa1ecf986eeac351a, 0x3dd38f8c9b1d4117), cat(0xb5f54cf8641a39eb, 0xf6312091944a76bd) }, // 1272
+ { cat(0xb4bd946bf2235dae, 0x97dc72d6e27dcdac), cat(0x91910a605014fb23, 0x2b5a807476a1f897) }, // 1273
+ { cat(0x546287131d0562b0, 0xf2fa5157d0c94913), cat(0xe8e8109a19bb2b6b, 0x7890cd8724365a8c) }, // 1274
+ { cat(0x438205a8e4044ef3, 0xf5950ddfda3aa0dc), cat(0xba53407b47c8ef89, 0x2d40a46c1cf84870) }, // 1275
+ { cat(0x6934d153e99d0bf6, 0x5e10d7e6482ee716), cat(0x950f66c9063a593a, 0x8a9a1d234a6039f3) }, // 1276
+ { cat(0x0ebae8864294dff0, 0x96815970737e3e8a), cat(0xee7f0adb3d2a285d, 0xaa902e9edd66c31f) }, // 1277
+ { cat(0xa562539e9baa4cc0, 0x78677ac05c64fed5), cat(0xbecc08af6421b9e4, 0x8873587f178568e5) }, // 1278
+ { cat(0xeab50fb21621d700, 0x6052c899e383ff11), cat(0x98a33a25e9b494b6, 0xd38f79ff460453ea) }, // 1279
+ { cat(0xddee7f83569c8b33, 0xcd5140f638d331b4), cat(0xf4385d0975edbabe, 0x1f4bf6653cd3b977) }, // 1280
+ { cat(0xb18b9935dee3a28f, 0xd77433f82d75c15d), cat(0xc3604a6df7f16231, 0xb2a32b8430a9612c) }, // 1281
+ { cat(0xf46fadc4b24fb53f, 0xdf9029935791677e), cat(0x9c4d0857f98de827, 0xc21c22d026ede756) }, // 1282
+ { cat(0x8719160783b2bb99, 0x65b375b88c1bd8c9), cat(0xfa14da265c16403f, 0x9cf9d14d0b163ef1) }, // 1283
+ { cat(0x9f4744d2cfc22fad, 0xeaf5f7c6d67cad6e), cat(0xc810ae8516783366, 0x172e410a6f44ff27) }, // 1284
+ { cat(0x7f6c370f0c9b5957, 0xef2b2c9f11fd578b), cat(0xa00d586a7860291e, 0x78f1cda1f29d98ec) }, // 1285
+ { cat(0xcc569272707c4779, 0x8c228a18db3112d6), cat(0x800aad21f9e6874b, 0x93f4a4818ee47a56) }, // 1286
+ { cat(0x46f0ea50b3fa0bf5, 0xad041027c51b5156), cat(0xccdde1cff63da545, 0xb9876d9c17d3f6f1) }, // 1287
+ { cat(0x6bf3eea6f661a32a, 0xf0d00cec9daf7445), cat(0xa3e4b4a65e97b76a, 0xfad2be1679765f27) }, // 1288
+ { cat(0x23298bb8c51ae8ef, 0x270cd723b15929d1), cat(0x831d5d51e5462c55, 0x957564dec791e5b9) }, // 1289
+ { cat(0x050f45f46e9174b1, 0xd8148b6c4ef50fb4), cat(0xd1c8954fd53d13bc, 0x22556e313f4fd5f5) }, // 1290
+ { cat(0xd0d904c38ba7908e, 0x4676d5f03f2a72f6), cat(0xa7d3aaa64430dc96, 0x81ddf1c0ff731190) }, // 1291
+ { cat(0xda473702d61fa6d8, 0x385f118cff5528c5), cat(0x8642eeeb69c0b078, 0x67e4c16732c27473) }, // 1292
+ { cat(0x2a0b8b37bcff7159, 0xf3cb4f47feeea7a2), cat(0xd6d17e4576011a5a, 0x3fd468a51e03ed86) }, // 1293
+ { cat(0xee6fa292fd99277b, 0x296f729fff2552e8), cat(0xabdacb6ac4cdaeae, 0x9976ba1db19cbe04) }, // 1294
+ { cat(0xbebfb542647a85fc, 0x2125f54ccc1ddbed), cat(0x897bd5ef03d7bef2, 0x145efb4af47d64d0) }, // 1295
+ { cat(0xfdff886a3a5da32d, 0x01d65547acfc9314), cat(0xdbf9564b39593183, 0x53cb2bab20c8a14d) }, // 1296
+ { cat(0xcb32d3882eb14f57, 0x34ab776c8a63a8dd), cat(0xaffaab6f6114279c, 0x4308efbc1a3a1aa4) }, // 1297
+ { cat(0xa28f0fa0255aa5df, 0x5d55f923a1e953e4), cat(0x8cc88925e74352e3, 0x68d3f2fce1c81550) }, // 1298
+ { cat(0x9db1b299d55dd632, 0x2eeff505cfdbb96d), cat(0xe140db6fd86bb7d2, 0x41531e616940221a) }, // 1299
+ { cat(0xb15af547dde4ab5b, 0x58bff737d97c9457), cat(0xb433e2bfe0562ca8, 0x34427eb454334e7b) }, // 1300
+ { cat(0x8de25dd317ea22af, 0x7a332c2cadfd4379), cat(0x9029823319de8a20, 0x29cecbc3768f71fc) }, // 1301
+ { cat(0x496a2fb826436ab2, 0x5d1ead14499538c1), cat(0xe6a8d051c2fda9cd, 0x0fb146058a7f1cc7) }, // 1302
+ { cat(0xd454f2f9b835eef5, 0x174bbda9d477609b), cat(0xb8870d0e3597bb0a, 0x72f438046ecc1705) }, // 1303
+ { cat(0x437728c7c6918bf7, 0x45d63154a9f91a15), cat(0x939f3da4f7ac95a1, 0xf5902cd058a3459e) }, // 1304
+ { cat(0xd258413fa41c1325, 0x3c89e887765b5cef), cat(0xec31fc3b25e0ef69, 0x88e6ae1a276ba296) }, // 1305
+ { cat(0xa8469a99501675b7, 0x63a186d2c515e3f2), cat(0xbcf4c9c8eb1a5921, 0x3a5224e1b922e878) }, // 1306
+ { cat(0xed05487aa6785e2c, 0x4fb46bdbd0de4ff5), cat(0x972a3b07227b7a80, 0xfb74ea4e2db586c6) }, // 1307
+ { cat(0x480873f770c096ad, 0x4c53dfc61afd4cbb), cat(0xf1dd2b3e9d925d9b, 0x2bee43b04922713e) }, // 1308
+ { cat(0x6cd38ff92700788a, 0xa3764c9e7bfdd6fc), cat(0xc17dbc3217a84ae2, 0x898b6959d41b8dcb) }, // 1309
+ { cat(0x570fa660ec00606e, 0xe92b707ec997df30), cat(0x9acafcf4dfb9d582, 0x07a2baae43493e3c) }, // 1310
+ { cat(0xf1b2a3ce466700b1, 0x75124d97a8f2feb3), cat(0xf7ab2e549929559c, 0xd9045de39edb96c6) }, // 1311
+ { cat(0xf48ee971d1ec008d, 0xf741d7ac8728cbc3), cat(0xc6228b76e0edde17, 0x14037e4fb249456b) }, // 1312
+ { cat(0xc3a5878e41899a0b, 0x2c34ac8a05ba3c9c), cat(0x9e82092be724b1ac, 0x1002cb72f5076abc) }, // 1313
+ { cat(0x6c3c0c16cf429011, 0xe05447433c5d2dc6), cat(0xfd9cdb7971d44f79, 0xb337abeb21a57794) }, // 1314
+ { cat(0x89c9a345729ba674, 0xb3769f68fd1757d2), cat(0xcae3e2c78e4372c7, 0xc292efef4e1df943) }, // 1315
+ { cat(0x07d4829df54951f6, 0xf5f87f8730df7975), cat(0xa24fe89fa502c239, 0x68758cbf71b19436) }, // 1316
+ { cat(0x3976cee4c43aa7f8, 0xc4c6cc6c27192df7), cat(0x81d986e61d9bce94, 0x53913d65f48e102b) }, // 1317
+ { cat(0x28be17d46d2aa65a, 0xd471471371c1e324), cat(0xcfc271702f5fb0ed, 0x5281fbd654168045) }, // 1318
+ { cat(0x20981310575551e2, 0x438dd275f49b1c1d), cat(0xa635278cf2b2f3f1, 0x0ece6311dcdecd04) }, // 1319
+ { cat(0x4d4675a6ac444181, 0xcfa4a85e5d48e34b), cat(0x84f752d7288f298d, 0xa571e8db1718a403) }, // 1320
+ { cat(0xe20a55d77a06cf36, 0x190773ca2edb0544), cat(0xd4beeaf1da7ea8e2, 0xa24fdaf824f4399e) }, // 1321
+ { cat(0x4e6eab12c8057291, 0xad9f8fd4f248d103), cat(0xaa32558e486553e8, 0x81d97bf9b729c7b2) }, // 1322
+ { cat(0x71f222756cd12874, 0x8ae60caa5b6d7403), cat(0x88284471d3844320, 0x67e12ffaf8ee395b) }, // 1323
+ { cat(0x831d03ef1481da54, 0x11701443c57becd1), cat(0xd9da071c85a06b67, 0x0c9b7ff7f4b05bc5) }, // 1324
+ { cat(0x027d9cbf439b1510, 0x0df343696ac98a41), cat(0xae4805b06ae6bc52, 0x707c665ff6f37c9e) }, // 1325
+ { cat(0x9b97b09902e27740, 0x0b2902babbd46e9a), cat(0x8b6cd159ef1efd0e, 0xc0638519925c63b1) }, // 1326
+ { cat(0x5f591a8e6b03f200, 0x11db37912c87175d), cat(0xdf1482297e97fb4a, 0xcd6c0828ea2d6c4f) }, // 1327
+ { cat(0xb2adaed8559cc199, 0xa7e292da8a05ac4b), cat(0xb276ce87987995d5, 0x712339ba54f12372) }, // 1328
+ { cat(0x288af246aae3ce14, 0x864edbe2080489d5), cat(0x8ec57206139477dd, 0xf41c2e2eaa5a82c2) }, // 1329
+ { cat(0xa744b6d777d2e354, 0x0a17c636733a7622), cat(0xe46f1cd685ba5963, 0x202d16b11090d136) }, // 1330
+ { cat(0x1f6a2bdf930f1c43, 0x3b46382b8f61f81b), cat(0xb6bf4a4537c84782, 0x802412274073da92) }, // 1331
+ { cat(0xe5ee897fa8d8e368, 0xfc382cefa5e7f9af), cat(0x9232a1d0f96d0602, 0x001cdb5299f64874) }, // 1332
+ { cat(0xa3174265daf49f0e, 0x6059e17f6fd98f7f), cat(0xe9ea9c818f14d669, 0x99c7c550f656da54) }, // 1333
+ { cat(0x1c129b84af2a18d8, 0x4d14b465f31472cc), cat(0xbb2216ce0c10ab87, 0xae396aa72b78aeaa) }, // 1334
+ { cat(0x49a87c6a25bb4713, 0x70dd5d1e5c105bd6), cat(0x95b4df0b3cda22d2, 0xf1c78885bc608bbb) }, // 1335
+ { cat(0xdc40c7103c5ed81f, 0x1afbc830934d5fbd), cat(0xef87cb452e29d151, 0x82d8da6f93cdac5e) }, // 1336
+ { cat(0x7d009f40304be018, 0xe263068d42a44c97), cat(0xbf9fd5d0f1bb0dda, 0xcf13e1f2dca489e5) }, // 1337
+ { cat(0xca66e5ccf36fe67a, 0x4eb59ed768837079), cat(0x994cab0d8e2f3e48, 0xa5a9818f16ea07ea) }, // 1338
+ { cat(0xaa3e3c7b1f1970c3, 0xb12297bf0d9f1a5b), cat(0xf5477815b04b96da, 0xa2a8cf4b57dcd977) }, // 1339
+ { cat(0x54fe96c8e5adf3cf, 0xc0e87965a47f4849), cat(0xc4392cde26a2df15, 0x4eed72a2acb0adf9) }, // 1340
+ { cat(0x7732123a5157f63f, 0xcd86c784839906a1), cat(0x9cfa8a4b521be5aa, 0xa58ac21bbd5a24c7) }, // 1341
+ { cat(0xbeb68390822656cc, 0x7c0ad8d405c1a435), cat(0xfb2a76dee9c63c44, 0x3c113692c8903ad8) }, // 1342
+ { cat(0x322b9c739b51df09, 0xfcd57a4337ce1cf7), cat(0xc8eec57f216b6369, 0xc9a75edbd3a6957a) }, // 1343
+ { cat(0x2822e38faf74b26e, 0x63ddfb68f971b0c6), cat(0xa0bf0465b455e921, 0x6e1f7f1642ebaac8) }, // 1344
+ { cat(0x86824fa625f6f525, 0x1cb195ed945af3d1), cat(0x8098d0515d11874d, 0xf1b2cc11cf22ef06) }, // 1345
+ { cat(0x0a6a1909d657eea1, 0xc782897c2091861c), cat(0xcdc14d4efb4f3ee3, 0x1c514682e504b1a4) }, // 1346
+ { cat(0x0854e0d4ab798bb4, 0x9f9ba1301a0e04e3), cat(0xa49aa43f2f7298b5, 0xb04105358403c150) }, // 1347
+ { cat(0xd3771a43bc613c90, 0x7fafb4267b3e6a4f), cat(0x83aee9cc25f546f7, 0xc034042ad003010c) }, // 1348
+ { cat(0x52582a05fa352db3, 0xff7f86a3f863dd4b), cat(0xd2b176136feed7f2, 0xcd2006aae66b34e1) }, // 1349
+ { cat(0xdb79bb37fb5dbe29, 0x9932d21cc6b64aa3), cat(0xa88df80f8cbf1328, 0xa4199eef1ebc2a4d) }, // 1350
+ { cat(0xaf9495c662b164ee, 0x1428a817055ea21c), cat(0x86d7f9a60a3275ba, 0x1ce14bf27efceea4) }, // 1351
+ { cat(0x4c20efa3d11bd4b0, 0x20410cf1a2310360), cat(0xd7bff5d676b722c3, 0x61687983fe617dd4) }, // 1352
+ { cat(0x09b3f2e9741643c0, 0x19cda3f481c0cf80), cat(0xac9991785ef8e89c, 0x4ded2e0331e797dd) }, // 1353
+ { cat(0x07c328bac3450300, 0x14a4832a01670c66), cat(0x8a1474604bfa53b0, 0x3e5758028e52dfe4) }, // 1354
+ { cat(0xd938412ad20804cc, 0xedd40510023e7a3d), cat(0xdced8700799085e6, 0xca25599db084996c) }, // 1355
+ { cat(0xe0f9cdbbdb399d70, 0xbe43374001cb94fe), cat(0xb0be0599fada04b8, 0xa1b77ae48d36e123) }, // 1356
+ { cat(0xe72e3e2fe2947df3, 0xcb68f900016faa65), cat(0x8d64d147fbe19d60, 0x815f9583a42be74f) }, // 1357
+ { cat(0x0b7d304c9dba631f, 0xabdb2800024c43d4), cat(0xe23ae8732c9c2f00, 0xceff559f6d130bb3) }, // 1358
+ { cat(0xd5fdc03d4afb827f, 0xbcaf53333509cfdd), cat(0xb4fbed28f07cf267, 0x0bff77b2bda8d628) }, // 1359
+ { cat(0x77fe33643bfc6866, 0x308c428f5da17317), cat(0x90c98a8726ca5b85, 0xa332c62897ba44ed) }, // 1360
+ { cat(0xbffd1f06c660a709, 0xe746d0e5629beb58), cat(0xe7a8dda50add5f3c, 0x38513d0dbf906e48) }, // 1361
+ { cat(0xccca7f389eb3b8d4, 0xb90573eab5498913), cat(0xb953e48408b118fc, 0xf9da973e32d9f1d3) }, // 1362
+ { cat(0x0a3b98fa188fc710, 0x94045cbbc43ad410), cat(0x94431d366d5a7a63, 0xfb1545cb5be18e43) }, // 1363
+ { cat(0x43928e5cf4193e80, 0xecd3c792d391534c), cat(0xed382ebd7bc3f706, 0x5e886fabc635b06b) }, // 1364
+ { cat(0x360ed84a5ce0fecd, 0x8a43060f0fa775d6), cat(0xbdc68bcac969926b, 0x7ed38c896b5e26bc) }, // 1365
+ { cat(0x91a579d5171a6571, 0x3b68d1a5a61f9178), cat(0x97d2096f0787a855, 0xff0fa3a122b1b896) }, // 1366
+ { cat(0xe908c2ee8b5d6f1b, 0x92414f6f7032825a), cat(0xf2e9a8b1a5a5da23, 0x31b29f683782c0f0) }, // 1367
+ { cat(0xba6d68bed5e458e2, 0xdb6772bf8cf53515), cat(0xc25486f48484ae82, 0x8e287f8692cf00c0) }, // 1368
+ { cat(0x2ebded6577e9e0b5, 0x7c52c232d72a90de), cat(0x9b76d25d36d08b9b, 0xa4ed32d20f0c009a) }, // 1369
+ { cat(0xb12fe23bf30fcdef, 0x2d5136b7beaa8162), cat(0xf8be1d61f14dac2c, 0x3b151e1ce4e000f6) }, // 1370
+ { cat(0xc0f31b6328d9718c, 0x2440f892feeecde8), cat(0xc6fe7de7f43e2356, 0x95aa7e7d83e6672b) }, // 1371
+ { cat(0x33f5af8287145ad6, 0x83672d42658bd7ed), cat(0x9f31fe5329cb4f78, 0x77bb986469851f56) }, // 1372
+ { cat(0xecbc4c040b53c48a, 0x6bd8486a3c12f315), cat(0xfeb663b842dee58d, 0x8c5f5a3a426e9889) }, // 1373
+ { cat(0xbd6370033c4303a1, 0xefe039ee96758f44), cat(0xcbc51c9368b2513e, 0x09e5e1c8352546d4) }, // 1374
+ { cat(0x9782c002969c02e7, 0xf319c7f211f7a5d0), cat(0xa30416dc53c1da98, 0x07eb1b0690ea9f10) }, // 1375
+ { cat(0xdf9bcccedee33586, 0x5c149ff4db2c84a6), cat(0x8269abe37634aee0, 0x0655af3873eee5a6) }, // 1376
+ { cat(0xff5fae17cb052270, 0x935433215eada10a), cat(0xd0a9130589ede499, 0xa3bc4b8d864b090a) }, // 1377
+ { cat(0x9919581308d0e85a, 0x0f768f4de557b408), cat(0xa6eda8d13b24b6e1, 0x4fc9d60ad1d5a0d5) }, // 1378
+ { cat(0x474779a8d3da537b, 0x3f920c3e5112f66d), cat(0x858aed742f50924d, 0xd96e44d574aae711) }, // 1379
+ { cat(0x0ba58f74862a1f2b, 0x98e9ad3081b7f0ae), cat(0xd5ab1586b21a83af, 0xc24a07bbedde3e82) }, // 1380
+ { cat(0xa2ead92a04ee7f56, 0x13ee2426ce2cc08b), cat(0xaaef446bc1aecfbf, 0xcea19fc98b183201) }, // 1381
+ { cat(0x82557a8803f1ff78, 0x0ff1b68571bd66d6), cat(0x88bf69efce2572ff, 0xd8814ca13c135b34) }, // 1382
+ { cat(0x03bbf740064fff26, 0x7fe92408b5fbd7bc), cat(0xdacbdcb2e36f1e66, 0x27354768601ef854) }, // 1383
+ { cat(0x362ff900050ccc1e, 0xccba833a2b2fdfca), cat(0xaf097d5be925b1eb, 0x529105ed19b26043) }, // 1384
+ { cat(0xc4f32d999da3d67f, 0x0a2ecf61bc264ca2), cat(0x8c07977cba848e55, 0xdba737f0e15b8035) }, // 1385
+ { cat(0x3b1eaf5c2f6c8a64, 0xdd17b235f9d6e103), cat(0xe00c25945da0e3bc, 0x92a5264e355f3389) }, // 1386
+ { cat(0xc8e559168c56d51d, 0x7dac8e9194abe735), cat(0xb33ceadd17b3e963, 0xa8841ea4f77f5c6d) }, // 1387
+ { cat(0x3a51141209df10e4, 0x648a0ba7aa231f5e), cat(0x8f63ef1746298782, 0xed367eea5f9916be) }, // 1388
+ { cat(0xf6e8201cdc981b07, 0x074345d910383230), cat(0xe56cb1bed6a8d8d1, 0x7b8a64aa328e8ac9) }, // 1389
+ { cat(0x2bece67d7d467c05, 0x9f6904ada6935b59), cat(0xb78a27cbdeed7a41, 0x2fa1ea21c20ba23b) }, // 1390
+ { cat(0x2323eb97976b966a, 0xe5ed9d57b875e2ae), cat(0x92d4eca318bdfb67, 0x594e54e7ce6fb4fc) }, // 1391
+ { cat(0x383978f28bdf5711, 0x6fe2955927230449), cat(0xeaee476b5ac9923e, 0xf54a2172e3e5ee60) }, // 1392
+ { cat(0x2cfac7286fe5df41, 0x264edde0ec1c036e), cat(0xbbf1d2bc48a141cb, 0xf76e8128b6518b80) }, // 1393
+ { cat(0x8a6238ed26517f67, 0x51d8b180bce335f2), cat(0x965b0efd06e767d6, 0x5f8b9a86f8413c66) }, // 1394
+ { cat(0x43d05b150a1bff0b, 0xb6278267949ebcb6), cat(0xf091b194d7d8a623, 0xcc1290d7f39b93d7) }, // 1395
+ { cat(0x9ca6af44081665a2, 0xf81f9b86107efd5e), cat(0xc0748e10acad51b6, 0x3cdba71329494312) }, // 1396
+ { cat(0xe3b88c366cdeb7b5, 0x934c7c6b4065977f), cat(0x99f6d80d56f10e2b, 0x63e2ec0f543a9c0e) }, // 1397
+ { cat(0x6c5a79f0ae3125ef, 0x5213fa4533d5bf31), cat(0xf657c01557e816ab, 0xd304ace55390f9b1) }, // 1398
+ { cat(0xf048618d5827518c, 0x41a995042977cc27), cat(0xc513001113201223, 0x0f36f0b7760d948d) }, // 1399
+ { cat(0xf36d1ad779b90e09, 0xce214403545fd686), cat(0x9da8ccda75b341b5, 0xa5c58d5f91a476d7) }, // 1400
+ { cat(0xebe1c48bf5f4e342, 0xe3686cd22099573c), cat(0xfc4147c3ef8535ef, 0x6fa27bcc1c3a57bf) }, // 1401
+ { cat(0x89816a099190b5cf, 0x1c538a41b3addf63), cat(0xc9cdd30326042b25, 0xf2e86309b02eac99) }, // 1402
+ { cat(0x3acdee6e0e0d5e3f, 0x49dc6e9af624b2b6), cat(0xa171759c1e69bc1e, 0x5bed1c07c02556e1) }, // 1403
+ { cat(0x95718b8b3e711832, 0xa17d2548c4ea2892), cat(0x81279149b1ee3018, 0x498a7cd3001ddf1a) }, // 1404
+ { cat(0x224f45ab971b59ea, 0x9bfb6edad4a9da82), cat(0xcea5b542b649e68d, 0x42772e1e669631c4) }, // 1405
+ { cat(0xb50c37bc78e2ae55, 0x4995f248aa217b9c), cat(0xa5515dcef83b1ed7, 0x685f58185211c169) }, // 1406
+ { cat(0x90d692fd2d822511, 0x07ab283a21b462e3), cat(0x844117d8c695b245, 0xed191346a80e3454) }, // 1407
+ { cat(0x4e241e61e269d4e8, 0x0c450d29cf87049e), cat(0xd39b595ad755ea09, 0x7b5b520aa67d2087) }, // 1408
+ { cat(0xd81ce51b1b87dd86, 0x70373dbb0c6c03b2), cat(0xa9491448ac44bb3a, 0xc915db3bb8641a05) }, // 1409
+ { cat(0xe0171daf49397e05, 0x269297c8d6bccfc2), cat(0x876da9d3bd03c8fb, 0xd4117c2fc6b67b37) }, // 1410
+ { cat(0x668b62b20ec2633b, 0x70ea8c748ac7b2cf), cat(0xd8af761f94d2db2c, 0x8682604c7123f859) }, // 1411
+ { cat(0xeba2b55b3f01e8fc, 0x5a553d2a089fc23f), cat(0xad592b4c770f15bd, 0x38684d09f41cc6ad) }, // 1412
+ { cat(0xefb55de298ce53fd, 0x1510fdbb3a196833), cat(0x8aadbc3d2c0c1164, 0x2d203da190170557) }, // 1413
+ { cat(0x19222fd0f47d532e, 0x881b2f91f68f0d1e), cat(0xdde2c6c84679b56d, 0x1500629c19be6ef3) }, // 1414
+ { cat(0x474e8ca729fddc25, 0x39af5941920c0a7e), cat(0xb18238a038615df0, 0xdd99e87ce165258f) }, // 1415
+ { cat(0x390ba3b8ee64b01d, 0xc7bf7a9adb3cd532), cat(0x8e01c6e6938117f3, 0xe47b2063e7841e0c) }, // 1416
+ { cat(0x5b45d2c17d6de696, 0x0c6590f7c52e21e9), cat(0xe3360b0a859b5986, 0x3a5e9a39726cfce0) }, // 1417
+ { cat(0x7c37dbcdfdf18544, 0xd6b7a72c9dbe8187), cat(0xb5c4d5a2047c479e, 0x95187b61285730b3) }, // 1418
+ { cat(0x302cafd7fe5ad103, 0xdef9528a17cb9ad3), cat(0x916a44819d30394b, 0xaa79fc4db9df5a29) }, // 1419
+ { cat(0xb37ab2f330914e6c, 0x97f550dcf2df5e1e), cat(0xe8aa0735c84d2879, 0x10c32d4929655d0e) }, // 1420
+ { cat(0xf5fbc25c26daa523, 0xacc440b0c24c4b4b), cat(0xba219f5e39d75394, 0x0d68f1075451173e) }, // 1421
+ { cat(0xc4c96849b8aeea82, 0xf09d008d683d0909), cat(0x94e7b2b1c7df7610, 0x0aba5a6c43741298) }, // 1422
+ { cat(0x6e0f0d42c117dd9e, 0x4dc800e24061a80e), cat(0xee3f844fa6325680, 0x112a2a46d25350f4) }, // 1423
+ { cat(0x580c0a9bcdacb14b, 0x716ccd81cd1aecd8), cat(0xbe9936a61e8eab99, 0xa754ee9f0ea90d90) }, // 1424
+ { cat(0xe009a2163e23c109, 0x278a3e0170e25713), cat(0x987a921e7ed88947, 0xb910bee5a5540ad9) }, // 1425
+ { cat(0x000f69bd303934db, 0x7276c99be7d08b52), cat(0xf3f75030caf40ed9, 0x281acb09088677c3) }, // 1426
+ { cat(0x333f87ca8cfa90af, 0x8ec56e16530d3c42), cat(0xc32c402708c33f14, 0x20156f3a6d385fcf) }, // 1427
+ { cat(0xc299396ed72eda26, 0x0bd124dea8d76368), cat(0x9c236685a09c3276, 0x801125c857604ca5) }, // 1428
+ { cat(0xd0f528b1584af6a3, 0x461b6e310e256bd9), cat(0xf9d23da29a9383f0, 0xcce83c73bf007aa2) }, // 1429
+ { cat(0xa72a86f446a25ee9, 0x04e2be8da4eabcae), cat(0xc7db64821542cff3, 0xd720305c98cd2ee8) }, // 1430
+ { cat(0x1f5538c36bb518ba, 0x6a4efed7b722308b), cat(0x9fe2b6ce7768a65c, 0xac19c04a13d758ba) }, // 1431
+ { cat(0x3221f46bdf882790, 0xaa17fe25f1d04dab), cat(0xffd1247d8bdaa3c7, 0x79c2cd4352f22790) }, // 1432
+ { cat(0x8e8190564c6cec73, 0xbb4664eb27d9d7bc), cat(0xcca750646fe21c9f, 0x949bd7690f281fa6) }, // 1433
+ { cat(0x7201404509f0bd29, 0x629eb7228647dfca), cat(0xa3b90d1d264e7d4c, 0x76e312ba72867fb8) }, // 1434
+ { cat(0x5b34336a6e5a30ed, 0xe87ef8e86b6cb308), cat(0x82fa70e41ea53109, 0xf8b5a895286b9960) }, // 1435
+ { cat(0x91ed1f10b0904e49, 0x73fe5b0d78adeb40), cat(0xd190b4a031084e76, 0x5abc40eea7128f00) }, // 1436
+ { cat(0xa7f0e5a6f3a6a507, 0x8ffeaf3dfa24bc33), cat(0xa7a6f6e68da03ec5, 0x1563672552753f33) }, // 1437
+ { cat(0x1ff3eaebf61eea6c, 0x733225cb2e83c9c3), cat(0x861f2beba4803237, 0x444f85b7752a98f6) }, // 1438
+ { cat(0x331fde465697dd7a, 0x51e9d611e4060f9d), cat(0xd6984645d4005058, 0x6d4c0925884427f0) }, // 1439
+ { cat(0x5c197e9eabacb12e, 0xa7ee44db1cd1a618), cat(0xabad0504a999d9e0, 0x5770075139d01ff3) }, // 1440
+ { cat(0xe347987eefbd5a8b, 0xb98b6a48e3daeb46), cat(0x89573736ee14ae4d, 0x12c005da94a67ff5) }, // 1441
+ { cat(0x053f5a64b2c890df, 0x8f4576db062b120a), cat(0xdbbebebe49bab07b, 0x51333c90edd73323) }, // 1442
+ { cat(0xd0ff7b83c23a0d7f, 0xa5d12be26b55a808), cat(0xafcbcbcb6e2ef395, 0xda8f63a724ac28e8) }, // 1443
+ { cat(0xda65fc69682e7132, 0xeb0dbcb522aaecd3), cat(0x8ca3096f8b58c2de, 0x4872b61f5089ba53) }, // 1444
+ { cat(0xf70993dbd9e3e851, 0x7815fabb6aab1485), cat(0xe104dbe5abc137ca, 0x0d84569880dc5d52) }, // 1445
+ { cat(0xf8d476497b1cb9da, 0xc677fbc9222276d1), cat(0xb403e31e2300f96e, 0x7136abad33e37ddb) }, // 1446
+ { cat(0x60a9f83ac8e3c7e2, 0x385ffca0e81b9241), cat(0x90031c181c00c78b, 0x8dc556242982cb16) }, // 1447
+ { cat(0x344326c4749fa636, 0xc0999434a692839a), cat(0xe66b602693347278, 0xe2d556a0426ade8a) }, // 1448
+ { cat(0xf69c1f03907fb82b, 0xcd47a9c3b8753615), cat(0xb855e68542905b93, 0xe8aaabb368557ed4) }, // 1449
+ { cat(0xf87ce59c73996023, 0x0a9fbb02f9f75e77), cat(0x9377eb9dced9e2dc, 0xba2222f5ed113243) }, // 1450
+ { cat(0xc0c7d5c71f5bcd04, 0xddcc5e6b298bca58), cat(0xebf3129617c30494, 0x5d036b2314e8506c) }, // 1451
+ { cat(0xcd6cab05b2afd737, 0x17d6b1ef546fd514), cat(0xbcc27544dfcf36dd, 0x1735ef4f43ed0d23) }, // 1452
+ { cat(0x0abd559e288cac2c, 0x131227f2a9f310dd), cat(0x9701f76a4ca5c57d, 0xac2b25d903240a83) }, // 1453
+ { cat(0x44622296a74779e0, 0x1e83731ddcb81afa), cat(0xf19cbf107aa2d595, 0xe045095b3839aa6b) }, // 1454
+ { cat(0x9d1b4edeec392e4c, 0xe535f5b17d601595), cat(0xc14a3273954f1144, 0xb36a6de293615522) }, // 1455
+ { cat(0xe415d8b25694250a, 0x50f7f7c13119aade), cat(0x9aa1c1f6110c0dd0, 0x8f8857e875e7774e) }, // 1456
+ { cat(0xa022f4508a86a1aa, 0x1b2659351b5c4496), cat(0xf769365681ace2e7, 0x4c0d5973efd8bee4) }, // 1457
+ { cat(0x4ce8c373a2054e21, 0xaf51e0f749169d45), cat(0xc5edc51201571bec, 0x3cd77ac32646ff1d) }, // 1458
+ { cat(0x70ba35f61b3771b4, 0x8c4180c5d412176a), cat(0x9e57d0db3445aff0, 0x30ac6235b838cc17) }, // 1459
+ { cat(0x4df6bcbcf858b5ed, 0xad359ad6201cf243), cat(0xfd594e2b86d5e64d, 0x1aad69ef8d27acf2) }, // 1460
+ { cat(0x719230972d13c4be, 0x242ae244e67d8e9c), cat(0xcaadd822d244b83d, 0xaef1218c70ec8a5b) }, // 1461
+ { cat(0xc141c078f0dc9d64, 0xe9bbe8371ecad87d), cat(0xa224ace8a836f9ca, 0xf25a813d2723a1e2) }, // 1462
+ { cat(0x010166c72716e450, 0xbafcb9c5b23be064), cat(0x81b6f0ba202bfb08, 0xc1e200fdb8e94e4f) }, // 1463
+ { cat(0x34cf0ad83e8b06e7, 0x91945c6f839300a0), cat(0xcf8b1ac366acc4da, 0xcfd00195f4a87d4b) }, // 1464
+ { cat(0xc3d8d579cba26bec, 0x7476b059360f33b3), cat(0xa608e235ebbd6a48, 0xa6400144c3b9fdd5) }, // 1465
+ { cat(0x9cad7794a2e85656, 0xc39226adc4d8f629), cat(0x84d3e82b22fdeea0, 0x85000103cfc7fe44) }, // 1466
+ { cat(0xc77bf2876b0d56f1, 0x38e9d77c6e27f042), cat(0xd486404504c97dcd, 0xa1999b394c73306d) }, // 1467
+ { cat(0x05fcc205ef3ddf27, 0x60bb12c9f1b98d01), cat(0xaa050037370797d7, 0xb47ae2943d28f38b) }, // 1468
+ { cat(0x9e63ce6b25cb18ec, 0x4d62756e5afad734), cat(0x8804002c2c061312, 0xf6c8b5436420c2d5) }, // 1469
+ { cat(0x63d2e3dea2de8e46, 0xe237224a2b2af1ed), cat(0xd9a00046acd684eb, 0x24745538a0346aef) }, // 1470
+ { cat(0x4fdbe97ee8b20b6b, 0xe82c1b6e88ef27f1), cat(0xae1999d223ded0bc, 0x1d29ddc6e690558c) }, // 1471
+ { cat(0xa6498798ba280923, 0x202349253a58ecc1), cat(0x8b47ae41b64bda30, 0x1754b16beba6aad6) }, // 1472
+ { cat(0xd6dc0c2790400e9e, 0x99d20ea1f6f4ae01), cat(0xded916cf8a12f6b3, 0x5887824645d777bd) }, // 1473
+ { cat(0xdf16701fa699a54b, 0xae41a54e5f2a24ce), cat(0xb2474572d4dbf88f, 0x7a0601d1d1792c97) }, // 1474
+ { cat(0x4c11f34c8547b76f, 0xbe9aeaa518ee83d8), cat(0x8e9f6ac243e32d3f, 0x94d19b0e412dbd46) }, // 1475
+ { cat(0x46831ee0d53f8be5, 0xfdc4aaa1c17d9fc0), cat(0xe432446a06384865, 0xbae8f816ceaf953d) }, // 1476
+ { cat(0x0535b24d77660984, 0xcb03bbb49acae633), cat(0xb68e9d219e936d1e, 0x2f20c678a5594431) }, // 1477
+ { cat(0xd0f7c1d792b8079d, 0x6f362fc3af08b829), cat(0x920bb0e7b20f8a7e, 0x8c1a3860844769c0) }, // 1478
+ { cat(0xb4bf9c8c1df33f62, 0x4b89e605e4dac041), cat(0xe9ac4e3f834c10ca, 0x79c38d673a0bdc67) }, // 1479
+ { cat(0xf6ffb07017f5cc4e, 0xa2d4b804b715669b), cat(0xbaf03e9935d673d5, 0x2e360ab8fb3cb052) }, // 1480
+ { cat(0xf8cc8d267991703e, 0xe8aa2cd092778549), cat(0x958cfee0f7dec310, 0xf1c4d560c8fd59db) }, // 1481
+ { cat(0xf47a7b70c2824d31, 0x74437ae750bf3ba7), cat(0xef47fe34bfcad1b4, 0xb607bbce0e62295f) }, // 1482
+ { cat(0x29fb95f3cecea427, 0x9035fbec4098fc86), cat(0xbf6ccb5d663bdaf6, 0xf8062fd80b81bab3) }, // 1483
+ { cat(0xbb2fab29723ee9b9, 0x402b2ff033ad96d1), cat(0x9923d5e451c97bf8, 0xc66b5979a2ce2ef5) }, // 1484
+ { cat(0xc51911dbe9fe42c2, 0x0045198052af57b5), cat(0xf5062306e9425ff4, 0x70abc25c37b04b22) }, // 1485
+ { cat(0xd0e0db1654cb689b, 0x336a7acd0ef2ac91), cat(0xc404e8d254351990, 0x5a2301e35fc03c1b) }, // 1486
+ { cat(0xa71a48deaa3c53af, 0x5c552f0a725bbd41), cat(0x9cd0ba41dcf747a6, 0xae8267e91966967c) }, // 1487
+ { cat(0x0b5d41644393b918, 0x93bb7e771d5f9534), cat(0xfae79069618ba5d7, 0x7d9d730e8f0a8a61) }, // 1488
+ { cat(0x091767836942fa7a, 0x0fc931f8e44c775d), cat(0xc8b940544e095179, 0x314ac2720c086eb4) }, // 1489
+ { cat(0x6dac52cf8768c861, 0xa63a8e60b6a392b1), cat(0xa0943376a4d4412d, 0xc1089b8e7006bef6) }, // 1490
+ { cat(0x57bd0f0c6c53d381, 0x51c871e6f882dbc1), cat(0x80768f921d769a8b, 0x00d3afa5266bcbf8) }, // 1491
+ { cat(0xbf94e4e0ad52ec02, 0x1c73e9718d9e2c68), cat(0xcd8a7f502f242a78, 0x0152b2a1d712dff3) }, // 1492
+ { cat(0x6610b71a24425668, 0x16c32127a47e89ed), cat(0xa46ecc4025b68860, 0x010ef54e45a8b329) }, // 1493
+ { cat(0xb80d5f481d01deb9, 0xabcf4db950653b24), cat(0x838bd699b7c539e6, 0x673f2aa50486f5ba) }, // 1494
+ { cat(0xc01565402e69645c, 0x46187c5bb3d52b6c), cat(0xd279575c593b8fd7, 0x0b98443b3a71892a) }, // 1495
+ { cat(0x6677843358545049, 0xd1ad30495caa8923), cat(0xa86112b04762d978, 0xd61369c8fb8e0755) }, // 1496
+ { cat(0xb85f9cf5e043736e, 0x415759d44a220750), cat(0x86b40ef36c4f1460, 0xab42bb072fa4d2aa) }, // 1497
+ { cat(0xc098fb23006bebe3, 0x9bbef620769cd87f), cat(0xd7867e5246e4ed67, 0x786ac4d84c3aeaaa) }, // 1498
+ { cat(0x66e0c8e8cd23231c, 0x7c98c4e6c54a46cc), cat(0xac6b9841d250bdec, 0x60556a46a3625555) }, // 1499
+ { cat(0x8580a0ba3db5b5b0, 0x63ad6a52376e9f0a), cat(0x89efad01750d64bd, 0x19ddee9ee91b7777) }, // 1500
+ { cat(0x3c010129fc55ef80, 0x9f7bdd5058b0fe76), cat(0xdcb2ae68bb48a12e, 0x8fc97dcb0e9258bf) }, // 1501
+ { cat(0x9667342196ab2600, 0x7f964aa6ad5a652b), cat(0xb08ef1ed62a080f2, 0x0ca1316f3edb7a32) }, // 1502
+ { cat(0x7852901adeef5199, 0xffab6eebbde1ea89), cat(0x8d3f27f11bb39a5b, 0x3d4dc125cbe2c828) }, // 1503
+ { cat(0xf3b74cf7cb18828f, 0xff78b1792fcfdda8), cat(0xe1fea64e92b8f6f8, 0x621601d613047373) }, // 1504
+ { cat(0xc2f90a5fd5ad353f, 0xff93c12dbfd97e20), cat(0xb4cbb83edbc72bf9, 0xe8119b11a8d05c5c) }, // 1505
+ { cat(0x9bfa6eb311575dcc, 0xcc763424997acb4d), cat(0x90a2f9cbe305bcc7, 0xecdae274870d16b0) }, // 1506
+ { cat(0x5ff71784e88bc947, 0xad89ed075bf7abae), cat(0xe76b294638092e0c, 0xae2b03eda4e1bde7) }, // 1507
+ { cat(0xb32c12d0ba096dd2, 0xf13b2405e32c8958), cat(0xb922876b6007580a, 0x24ef3657b71afe52) }, // 1508
+ { cat(0xf5bcdbda2e6df175, 0x8dc8e99e4f56d447), cat(0x941b9f89199f79a1, 0xb725c512f8e2650e) }, // 1509
+ { cat(0x22c7c629e3e31bef, 0x494175ca188aed3d), cat(0xecf8ff41c298c29c, 0x583c6e84c16a3b4b) }, // 1510
+ { cat(0x82396b54b64f498c, 0x3a9ac4a1ad3bf0fe), cat(0xbd93ff67cee09bb0, 0x4696bed09abb62a2) }, // 1511
+ { cat(0x9b6122aa2b72a13c, 0xfbaf03b48a965a65), cat(0x97a9991fd8b3afc0, 0x387898a6e22f821b) }, // 1512
+ { cat(0xf89b6aa9df1dcec7, 0xf91805edaa8a2a3b), cat(0xf2a8f4ffc11f7f99, 0xf3f4277169e59cf8) }, // 1513
+ { cat(0xc6e2bbbb18e4a56c, 0xc7466b24886e882f), cat(0xc220c3ffcdb2cc7b, 0x29901f8dee514a60) }, // 1514
+ { cat(0x38b562fc13ea1df0, 0x9f6b88ea06bed359), cat(0x9b4d6999715bd6c8, 0xee0ce60b250dd51a) }, // 1515
+ { cat(0x27889e601fdcfcb4, 0x3245a7dcd797b88e), cat(0xf87bdc28b55fbe0e, 0x49ae3cdea1afbb5d) }, // 1516
+ { cat(0xec6d4b80197d96f6, 0x8e9e1fe3dfac93a5), cat(0xc6c97ced5de631a5, 0x07be9718815962b0) }, // 1517
+ { cat(0x89f109334797abf8, 0x721819831956dc84), cat(0x9f0797244b1e8e1d, 0x9fcbac139aade88d) }, // 1518
+ { cat(0x0fe80eb8728c465a, 0x50268f38288afa6d), cat(0xfe728b6d44fdb02f, 0x6612acec2aafda7c) }, // 1519
+ { cat(0xa6533ef9f53d0515, 0x0ceba5c686d59524), cat(0xcb8ed5f103fe268c, 0x51a88a56888caec9) }, // 1520
+ { cat(0xeb75cbfb2a973744, 0x0a561e386bde10e9), cat(0xa2d8ab273664eba3, 0x7486d51206d6f23a) }, // 1521
+ { cat(0x892b0995bbac2c36, 0x6eab4b60564b40bb), cat(0x8246ef5291ea561c, 0x5d38aa74d2458e95) }, // 1522
+ { cat(0x41de75bc5f79e057, 0x1778789a23ab9ac4), cat(0xd0717eea831089c6, 0xfb8ddd87b6d5b0ef) }, // 1523
+ { cat(0x017ec496b2c7e6ac, 0x12c6c6e1b622e237), cat(0xa6c1325535a6d49f, 0x2fa4b1395f115a59) }, // 1524
+ { cat(0x013236def56cb889, 0xa89f05815e824e92), cat(0x85675b775e1f107f, 0x59508dc77f411514) }, // 1525
+ { cat(0x9b838afe557ac0dc, 0x40fe6f356403b0ea), cat(0xd5722bf23031b3fe, 0xf54dafa5986821b9) }, // 1526
+ { cat(0xe2cfa265112f00b0, 0x33febf5de99c8d88), cat(0xaac1bcc1c027c332, 0x5dd7bfb7ad201afa) }, // 1527
+ { cat(0x1bd94eb740f266f3, 0x5ccbcc4b214a0ad3), cat(0x889afd67ccec9c28, 0x4b12ffc62419af2f) }, // 1528
+ { cat(0xc6287df20183d7eb, 0xc7ac7a11cedcde1e), cat(0xda919572e17a9373, 0xab51993d068f7eb1) }, // 1529
+ { cat(0x04ed318e679cacbc, 0x9fbd2e74a57d7e7f), cat(0xaedaddf5812edc5c, 0x890e1430d20c655b) }, // 1530
+ { cat(0x6a575ad852e3bd63, 0xb2fdbec3b7979866), cat(0x8be24b2acdbf16b0, 0x6da4dcf3db3d1de2) }, // 1531
+ { cat(0xdd58915a1e392f05, 0xeb2f979f8c25c0a2), cat(0xdfd078447c64f11a, 0x4907c7ec91fb6303) }, // 1532
+ { cat(0x177a0de1b1c758d1, 0x88f2dfb2d6849a1c), cat(0xb30d2d0396b72748, 0x3a6c9ff074c91c03) }, // 1533
+ { cat(0xac61a4b48e3913da, 0xd3f57fc24536e1b0), cat(0x8f3dbd9c789285d3, 0x61f07ff390a0e335) }, // 1534
+ { cat(0x13cf6dedb05b52f7, 0xb988cc6a0857cf7f), cat(0xe52f95c72750d61f, 0x031a665281016b89) }, // 1535
+ { cat(0x0fd924be26af7592, 0xfad3d6bb39dfd933), cat(0xb759449f52a711b2, 0x68e1eb75340122d4) }, // 1536
+ { cat(0x73141d64ebbf9142, 0x6243122f617fe0f5), cat(0x92add07f7552748e, 0xba4e55f75ccdb576) }, // 1537
+ { cat(0x84ecfbd4ac65b537, 0x039e837f026634bc), cat(0xeaafb3ff221d874a, 0xc3b0898bc7af88bd) }, // 1538
+ { cat(0x3723fcaa238490f8, 0xcfb202cc01eb5d63), cat(0xbbbfc33281b13908, 0x9c8d3ad639593a31) }, // 1539
+ { cat(0xf8e996ee82d073fa, 0x3fc19bd667ef7de9), cat(0x9633028ece2760d3, 0xb070fbde944761c0) }, // 1540
+ { cat(0x27dc24b0d14d865d, 0x32cf5fbd7318c974), cat(0xf0519db149d89aec, 0x4d8192fdba0bcf9b) }, // 1541
+ { cat(0x8649b6f3daa46b7d, 0xc23f7fcac27a3ac4), cat(0xc0414af43b13af23, 0x71347597c80972e2) }, // 1542
+ { cat(0x6b6e2bf648838931, 0x6832cca2352e9569), cat(0x99cdd5902f42f282, 0xc0f6c4796cd45be8) }, // 1543
+ { cat(0x78b04656da6c0eb5, 0x73847a9d21e42242), cat(0xf61622804b9e50d1, 0x34be0728ae20930d) }, // 1544
+ { cat(0xfa269eabe1f00bc4, 0x5c69fbb0e7e9b502), cat(0xc4de82003c7ea70d, 0xc3cb38ed581a0f3d) }, // 1545
+ { cat(0xc81ee5564e59a303, 0x7d2196271fee2a68), cat(0x9d7ece6696cbb8d7, 0xcfd5c724467b3f64) }, // 1546
+ { cat(0xa697d556e3c29e6b, 0xfb68f03e997d10a6), cat(0xfbfe170a8adf8e26, 0x19560b6d3d91ff07) }, // 1547
+ { cat(0xebacaaabe9687ebc, 0xc920c03214640d52), cat(0xc998126ed57fa4eb, 0x47780924314198d2) }, // 1548
+ { cat(0x5623bbbcbab9fefd, 0x6db3ccf4dd1cd775), cat(0xa1467525779950bc, 0x392cd41cf4347a42) }, // 1549
+ { cat(0x44e962fd622e6597, 0x8af63d90b0e3df91), cat(0x81052a845fadda30, 0x2dbd767d9029fb68) }, // 1550
+ { cat(0xd4a89e6236b0a28c, 0x1189fc1ab49fcc1a), cat(0xce6eaa6d65e2f6b3, 0x7c62572f4d0ff8a6) }, // 1551
+ { cat(0xdd53b1e82bc08209, 0xa7a1967bc3b309af), cat(0xa525552451825ef5, 0xfd1b78f2a40cc6eb) }, // 1552
+ { cat(0xe442f4b9bc9a01a1, 0x52e7ab963628d48c), cat(0x841dddb6a79b7f2b, 0x30e2c728833d6bef) }, // 1553
+ { cat(0xa06b21292dc335ce, 0xeb0c45bd23748746), cat(0xd362fc5772926511, 0xe7d13ea73862464c) }, // 1554
+ { cat(0x8055b420f168f7d8, 0xbc09d1641c5d3905), cat(0xa91bfd12c20eb741, 0x8640feec2d1b6b70) }, // 1555
+ { cat(0x0044901a5aba5fe0, 0x966e411ce37dc737), cat(0x8749974234d8929a, 0xd1cd98bcf0e2bc5a) }, // 1556
+ { cat(0x9a074cf6f7909967, 0x5716ce949f2fa525), cat(0xd875bed0548db75e, 0x1c7c2794b49dfa29) }, // 1557
+ { cat(0x7b390a5f2c73adec, 0x45abd876e5bfb751), cat(0xad2aff0d10715f7e, 0x7d301faa2a17fb54) }, // 1558
+ { cat(0xfc2da1e5bd2957f0, 0x37bcad2beaffc5da), cat(0x8a88cc0a738de5fe, 0xca8ce621bb4662a9) }, // 1559
+ { cat(0x2d15cfd5fb755980, 0x592de1dfde66095d), cat(0xdda7acdd85afd664, 0x7747d69c5ed70443) }, // 1560
+ { cat(0x8a77d977fc5de133, 0x7a8b1b197eb8077d), cat(0xb152f0b137bfdeb6, 0xc5d31216b2459d02) }, // 1561
+ { cat(0x6ec64793304b1a8f, 0x953c15adfef99f98), cat(0x8ddbf3c0f9664bc5, 0x6b0f41abc1d14a68) }, // 1562
+ { cat(0x4ad6d8eb80782a7f, 0x552cef7ccb28ff59), cat(0xe2f986018f0a12d5, 0x78186912cfb543da) }, // 1563
+ { cat(0x6f124722cd2ceecc, 0x4423f2ca3c20cc47), cat(0xb5946b34726e7577, 0x9346ba7572f7697b) }, // 1564
+ { cat(0xf27505b570f0bf09, 0xd01cc23b634d7039), cat(0x914388f6c1f1f792, 0xdc38952ac25f8795) }, // 1565
+ { cat(0x1d8809224e4dfe76, 0x19c79d2bd215805b), cat(0xe86c0e579cb658ea, 0xf9f421de03cc0c23) }, // 1566
+ { cat(0x7e066db50b71985e, 0x7b06175641aacd16), cat(0xb9f00b794a2b7a55, 0x94c34e4b363cd682) }, // 1567
+ { cat(0x64d1f15da2c146b1, 0xfc04df783488a411), cat(0x94c0092dd4ef9511, 0x43cf71d5c4fd7868) }, // 1568
+ { cat(0x07b64efc379ba44f, 0xf9a1658d20daa01c), cat(0xee000eafbb18ee82, 0x0618b622d4c8c0a7) }, // 1569
+ { cat(0x6c91d8c9c6161d0c, 0xc7b4513db3e219b0), cat(0xbe6672262f472534, 0xd1ad5e8243d3cd52) }, // 1570
+ { cat(0xf074ad6e3811b0d7, 0x0629da97c31b47c0), cat(0x9851f4eb5905b75d, 0x748ab201cfdca441) }, // 1571
+ { cat(0x1a5448b059b5e7be, 0x7042f759382ba600), cat(0xf3b654abc1a2befb, 0xedaab6694c943a03) }, // 1572
+ { cat(0x15103a26ae2b1fcb, 0x8d025f7a93561e66), cat(0xc2f843bc9ae898c9, 0x8aeef8543d43619c) }, // 1573
+ { cat(0x10d9c81ef1bc196f, 0xa401e5fba911b1eb), cat(0x9bf9cfca1586e0a1, 0x3bf260436435e7b0) }, // 1574
+ { cat(0x4e29403182c68f19, 0x06696ff90e82b645), cat(0xf98fb2dcef3e3435, 0x2cb7006bd38972b3) }, // 1575
+ { cat(0x0b54335acf053f47, 0x385459940b9bc504), cat(0xc7a628b0bf64f690, 0xf09266bca93ac229) }, // 1576
+ { cat(0x09102915726a9905, 0xc6a9e1433c7c9d9d), cat(0x9fb8208d65ea5eda, 0x5a0eb896edc89b54) }, // 1577
+ { cat(0x41b374ef1d775b3c, 0x710fced1fa60fc2e), cat(0xff8d00e23caa315d, 0x5ce45a8b160dc553) }, // 1578
+ { cat(0x9af5f725b12c48fd, 0x273fd8a7fb80c9bf), cat(0xcc70cd81ca21c117, 0x7d837ba2780b0442) }, // 1579
+ { cat(0xe25e5f515a89d3fd, 0xb8ffe08662cd6e32), cat(0xa38d7134a1b49a79, 0x3135fc81f9a269ce) }, // 1580
+ { cat(0xb5184c41153b0ffe, 0x2d99806b823df1c2), cat(0x82d78dc3b4907b94, 0x275e639b2e1b87d8) }, // 1581
+ { cat(0x54f3ad34eec4e663, 0x7c28cd78d0631c69), cat(0xd158e2d2ba80c5b9, 0xd89705c5169272f4) }, // 1582
+ { cat(0x7729575d8bd0b84f, 0x96870ac70d1c16bb), cat(0xa77a4f0efb9a37c7, 0xe078d16a787528c3) }, // 1583
+ { cat(0xf8eddf7e0973c6a6, 0x1205a238d749abc9), cat(0x85fb727262e1c639, 0x8060a788605dba35) }, // 1584
+ { cat(0x8e49659675860aa3, 0x5009038e2542ac74), cat(0xd65f1d83d1693d28, 0xcd677273cd62c389) }, // 1585
+ { cat(0x3ea11e11f79e6ee9, 0x0cd402d81dcef05d), cat(0xab7f4acfdaba9753, 0xd785f529711bcfa1) }, // 1586
+ { cat(0x654db1a7f94b8bed, 0xa3dccf134b0bf37e), cat(0x8932a23fe22edf76, 0x4604c421274972e7) }, // 1587
+ { cat(0xa215e90cc212797c, 0x39614b5211acb8c9), cat(0xdb8436cc9d17cbf0, 0x7007a0350ba8b7d8) }, // 1588
+ { cat(0x1b44ba709b41fac9, 0xc781090e748a2d6d), cat(0xaf9cf8a3b0dfd659, 0xf3394cf73c86f97a) }, // 1589
+ { cat(0xaf6a2ec07c34c8a1, 0x6c673a71f6d4f124), cat(0x8c7d93b627197847, 0xf5c770c5ca059461) }, // 1590
+ { cat(0x7f104acd9387a768, 0xad71f71cbe2181d3), cat(0xe0c8ec56a4f58d3f, 0xefa5813c766f53cf) }, // 1591
+ { cat(0x32736f0adc6c85ed, 0x578e5f4a31b467dc), cat(0xb3d3f04550c470ff, 0xf2eacdc9f8590fd9) }, // 1592
+ { cat(0x8ec2bf3be38a04bd, 0xdfa5190827c3864a), cat(0x8fdcc03773d05a66, 0x5bef0b07f9e0d97a) }, // 1593
+ { cat(0xe46acb9305a9a12f, 0xcc3b5b403f9f3d43), cat(0xe62e0058b94d5d70, 0x931811a65c9af590) }, // 1594
+ { cat(0xb6bbd60f37bae759, 0x702f7c336618fdcf), cat(0xb824cd13c771178d, 0x4279a7b84a159140) }, // 1595
+ { cat(0x2bc9780c2c9585e1, 0x268c635c51ad97d9), cat(0x9350a40fd2c0dfa4, 0x352e1fc6a1aada9a) }, // 1596
+ { cat(0xdfa8c0137a88d635, 0x0a7a3893b5e28c8e), cat(0xebb439b2eace32a0, 0x5516993dcf77c429) }, // 1597
+ { cat(0xe62099a92ed3de90, 0xd52e93a95e4ed6d8), cat(0xbc902e28bbd82880, 0x4412143172c63687) }, // 1598
+ { cat(0xb81a148758a97eda, 0x442542ede50bdf14), cat(0x96d9be86fcaced33, 0x69a810278f04f86c) }, // 1599
+ { cat(0x8cf6873ef4426490, 0x6d086b163b4631b9), cat(0xf15c640b2de17b85, 0x75d9b3727e6e5a47) }, // 1600
+ { cat(0xa3f86c325d01ea0d, 0x2406bc11c904f494), cat(0xc116b66f57e79604, 0x5e47c2c1febeae9f) }, // 1601
+ { cat(0xb660568eb0ce54d7, 0x500563416d9d9076), cat(0x9a7891f2acb944d0, 0x4b6c9bce6565587f) }, // 1602
+ { cat(0x23cd574ab47d548b, 0xb33bd20248fc1a57), cat(0xf7274feaadf53ae6, 0xdf142c7d6f088d99) }, // 1603
+ { cat(0x1ca445d55d31106f, 0xc296419b6d967b79), cat(0xc5b90cbbbe5dc8b8, 0xb27689fdf26d3e14) }, // 1604
+ { cat(0xb0836b11175a738c, 0x9bab67af8adec92d), cat(0x9e2da3c96517d3c6, 0xf52ba197f52431a9) }, // 1605
+ { cat(0x80d244e8255d85ad, 0xc5df0c4c11647515), cat(0xfd15d2dbd4f2ec71, 0x8845cf598839e90f) }, // 1606
+ { cat(0xcd7503eceab137be, 0x37e5a3700de9f744), cat(0xca77dbe310c256c1, 0x39d172ae0694ba72) }, // 1607
+ { cat(0xd790cff0bbc0f964, 0xf98482c00b21929d), cat(0xa1f97cb5a701df00, 0xfb0df5580543c85b) }, // 1608
+ { cat(0x7940a65a2fcd9450, 0xc79d35666f4e0ee4), cat(0x819463c4859b18cd, 0x95a4c4466a9ca049) }, // 1609
+ { cat(0x8ecdd6f6b2e286e7, 0xa5c85570b2167e3a), cat(0xcf53d2d408f827af, 0x55d46d3d77610075) }, // 1610
+ { cat(0x0bd7df2bc24ed252, 0xeb06aac08e7864fb), cat(0xa5dca8a9a0c68625, 0xde438a9792b4005e) }, // 1611
+ { cat(0x3cacb289683f0ea8, 0xbc055566d86050c9), cat(0x84b086ee1a386b51, 0x7e9c6edfa890004b) }, // 1612
+ { cat(0x9447840f0d31b10d, 0xf9a2223e27008141), cat(0xd44da4b029f3dee8, 0xca93e4990db333ab) }, // 1613
+ { cat(0x436c69a5a427c0d7, 0xfae81b64ec006767), cat(0xa9d7b6f354c318ba, 0x3ba983ada48f5c89) }, // 1614
+ { cat(0x02bd2151501fcd79, 0x95867c50bccd1f86), cat(0x87dfc58f77027a2e, 0x9621362483a5e3a1) }, // 1615
+ { cat(0x6ac8354ee69948c2, 0x88d72d4dfae1cc09), cat(0xd96608e58b3729e4, 0x236856a0d2a305ce) }, // 1616
+ { cat(0xbbd35dd8b87aa09b, 0xa0ac243e624e3cd4), cat(0xadeb3a513c2c2183, 0x4f86abb3dbb59e3e) }, // 1617
+ { cat(0xfca917e093954d49, 0x4d5683651b71ca44), cat(0x8b22950dc9bce79c, 0x3f9eefc3162ae4fe) }, // 1618
+ { cat(0xc774f300ec221542, 0x155738a1c582dd39), cat(0xde9dbb4942c7d8f9, 0xff64b2d1bd116e64) }, // 1619
+ { cat(0x392a5c00bce81101, 0xaaac2d4e379be42d), cat(0xb217c907689fe0c7, 0xff83c241640df1ea) }, // 1620
+ { cat(0x9421e333ca5340ce, 0x22235771c6165024), cat(0x8e796d9f86e64d6c, 0xcc696834500b27ee) }, // 1621
+ { cat(0xb9cfd1ec76eb9ae3, 0x69d22582d68a19d4), cat(0xe3f57c3271707be1, 0x470f0d208011d97d) }, // 1622
+ { cat(0x2e3fdb2392561582, 0xbb0e8468aba1ae43), cat(0xb65dfcf5278d2fe7, 0x6c0c0a806674adfe) }, // 1623
+ { cat(0x8b6648e941de779b, 0xc8d869ed561af1cf), cat(0x91e4ca5db93dbfec, 0x56700866b85d57fe) }, // 1624
+ { cat(0x123d41753630bf5f, 0xa7c0a97bbcf7e94b), cat(0xe96e1095f52f997a, 0x23e673d78d622664) }, // 1625
+ { cat(0xa831012a91c09919, 0x5300879630c6543c), cat(0xbabe73ab2a8c7ac8, 0x1cb85cac711b51e9) }, // 1626
+ { cat(0x535a67554166e0e1, 0x0f339fab5a384364), cat(0x95652955bba3956c, 0xe3c6b089f415db21) }, // 1627
+ { cat(0x522a3eeecf0b0168, 0x1852991229f39f05), cat(0xef084222c5d288ae, 0x393de7432022f835) }, // 1628
+ { cat(0xdb54ff25726f3453, 0x46a87a74ee5c7f38), cat(0xbf39ce8237dba08b, 0x60fe529c19b5935d) }, // 1629
+ { cat(0x7c43ff512858f6a9, 0x0553952a5849ff60), cat(0x98fb0b9b5fe2e6d5, 0xe731dbb0149142b1) }, // 1630
+ { cat(0x606ccbb50d5b2441, 0xa21f55108d433233), cat(0xf4c4df5effd17156, 0x3eb62c4cedb53782) }, // 1631
+ { cat(0xe6bd6fc40aaf5034, 0x81b2aa73a435c1c2), cat(0xc3d0b2b266412778, 0x322b56a3f15dc601) }, // 1632
+ { cat(0xb8978c9cd5590cf6, 0xce28885c835e349b), cat(0x9ca6f55b8500ec60, 0x2822abb65ab16b34) }, // 1633
+ { cat(0xc0f27a94888e7b24, 0x7d0da6fa6bc9edc5), cat(0xfaa4bbc5a19b13cd, 0x0d0445f0911bdeba) }, // 1634
+ { cat(0xcd8ec876d3a52f50, 0x640aebfb896e57d1), cat(0xc883c96ae7af430a, 0x70d037f3a7497efb) }, // 1635
+ { cat(0x713f06c5761dbf73, 0x833beffc6df1dfdb), cat(0xa0696def1fbf68d5, 0x270cf98fb90798c9) }, // 1636
+ { cat(0x5a98d23791b165f6, 0x02965996be5b197c), cat(0x805457f27fcc53dd, 0xb8d72e0c940613d4) }, // 1637
+ { cat(0x5dc15058e91bd656, 0x6a8a28f13091c25f), cat(0xcd53bfea6613b962, 0xc15849adb9a352ed) }, // 1638
+ { cat(0x17cdd9e0ba7cab78, 0x553b53f426db01e6), cat(0xa442ffeeb80fc782, 0x3446a157c7b5dbf1) }, // 1639
+ { cat(0xdfd7e1809530892d, 0x10fc4329b8af34b8), cat(0x8368ccbef9a63934, 0xf69ee7796c917cc0) }, // 1640
+ { cat(0x32f30267551a7514, 0xe7fa050f8de52126), cat(0xd2414797f5d6c1ee, 0x5764a58f141bface) }, // 1641
+ { cat(0x28c26852aa7b90dd, 0x86619da60b1db41f), cat(0xa83439465e4567f1, 0xdf83b7a5a9affbd8) }, // 1642
+ { cat(0xba35204221fc73e4, 0x6b814aeb3c17c34c), cat(0x86902dd1e5045327, 0xe602f951548cc979) }, // 1643
+ { cat(0x29ee9a036993eca0, 0xac02117860260546), cat(0xd74d161ca1a0850c, 0xa337f54eedae0f29) }, // 1644
+ { cat(0xee587b35ee0ff080, 0x899b412d19b80438), cat(0xac3dab4a1ae6d0d6, 0xe8f9910bf1580c20) }, // 1645
+ { cat(0x8b79fc2b24d98d33, 0xa14900f0e1600360), cat(0x89caef6e7bebda45, 0x872e0da32779a34d) }, // 1646
+ { cat(0xdf2993783af5aeb9, 0x020e67e7cf000566), cat(0xdc77e57d9312f6d5, 0xa5167c383f290548) }, // 1647
+ { cat(0xb287a92cfbf7befa, 0x680b86530c000452), cat(0xb05feacadc0f2bde, 0x1dab969365ba6aa0) }, // 1648
+ { cat(0x286c87572ff96595, 0x2009384270000375), cat(0x8d1988a249a5bcb1, 0xb156120f8495221a) }, // 1649
+ { cat(0xa7140bbeb328a288, 0x3341f39d80000587), cat(0xe1c27436dc3c611c, 0x4ef01ce5a0ee9cf6) }, // 1650
+ { cat(0xb8dcd63228ed4ed3, 0x5c34c2e466666ad3), cat(0xb49b902be36380e3, 0x7259b0b7b3f2172b) }, // 1651
+ { cat(0x2d7d782820bdd8a9, 0x16909be9eb852242), cat(0x907c73564f82cd82, 0xc1e15a2c8ff4df56) }, // 1652
+ { cat(0xe26259d9cdfc8ddb, 0x574dc643126e9d37), cat(0xe72d8556e59e159e, 0x030229e0e6549889) }, // 1653
+ { cat(0xe84eae47d7fd3e49, 0x12a49e9c0ebee42c), cat(0xb8f13778b7b1aae4, 0xcf34ee4d85107a07) }, // 1654
+ { cat(0xb9d88b6cacca983a, 0x75507ee33eff1cf0), cat(0x93f42c6092f488b7, 0x0c2a583e040d2e6c) }, // 1655
+ { cat(0x295a78ade14426c3, 0xeee7316b97fe94b3), cat(0xecb9e09a84ba7458, 0x1376f3966ce1e3e1) }, // 1656
+ { cat(0xede1fa24b4368569, 0x8bec2789466543c2), cat(0xbd61807b9d61f6ac, 0xdc5f294523e7e980) }, // 1657
+ { cat(0x8b1b2e83c35ed121, 0x3cbcec6dd1ea9c9c), cat(0x9781339617819223, 0xe37f54374fecbacd) }, // 1658
+ { cat(0xab5eb0d2d2314e9b, 0x94617a494fddc75f), cat(0xf2685289bf35b69f, 0xd265538bb3145e15) }, // 1659
+ { cat(0x22b2270f0e8dd87c, 0x76b461d43fe49f7f), cat(0xc1ed0ed498f7c54c, 0xa8510fa2f5a9e4de) }, // 1660
+ { cat(0x82281f3f3ed7e063, 0x9229e7dcffea1933), cat(0x9b240bdd472c9dd6, 0xed0da61bf7bb1d7e) }, // 1661
+ { cat(0x69d9cb98648c9a38, 0xe9dca62e66435b84), cat(0xf839ac953eadc957, 0xe1af702cbf91c8ca) }, // 1662
+ { cat(0xbb14a2e050707b60, 0xbb16eb5851cf7c6a), cat(0xc6948a10fef16ddf, 0xe7bf8cf099416d6e) }, // 1663
+ { cat(0x6276e8b3738d2f80, 0x95abef79db0c6388), cat(0x9edd3b40cbf457e6, 0x52ffa3f3adcdf125) }, // 1664
+ { cat(0x9d8b0debec1518cd, 0xbc464bf62b4705a6), cat(0xfe2ec5347986f30a, 0x1e65d31f7c7cb508) }, // 1665
+ { cat(0x17a2718989aa7a3e, 0x30383cc4ef6c0485), cat(0xcb589dc3946bf5a1, 0xb1eb0f4c6396f73a) }, // 1666
+ { cat(0xdfb527a13aeec831, 0xc02cfd6a592336d1), cat(0xa2ad4b02dd232ae7, 0xc188d909e9459294) }, // 1667
+ { cat(0x4c90ec80fbf239c1, 0x668a6455141c2bda), cat(0x82243c024a8288b9, 0x67a0ada1876adbaa) }, // 1668
+ { cat(0x7a817a67f9838f9b, 0xd743d3bb5360462a), cat(0xd039f99d44040df5, 0x729aaf68d8aaf910) }, // 1669
+ { cat(0x953461ecc79c72e3, 0x129ca962a919d1bb), cat(0xa694c7b103367191, 0x287bbf8713bbfa73) }, // 1670
+ { cat(0x775d1b23d2e38f1c, 0x0ee3bab55414a7c9), cat(0x8543d2f40291f474, 0x2062ff9f42fcc85c) }, // 1671
+ { cat(0xbefb5e9fb7d27e93, 0x4b05f788868772db), cat(0xd53951866a8320b9, 0xcd6b32986b2e0d60) }, // 1672
+ { cat(0x98c9187fc641fedc, 0x3c04c606d205f57c), cat(0xaa9441385535b3c7, 0xd788f546bc24d780) }, // 1673
+ { cat(0xe0a0e0663834cbe3, 0x633704d2419e5dfd), cat(0x88769a93775e296c, 0xac6d91056350ac66) }, // 1674
+ { cat(0x01016709f387ac9f, 0x0524d4839c309661), cat(0xda575db8befd0f14, 0x4715b4d56bb4470b) }, // 1675
+ { cat(0x34011f3b293956e5, 0x9db7106949c0784e), cat(0xaeac4afa32640c10, 0x38de2a445629d26f) }, // 1676
+ { cat(0x5ccdb295ba944584, 0x7e2c0d2107cd2d0b), cat(0x8bbd08c8285009a6, 0x93e4ee9d11bb0ebf) }, // 1677
+ { cat(0x947c50ef90ed3c07, 0x30467b680c7b7b45), cat(0xdf94dad9da19a90a, 0x863b1761b5f81798) }, // 1678
+ { cat(0x76c9da5940bdc99f, 0x59d1fc533d2f95d1), cat(0xb2dd7be17b47ba6e, 0xd1c8df815e6012e0) }, // 1679
+ { cat(0x5f07e1e10097d47f, 0x7b0e6375ca8c77da), cat(0x8f17964dfc3961f2, 0x416d7f9ab1e67580) }, // 1680
+ { cat(0x64d9696800f2ed98, 0xc4e3d25610e0bfc3), cat(0xe4f28a16605bcfea, 0x0248cc2ab63d88cd) }, // 1681
+ { cat(0xea4787866728be13, 0xd0b641de73e6ffd0), cat(0xb7286e784d163fee, 0x683a3ceef8313a3d) }, // 1682
+ { cat(0xee9f9f9eb8ed64dc, 0xa6f834b1f6526640), cat(0x9286bec6a411ccbe, 0xb9c830bf2cf42e97) }, // 1683
+ { cat(0xb0ff65cac17bd494, 0x3e59ede98a1d7066), cat(0xea71313dd34fadfd, 0xf60d1acb7b204a8c) }, // 1684
+ { cat(0x8d991e3bcdfcaa10, 0x31e18b213b4ac052), cat(0xbb8dc0fe42a624cb, 0x2b3daf092f4d0870) }, // 1685
+ { cat(0x0ae0e4fca4ca21a6, 0x8e4e08e762a23375), cat(0x960b00cb6884ea3c, 0x2297bf3a8c3da05a) }, // 1686
+ { cat(0x77ce3b2dd4769c3d, 0xb07cdb0bd1038587), cat(0xf0119adf0da176c6, 0x9dbf985dad2f66f6) }, // 1687
+ { cat(0x5fd82f57dd2bb031, 0x59fd7c097402d139), cat(0xc00e157f3e1ac56b, 0xb166137e2425ebf8) }, // 1688
+ { cat(0x1979bf797dbc8cf4, 0x47fdfcd45ccf0dc7), cat(0x99a4ddff64e23789, 0x5ab80f981ceb232d) }, // 1689
+ { cat(0x28c2cbf595fa7b20, 0x732ffaed614b493e), cat(0xf5d496656e36bf42, 0x2ac018f361783848) }, // 1690
+ { cat(0x209bd65e11952f4d, 0x28f32f244dd5d432), cat(0xc4aa11eabe92329b, 0x55667a5c4df9c6a0) }, // 1691
+ { cat(0x807cab7e7477590a, 0x8728f2837177dcf5), cat(0x9d54db22320e8ee2, 0xaab861e371949ee6) }, // 1692
+ { cat(0x9a611263ed8bc1aa, 0x71db1d9f1bf2fb21), cat(0xfbbaf836b67db16a, 0xaac09c9f1c20fe3d) }, // 1693
+ { cat(0x484da84ff13c9aee, 0xc17c17b27cc26281), cat(0xc962602bc5315abb, 0xbbcd4a18e34d9831) }, // 1694
+ { cat(0x06a486a65a96e258, 0x9ac9ac8eca351b9b), cat(0xa11b802304277bc9, 0x630aa1ad82a479c1) }, // 1695
+ { cat(0x38839eeb7babe846, 0xe23af0723b5dafaf), cat(0x80e2cce8d01f963a, 0xb5a21af135506167) }, // 1696
+ { cat(0x5a6c3178c5dfda0b, 0x039180b6c562b2b1), cat(0xce37ae414cff56c4, 0x55d02b1b88809bd8) }, // 1697
+ { cat(0x15235ac704b314d5, 0x9c7466f89de88ef4), cat(0xa4f958343d991236, 0xab0cef493a007cad) }, // 1698
+ { cat(0x441c489f36f5aa44, 0x7d29ebfa17ed3f2a), cat(0x83faacf697ada82b, 0xbc0a59076199fd57) }, // 1699
+ { cat(0x39c6da9857ef76d3, 0xfb76465cf31531dc), cat(0xd32aae575915d9df, 0x9343c1a568f66225) }, // 1700
+ { cat(0xfb057bad1325f8a9, 0x95f8384a5c10f4b0), cat(0xa8eef1df7a77e17f, 0xa903015120c51b50) }, // 1701
+ { cat(0x2f3796240f5193ba, 0xde602d0849a72a27), cat(0x87258e4c61f98132, 0xed9c010db3d0e2a7) }, // 1702
+ { cat(0x7ebf56a0188285f7, 0xca337b4075d84371), cat(0xd83c16e09cc26851, 0x7c2cce7c52e7d10b) }, // 1703
+ { cat(0xcbcc454ce0686b2c, 0xa1c2c9005e469c5a), cat(0xacfcdf1a1701ed0d, 0xfcf0a53042530da2) }, // 1704
+ { cat(0x6fd69dd719ed228a, 0x1b023a66b1d216af), cat(0x8a63e5ae78ce573e, 0x63f3b759cea8d7b5) }, // 1705
+ { cat(0x195762f1c3150410, 0x2b36c3d782e9bde4), cat(0xdd6ca2b0c14a2530, 0x9fec588fb10e25ef) }, // 1706
+ { cat(0xaddf825b02773673, 0x55c569793587cb1d), cat(0xb123b55a343b50f3, 0xb3237a0c8da4eb25) }, // 1707
+ { cat(0x24b2ceaf352c2b8f, 0x77d1212dc46ca27e), cat(0x8db62aae902f73f6, 0x28e92e707150bc1e) }, // 1708
+ { cat(0x07847de521e045b2, 0x594e9b7c6d7a9d96), cat(0xe2bd11174d18b989, 0xdb0eb0b3e8812cfd) }, // 1709
+ { cat(0x3936cb1db4b36af5, 0x143ee2c9f12ee478), cat(0xb5640dac3dad613b, 0x15a55a2986cdbd97) }, // 1710
+ { cat(0xc75f08e4908f88c4, 0x10324f07f4258393), cat(0x911cd7bcfe244dc8, 0xde1de1bad23e3145) }, // 1711
+ { cat(0x3efe74a0e74c0e06, 0x80507e73203c05b8), cat(0xe82e25fb303a160e, 0x302fcf9150638209) }, // 1712
+ { cat(0x98cb9080b909a4d2, 0x00406528e6966afa), cat(0xb9be84c8f361ab3e, 0x8cf30c74404f9b3a) }, // 1713
+ { cat(0x13d60d33c73aea41, 0x99cd1dba5211ef2e), cat(0x94986a3a5c4e2298, 0x70c2705d003faf62) }, // 1714
+ { cat(0x52f0151fa52b1068, 0xf614fc5d501cb1e3), cat(0xedc0a9f6fa169dc0, 0xb46a4d6199ff7f03) }, // 1715
+ { cat(0xa8c010e61dbc0d20, 0xc4dd96b10ce3c183), cat(0xbe33bb2bfb454b00, 0x90550ab47b32cc02) }, // 1716
+ { cat(0xba3340b817c9a41a, 0x3717abc0d71c9acf), cat(0x9829628995d108cd, 0x40440890628f099b) }, // 1717
+ { cat(0xf6b8678cf2dc39c3, 0x8b5912ce24fa914b), cat(0xf3756a75bc81a7ae, 0xcd39a74d6a7e75c5) }, // 1718
+ { cat(0x2bc6b93d8f16949c, 0x6f7a7571b72edaa3), cat(0xc2c4552afd348625, 0x70faec3deecb916b) }, // 1719
+ { cat(0x230560fe0c12107d, 0x25fb9127c5bf154f), cat(0x9bd04422642a04ea, 0xc0c8bcfe58a2dabc) }, // 1720
+ { cat(0x38089b3013501a61, 0xd65f4ea60931bbb1), cat(0xf94d39d0a0433b11, 0x34746196f437c460) }, // 1721
+ { cat(0x2cd3af59a90ce1e7, 0xdeb2a551a0f49628), cat(0xc770fb0d4d0295a7, 0x5d29e7abf6930380) }, // 1722
+ { cat(0x23dc8c47ba70b4b9, 0x7ef5510e1a5d44ed), cat(0x9f8d95a43d9baaec, 0x4a87ec89920f3600) }, // 1723
+ { cat(0x6c9413a5f71abac2, 0x64bbb4e35d6207e1), cat(0xff48ef6d2f5f77e0, 0x773fe0dc1ce52333) }, // 1724
+ { cat(0x8a100fb7f8e22f01, 0xea2fc3e917819fe7), cat(0xcc3a592425e5f980, 0x5f664d7ce3ea828f) }, // 1725
+ { cat(0x080cd95ffa4e8c01, 0x8826365412ce1986), cat(0xa361e0e9b7eb2e00, 0x4c51d7971cbb9ba6) }, // 1726
+ { cat(0x0670ade661d87001, 0x39b82b767571ae05), cat(0x82b4b3ee2cbc24cd, 0x09db12df4a2fafb8) }, // 1727
+ { cat(0x70b449709c8d8001, 0xf5f378bd88b5e33a), cat(0xd1211fe37ac6a148, 0x0fc4eafedd191926) }, // 1728
+ { cat(0x26f6a126e3a46667, 0xf7f5fa313a2b1c2f), cat(0xa74db31c62388106, 0x7303ef324a7a7a85) }, // 1729
+ { cat(0x85921a8582e9eb86, 0x5ff7fb5a94ef49bf), cat(0x85d7c27d1b606738, 0x5c0325c1d52ec86a) }, // 1730
+ { cat(0x3c1cf73c04a978d6, 0xfff32bc4217edc65), cat(0xd62603fb5f00a526, 0xf99ea2cfbb7e0d77) }, // 1731
+ { cat(0x30172c3003bac712, 0x665c23034dff16b7), cat(0xab519cc918cd50eb, 0xfae54f0c95fe712c) }, // 1732
+ { cat(0x8cdf568ccfc89f41, 0xeb7ce8cf7198def9), cat(0x890e1707470aa723, 0x2f1dd8d6de652756) }, // 1733
+ { cat(0xae3224147fa76536, 0x4594a7b24f5afe5b), cat(0xdb49be720b443e9e, 0xb1c95af163d50bbd) }, // 1734
+ { cat(0x58281cdd32ec50f8, 0x37aa1fc1d9159849), cat(0xaf6e31f4d5d03218, 0x8e3aaf278310d631) }, // 1735
+ { cat(0xe02017175bf040c6, 0x92ee7fce474479d4), cat(0x8c5827f711735b46, 0xd82ef2860273de8d) }, // 1736
+ { cat(0x6699be8bc64d3470, 0xeb1732e3a53a5c86), cat(0xe08d0cbe82522ba4, 0x8d17ea7003ec9749) }, // 1737
+ { cat(0x8547cba3050a905a, 0x55ac28b61dc84a05), cat(0xb3a40a3201db561d, 0x3dacbb8ccff07907) }, // 1738
+ { cat(0xd1063c826a6ed9e1, 0xde2353c4e4a03b37), cat(0x8fb66e8e67e2ab4a, 0x97bd62d70cc060d2) }, // 1739
+ { cat(0xb4d6c73710b15c9c, 0x969eec6e3a99f858), cat(0xe5f0b0e3d96aabaa, 0x8c6237be7acd67b7) }, // 1740
+ { cat(0x2a456c2c0d5ab07d, 0x454bf0582ee1937a), cat(0xb7f3c0b647888955, 0x3d1b5fcb95711fc6) }, // 1741
+ { cat(0xee9df0233de226ca, 0x9dd659e0258142c8), cat(0x932966f8393a0777, 0x6415e63c778db304) }, // 1742
+ { cat(0x4a964d052fd03e10, 0xfc8a2966a2686ad9), cat(0xeb75718d285cd8bf, 0x06897060bf491e6e) }, // 1743
+ { cat(0x3bab70d0f30cfe73, 0xfd3b54521b86bbe1), cat(0xbc5df470ed1713cc, 0x053ac04d65d41858) }, // 1744
+ { cat(0xc955f3da5c0a6529, 0x9762a9db4938964e), cat(0x96b1905a5745a970, 0x042f003deb101379) }, // 1745
+ { cat(0xdbbcb95d6010a1dc, 0x256aa95edb8dbd49), cat(0xf11c1a2a253c424c, 0xd37e66c97819b8c2) }, // 1746
+ { cat(0xe2fd6117800d4e49, 0xb788877f160afdd4), cat(0xc0e34821b763683d, 0x75feb8a12ce1609b) }, // 1747
+ { cat(0x4f311a79333dd83a, 0xf93a05ff44d597dd), cat(0x9a4f6ce7c5e92031, 0x2b322d4dbd811a16) }, // 1748
+ { cat(0xe51b5d8eb862f391, 0x8ec33ccba155bfc7), cat(0xf6e57b0c6fdb66b5, 0x11e9e215fc01c356) }, // 1749
+ { cat(0xea7c4ad893825c74, 0x7235ca3c81116639), cat(0xc5846270597c522a, 0x74bb1b44c99b02ab) }, // 1750
+ { cat(0x21fd08ad42ceb05d, 0x282b083067411e94), cat(0x9e0381f37ac9db55, 0x2a2f4903d47c0223) }, // 1751
+ { cat(0x032e74486ae44d61, 0xd9de7380a534fdba), cat(0xfcd269859142f888, 0x437edb3953f99d05) }, // 1752
+ { cat(0x68f1f6a05583711b, 0x14b1f600842a6495), cat(0xca41ee04743593a0, 0x35ff15c776614a6a) }, // 1753
+ { cat(0xba5b2bb3779c5a7c, 0x108e5e66d021ea11), cat(0xa1ce5803902adc80, 0x2b3277d2c51aa1ee) }, // 1754
+ { cat(0x61e2895c5fb04863, 0x4071e51f0ce7ee74), cat(0x8171e002d9bbe399, 0xbc285fdbd0e21b25) }, // 1755
+ { cat(0xcfd0dbc6ff8073d2, 0x00b63b64e173171f), cat(0xcf1c999e292c9f5c, 0x6040995fb49cf83b) }, // 1756
+ { cat(0x0ca71638cc66c30e, 0x66f82f83e78f45b3), cat(0xa5b07ae4edbd4c49, 0xe69a144c907d9363) }, // 1757
+ { cat(0xd6ec11c709ebcf3e, 0xb8c68c69860c37c2), cat(0x848d2f1d8afdd6a1, 0x8548103d406475e8) }, // 1758
+ { cat(0x57e01c71a9794b97, 0x8e0a7a4270138c6a), cat(0xd415182f44c95768, 0xd54019fb9a3a5641) }, // 1759
+ { cat(0x464ce38e212dd612, 0xd80861cec00fa388), cat(0xa9aa79bf6a3aac53, 0xddcce19614fb7834) }, // 1760
+ { cat(0x9ea3e93e80f1780f, 0x1339e7d899a61c6d), cat(0x87bb949921c889dc, 0xb170b47810c92cf6) }, // 1761
+ { cat(0x64397530ce4f267e, 0x852972f42909c714), cat(0xd92c20f502da762d, 0xe8b453f34e0eae57) }, // 1762
+ { cat(0xe9c790f3d83f51fe, 0xd0edf59020d49f44), cat(0xadbce72a68aec4f1, 0x86f6a98f71a55845) }, // 1763
+ { cat(0x87d2da5cacff74cb, 0xda57f7a680aa1903), cat(0x8afd85bb86f23727, 0x9f2bbad927b779d1) }, // 1764
+ { cat(0xa61e2a2de198badf, 0xc3bff2a401102804), cat(0xde626f9271838b72, 0x9845f7c1d9258fb5) }, // 1765
+ { cat(0xeb4b54f18146fbe6, 0x36332883340cecd0), cat(0xb1e85941f4693c5b, 0xad04c634adb7a62a) }, // 1766
+ { cat(0xef6f77279a9f2feb, 0x5e8f539c29a3f0a7), cat(0x8e537a9b29edc9e2, 0xf0d09e908af951bb) }, // 1767
+ { cat(0xb24bf1d8f7651978, 0x974bb8f9dc39810b), cat(0xe3b8c42b76494304, 0xb480fdb4118ee92c) }, // 1768
+ { cat(0xc1d65b13f91dadfa, 0x12a2fa617cfacda2), cat(0xb62d69bc5ea1026a, 0x2a00caf674725423) }, // 1769
+ { cat(0x34ab7c0ffa7e24c8, 0x0ee8c84dfd95714f), cat(0x91bdee304bb401ee, 0x8800a25ec38ea9b6) }, // 1770
+ { cat(0xbaabf9b32a636e0c, 0xe4a7a6e32f558217), cat(0xe92fe38079200317, 0x400103cad27ddc56) }, // 1771
+ { cat(0x9556615c21e924d7, 0x1d52ebe8f2aace79), cat(0xba8cb60060e668df, 0x6667363bdb97e378) }, // 1772
+ { cat(0x44451ab01b20ea45, 0xb10f2320c2223ec7), cat(0x953d5e66b3eb8719, 0x1eb8f82fe2dfe92d) }, // 1773
+ { cat(0x06d4f7802b67dd3c, 0x4e7e9e9ad036cad8), cat(0xeec8970ab978d828, 0x3127f37fd16641e2) }, // 1774
+ { cat(0x05772c66891fe430, 0x3ecbb215735f08ad), cat(0xbf06df3bc793e020, 0x275329330deb67e8) }, // 1775
+ { cat(0x6ac5bd1ed4198359, 0xcbd628112918d3be), cat(0x98d24c2fd2dcb34c, 0xec42875c0b22b986) }, // 1776
+ { cat(0x77a2c831535c055c, 0x7956a681db5aec63), cat(0xf483ad1951611ee1, 0x7a040bc678378f3d) }, // 1777
+ { cat(0x5fb56cf442b00449, 0xfaabb867e2af2382), cat(0xc39c8a7aa780e581, 0x2e69a3052cf93f64) }, // 1778
+ { cat(0x7fc45729cef336a1, 0x95562d1fe88c1c68), cat(0x9c7d3b9552cd8467, 0x5854826a8a60ff83) }, // 1779
+ { cat(0x32d3bea94b1ebdcf, 0x5556ae99741360a6), cat(0xfa61f8eeeae26d72, 0x26ed9d7743ce659f) }, // 1780
+ { cat(0x28a965543c1897d9, 0x11122547900f8085), cat(0xc84e60bf224ebdf4, 0xebf14ac5cfd8514c) }, // 1781
+ { cat(0xba211ddcfce0797a, 0x740e8439400c66d1), cat(0xa03eb3cc1b723190, 0xbcc1089e3fe04109) }, // 1782
+ { cat(0x2e80e4b0ca4d2dfb, 0x900b9cfa99a38574), cat(0x8032297015f4f473, 0xca3406e4ffe69a6e) }, // 1783
+ { cat(0x7d9b078143aeaff8, 0xe678fb2a8f6c08ba), cat(0xcd1d0f19bcbb20b9, 0x4386716e663dc3e3) }, // 1784
+ { cat(0x647c060102f22660, 0xb860c8eed9233a2e), cat(0xa4173f47ca2f4d61, 0x02d1f45851cb031c) }, // 1785
+ { cat(0xe9fcd19a68c1b84d, 0x604d6d8be0e8fb58), cat(0x8345cc396e8c3de7, 0x3574c379db08cf49) }, // 1786
+ { cat(0x76614f5d746926e2, 0x33af15ac9b0e5ef3), cat(0xd20946c24a79fca5, 0x22546bf62b414ba9) }, // 1787
+ { cat(0xc51aa5e45d20ebe8, 0x2958de23af3eb25c), cat(0xa8076bcea1fb3084, 0x1b76bcc4ef676fba) }, // 1788
+ { cat(0x041551837db3efec, 0xede0b1b625cbc1e4), cat(0x866c563ee7fc26d0, 0x15f89703f2b9262f) }, // 1789
+ { cat(0x6ceee8d262b97fe1, 0x7c9ab5f03c793639), cat(0xd713bd31732d0ae6, 0x898dbe6cb78ea37e) }, // 1790
+ { cat(0xf0bf20a84efaccb4, 0x63aef7f363942b61), cat(0xac0fca8df5bda252, 0x07a49856f93ee931) }, // 1791
+ { cat(0xc098e6ed0bfbd6f6, 0xb62593291c76891a), cat(0x89a63ba4c497b50e, 0x6c83ad1260ff20f4) }, // 1792
+ { cat(0x3427d7e1acc624bd, 0xf03c1ea82d8a74f6), cat(0xdc3d2c3ad425ee7d, 0x7a6c481d67fe9b21) }, // 1793
+ { cat(0xf686464e23d1b6fe, 0x59c9b220246ec3f8), cat(0xb030f02f101e5864, 0x61f039b11ffee280) }, // 1794
+ { cat(0xc538383e830e2bfe, 0xae3af4e6838bcffa), cat(0x8cf3f358d9b1e050, 0x4e59c7c0e6658200) }, // 1795
+ { cat(0xd526c06404e37997, 0x7d2b2170d2794cc3), cat(0xe1865227c2b633b3, 0xb08fa60170a2699a) }, // 1796
+ { cat(0xaa8566b66a4f9479, 0x30ef4df3db943d69), cat(0xb46b74ec9bc4f629, 0x5a0c84cdf3b52148) }, // 1797
+ { cat(0x886ab891eea61060, 0xf3f2a4c316103121), cat(0x9055f723afd0c4ed, 0xe1a39d718fc41aa0) }, // 1798
+ { cat(0xda445a8317701a34, 0xb9843ad1bce6b501), cat(0xe6eff1d2b2e7a17c, 0x9c38fbe8e6069100) }, // 1799
+ { cat(0xae9d1535ac59ae90, 0x9469c8a7ca522a67), cat(0xb8bff4a88f1fb463, 0xb02d9653eb387400) }, // 1800
+ { cat(0x587daa9156ae2540, 0x76bb06eca1db551f), cat(0x93ccc3ba0c195d1c, 0x8cf1450fef605ccd) }, // 1801
+ { cat(0xc0c910e88ab03b9a, 0x5791a4adcfc554ff), cat(0xec7ad2c3468efb60, 0xe18208197f00947b) }, // 1802
+ { cat(0x00a0da53a2269615, 0x12daea24a6377732), cat(0xbd2f0f029ed8c91a, 0x4e01a014659a1063) }, // 1803
+ { cat(0x66e7150fb4ebab44, 0x0f15881d51c5f8f5), cat(0x9758d8cee57a3a7b, 0x719ae676b7ae7382) }, // 1804
+ { cat(0xa4a4ee7f87df786c, 0xe4ef402ee93cc188), cat(0xf227c14b08c390c5, 0x829170bdf2b0b8d0) }, // 1805
+ { cat(0xb6ea5866064c6057, 0x1d8c3358ba97013a), cat(0xc1b9676f3a360d6a, 0xcedac097f55a2d73) }, // 1806
+ { cat(0x92551384d1d6b378, 0xe4702913c878cdc8), cat(0x9afab925c82b3def, 0x0be233acc448245c) }, // 1807
+ { cat(0xea21b8d482f11f27, 0xd3e6a81fa727afa6), cat(0xf7f78ea2d9dec97e, 0x7969ec47a0736d60) }, // 1808
+ { cat(0x54e7c71068c0e5b9, 0x765220195286261e), cat(0xc65fa54f14b23acb, 0x9454bd0619f5f11a) }, // 1809
+ { cat(0x43ec9f4053cd8494, 0x5ea819addb9e84e5), cat(0x9eb2eaa5aa282f09, 0x4376fd9e7b2b2748) }, // 1810
+ { cat(0xd31432008615a0ed, 0x644029162c30d4a2), cat(0xfdeb110910404b42, 0x058b2f63f8450ba6) }, // 1811
+ { cat(0xdc1028006b4480bd, 0xe9ccedab568d76e8), cat(0xcb22740740336f68, 0x046f591cc69da2eb) }, // 1812
+ { cat(0xe340200055d066fe, 0x54a3f155ded79253), cat(0xa281f66c335c5920, 0x038c474a387e1bef) }, // 1813
+ { cat(0xb5cce666ab0d1f31, 0xdd4ff444b2460ea9), cat(0x820191f02916adb3, 0x3609d2a1c6cb498c) }, // 1814
+ { cat(0x8947d70aab4831e9, 0x621986d450701775), cat(0xd0028319db577c51, 0xf00fb7693e120f47) }, // 1815
+ { cat(0x3a9fdf3bbc39c187, 0x81ae0576a6c012c4), cat(0xa66868e17c45fd0e, 0x59a62c5431a80c39) }, // 1816
+ { cat(0x954cb296302e346c, 0x67be6ac552334236), cat(0x852053e7969e640b, 0x7aeb56a9c1533cfa) }, // 1817
+ { cat(0x887ab756b37d20ad, 0x72ca446ee9eb9d23), cat(0xd500863f5763d345, 0x91788aa93551fb2a) }, // 1818
+ { cat(0x6d2ef9122930e6f1, 0x28a1d058bb22e41c), cat(0xaa66d1cc45e975d1, 0x412d3bba910e6288) }, // 1819
+ { cat(0x2425940e875a525a, 0x86e7d9e095b5834a), cat(0x8852417037edf7da, 0x9a8a962eda71e86d) }, // 1820
+ { cat(0x6d08ece40bc3b6f7, 0x3e3fc300ef88d210), cat(0xda1d3580597cbfc4, 0x2a7756b15d830d7b) }, // 1821
+ { cat(0xf0d3f0b66fcfc592, 0x9833026726070e73), cat(0xae7dc466adfd6636, 0x885f788de468d795) }, // 1822
+ { cat(0x5a4326f859730475, 0x468f351f519f3ec3), cat(0x8b97d05224cab82b, 0xa04c6071838712de) }, // 1823
+ { cat(0x2a050b26f584d3ee, 0xd74b88321c31fe04), cat(0xdf594d503addf379, 0x007a33e8d271b7ca) }, // 1824
+ { cat(0x219da28591370ff2, 0x45d6068e7cf4cb36), cat(0xb2add773624b292d, 0x99fb5cba41f49308) }, // 1825
+ { cat(0xe7b14ed140f8d98e, 0x9e44d20b972a3c2c), cat(0x8ef179291b6f5424, 0x7b2f7d61ce5d426c) }, // 1826
+ { cat(0x3f8217b534c15c17, 0x63a150128b76c6ac), cat(0xe4b58ea82be5536d, 0x91e595694a2ed0ae) }, // 1827
+ { cat(0x9934dfc42a3449ac, 0x4fb4400ed5f89ef0), cat(0xb6f7a55356510f8a, 0xdb1e1121082573be) }, // 1828
+ { cat(0x475d7fd021c36e23, 0x72f699a577fa18c0), cat(0x925fb775dea73fa2, 0x48e4da80d3512965) }, // 1829
+ { cat(0x722f32e69c6be36b, 0xeb242908bff68e00), cat(0xea32bf22fdd865d0, 0x74a15d9aebb50f08) }, // 1830
+ { cat(0x5b58f58549efe923, 0x22835406fff8719a), cat(0xbb5bcc1bfe46b7d9, 0xf6e77e15895da5a0) }, // 1831
+ { cat(0xe2ad91376e59874f, 0x4ecf766bfff9f47b), cat(0x95e309affe9ef97b, 0x2bec64de077e1e19) }, // 1832
+ { cat(0x377c1b8be3c27218, 0x7e18bd79998fed91), cat(0xefd1a9199764c25e, 0xacad6e300bfcfcf6) }, // 1833
+ { cat(0x2c63493cb6352813, 0x9813cac7ae0cbe0e), cat(0xbfdaedae12b701e5, 0x56f124f33cca63f8) }, // 1834
+ { cat(0xf04f6dca2b5db9a9, 0x46763bd2f1a3cb3e), cat(0x997bf1580ef8ce51, 0x125a83f5ca3b832c) }, // 1835
+ { cat(0xe6e57c76abc9290e, 0xd72392eb1c394530), cat(0xf5931bc017f47d4e, 0x83c40656105f3847) }, // 1836
+ { cat(0x1f1dfd2bbca0eda5, 0x78e94255b02dd0f4), cat(0xc475afccdff6caa5, 0x36366b780d18f9d3) }, // 1837
+ { cat(0x18e4ca8963b3f151, 0x2d8768448cf173f6), cat(0x9d2af30a4cc56eea, 0x91c522c670e0c7dc) }, // 1838
+ { cat(0xf4a1440f05ecb54e, 0xaf3f0d3a7b1becbd), cat(0xfb77eb43ae08b177, 0x4fa1d13d8167a62c) }, // 1839
+ { cat(0x5d4dd00c04bd5dd8, 0x8c3270fb95aff097), cat(0xc92cbc3624d3c12c, 0x3fb4a76467861e8a) }, // 1840
+ { cat(0x1771733cd0977e46, 0xd68ec0c9448cc079), cat(0xa0f09691b70fcdbc, 0xffc3b91d1f9e7ed5) }, // 1841
+ { cat(0x79278f63da12cb6b, 0xded89a3a9d3d66c7), cat(0x80c0787492730afd, 0x996960e4194b98aa) }, // 1842
+ { cat(0x283f4bd2f68478ac, 0x97c0f6c42ec8a472), cat(0xce00c0ba83eb44c8, 0xf57567d35bac2777) }, // 1843
+ { cat(0x2032a30f2b9d2d56, 0xdfcd92368bd3b6c2), cat(0xa4cd66fb9cbc3707, 0x2ac4530f7c89b92c) }, // 1844
+ { cat(0x4cf54f3f56175778, 0xb30adb5ed642f89b), cat(0x83d7859616fcf8d2, 0x889d0f3f96d49423) }, // 1845
+ { cat(0xae554b9889bef25a, 0xb8115efe239e5a91), cat(0xd2f26f568b2e5aea, 0x742e7ecc2487536b) }, // 1846
+ { cat(0x58443c7a07cbf515, 0x600de5981c7eaedb), cat(0xa8c1f2aba28b7bee, 0xc35865701d390f89) }, // 1847
+ { cat(0x469cfd2e6ca32a77, 0x800b1e1349fef249), cat(0x87018eefb53c6325, 0x69138459b0fa72d4) }, // 1848
+ { cat(0x0a94c84a476b7725, 0x99ab63520ffe5074), cat(0xd8027e4c552d6b6f, 0x0e85a08f8190b7ba) }, // 1849
+ { cat(0x087706a1d2bc5f51, 0x47bc4f74d998405d), cat(0xaccecb70442455f2, 0x72048072ce0d5fc8) }, // 1850
+ { cat(0x6d2c054e42304c41, 0x06303f90ae1366b1), cat(0x8a3f09269ce9de5b, 0x8e6a005bd80ab306) }, // 1851
+ { cat(0xaeacd54a03807a01, 0xa38065b449b8a44e), cat(0xdd31a83dc7dc96f8, 0xe3dccd5fc0111e70) }, // 1852
+ { cat(0xbef0aaa19c66c801, 0x4f99eaf6a1608371), cat(0xb0f48697d316df2d, 0x83170ab3000db1f3) }, // 1853
+ { cat(0x325a221ae3856ccd, 0xd947ef2bb44d35f4), cat(0x8d906baca8df18f1, 0x35ac088f333e27f6) }, // 1854
+ { cat(0xb6f69cf7d26f147c, 0x8ed97eac53aebcba), cat(0xe280ac47749827e8, 0x55e00db1eb96a656) }, // 1855
+ { cat(0x2bf87d930ebf4396, 0xd8adfef042f23095), cat(0xb533bd05f6e01fed, 0x11800af4bc788512) }, // 1856
+ { cat(0xbcc6cadc0bcc3612, 0x46f198c0358e8d44), cat(0x90f630d1924ce657, 0x41333bf6fd2d3741) }, // 1857
+ { cat(0x2e0ade2cdfad2350, 0x71828e0055b0e206), cat(0xe7f04e1c1d47d6f2, 0x01eb9324c8485869) }, // 1858
+ { cat(0xbe6f1823e6241c40, 0x5aced800448d819f), cat(0xb98d0b49b106458e, 0x67efa8ea39d379ed) }, // 1859
+ { cat(0xcb8c134feb501699, 0xe23f13336a0ace19), cat(0x9470d5d48d9e9e0b, 0x865953ee94a92e57) }, // 1860
+ { cat(0x78e01ee6454cf0f6, 0x36cb51ebdcde168d), cat(0xed815620e2976345, 0xa3c21fe4210eb08c) }, // 1861
+ { cat(0xc719b251d10a5a5e, 0x923c41897d7e7871), cat(0xbe0111b3e8791c37, 0xb634e6501a7226d6) }, // 1862
+ { cat(0xd27af50e40d51518, 0x74fd013acacb938e), cat(0x9800daf653941692, 0xf82a51d9aec1b8ab) }, // 1863
+ { cat(0x50c4bb4a0154ee8d, 0x87fb352ade1285b0), cat(0xf334918a1f535751, 0x8d1082f5e4692779) }, // 1864
+ { cat(0x409d62a19aaa5871, 0x3995c4224b42048d), cat(0xc290746e7f75df74, 0x70da025e50541f94) }, // 1865
+ { cat(0x007de881488846c0, 0xfade3681d5ce6a0a), cat(0x9ba6c38b992b1929, 0xf3e19b7ea6a9b2dd) }, // 1866
+ { cat(0x00c974020da6d79b, 0x2afd2402efb0a9aa), cat(0xf90ad278f511c1dc, 0xb968f8caa442b7c8) }, // 1867
+ { cat(0xcd6df6680aebdfaf, 0x55975002595a2155), cat(0xc73bdb93f74167e3, 0xc7872d6ee9cef96c) }, // 1868
+ { cat(0x7124c52008bcb2f2, 0xaadf733514481aaa), cat(0x9f63160ff9011fe9, 0x6c6c2458bb0bfabd) }, // 1869
+ { cat(0x4ea13b6674611e51, 0x11658521ba0cf776), cat(0xff04f0198e68330f, 0x13e03a2791acc462) }, // 1870
+ { cat(0xd880fc51f6b41840, 0xdab79db494d72c5f), cat(0xcc03f347a52028d8, 0xdcb361b941570381) }, // 1871
+ { cat(0xe06730419229ad00, 0xaef94af6dd78f04c), cat(0xa3365c3950e68713, 0xe3c2b49434459c67) }, // 1872
+ { cat(0xe6b8f367a8215733, 0xbf2dd5924ac726a3), cat(0x8291e3610d8538dc, 0xb6355d435d047d1f) }, // 1873
+ { cat(0xd78e523f73688b85, 0xfeafbc1d4471d76b), cat(0xd0e96bce7c085afa, 0xbd222ed22e6d94ff) }, // 1874
+ { cat(0x12d841cc5c53a2d1, 0x988c967dd05b12bc), cat(0xa721230b966d1595, 0x641b58a825247733) }, // 1875
+ { cat(0xdbe034a37d0fb574, 0x7a0a11fe4048dbca), cat(0x85b41c0945241144, 0x5015e086841d2c28) }, // 1876
+ { cat(0xc633876bfb4c5587, 0x29a9b6639a0e2c76), cat(0xd5ecf9a86ea01ba0, 0x802300d739c846a7) }, // 1877
+ { cat(0x9e8f9f8995d6aad2, 0x87baf84fae71bd2b), cat(0xab23faed254ce2e6, 0xcce8cd78fb069eec) }, // 1878
+ { cat(0xb20c7fa144abbbdb, 0x9fc8c6a62527ca89), cat(0x88e9958a843d8252, 0x3d870ac72f387f23) }, // 1879
+ { cat(0xb67a65ced445f95f, 0x660e0aa36ea610db), cat(0xdb0f55aa6d2f36e9, 0xfc0b4471e52731d2) }, // 1880
+ { cat(0xf861eb0bdd04c77f, 0x84d80882beeb40af), cat(0xaf3f77bb8a8c2bee, 0x633c36c1841f5b0e) }, // 1881
+ { cat(0x604e55a3173705ff, 0x9d79a06898bc33c0), cat(0x8c32c62fa209bcbe, 0xb5c9c5679ce5e272) }, // 1882
+ { cat(0x33b08904f1f1a332, 0x958f670dc12d1f99), cat(0xe0513d190342c797, 0x8942d57294a303ea) }, // 1883
+ { cat(0x8fc06d9d8e5ae8f5, 0x4472b8d7cdbdb2e1), cat(0xb37430e0cf689fac, 0x6dcf112876e8cfee) }, // 1884
+ { cat(0x0c99f14ad848ba5d, 0xd05bc7130afe28b4), cat(0x8f90271a3f86e623, 0x8b0c0db9f8ba3ff2) }, // 1885
+ { cat(0x475cb5448d412a2f, 0xb3c60b51ab30411f), cat(0xe5b371c398d7d69f, 0x44e015f65ac39983) }, // 1886
+ { cat(0x6c4a2a9d3dcdbb59, 0x5c9e6f7488f3674c), cat(0xb7c2c16947131219, 0x03e677f8489c7acf) }, // 1887
+ { cat(0x56a1bbb0fe3e2f7a, 0xb07ebf906d8f85d7), cat(0x9302345438dc0e7a, 0x69852cc6a07d2f0c) }, // 1888
+ { cat(0x2435f91b30637f2a, 0xb3fdff4d7c18d624), cat(0xeb36ba205af9b0c3, 0xdc0847a433fb7e7a) }, // 1889
+ { cat(0x1cf7fa7c26b5ff55, 0x5ccb32a4634711b7), cat(0xbc2bc819e2615a36, 0x49a039502995fec8) }, // 1890
+ { cat(0xb0c661fcebc4cc44, 0x4a3c2883829f415f), cat(0x96896ce181e77b5e, 0xa14cfaa687ab3239) }, // 1891
+ { cat(0xe7a3cffb12d47a06, 0xdd2d0d9f37653565), cat(0xf0dbe168cfd8c564, 0x3547f770d911e9f5) }, // 1892
+ { cat(0x1fb63ffc0f10619f, 0x17573e18f91dc451), cat(0xc0afe7870cad6ab6, 0x91065f8d7a74bb2b) }, // 1893
+ { cat(0xe62b66633f404e18, 0xdf78fe7a60e49d0d), cat(0x9a2652d2708abbc5, 0x40d1e60ac85d6288) }, // 1894
+ { cat(0x3d123d6b9866e35a, 0xff27fd909b0761af), cat(0xf6a3b7b71a7792d5, 0x348309aada2f040e) }, // 1895
+ { cat(0x640e978946b8b5e2, 0x65b997a6e26c4e25), cat(0xc54fc62c152c7577, 0x5d35a1557b58d00b) }, // 1896
+ { cat(0x1cd8793a9efa2b1b, 0x849479524ebd0b51), cat(0x9dd96b567756c45f, 0x7dc481112f7a4009) }, // 1897
+ { cat(0x615a5b90fe5d11c5, 0xa0ed8eea1794dee8), cat(0xfc8f1223f2246d65, 0x960734e84bf6ccdb) }, // 1898
+ { cat(0x1aaeafa731e40e37, 0xb3f13f21ac7718ba), cat(0xca0c0e83281d2451, 0x44d290b9d65f0a49) }, // 1899
+ { cat(0x488bbfb8f4b671c6, 0x298dcc1af05f46fb), cat(0xa1a33ecf534a8374, 0x370eda2e4518d507) }, // 1900
+ { cat(0xa06fcc93f6f85b04, 0xee0b09af26b29f2f), cat(0x814f6572a9086929, 0xc5a57b58374710d2) }, // 1901
+ { cat(0x9a4c7a8657f3c4d4, 0xb011a9183dea984c), cat(0xcee56f1ddb40a842, 0xd5d59226bed81aea) }, // 1902
+ { cat(0xe1d6c86b798fd0aa, 0x2674874697eee03d), cat(0xa58458e4af66ed02, 0x44aadb5232467bee) }, // 1903
+ { cat(0xe7df06bc613fda21, 0xb85d39054658b364), cat(0x8469e0b6f2b8bd9b, 0x6a22490e8e9ec98b) }, // 1904
+ { cat(0x72fe712d686629cf, 0x8d61f4d53d5ab89f), cat(0xd3dc9abe512795c5, 0x769d41b0e4314279) }, // 1905
+ { cat(0x28cb8dbded1e87d9, 0x3de7f710fde22d4c), cat(0xa97d489840ec77d1, 0x2bb1015a50276861) }, // 1906
+ { cat(0xba3c7164bdb20647, 0x64b99273fe4e8aa4), cat(0x87976d469a56c640, 0xefc0cde1d9b9204d) }, // 1907
+ { cat(0x9060b56dfc500a0b, 0xd45c1d8663b0ddd2), cat(0xd8f24870f6f13d34, 0xb2ce1636292833af) }, // 1908
+ { cat(0xa6b3c457fd0cd4d6, 0x437ce46b82f3e4a8), cat(0xad8ea05a5f27642a, 0x28a4de91ba868fbf) }, // 1909
+ { cat(0x522969dffda3dd78, 0x35fd8389358fea20), cat(0x8ad880484c1f8354, 0xed50b20e2ed20c99) }, // 1910
+ { cat(0x1d0f0fccc9062f26, 0xbcc8d275227fdd00), cat(0xde2733a6e0326bbb, 0x154de9b04ae9adc2) }, // 1911
+ { cat(0xb0d8d970a0d1bf52, 0x30a0a85db5331733), cat(0xb1b8f61f19c1efc8, 0xddd7ee26a2548b01) }, // 1912
+ { cat(0xf3e0adf3b3daff74, 0xf3b3b9e490f5ac29), cat(0x8e2d91b27b018ca0, 0xb1798b521b76d59a) }, // 1913
+ { cat(0x86344985ec9198bb, 0x1f85f63a81891375), cat(0xe37c1c50c4cf4767, 0x825c121cf8be2291) }, // 1914
+ { cat(0x3829d46b23a7ad62, 0x7f9e5e95346da92a), cat(0xb5fce373d0a5d2b9, 0x351674e3fa31b541) }, // 1915
+ { cat(0xf9bb1055b61fbde8, 0x66184baa9057ba88), cat(0x91971c5ca6eb0efa, 0x90dec3e994f49100) }, // 1916
+ { cat(0xc2c4e6ef89cc630d, 0x7026df774d592a74), cat(0xe8f1c6faa4ab4b2a, 0x81646ca8ee541b34) }, // 1917
+ { cat(0xcf03ebf2d4a38271, 0x26857f92a4475529), cat(0xba5b0595508908ee, 0xcde9f087251015c3) }, // 1918
+ { cat(0x7269898f1082cec0, 0xeb9dffa8836c4421), cat(0x95159e110d3a6d8b, 0xd7ee5a05b7401169) }, // 1919
+ { cat(0x50a8dc181a6ae467, 0xdf6332a738ad39ce), cat(0xee88fce8152a48df, 0xbfe3c33c58668242) }, // 1920
+ { cat(0x40871679aebbe9ec, 0xb2b5c21f608a94a5), cat(0xbed3fd8677550719, 0x664fcf6379eb9b68) }, // 1921
+ { cat(0x006c11faf22fee56, 0xf55e34e5e6d543b7), cat(0x98a9979ec5dd9f47, 0x850ca5e92e5615ed) }, // 1922
+ { cat(0x9a46832b1d197d57, 0xeefd216fd7bb9f8c), cat(0xf4428c313c95cba5, 0xa1add641e3bcefe1) }, // 1923
+ { cat(0xe1d20288e4146446, 0x58ca8126462fb2d6), cat(0xc368702763ab0951, 0x4e24ab67e963f31a) }, // 1924
+ { cat(0xe7db353a50105038, 0x47086751d1bfc245), cat(0x9c538cec4fbc0774, 0x3e83bc53211cc27b) }, // 1925
+ { cat(0xa62b885d4ce6e6c0, 0x71a70bb61c6603a1), cat(0xfa1f47e07f933f20, 0x6405fa1e9b61372c) }, // 1926
+ { cat(0x51bc6d1770b8b899, 0xf485a2f816b802e8), cat(0xc819064d32dc3280, 0x5004c8187c4dc5bd) }, // 1927
+ { cat(0x0e305745f3c6fa14, 0xc39e1bf9abc668b9), cat(0xa014050a8f168ecd, 0x0cd0a01396a49e31) }, // 1928
+ { cat(0xa4f37904c30594dd, 0x694b4994896b86fb), cat(0x801004087278723d, 0xa3da19a945507e8d) }, // 1929
+ { cat(0xa1858e6e04d5bafb, 0xdbaba8eda8ac0b2b), cat(0xcce66cda50c0b6c9, 0x0629c2a86ee730e2) }, // 1930
+ { cat(0xb46ad85803de2f2f, 0xe2efba57ba233c22), cat(0xa3eb8a48409a2bd4, 0x04ee35538bec271b) }, // 1931
+ { cat(0x905579e0031825bf, 0xe8bfc8462e829682), cat(0x8322d5069a14efdc, 0xd0be910fa323527c) }, // 1932
+ { cat(0x4d558fccd1c03c66, 0x4132da09e4042403), cat(0xd1d154d75cee4c94, 0x8130e819050550c7) }, // 1933
+ { cat(0x71113fd70e336385, 0x00f57b3b1cd01ccf), cat(0xa7daaa45e3f1d6dd, 0x342720140404409f) }, // 1934
+ { cat(0x2740ffdf3e8f82d0, 0xcd912f627d734a3f), cat(0x86488837e98e457d, 0xc352801003369a19) }, // 1935
+ { cat(0x0b9b32feca7f37b4, 0x7c1b7f03fbeba9ff), cat(0xd6da738ca8e3a262, 0xd21d99b338575cf5) }, // 1936
+ { cat(0x6faf5bff0865c629, 0xfce2cc032fefbb32), cat(0xabe1f60a20b61b82, 0x41b147c29379172a) }, // 1937
+ { cat(0xbfbf7ccc06b7d1bb, 0x30b570028cbfc8f5), cat(0x898191a1b3c4e2ce, 0x9af4396875fa78ee) }, // 1938
+ { cat(0xff98c7acd78c82c5, 0x1abbe66a7acc74bb), cat(0xdc02829c52d49e17, 0x5e538f0d8990c17d) }, // 1939
+ { cat(0xcc7a395712d6cf04, 0x15631ebb95705d63), cat(0xb0020216a8aa1812, 0xb1dc72713ada3464) }, // 1940
+ { cat(0xd6c82ddf42457269, 0xaab5b22faac04ab5), cat(0x8cce681220881342, 0x27e38ec0fbe1c383) }, // 1941
+ { cat(0x24737c986a08b70f, 0x77891d191133aabb), cat(0xe14a401d00d9b869, 0xd96c179b2c9c6c06) }, // 1942
+ { cat(0x1d293079ee6d5f3f, 0x92d4174740f62230), cat(0xb43b667d9a47c6bb, 0x14567948f07d2338) }, // 1943
+ { cat(0xe420f394bebde5cc, 0x75767905cd91b4f3), cat(0x902f853148396bc8, 0xdd11faa0c0641c2c) }, // 1944
+ { cat(0x069b1f5464630947, 0x2257280948e92184), cat(0xe6b26eb5405bdfa7, 0xc81cc4346706937b) }, // 1945
+ { cat(0x387c1910504f3a9f, 0x4eac20076d874e04), cat(0xb88ebef766afe61f, 0xd34a3690526ba92f) }, // 1946
+ { cat(0x60634740403f6219, 0x0bbce66c579f719d), cat(0x93a56592b88cb819, 0x75d4f8737522edbf) }, // 1947
+ { cat(0x67053ecd33989cf4, 0xdf94a3e08c324f61), cat(0xec3bd5b78dadf35b, 0xefbb271f21d17c65) }, // 1948
+ { cat(0xec04323dc2e07d90, 0xb2dd4fe6d68ea5e7), cat(0xbcfcaaf93e24c2af, 0xf2fc1f4c1b0dfd1d) }, // 1949
+ { cat(0xf0035b649be6cada, 0x28b10cb8aba55186), cat(0x973088c764ea3559, 0x8f301909af3e6417) }, // 1950
+ { cat(0x80055f075fd7aaf6, 0xa781adf445d54f3c), cat(0xf1e7413f07dd2228, 0xe519c1a91863d359) }, // 1951
+ { cat(0x33377f3919795592, 0x1f9af19037ddd8fd), cat(0xc185cdcc064a81ba, 0x50e167ba79e975e1) }, // 1952
+ { cat(0x28f9329414611141, 0xb2e25ad9c64b13fe), cat(0x9ad17170050867c8, 0x40b452fb94bac4b4) }, // 1953
+ { cat(0xdb2850eced681b9c, 0x516a2af60a11b996), cat(0xf7b5824cd4da3fa6, 0xcded519287913ab9) }, // 1954
+ { cat(0xaf5373f0bdece2e3, 0x7454ef2b3b416145), cat(0xc62acea3dd7b661f, 0x0b244142060dc894) }, // 1955
+ { cat(0x590f8ff3cb23e8b5, 0xf6aa58ef629ab437), cat(0x9e88a54fe462b818, 0xd5b69a9b380b06dd) }, // 1956
+ { cat(0x8e7f4cb945064123, 0x2443c17f042ab9f1), cat(0xfda76ee63a378cf4, 0x89242a91f344d7c8) }, // 1957
+ { cat(0xd865d6fa9d9e9a82, 0x83696798d0222e5b), cat(0xcaec58b82e92d72a, 0x0750220e5c371306) }, // 1958
+ { cat(0x79eb126217b21535, 0x35edec7a401b5849), cat(0xa256ad60254245bb, 0x390ce80b7cf8dc05) }, // 1959
+ { cat(0x6188db81ac8e775d, 0xc4be56c83349136d), cat(0x81def119b76837c8, 0xfa70b9a2ca60b004) }, // 1960
+ { cat(0x35a7c59c474a5896, 0x0796f140520e857c), cat(0xcfcb1b5c58a6bfa7, 0xf71ac29e109ab33a) }, // 1961
+ { cat(0x9153047d05d513ab, 0x39458dcd0e720463), cat(0xa63c15e37a1effb9, 0x927bcee4da155c2e) }, // 1962
+ { cat(0x410f36ca6b10dc88, 0xfa9e0b0a71f4d04f), cat(0x84fcde4f94e59961, 0x41fca583e1aab025) }, // 1963
+ { cat(0x34e5247711b4940e, 0x5dc9ab43e987b3b2), cat(0xd4c7ca18ee3c289b, 0x9cc76f39691119d5) }, // 1964
+ { cat(0x90b7505f415d433e, 0xb16e229cbad2f628), cat(0xaa396e7a5830207c, 0x7d6c58faba7414aa) }, // 1965
+ { cat(0xa6f90d19011768fe, 0xf4581bb0957591ba), cat(0x882df1fb79c019fd, 0x31237a622ec343bb) }, // 1966
+ { cat(0xd7f4e1c19b58a7fe, 0x53c02c4dbbef4f8f), cat(0xd9e31cc58f99c32e, 0xb505909d179ed2c5) }, // 1967
+ { cat(0x7990b49ae2ad5331, 0xdc99bd0afcbf72d9), cat(0xae4f4a37a6149c25, 0x5d9e0d4a794bdbd1) }, // 1968
+ { cat(0xc7a6f6e24ef10f5b, 0x16e16408ca32c247), cat(0x8b72a1c61e76e351, 0x17b1a43b943cafda) }, // 1969
+ { cat(0x72a4be36e4b4e55e, 0x8b0239a7a9ead072), cat(0xdf1dcfa363f16bb4, 0xf2b5d39286c77fc4) }, // 1970
+ { cat(0x5bb6fe925090b77e, 0xd59b6152ee55738e), cat(0xb27e3fb5e98defc3, 0xf55e42db9f05ffd0) }, // 1971
+ { cat(0xe2f8cba84073c5ff, 0x11491aa8beaac2d8), cat(0x8ecb662b213e5969, 0x9118357c7f37ffd9) }, // 1972
+ { cat(0xd18e12a6cd860998, 0x1ba82aa797779e27), cat(0xe478a37835308f0f, 0x4e8d2260cb8ccc8f) }, // 1973
+ { cat(0xdad80eebd79e6e13, 0x49535552df92e4ec), cat(0xb6c6e92cf75a0c0c, 0x3ed74eb3d60a3d3f) }, // 1974
+ { cat(0xaf133f2312e524dc, 0x3aa9110f194250bd), cat(0x9238ba8a5f7b3cd6, 0x98ac3ef644d4fdcc) }, // 1975
+ { cat(0x4b51fe9e84a1d493, 0x910e81b1c203b461), cat(0xe9f45daa325ec7bd, 0xc11397f06e219614) }, // 1976
+ { cat(0xa2a7fee536e7dd42, 0xda72015b019c904e), cat(0xbb29e488284bd2fe, 0x340facc0581ade76) }, // 1977
+ { cat(0x4eeccbea92531768, 0xaec19aaf347d403e), cat(0x95bb1d39b9d64264, 0xf672f099e0157ec5) }, // 1978
+ { cat(0x4b1479775084f241, 0x179c2ab1ed953396), cat(0xef91c85c5c8a03d4, 0xbd84b4296688cad5) }, // 1979
+ { cat(0x08dd2df90d372834, 0x12e3555b24775c78), cat(0xbfa7d37d16d4cfdd, 0x646a29bab86d6f11) }, // 1980
+ { cat(0x071757fa70f8ecf6, 0x7582aaaf505f7d2d), cat(0x99530f9745770cb1, 0x1d21bafbc6bdf274) }, // 1981
+ { cat(0xd8255990b4c17b23, 0xef37777ee6ff2eae), cat(0xf551b28ba258144e, 0x9502c4c60ac983ec) }, // 1982
+ { cat(0xe01de140909ac8e9, 0x8c2c5f98b8cc2558), cat(0xc4415ba2e84676a5, 0x44023704d56e0323) }, // 1983
+ { cat(0xe67e4dcd407bd3ee, 0x09bd1946fa3ceaad), cat(0x9d01161bed052bb7, 0x699b5f371124cf4f) }, // 1984
+ { cat(0xd7307c7b9a5fb97c, 0xdc61c20b29fb1115), cat(0xfb34f02cae6eac58, 0xa8f898581b6e187f) }, // 1985
+ { cat(0xac26c9fc7b7fc797, 0x16b49b3c2195a744), cat(0xc8f7268a252556ad, 0x53fa1379af8b46cc) }, // 1986
+ { cat(0x23523b3062cc9fac, 0x122a15c9b477b903), cat(0xa0c5b86e841ddef1, 0x0ffb42c7bfa29f0a) }, // 1987
+ { cat(0x82a82f59e8a3b2f0, 0x0e88116e29f960d0), cat(0x809e2d25367e4bf4, 0x0cc90239661bb26e) }, // 1988
+ { cat(0x6aa6b22974391e4c, 0xe40ce8b043289ae5), cat(0xcdc9e1d523fd4653, 0x47a8038f09c5ea4a) }, // 1989
+ { cat(0x88855b545cfa7ea3, 0xe9a3ed59cf53af1e), cat(0xa4a181774ffdd1dc, 0x3953360c07d1883b) }, // 1990
+ { cat(0x3a0449104a61fee9, 0x87b6577b0c42f27f), cat(0x83b46792a664a7e3, 0x610f5e70064139c9) }, // 1991
+ { cat(0x9006db4d43cffe42, 0x72bd58c4e06b1d97), cat(0xd2ba3f510a3aa638, 0x9b4bca4cd6cec2db) }, // 1992
+ { cat(0x40057c3dcfd99835, 0x28977a3719ef4adf), cat(0xa894ff74082eeb60, 0x7c3ca1d7123f0249) }, // 1993
+ { cat(0x999dfcfe3fe14690, 0xed45fb5f47f2a24c), cat(0x86dd9929a0258919, 0xfcfd4e45a832683a) }, // 1994
+ { cat(0xf5c994c9ffced74e, 0x486ff898731dd07a), cat(0xd7c8f50f66a274f6, 0x61954a090d1d7390) }, // 1995
+ { cat(0x916e10a1997245d8, 0x39f32d46c27e4062), cat(0xaca0c40c521b90c5, 0x1addd4d40a7df60d) }, // 1996
+ { cat(0x74580d4e145b6b13, 0x618f576bcecb66b5), cat(0x8a1a367041afa704, 0x157e43dcd53191a4) }, // 1997
+ { cat(0x53c01549ba2bde85, 0x68e558ac7e123ded), cat(0xdcf6bd8069190b39, 0xbbfd3961551c1c3a) }, // 1998
+ { cat(0x7633443afb564b9d, 0xed8446f064db64be), cat(0xb0c56466ba7a6f61, 0x6330fab444167cfb) }, // 1999
+ { cat(0xc4f5d02f2f783c7e, 0x579d058d1d7c5098), cat(0x8d6ab6b8952ebf81, 0x1c272ef69cdeca62) }, // 2000
+ { cat(0x3b22e6b1e58d2d96, 0xf294d5ae9593b426), cat(0xe244578dbb7dff34, 0xf9d84b242e3143d1) }, // 2001
+ { cat(0x95b5855b1e0a8adf, 0x2877115877a95ceb), cat(0xb503793e2f97ff5d, 0x94ad08e9be8dcfda) }, // 2002
+ { cat(0x4491377c18086f18, 0xed2c0de05fbab0bc), cat(0x90cf9431bfaccc4a, 0xdd573a5498717315) }, // 2003
+ { cat(0x6db5259359a71827, 0xe1e01633cc5de794), cat(0xe7b286b5ff7ae077, 0xc88b90875a4f1e88) }, // 2004
+ { cat(0xf15db7a91485acec, 0xb4b344f63d17ec76), cat(0xb95b9ef7ff95805f, 0xd3a2da05e1d8e539) }, // 2005
+ { cat(0x8de492edaa048a56, 0xf6f5d0c4fdacbd2c), cat(0x94494bf9994466b3, 0x0fb57b37e7e0b761) }, // 2006
+ { cat(0x7ca0eb15dcd4108b, 0x24bc813b2f7ac845), cat(0xed421328f53a3deb, 0x4c5591f30c9abf02) }, // 2007
+ { cat(0x96e72277e3dcda08, 0xea3067628c6239d1), cat(0xbdce75ba5dc83189, 0x09de0e5c0a15659b) }, // 2008
+ { cat(0x4585b52cb64a4807, 0x21c052b53d1b6174), cat(0x97d85e2eb16cf46d, 0xa17e71e33b445149) }, // 2009
+ { cat(0x3c0921e123aa0cd8, 0x360084552e923586), cat(0xf2f3c9e44f14ba49, 0x0263e96b9206e875) }, // 2010
+ { cat(0x633a8180e954d713, 0x5e66d0442541c46c), cat(0xc25ca1837276fb6d, 0x9b832122db38b9f7) }, // 2011
+ { cat(0x4f620133eddd78dc, 0x4b857369b767d056), cat(0x9b7d4e02c1f8c924, 0x7c68e74f15c6fb2c) }, // 2012
+ { cat(0x7f03351fe2fbf493, 0xac08b8a92572e6f0), cat(0xf8c87cd1365adb6d, 0x93db0bb1bc7191e0) }, // 2013
+ { cat(0xff35c41982632a0f, 0xbcd3c6edb78f1f27), cat(0xc706ca40f848af8a, 0xdcaf3c8e305adb19) }, // 2014
+ { cat(0x329169ae01e8ee72, 0xfd7638be2c727f52), cat(0x9f38a1cd936d593b, 0xe3bf63a4f37be27b) }, // 2015
+ { cat(0xea8242b0030e4a51, 0x9589f4637a50cbb6), cat(0xfec102e2857bc1f9, 0x6c656c3b1f2c9d91) }, // 2016
+ { cat(0x886835599c0b6ea7, 0xaad4c382c840a2f8), cat(0xcbcd9be86ac967fa, 0xbd1df02f4c23b141) }, // 2017
+ { cat(0xd38691147cd5f21f, 0xbbdd69356d008260), cat(0xa30ae320556decc8, 0x974b268c3ce95a9a) }, // 2018
+ { cat(0x0f9eda76ca44c1b2, 0xfcb120f78a66ceb4), cat(0x826f1c19ddf18a3a, 0x12a2853cfd877baf) }, // 2019
+ { cat(0xb297c3f143a135eb, 0x2de834bf43d7b11f), cat(0xd0b1c68fc98276c3, 0x5104086195a592b1) }, // 2020
+ { cat(0x2879698dcfb42b22, 0x8b202a329cac8db3), cat(0xa6f49ed96e01f89c, 0x40d006b477b7a88e) }, // 2021
+ { cat(0x2061213e3fc355b5, 0x3c19bb5bb08a0af5), cat(0x85907f14580193b0, 0x33d99ef6c62c86d8) }, // 2022
+ { cat(0x33ce9b96cc6bbc55, 0x2cf5f892b4101188), cat(0xd5b3fe86f335b919, 0xec8f64be09e0d7c0) }, // 2023
+ { cat(0x297216123d22fd10, 0xf0c4c6dbc3400e07), cat(0xaaf66538c29160e1, 0x8a0c509807e71300) }, // 2024
+ { cat(0xbac1ab41ca82640d, 0x8d6a38afcf66719f), cat(0x88c51dc7020de71a, 0xd4d6a6e006527599) }, // 2025
+ { cat(0x5e02ab9c7737067c, 0x1576c1194bd71c31), cat(0xdad4fc719ce30b5e, 0x215771667083ef5c) }, // 2026
+ { cat(0xe4ceefb05f5f3863, 0x445f00e10978e35b), cat(0xaf10c9f47d826f7e, 0x8112c11ec0698c49) }, // 2027
+ { cat(0x1d725959e5e5c6b5, 0xd04c00b40793e916), cat(0x8c0d6e5d313525fe, 0xcda89a7f0054703b) }, // 2028
+ { cat(0xfbea288fd63c7122, 0xe6e001200c1fdb55), cat(0xe0157d61e8550997, 0xaf742a64cd53e6c4) }, // 2029
+ { cat(0x9654ed3fde96c0e8, 0xb8b33419a34caf78), cat(0xb344644e53773adf, 0xbf9021ea3ddcb89d) }, // 2030
+ { cat(0x11dd8a997edf00ba, 0x2d5c29ae1c3d592d), cat(0x8f69e9d842c5c8b2, 0xffa68188317d607e) }, // 2031
+ { cat(0x1c95aa8f3164cdf6, 0xaef9dc49c6c88ead), cat(0xe57642f39e09411e, 0x65d735a6b5956730) }, // 2032
+ { cat(0x4a11553f5ab70b2b, 0xbf2e49d49f06d88b), cat(0xb791cf294b3a9a7e, 0xb7df5e1ef7aab8f3) }, // 2033
+ { cat(0xa1a77765e22c08ef, 0xcc2507dd4c057a09), cat(0x92db0c2108fbaecb, 0xc64c4b4bf95560c2) }, // 2034
+ { cat(0x690bf23c9d13417f, 0xad080c95466f29a7), cat(0xeaf813680e5f7e12, 0xd6e078798eef0137) }, // 2035
+ { cat(0x873cc1ca17429acc, 0x8a6cd6ddd1f287b9), cat(0xbbf9a9200b7f980f, 0x124d2d2e0bf2675f) }, // 2036
+ { cat(0x9f63ce3b45cee23d, 0x3b8a457e418ed2fb), cat(0x96615419a2cc79a5, 0xa83dbdbe6ff51f7f) }, // 2037
+ { cat(0xff0616c53c7e36c8, 0x5f43a2639c17b7f7), cat(0xf09bb9c29e13f5d5, 0xd9fc62ca4cbb6598) }, // 2038
+ { cat(0xff38123763982bd3, 0x7f694eb616795ff9), cat(0xc07c949bb1a99177, 0xe196b56ea3c91e13) }, // 2039
+ { cat(0x329341c5e9468975, 0xff87722b452de661), cat(0x99fd43afc154745f, 0xe7abc45883074b43) }, // 2040
+ { cat(0x841ecfa30ed74256, 0x65a583786eafd701), cat(0xf66205e60220ba33, 0x0c4606f404d8786b) }, // 2041
+ { cat(0x9ce572e8d8ac3511, 0xeaeacf938bbfdf34), cat(0xc51b37eb34e6fb5c, 0x09d19f299d79f9ef) }, // 2042
+ { cat(0xe3eac253e089c40e, 0x5588a60fa2ffe5c3), cat(0x9daf5fef5d8595e3, 0x3b0e18ee1794c7f2) }, // 2043
+ { cat(0x6caad086340fa016, 0xef4109b29e663c6c), cat(0xfc4bccb22f3c2305, 0x2b49c17cf287a651) }, // 2044
+ { cat(0xbd55739e900c8012, 0x5900d48ee51e96bd), cat(0xc9d63d5b58fce8d0, 0xef6e3463f53951da) }, // 2045
+ { cat(0xfdddf618733d3341, 0xe0cd76d8b74babca), cat(0xa1783115e0ca53da, 0x5924f6b65dc774ae) }, // 2046
+ { cat(0x317e5e79f5ca8f67, 0xe70ac57a2c3c896f), cat(0x812cf41180a1dcae, 0xadb72bc517d2c3bf) }, // 2047
+ { cat(0x8263ca5cbc774bd9, 0x71aad59046c7424a), cat(0xceae534f34362de4, 0x492512d4f2ead2cb) }, // 2048
+ { cat(0x684fd516fd2c3cad, 0xf488aad9d23901d5), cat(0xa55842a5c35e8b1d, 0x0750dbdd8f22423c) }, // 2049
+ { cat(0x203fddabfdbcfd57, 0xf6d3bbe174fa67de), cat(0x84469bb7cf7ed5b0, 0xd2a7164ad8e834fd) }, // 2050
+ { cat(0x00662f7995fb2ef3, 0x2485f968bb2a3fc9), cat(0xd3a42c594bfe22b4, 0x843e8a115b0d2195) }, // 2051
+ { cat(0xcd1e8c6144c8f25c, 0x1d37faba2f54ffd4), cat(0xa950237aa331b55d, 0x36986e7448d74e10) }, // 2052
+ { cat(0xa418704dd0a0c1e3, 0x4a932efb5910ccaa), cat(0x87734f954f5af77d, 0xc546bec36d790b40) }, // 2053
+ { cat(0xa0271a161a9acfd2, 0x10eb7e5ef4e7addc), cat(0xd8b87f554bc4bf2f, 0xa20acad248c1ab9a) }, // 2054
+ { cat(0x801f4811aee23fdb, 0x40bc6518c3ec8b17), cat(0xad6065ddd636ff59, 0x4e6f08a83a348948) }, // 2055
+ { cat(0x001906748be83315, 0xcd638413cff06f45), cat(0x8ab384b1782bff7a, 0xa525a08694f6d43a) }, // 2056
+ { cat(0x99c1a3edaca6b822, 0xe238d352e64d7ed5), cat(0xddec078259dfff2a, 0xa1d5cda4218aed29) }, // 2057
+ { cat(0x7b014ff156ebc682, 0x4e93dc4251d798ab), cat(0xb1899f9b7b1998ee, 0xe7de3e1ce7a25754) }, // 2058
+ { cat(0xc8cdd98ddf230535, 0x0ba97d01db12e089), cat(0x8e07b2e2c8e14725, 0x864b64e3ec81df76) }, // 2059
+ { cat(0x0e1628e2fe9e6ebb, 0x45dbfb362b516741), cat(0xe33f849e0e353ea2, 0x7078a16cad9c98be) }, // 2060
+ { cat(0x71ab53e8cbb1f22f, 0x6b166291bc411f67), cat(0xb5cc6a180b5dcbb5, 0x26c6e78a247d46fe) }, // 2061
+ { cat(0xc155dcba3c8e5b59, 0x22784edafd00e5ec), cat(0x917054e00917d62a, 0x856bec6e83976bfe) }, // 2062
+ { cat(0x68896129fa7d5ef5, 0x03f3b15e619b097a), cat(0xe8b3bb000e8c89dd, 0xa246471738f24664) }, // 2063
+ { cat(0x86d44dbb2ecab25d, 0x9cc2f44b8148d461), cat(0xba296266720a07e4, 0x81d1d278fa5b6b83) }, // 2064
+ { cat(0xd24371628bd55b7e, 0x17025d09343a4381), cat(0x94ede851f4d4d31d, 0x34a7db93fb7c5602) }, // 2065
+ { cat(0x839f1bd0dfbbc596, 0x8b36fb41ed2a059b), cat(0xee4973b65487b82e, 0xbaa62c1ff8c6f004) }, // 2066
+ { cat(0x9c7f4973e62fd145, 0x3c2bfc34bdbb37af), cat(0xbea1295eaa062cf2, 0x2eeb567ffa38c003) }, // 2067
+ { cat(0xe399078feb597437, 0x6356635d6495c626), cat(0x9880ede554d1bd8e, 0x8bef786661c70002) }, // 2068
+ { cat(0x38f4d8e6455bed25, 0x6bbd6bc8a0efa370), cat(0xf4017ca2214f95b0, 0xdfe58d709c71999e) }, // 2069
+ { cat(0x93f713eb6aaff0ea, 0xbc97896d4d8c82c0), cat(0xc33463b4e772de27, 0x19847126e38e147e) }, // 2070
+ { cat(0x765f4322bbbff3ee, 0xfd46078aa470689a), cat(0x9c29e95d85f57e85, 0xae038db8b60b4398) }, // 2071
+ { cat(0x23cb9e9df9331fe4, 0xc8700c11071a40f6), cat(0xf9dca895a3226409, 0x166c15f456786c27) }, // 2072
+ { cat(0x1ca2e54b2dc27fea, 0x39f33cda6c1500c5), cat(0xc7e3ba114f4eb66d, 0xab89ab29dec6bcec) }, // 2073
+ { cat(0xe3b5843c249b9988, 0x2e5c30aebcdd9a37), cat(0x9fe961a772a55ebe, 0x22d488ee4bd230bc) }, // 2074
+ { cat(0x6c55a0603a928f40, 0x4a2d1ab12e2f5d24), cat(0xffdbcf7251089796, 0x9e20db16dfb6b461) }, // 2075
+ { cat(0xbd114d19c8753f66, 0xa1bdaef424f2b0ea), cat(0xccafd92840d3ac78, 0x7e80af457fc55d1a) }, // 2076
+ { cat(0xca743dae39f765eb, 0xb497bf29b7288d88), cat(0xa3bfe0ed00a956c6, 0xcb9a25d133044a7b) }, // 2077
+ { cat(0x085cfe24fb2c5189, 0x5d463287c5ba0ad3), cat(0x82ffe7240087789f, 0x09481e40f59d0863) }, // 2078
+ { cat(0x0d6196a191e08275, 0x6209ea72d5f677b8), cat(0xd19971d3340bf431, 0xa873639b2294da38) }, // 2079
+ { cat(0x0ab478814180685d, 0xe807eec244c52c94), cat(0xa7adf4a8f66ff68e, 0x205c4faf4edd7b60) }, // 2080
+ { cat(0x6ef6c6cdce00537e, 0x53398bce9d6a8a10), cat(0x8624c3ba5ebff871, 0xb37d0c8c3f1795e6) }, // 2081
+ { cat(0x7e57a47c7ccd5263, 0xb85c12e42f10dce6), cat(0xd6a1392a3133271c, 0x5261adad31bf563d) }, // 2082
+ { cat(0xcb795063970aa84f, 0xc6b00f1cf273e3eb), cat(0xabb42dbb5a8f527d, 0x0eb48af0f49911ca) }, // 2083
+ { cat(0x6f94404fac0886a6, 0x388cd8e3f5298323), cat(0x895cf162aed90eca, 0x722a08c0c3ada7d5) }, // 2084
+ { cat(0x18ed33b2acda7109, 0xf4148e3988426b6a), cat(0xdbc7e89de48e7e10, 0xb6a9a79ad2af72ef) }, // 2085
+ { cat(0x4724295bbd7b8da1, 0x901071c7a03522bb), cat(0xafd3207e5071fe73, 0xc5548615755928bf) }, // 2086
+ { cat(0x6c1cede2fdfc714e, 0x0cd9f49fb35db563), cat(0x8ca8e6cb738e6529, 0x6aaa04ddf77a86ff) }, // 2087
+ { cat(0x13617c9e632d8216, 0x7af65432b895ef04), cat(0xe10e3e12527d6ea8, 0xaaa9a1632590d7ff) }, // 2088
+ { cat(0x42b463b1e8f134de, 0xc8c5102893ab259d), cat(0xb40b64db75312553, 0xbbbae7828473dfff) }, // 2089
+ { cat(0x355d1c8e53f42a4b, 0xd3d0d9ba0fbc1e17), cat(0x90091d7c5dc0eaa9, 0x62fbec6869f64ccc) }, // 2090
+ { cat(0xbbc82db0865376df, 0xb94e2929b2c6968b), cat(0xe674fbfa2f9b110f, 0x04c6470d7656e146) }, // 2091
+ { cat(0x63068af39ea92be6, 0x2dd820ee289eded6), cat(0xb85d9661bfaf40d8, 0xd09e9f3df8458105) }, // 2092
+ { cat(0xe8d208c2e554231e, 0x8b134d8b53b24bdf), cat(0x937e11e7cc8c33e0, 0xa6e54c31936acd9d) }, // 2093
+ { cat(0x74834137d5536b64, 0x11b87c121f83ac97), cat(0xebfce972e0e05301, 0x0b0879e8ebde15c9) }, // 2094
+ { cat(0xf6cf675fdddc55e9, 0xa7c6c9a8193623ac), cat(0xbcca545be719dc00, 0xd5a061872318116d) }, // 2095
+ { cat(0x923f85e64b16ab21, 0x53056e20142b4fbd), cat(0x9708437cb8e17ccd, 0x77b38138e8e00df1) }, // 2096
+ { cat(0x8398d63d44f111ce, 0xeb3be36686abb2c8), cat(0xf1a6d26127cf2e15, 0x8c52685b0e334982) }, // 2097
+ { cat(0x02e0ab6437274172, 0x55c982b86bbc8f06), cat(0xc15241e7530c24de, 0x09db86af3e8f6e02) }, // 2098
+ { cat(0x68b3bc502c1f678e, 0xab079bc6bc96d8d2), cat(0x9aa834b90f3cea4b, 0x3b160558fed924ce) }, // 2099
+ { cat(0xa785fa19e0323f4a, 0xab3f5fa460f15ae9), cat(0xf773878e7ec7dd45, 0x2b566ef4caf507b0) }, // 2100
+ { cat(0x1f9e61ae4cf4ff6e, 0xef65e61d1a5aaf21), cat(0xc5f6060b989fe437, 0x55debf2a3bf7395a) }, // 2101
+ { cat(0xb2e51af1d72a65f2, 0x591e51b0e1e225b4), cat(0x9e5e6b3c7a19835f, 0x77e565bb632c2de1) }, // 2102
+ { cat(0xb7d4f7e95843d650, 0x8e96e91b03036f86), cat(0xfd63dec729c26bcb, 0xf308a2c56b79e302) }, // 2103
+ { cat(0x9310c654469cab73, 0xa5458748cf35f2d2), cat(0xcab64bd287cebca3, 0x28d3b56abc618268) }, // 2104
+ { cat(0xdc0d6b769ee3bc5c, 0x84379f6d72918f0e), cat(0xa22b6fdb9fd896e8, 0xed762abbc9e79b86) }, // 2105
+ { cat(0x49a455f87f1c96b0, 0x69c619245ba7a5a5), cat(0x81bc597c7fe078ba, 0x5791bbc96e52e2d2) }, // 2106
+ { cat(0x75d3bcc0cb60f11a, 0x42d68ea092a5d5d5), cat(0xcf93c260cc9a5ac3, 0xbf4f92dbe3b7d150) }, // 2107
+ { cat(0x2b0fca33d5e72748, 0x3578721a0eeb1177), cat(0xa60fceb3d6e1e236, 0x32a60f164fc6410d) }, // 2108
+ { cat(0x88d96e8fde5285d3, 0x5df9f4e1a588dac6), cat(0x84d9722978b4b4f8, 0x2884d8dea638340a) }, // 2109
+ { cat(0x748f174c96ea6fb8, 0x965cbb02a274913c), cat(0xd48f1d0f278787f3, 0x7407c1643d26b9aa) }, // 2110
+ { cat(0x2a0c12a3abeebfc6, 0xdeb0959bb52a0dca), cat(0xaa0c173f52d2d329, 0x299fcde9ca856155) }, // 2111
+ { cat(0xbb3cdbb623256638, 0xb226de162a880b08), cat(0x8809ac32a8a8a8ed, 0xbae63e54a2044ddd) }, // 2112
+ { cat(0x91faf9236b6f09f4, 0x503e3023774011a6), cat(0xd9a91384410ddb15, 0xf7d6ca21033a162f) }, // 2113
+ { cat(0x4195941c55f26e5d, 0x0cfe8ce92c334152), cat(0xae20dc69cda4af44, 0xc6456e80cf61ab59) }, // 2114
+ { cat(0xce114349de5b8b7d, 0xa3fed720f029010e), cat(0x8b4d7d2171508c37, 0x050458670c4e22ad) }, // 2115
+ { cat(0xb01b9edc96f8df2f, 0x6ccaf1ce4d0e6817), cat(0xdee261cf1bb4138b, 0x3b3a270b46e36aaf) }, // 2116
+ { cat(0x267c7f16df2d7f59, 0x23d58e3ea40b8679), cat(0xb24eb4a5afc342d5, 0xc8fb526f6be92226) }, // 2117
+ { cat(0xeb96cc124c2465e0, 0xe977a4fee9a2d1fa), cat(0x8ea55d5159690244, 0xa0c90ebf89874e84) }, // 2118
+ { cat(0x45be135079d3d634, 0xa8bf6e64a904832a), cat(0xe43bc88228a803a1, 0x0141b13275a54a6e) }, // 2119
+ { cat(0x9e31a90d2e4311c3, 0xba32beb6ed9d35bb), cat(0xb6963a01ba2002e7, 0x34348dc1f7b76ebe) }, // 2120
+ { cat(0x7e8e20d75835a7cf, 0xc828989257b0f7c9), cat(0x9211c80161b33585, 0xc35d3e34c62c5898) }, // 2121
+ { cat(0xca7d01588d22a619, 0x4040f41d591b260e), cat(0xe9b60ccf02b855a2, 0xd22ec9ee09e08dc0) }, // 2122
+ { cat(0x08640113a41bb814, 0x336729b11415b80b), cat(0xbaf80a3f35604482, 0x41bf07f1a1807167) }, // 2123
+ { cat(0x6d1ccda950162cdc, 0xf5ec215a7677c670), cat(0x95933b65c44d039b, 0x67cc065ae799f452) }, // 2124
+ { cat(0xae947c4219bd1494, 0xbcad022a57260a4c), cat(0xef51f8a2d3ae6c2b, 0xd9467091728fed50) }, // 2125
+ { cat(0xbedd3034e1641076, 0xfd5734eeac1e6ea3), cat(0xbf74c6e8a9585689, 0x7a9ec0745ba65773) }, // 2126
+ { cat(0xcbe42690b4500d2b, 0xfddf5d8bbce5254f), cat(0x992a38ba2113786d, 0xfbb233904951df8f) }, // 2127
+ { cat(0x796d0a8120801513, 0x2fcbc8df94a1d54c), cat(0xf5105ac3681f2716, 0x5f8385b3a882ff4c) }, // 2128
+ { cat(0x94573b9a80667742, 0x8ca3071943b4aaa3), cat(0xc40d15692018ec11, 0xe602d15c86cf32a3) }, // 2129
+ { cat(0x4378fc7b99eb929b, 0xa3b59f47695d554f), cat(0x9cd7445419ad89a7, 0xeb35744a05728ee9) }, // 2130
+ { cat(0x9f27fa5f5cac1dc5, 0xd2bc320bdbc8887e), cat(0xfaf206ecf5e275d9, 0x785586dcd58417db) }, // 2131
+ { cat(0x7f532eb2b089b16b, 0x0efcf4d6496d39ff), cat(0xc8c19f23f7e85e47, 0x93779f171136797c) }, // 2132
+ { cat(0x65dc255bc06e2788, 0xd8ca5d783abdc7ff), cat(0xa09ae5b65fed1839, 0x42c618df40f86130) }, // 2133
+ { cat(0x1e49b77c99f1b93a, 0x47084ac695649fff), cat(0x807beaf84cbdacfa, 0x9bd1ad7f672d1a8d) }, // 2134
+ { cat(0x96dc58c75cb5f52a, 0x0b4077a4223a9998), cat(0xcd93118d4795e190, 0xf94f7bff0b7b5dae) }, // 2135
+ { cat(0x457d13d2b09190ee, 0x6f66c61ce82ee147), cat(0xa475a7a43944b473, 0xfaa5fccc092f7e25) }, // 2136
+ { cat(0xd130dca88d4140be, 0xbf856b4a5358b439), cat(0x839152e9c76a29f6, 0x621e63d66dbf981d) }, // 2137
+ { cat(0x4eb49440e2020131, 0x326f1210855ab9f4), cat(0xd2821e42d8a9dcbd, 0x69ca395715ff59c9) }, // 2138
+ { cat(0xd890769a4e6800f4, 0x2858db406aaefb2a), cat(0xa86818357a217d64, 0x54a1c778de65e16d) }, // 2139
+ { cat(0xad405ee1d85333f6, 0x86ad7c33888bfc22), cat(0x86b9acf794e79783, 0x76e7d2c718518124) }, // 2140
+ { cat(0x4866fe3626eb8657, 0x3de2605274132d02), cat(0xd78f7b25bb0c259f, 0x24a61e0b5a1c01d4) }, // 2141
+ { cat(0xd385982b52560512, 0x97e84d0ec3428a68), cat(0xac72c8eafc09b7b2, 0x83b8180914e334a9) }, // 2142
+ { cat(0x0f9e1355db78040e, 0xdfed0a7235ced520), cat(0x89f56d88c9a15fc2, 0x02f9acd410b5c3bb) }, // 2143
+ { cat(0x4c301eefc58cd34a, 0xffe1aa505617bb67), cat(0xdcbbe27475ceff9c, 0xd18f7aece789392b) }, // 2144
+ { cat(0x09c018bfd13d75d5, 0x9981550d11ac95ec), cat(0xb0964ec391726617, 0x0e0c62571fa0fa89) }, // 2145
+ { cat(0xa1667a330dcac4aa, 0xe134440a748a118a), cat(0x8d450bcfa78eb812, 0x71a381df4c80c86d) }, // 2146
+ { cat(0x023d9051afaad444, 0x9b86d343eda9b5a9), cat(0xe20812e5d8e459b7, 0x1c38cfcbad9ada49) }, // 2147
+ { cat(0x34fe0d0e2622436a, 0x160575cff1549154), cat(0xb4d342517a5047c5, 0xb02d730957af1507) }, // 2148
+ { cat(0x90cb3da4eb4e9c54, 0xde6ac4a65aaa0ddd), cat(0x90a901dac840396a, 0xf3578f3aac8c10d2) }, // 2149
+ { cat(0xb47862a1787dc6ee, 0x30aad43d5ddce2fa), cat(0xe774cfc47399f577, 0xebbf4b9114134e1d) }, // 2150
+ { cat(0xc393821ac6cb058b, 0x5a2243644b171bfc), cat(0xb92a3fd05c7b2ac6, 0x5632a2da7675d817) }, // 2151
+ { cat(0x02dc68156bd59e09, 0x14e835e9d5ac1663), cat(0x9421cca6b062889e, 0xab5bb57b91f7e013) }, // 2152
+ { cat(0x0493d9bbdfbc300e, 0x87d9efdc89135704), cat(0xed02e10ab3d0da97, 0x7892bbf8e98c99b8) }, // 2153
+ { cat(0xd07647c97fc9c00b, 0x9fe18cb06da9126a), cat(0xbd9be73bc30d7bac, 0x6075632d87a3ae2c) }, // 2154
+ { cat(0xa6c5063acca1666f, 0xb31ad6f38aeda855), cat(0x97afec2fcf3dfc89, 0xe6c44f579fb624f0) }, // 2155
+ { cat(0x0ad4d6c47a9bd719, 0x1e9157ec117c4088), cat(0xf2b3137fb1fcc743, 0x0ad3b225cc56a181) }, // 2156
+ { cat(0x6f10abd0621645ad, 0xb20ddff00dfd006d), cat(0xc228dc6627fd6c35, 0xa242f4eb09dee79a) }, // 2157
+ { cat(0xf273bca6b4de9e24, 0x8e717ff33e640057), cat(0x9b53e384eccabcf7, 0xb5025d88d4b252e1) }, // 2158
+ { cat(0xea52c7712164303a, 0x7d826651fd6ccd58), cat(0xf88638d4ae112e59, 0x219d62748783b7cf) }, // 2159
+ { cat(0x884239274de9c02e, 0xcaceb841978a3de0), cat(0xc6d1c7108b40f1e0, 0xe7b11b906c695fd9) }, // 2160
+ { cat(0xa034fa85d7ee3358, 0xa23ef9ce12d4fe4d), cat(0x9f0e38da0900c180, 0xb95a7c7389ede647) }, // 2161
+ { cat(0x99ee5da2f316b88d, 0xd064c2e35154ca14), cat(0xfe7d27c3419acf34, 0x5bc3fa5276497072) }, // 2162
+ { cat(0x47f1e4825c122d3e, 0x40509be90ddd6e77), cat(0xcb9753029ae23f5d, 0x163661db91d459f5) }, // 2163
+ { cat(0x9ff4b6ceb00e8a98, 0x3373afeda4b1252c), cat(0xa2df759baf1b65e4, 0x11c51b160e437b2a) }, // 2164
+ { cat(0x1990923ef33ed546, 0x8f8fbff1508db756), cat(0x824c5e1625af84b6, 0x749daf44d835fc22) }, // 2165
+ { cat(0x8f4db6cb1ecaeed7, 0x4c19331bb415f223), cat(0xd07a30236f7f3abd, 0x8762b207c0566036) }, // 2166
+ { cat(0xa5d7c56f4bd58bdf, 0x701428e2f677f4e9), cat(0xa6c82682bf98fbca, 0xd2b55b3966ab802b) }, // 2167
+ { cat(0xeb1304590977a319, 0x2676871bf85ff721), cat(0x856ceb9bcc7a6308, 0xa89115c785560022) }, // 2168
+ { cat(0x781e6d5b425904f5, 0x0a573e9326fff1ce), cat(0xd57b1292e0c3d1a7, 0x741b560c088999d1) }, // 2169
+ { cat(0xc67ebde29b7a6a5d, 0xa1df654285998e3f), cat(0xaac8dba8b3cfdaec, 0x5ce2ab3cd3a147da) }, // 2170
+ { cat(0x386564b5492ebb7e, 0x1b191dced147a4ff), cat(0x88a0afba29731589, 0xe3e888fd761a9fe2) }, // 2171
+ { cat(0x2708a1220eb12bfc, 0xf8282fb14ed907fe), cat(0xda9ab2c37584ef43, 0x0640db2f235dcc9d) }, // 2172
+ { cat(0x1f3a1a81a55a8997, 0x2cecf2f43f140665), cat(0xaee2289c5e03f29c, 0x0500af58e917d6e4) }, // 2173
+ { cat(0xb294e20151153adf, 0x5723f59032766b84), cat(0x8be8207d1803287c, 0xd0cd5913edacabe9) }, // 2174
+ { cat(0xea87d0021b552afe, 0xf1d3228050bd78d3), cat(0xdfd9cd94f33840c7, 0xb47bc1b97c477975) }, // 2175
+ { cat(0xeed30cce7c442265, 0x8e428200409793dc), cat(0xb314a47728f9cd6c, 0x9063016130392df7) }, // 2176
+ { cat(0x58a8d70b969ce851, 0x3e9b9b3366dfa97d), cat(0x8f43b6c5ba617123, 0xa6b59ab4269424c6) }, // 2177
+ { cat(0x27748b45bdc7da1b, 0x975f5eb8a4990f2e), cat(0xe539246f909be839, 0x0abc2ab9d7536e0a) }, // 2178
+ { cat(0x52c3a29e316cae7c, 0x79191893b6e0d8f2), cat(0xb760e9f2da165360, 0xd5635561790f8b3b) }, // 2179
+ { cat(0x0f02e87e8df08b96, 0xc74746dc924d7a5b), cat(0x92b3ee5be1ab75e7, 0x111c444dfa72d5c9) }, // 2180
+ { cat(0xb19e40ca7cb4128a, 0xd8720afa83af2a2b), cat(0xeab97d5fcf78bca4, 0xe82d3a165d848941) }, // 2181
+ { cat(0x27b1cd6eca29a86f, 0x138e6f2ecfbf54ef), cat(0xbbc7977fd92d63b7, 0x20242e784ad06dce) }, // 2182
+ { cat(0x52f4a458a1baed25, 0xa93ebf58a632aa59), cat(0x963945ffe0f11c92, 0x801cf1f9d5738b0b) }, // 2183
+ { cat(0xeb2106f435f7e1d5, 0xdb97988dd6b776f5), cat(0xf05ba3330181c750, 0xccfb1cc2ef1f44de) }, // 2184
+ { cat(0x88e738c35e5fe7de, 0x494613a4abc5f8c4), cat(0xc0494f5c01349f73, 0xd72f4a358c1903e5) }, // 2185
+ { cat(0xa0b8fa35e519864b, 0x6dd1a950896b2d6a), cat(0x99d43f7ccdc3b2c3, 0x128c3b5e09ad9cb7) }, // 2186
+ { cat(0x345b29efd4f5a3ab, 0xe2e90ee742451576), cat(0xf62065947c6c5138, 0x1dad2bc9a915c78c) }, // 2187
+ { cat(0xf6af54bfdd914fbc, 0xb5873f1f6837445e), cat(0xc4e6b7a9fd23742c, 0xe48a896e20de393c) }, // 2188
+ { cat(0xc55910997e0dd963, 0xc46c327f86929d18), cat(0x9d855fbb30e929bd, 0x83a2078b4d7e9430) }, // 2189
+ { cat(0xd55b4dc263495bd2, 0xd3e050cc0a842e8d), cat(0xfc08992b81750f95, 0x9f69a5abaf30ed1a) }, // 2190
+ { cat(0x44490b01e9077ca8, 0xa98040a33b9cf20a), cat(0xc9a07a89345da611, 0x4c54848958f3f0e2) }, // 2191
+ { cat(0x69d408ce5405fd53, 0xbacd008296172808), cat(0xa14d2ed429e484da, 0xa376d06de0c3271b) }, // 2192
+ { cat(0xbb10070b766b310f, 0xc8a400687812866d), cat(0x810a8bdcee506a48, 0x82c5738b1a35b8e2) }, // 2193
+ { cat(0x91b33e78bd784e7f, 0xa76ccd73f350d715), cat(0xce77462e4a1a43a7, 0x37a2527829ef8e37) }, // 2194
+ { cat(0x415c31fa312d0b99, 0x52bd71298f73df44), cat(0xa52c3825081502ec, 0x2c81db9354bfa4f9) }, // 2195
+ { cat(0x01168e61c0f0d614, 0x4231275472c31903), cat(0x8423601da010cf23, 0x56ce4942aa32ea61) }, // 2196
+ { cat(0x34f0e3cf9b1af020, 0x69e83eed846b5b38), cat(0xd36bccfc334e1838, 0x8ae3a86aa9eb109b) }, // 2197
+ { cat(0xc3f3e972e27bf34d, 0x218698be038915c7), cat(0xa9230a635c3e79c6, 0xd582ed222188da15) }, // 2198
+ { cat(0x0329878f1b965c3d, 0xb46bad64cfa0de39), cat(0x874f3b82b031fb05, 0x779bf0e81ad3e1ab) }, // 2199
+ { cat(0xd1dc0c182c23c6c9, 0x20ac48a14c3496c1), cat(0xd87ec59de6b65e6f, 0x25c64e402aec9c44) }, // 2200
+ { cat(0x417cd679bce96bd4, 0x1a236d4dd690789a), cat(0xad3237b1855eb1f2, 0x849ea5002256e36a) }, // 2201
+ { cat(0x679711fafd878976, 0x7b4f8aa4aba6c6e2), cat(0x8a8e92f46ab227f5, 0x36e550cce84582bb) }, // 2202
+ { cat(0x728b4ff7fc0c0f23, 0xf87f443aac3e0b03), cat(0xddb0eb20aab6a655, 0x24a21ae173a26ac5) }, // 2203
+ { cat(0x286f732cc9a33f4f, 0xf9ff69c889cb3c02), cat(0xb15a55b3bbc551dd, 0xb6e81581294ebbd1) }, // 2204
+ { cat(0xed25f5bd6e1c32a6, 0x6199216d3b08fccf), cat(0x8de1de296304417e, 0x2becde00edd89640) }, // 2205
+ { cat(0x1509892f1693843d, 0x68f502485e74c7b1), cat(0xe302fd0f04d39bfd, 0x13149667e2f4239b) }, // 2206
+ { cat(0xaa6e0758dedc69ca, 0xba5d9b6d185d6c8e), cat(0xb59bfda59d761664, 0x0f43ab864f29b615) }, // 2207
+ { cat(0x5524d2ad7f16bb08, 0x9517af8a79e456d8), cat(0x914997b7b12b451c, 0xd902ef9ea5baf811) }, // 2208
+ { cat(0x21d48448cb5791a7, 0x54f2b277296d57bf), cat(0xe875bf8c4eaba1c7, 0xc19e4c31092b2682) }, // 2209
+ { cat(0x1b1069d3d5dfa7b9, 0x10c2285f54577966), cat(0xb9f7cc703eefb49f, 0xce183cf40755b868) }, // 2210
+ { cat(0xaf4054a977e61fc7, 0x409b537f76ac611f), cat(0x94c63d2698bfc3b3, 0x0b4697299f77c6b9) }, // 2211
+ { cat(0xb20087758ca3660b, 0x9a921f32577a34fd), cat(0xee09fb70f46605eb, 0x453dbea8ff260ac2) }, // 2212
+ { cat(0x5b339f913d4f84d6, 0x1541b28eac61c3fe), cat(0xbe6e62c0c384d189, 0x04316553ff51a235) }, // 2213
+ { cat(0x15c2e60dcaa603de, 0x7767c20bbd1b0332), cat(0x98584f009c6a413a, 0x69c11ddccc414e91) }, // 2214
+ { cat(0xef9e3ce2ddd66c97, 0x2572d012c82b384f), cat(0xf3c07e6760aa01f7, 0x0f9b62fae0687db4) }, // 2215
+ { cat(0xf2e4fd824b11f078, 0xeac2400f0688f9d9), cat(0xc300651f80880192, 0x72e2b595805397c3) }, // 2216
+ { cat(0xc250cacea274c060, 0xbbce99a59ed3fb14), cat(0x9c0050e6006cce0e, 0xc24ef7aacd0fac9c) }, // 2217
+ { cat(0xd081447dd0bacd67, 0x92e42908fe1ff820), cat(0xf99a1b099a47b017, 0x9d4b25de14e5e0fa) }, // 2218
+ { cat(0x406769fe4095711f, 0xa8b6873a64e6601a), cat(0xc7ae7c07ae9fc012, 0xe43c1e4b43eb1a62) }, // 2219
+ { cat(0x0052bb31cd445a7f, 0xba2b9f61ea51e67b), cat(0x9fbec99fbee63342, 0x5030183c3655aeb5) }, // 2220
+ { cat(0x33b791e9486d5d99, 0x29df656976e970c5), cat(0xff97a8ff97d6b86a, 0x19e68d2d23bc4abb) }, // 2221
+ { cat(0x5c92db2106bde47a, 0x87e5eabac5878d6a), cat(0xcc7953ffacabc6bb, 0x47eba4241c96a22f) }, // 2222
+ { cat(0x7d4248e73897e9fb, 0x9feb222f046c7122), cat(0xa3944332f0896bc9, 0x06561ce9b07881bf) }, // 2223
+ { cat(0xfdcea0b8fa132196, 0x1988e8259d238db5), cat(0x82dd028f26d4563a, 0x6b78172159fa0165) }, // 2224
+ { cat(0xfc7dcdf4c351cf56, 0x8f41736f61d27c54), cat(0xd1619db1d7ba2390, 0xabf358355cc3356f) }, // 2225
+ { cat(0x96cb0b2a35db0c45, 0x3f678f8c4e41fd10), cat(0xa7814af4ac94e940, 0x898f79c44a35c459) }, // 2226
+ { cat(0x78a26f54f7e27037, 0x65ec72d6a5019740), cat(0x860108c3bd43edcd, 0x3ad92e36a1c49d14) }, // 2227
+ { cat(0xc103e554bfd0b38b, 0xd6471e243b35becd), cat(0xd6680e05fb9fe2e1, 0xf7c1e38a9c6dc820) }, // 2228
+ { cat(0x9a698443cca6f609, 0x7838e4e9c8f7cbd7), cat(0xab86719e62e64f1b, 0x2c9b1c6ee38b0680) }, // 2229
+ { cat(0x1521369ca3b8c4d4, 0x602d83ee3a5fd646), cat(0x89385ae51beb727c, 0x23af49f24fa26b9a) }, // 2230
+ { cat(0x8835242dd2c13aed, 0x66af397d2a32f06f), cat(0xdb8d5e3b5fdf1d93, 0x6c4ba983b29d78f6) }, // 2231
+ { cat(0x39c41cf175676257, 0x8558faca8828c059), cat(0xafa44b62b318e475, 0xf03c879c8ee460c5) }, // 2232
+ { cat(0x6169b0c12ab91b79, 0x377a623ba02099e1), cat(0x8c836f8228e0b6c4, 0xc0306c7d3f1d1a37) }, // 2233
+ { cat(0x9bdc4e01ddf4f8c1, 0xf25d69f900342968), cat(0xe0d24c03749abe07, 0x99e713fb982e9058) }, // 2234
+ { cat(0xafe3719b17f72d67, 0xf51787fa66902120), cat(0xb3db7002c3aefe6c, 0x7b1f432facf20d13) }, // 2235
+ { cat(0x264f8e15acc5bdec, 0xc412d32eb8734db3), cat(0x8fe2c00236259856, 0xc8e5cf5957280a76) }, // 2236
+ { cat(0x707f49bc47a2c97a, 0xd35151e45a5215eb), cat(0xe637999d236f5a24, 0x74a2e55bbea67723) }, // 2237
+ { cat(0x59ff6e30394f0795, 0x75daa7e9e1db44bc), cat(0xb82c7ae41c5914e9, 0xf6e8b77c98852c1c) }, // 2238
+ { cat(0x47ff8b59c7726c77, 0x917bb987e7e29d64), cat(0x9356c8b67d1410bb, 0x2bed5f96e06a89b0) }, // 2239
+ { cat(0x0ccc12293f1d7a58, 0xe8c5f5a63fd0fbd2), cat(0xebbe0df0c8201ac5, 0x131565be33dda91a) }, // 2240
+ { cat(0xd709a820ff4ac847, 0x209e5e1e9973fca8), cat(0xbc980b270680156a, 0x75aab7cb5cb15414) }, // 2241
+ { cat(0x45a1534d9908a038, 0xe6e518187ac33087), cat(0x96e008ec05334455, 0x2aeef96f7d5aa9aa) }, // 2242
+ { cat(0x09021ee28e74338e, 0x3e3b59c0c46b80d7), cat(0xf16674acd51ed3bb, 0x77e4c24bfbc442aa) }, // 2243
+ { cat(0xd401b24ed85cf60b, 0x64fc47cd69ef9a46), cat(0xc11ec3bd774bdc95, 0xf983cea32fd03554) }, // 2244
+ { cat(0x7667c1d8ad172b3c, 0x50c9d30abb261505), cat(0x9a7f02fdf9097d44, 0xc79ca54f59735ddd) }, // 2245
+ { cat(0x23d936277b58452d, 0x4e0fb8112b7021a1), cat(0xf7319e63280f2ed4, 0x72943bb228b8962f) }, // 2246
+ { cat(0xe97a91b92f79d0f1, 0x0b3fc67422c01ae7), cat(0xc5c14b8286728bdd, 0x287696282093ab58) }, // 2247
+ { cat(0xedfba7c7592e40c0, 0xd5cc9ec34f001586), cat(0x9e343c686b8ed64a, 0x86c544ece6dc8913) }, // 2248
+ { cat(0xaff90c72284a0134, 0x8947646bb199bc09), cat(0xfd2060a7127e23aa, 0x713ba17b0afa74ec) }, // 2249
+ { cat(0x8cc73d28203b342a, 0x076c505627ae3008), cat(0xca804d527531b621, 0xf42fb4626f2ec3f0) }, // 2250
+ { cat(0x3d6c30ece695c354, 0xd2bd0d11b958266d), cat(0xa2003ddb90f491b4, 0xc3595d1b8c25698d) }, // 2251
+ { cat(0xcabcf3f0b877cf77, 0x0efda40e2de01ebd), cat(0x8199cb160d907490, 0x9c477dafa351213d) }, // 2252
+ { cat(0xaac7ecb45a594bf1, 0xb195d349e300312f), cat(0xcf5c782348e720e7, 0x607262b29ee8352f) }, // 2253
+ { cat(0x556cbd5d15143cc1, 0x5ade42a182668dbf), cat(0xa5e3934f6d85b3ec, 0x4d284ef54becf759) }, // 2254
+ { cat(0xddf0977daa769701, 0x157e9bb468520aff), cat(0x84b60f72be048ff0, 0x3db9d8c43cbd92ad) }, // 2255
+ { cat(0xfcb42595dd8a8b34, 0xef30f920a6e9ab32), cat(0xd4567f1dfcd41980, 0x62c2f46d2dfc1de2) }, // 2256
+ { cat(0x30901e117e086f5d, 0x8c272db3b8baef5b), cat(0xa9decc17fd767acd, 0x1bcf29f0f1967e4f) }, // 2257
+ { cat(0xc0734b4131a05917, 0xa3528af62d625916), cat(0x87e57013312b9570, 0xe30c218d8e11fea5) }, // 2258
+ { cat(0x9a521201e9008e8c, 0x38841189e236f4ef), cat(0xd96f19b84eac224e, 0x381368e27ce9976f) }, // 2259
+ { cat(0xe1db419b20cd3ed6, 0x939cdad4b4f8c3f3), cat(0xadf27af9d889b50b, 0x600f871b972145f2) }, // 2260
+ { cat(0xe7e29ae280a43245, 0x42e3e243c3fa365c), cat(0x8b2862617a07c409, 0x19a605afac1a9e5b) }, // 2261
+ { cat(0x0c9dc49d9aa0506e, 0xd16c9d39399056f9), cat(0xdea703cf29a60674, 0xf5d66f7f79c43093) }, // 2262
+ { cat(0xa3b16a17aee6a6bf, 0x0df07dc761404594), cat(0xb21f363f5484d1f7, 0x2b11f2cc6169c075) }, // 2263
+ { cat(0x82f454dfbf1eebcc, 0x0b26cb05e7669e10), cat(0x8e7f5e99106a4192, 0x88db28a3812166c4) }, // 2264
+ { cat(0x04ba2165fe97dfac, 0xdea47809723dc9b3), cat(0xe3fefdc1b3dd35b7, 0x415ea76c01cf0ad4) }, // 2265
+ { cat(0x9d61b45198797fbd, 0x7ee9f9a128316e29), cat(0xb66597ce297dc492, 0x9ab21f899b0c08a9) }, // 2266
+ { cat(0x17815d0e13946631, 0x3254c7b420278b54), cat(0x91eadfd821316a0e, 0xe228193ae27006ee) }, // 2267
+ { cat(0xbf3561b01f53d6b5, 0x1d5472b9cd0c1220), cat(0xe977cc8d01e8a9b1, 0x69d9c1f7d0b33e49) }, // 2268
+ { cat(0x98f78159b2a97890, 0xe4438efb0a700e80), cat(0xbac63d3d9b2087c1, 0x217b01930d5c31d4) }, // 2269
+ { cat(0x472c677af5546073, 0xe9cfa595a1f33ecd), cat(0x956b643148e6d300, 0xe7959adc0ab027dd) }, // 2270
+ { cat(0x3ead725e5553cd86, 0x42e5d5bc3651fe15), cat(0xef1239e874a484ce, 0x3f55c493444d0c95) }, // 2271
+ { cat(0xfef1284b77763e05, 0x025177c9c50e64dd), cat(0xbf41c7ed2a1d370b, 0x65de36dc36a40a10) }, // 2272
+ { cat(0xcbf4203c5f91cb37, 0x350df96e373eb718), cat(0x99016cbdbb4a926f, 0x84b1c57cf8833b40) }, // 2273
+ { cat(0xdfed006098e94525, 0x21aff57d253124f2), cat(0xf4cf1462c5441d7f, 0x3ab608c7f4052b9a) }, // 2274
+ { cat(0x198a66b3ad876a84, 0x1af32aca842750c2), cat(0xc3d8dd1bd1034acc, 0x2ef807065cd0efaf) }, // 2275
+ { cat(0x146eb88fbe05eed0, 0x158f556ed01f73ce), cat(0x9cad7dafda6908a3, 0x58c66c05170d8c8c) }, // 2276
+ { cat(0xed7df41930097e19, 0xbc1888b14cff1fb0), cat(0xfaaf2f7fc3db4105, 0x5ad7133b5815adac) }, // 2277
+ { cat(0xbdfe5ce0f33acb47, 0xc9ad3a2770cc195a), cat(0xc88c25ffcfe29a6a, 0xaf1275c913448af0) }, // 2278
+ { cat(0x64cb7d80c2956f6c, 0xa15761b92709ade2), cat(0xa0701e663fe87b88, 0x8c0ec4a0dc36d58d) }, // 2279
+ { cat(0x1d6f979a35445923, 0xb445e7c7526e24b5), cat(0x8059b1eb66539606, 0xd67236e716924471) }, // 2280
+ { cat(0x624c25c3886d5b6c, 0x53a30c721d7d0787), cat(0xcd5c4fdf0a1f5671, 0x571d24a4f0ea071b) }, // 2281
+ { cat(0xb509b7cfa0577c56, 0xa94f3d2817973939), cat(0xa449d97f3b4c4527, 0x78e41d50c0bb38e2) }, // 2282
+ { cat(0x2a6e2ca619df96ab, 0xbaa5ca867945c761), cat(0x836e4798fc3d041f, 0x93e9b10d66fc2d82) }, // 2283
+ { cat(0xdd7d143cf6328aac, 0x5dd610d7286fa568), cat(0xd24a0c27f9fb39cc, 0x1fdc4e7bd7f9e269) }, // 2284
+ { cat(0x17974363f8286ef0, 0x4b11a71286bfb786), cat(0xa83b3cecc7fc2e3c, 0xe649d863132e4ebb) }, // 2285
+ { cat(0x7945cf832ced258d, 0x08daec0ed232f938), cat(0x8695ca5706635830, 0xb83b138275bea562) }, // 2286
+ { cat(0xc2094c0514aea27b, 0x415e467e1d1e5b8d), cat(0xd756108b3d6bc04d, 0xf391b8d0bc643bd0) }, // 2287
+ { cat(0x01a1099daa254ec9, 0x01183864e418493e), cat(0xac44da08fdefcd0b, 0x294160a6fd1cfca7) }, // 2288
+ { cat(0x9ae73ae4881dd8a0, 0xcdacf9ea50136dcb), cat(0x89d0ae6d97f30a6f, 0x54344d5264173085) }, // 2289
+ { cat(0x2b0b916da6962767, 0xaf7b2976e6857c78), cat(0xdc811715bfeb43e5, 0x5386e21d6cf1e73c) }, // 2290
+ { cat(0xbc0941248544ec52, 0xf2c8edf8b86ac9f9), cat(0xb06745aaffef6984, 0x42d24e7df0c185c9) }, // 2291
+ { cat(0x966dcdb6d103f042, 0x5bd3f193c6bbd4c8), cat(0x8d1f6aef3325ee03, 0x68a83ecb270137d4) }, // 2292
+ { cat(0xf0afaf8ae8064d36, 0xf9531c1fa45fbad9), cat(0xe1cbde4b85097cd2, 0x410d31450b352620) }, // 2293
+ { cat(0x8d59593becd1d75f, 0x2ddc167fb6b2fbe1), cat(0xb4a3183c6a6dfd75, 0x00d75a9da290eb4d) }, // 2294
+ { cat(0x0aade0fcbd74ac4c, 0x24b011ffc55bfcb4), cat(0x908279c9eebe645d, 0x9a45e217b540bc3e) }, // 2295
+ { cat(0x777c9b2dfbede079, 0xd44ce9993bc6611f), cat(0xe7372943179706fc, 0x2a0969bf88679396) }, // 2296
+ { cat(0x92ca15be6324b394, 0xa9d7214763051a80), cat(0xb8f8edcf46126bfc, 0xee6dee32d3860fab) }, // 2297
+ { cat(0xa8a1aafeb5b6f610, 0x87df4dd2b59daecd), cat(0x93fa57d904db8997, 0x2524be8f0f9e72ef) }, // 2298
+ { cat(0x7435de6455f189b4, 0x0c987c8455c917ae), cat(0xecc3bfc1a15f428b, 0x6ea130e4e5ca517f) }, // 2299
+ { cat(0xf6917eb6ab27a15c, 0xd6e0639d116dac8b), cat(0xbd69663481190209, 0x254dc0b71e3b7465) }, // 2300
+ { cat(0x2ba7989222861ab0, 0xabe6b61741248a09), cat(0x978784f6cdad9b3a, 0x843e33c5b1c929eb) }, // 2301
+ { cat(0xdf728db69da35de7, 0x79712358683a7674), cat(0xf2726e57af7c2b90, 0xd396b93c4fa84311) }, // 2302
+ { cat(0x7f8ed7c54ae917ec, 0x61274f79ecfb91f7), cat(0xc1f52512f2c9bc73, 0xdc7894303fb9cf41) }, // 2303
+ { cat(0x660bdfd108ba7989, 0xe752a5fb23fc74c5), cat(0x9b2a840f28a1638f, 0xe393a9c032fb0c34) }, // 2304
+ { cat(0xd679661b412a5c0f, 0xd8843cc50660bad5), cat(0xf844067ea7689f4c, 0x9f52a93384c4e053) }, // 2305
+ { cat(0xab9451af67551673, 0x139cfd6a6b809577), cat(0xc69cd1feec53b2a3, 0xb2a8875c6a3719dc) }, // 2306
+ { cat(0x561041591f774528, 0xdc7d978856007793), cat(0x9ee3db3256a95bb6, 0x2886d2b054f8e17d) }, // 2307
+ { cat(0xf01a022832586ea7, 0xc72f58da2333f284), cat(0xfe395eb6f10ef923, 0x740aeab3bb27cf2e) }, // 2308
+ { cat(0xf34801b9c1e05886, 0x38f2ad7b4f5cc204), cat(0xcb6118925a7260e9, 0x29a2555c95b9728b) }, // 2309
+ { cat(0xc2a0016167e6ad38, 0x2d8ef12f72b09b36), cat(0xa2b413a8485b80ba, 0x87b51116de2df53c) }, // 2310
+ { cat(0x02199ab4531ef0f9, 0xbe0bf425f55a15c5), cat(0x8229a9536d160095, 0x395da7457e8b2a97) }, // 2311
+ { cat(0x368f5ded51cb1b29, 0x3013203cbbc35608), cat(0xd042a8857b566755, 0x2895d86f30deaa8b) }, // 2312
+ { cat(0xc53f7e5774a27c20, 0xf34280309635de6d), cat(0xa69bba0462ab85dd, 0xba1179f28d7eeed5) }, // 2313
+ { cat(0x0432cb792a1b9680, 0xc29b99c0782b1857), cat(0x8549619d1bbc6b17, 0xc80dfb28713258ab) }, // 2314
+ { cat(0xa051458ea9c5bd9a, 0xd0f8f600c044f3be), cat(0xd54235c82c60ab59, 0x40165ea71b83c111) }, // 2315
+ { cat(0x19da9e0bbb0497af, 0x0d93f80099d0c2ff), cat(0xaa9b5e39bd1a22ad, 0xccdeb21f4936340e) }, // 2316
+ { cat(0xe17bb1a2fc03ac8c, 0x0adcc666e173cf32), cat(0x887c4b616414e88b, 0x0a4bc1b2a0f829a4) }, // 2317
+ { cat(0x9bf91c37f99f7a79, 0xaafad70b0252e51d), cat(0xda60789bd354a744, 0xdd4602b767f375d4) }, // 2318
+ { cat(0x7cc749c6614c61fa, 0xef2f126f350f1db1), cat(0xaeb393afdc43b903, 0xe438022c53292b10) }, // 2319
+ { cat(0xca3907d1e7704e62, 0x58f27525c40c17c1), cat(0x8bc2dc8cb0362d9c, 0xb69334f0428755a6) }, // 2320
+ { cat(0x76c1a61ca5807d6a, 0x27ea550939acf2ce), cat(0xdf9e2dade6bd15c7, 0x8a8521806a7222a4) }, // 2321
+ { cat(0xc567b816eacd3121, 0xb9884407615728a5), cat(0xb2e4f157ebca77d2, 0xd5374e0055281bb6) }, // 2322
+ { cat(0x9dec934588a4274e, 0x2e069cd2b445ba1d), cat(0x8f1d8ddfefd52ca8, 0xaa92a4cd10ece2f8) }, // 2323
+ { cat(0x96475208daa03ee3, 0x7cd76151206f902f), cat(0xe4fc163319551441, 0x10eaa1481b149e5a) }, // 2324
+ { cat(0x4505db3a4880324f, 0x9712b440e6bfa68c), cat(0xb73011c27aaa769a, 0x73eee76ce276e515) }, // 2325
+ { cat(0xd0d17c2ea0668ea6, 0x12755d00b899520a), cat(0x928cdb01fbbb9215, 0x298bec571b9250dd) }, // 2326
+ { cat(0x1ae8c6b100a41770, 0x1d8894cdf4288342), cat(0xea7af8032c5f5021, 0xdc1313be9283b496) }, // 2327
+ { cat(0x48ba388d9a1cdf8c, 0xe46d43d7f686cf68), cat(0xbb959335bd190ce7, 0xe34276320ecfc3ab) }, // 2328
+ { cat(0x06fb60714817193d, 0x838a9cacc538a5ed), cat(0x9611429164140a53, 0x1c352b5b3f0c9c89) }, // 2329
+ { cat(0x719233e873582862, 0x6c10faae085aa315), cat(0xf01b9db56cecdd51, 0xc6bb7891fe7a940e) }, // 2330
+ { cat(0x8e0e8fed29135381, 0xf00d955806aee8de), cat(0xc01617c45723e441, 0x6bc92d419862100b) }, // 2331
+ { cat(0xd80ba657540f7601, 0x8cd7aaacd2258718), cat(0x99ab4636ac1cb69a, 0xbca0f10146b4d9a2) }, // 2332
+ { cat(0x26790a25534bf002, 0x7af2aaae1d08d826), cat(0xf5ded6bde02df0f7, 0x9434b4ced787c29e) }, // 2333
+ { cat(0x51fa6e8442a32668, 0x625bbbbe7da0aceb), cat(0xc4b24564b357f3f9, 0x435d5d724606354b) }, // 2334
+ { cat(0xdb2ebed0354f51ed, 0x1b7c9631fe1a23ef), cat(0x9d5b6ab6f5dff661, 0x02b1178e9e6b5dd5) }, // 2335
+ { cat(0x91e46480554bb648, 0x2bfa89e99690397f), cat(0xfbc5778b22fff09b, 0x3781bf4a97122fbc) }, // 2336
+ { cat(0xdb1d1d33776fc506, 0x89953b2145402dff), cat(0xc96ac608e8ccc07c, 0x2c67cc3bac0e8c96) }, // 2337
+ { cat(0x7c174a8f92bfd0d2, 0x07aa95b437668b32), cat(0xa122380720a3cd30, 0x23863cfc89a53d45) }, // 2338
+ { cat(0x96790872dbcca70e, 0x6c8877c35f853c28), cat(0x80e82cd280830a8c, 0xe93830ca07b76437) }, // 2339
+ { cat(0x23f4da515fadd817, 0x140d8c6bcc086040), cat(0xce4047b73404ddae, 0x41f381433f8bd38c) }, // 2340
+ { cat(0xb65d7b744c8b1345, 0xa9a470563cd38034), cat(0xa500395f5cd0b158, 0x34c2cdcf66097609) }, // 2341
+ { cat(0xf84ac929d6d5a904, 0x87b6c044fd760029), cat(0x84002de5e3da2779, 0xc3cf0b0c51a12b3a) }, // 2342
+ { cat(0xf3aadb7624890e6d, 0xa5f133a1958999dc), cat(0xd3337ca30629d8c2, 0xd2e4de7a1c3511f7) }, // 2343
+ { cat(0x29557c5e83a0d857, 0xb7f4294e113ae17d), cat(0xa8f5fd4f38217a35, 0x7583e52e7cf74193) }, // 2344
+ { cat(0x2111304b9c80ad12, 0xf990210b40fbe797), cat(0x872b310c2ce794f7, 0x913650f1fd929adc) }, // 2345
+ { cat(0x681b8078fa677b51, 0x8f4d01ab9b2ca5be), cat(0xd8451b46ae3f54bf, 0x4ebd4e4ffc1dc493) }, // 2346
+ { cat(0xece2cd2d951f95da, 0xd90a67bc7c23b7cb), cat(0xad0415d224ff76ff, 0x72310b733017d075) }, // 2347
+ { cat(0x571bd757aa7fab15, 0x7a6eb9639682f970), cat(0x8a69ab0e83ff9265, 0xf4f40928f346405e) }, // 2348
+ { cat(0xf1c6255910cc44ef, 0x2a4ac238f0d18f19), cat(0xdd75de7d9fff50a3, 0x2186750e520a0096) }, // 2349
+ { cat(0x5b04eaada709d0bf, 0x55089b60c0a7a5ad), cat(0xb12b18647fff73b5, 0xb46b90d841a19a12) }, // 2350
+ { cat(0xe26a5557b8d4a6ff, 0x773a15e700861e24), cat(0x8dbc13839999295e, 0x29efa71367b47b41) }, // 2351
+ { cat(0x9d76eef2c1543e65, 0x8b90230b3409c9d4), cat(0xe2c6859f5c284230, 0x43190b523f872b9c) }, // 2352
+ { cat(0xb12bf25bcddcfeb7, 0xa2d9b5a29007d4a9), cat(0xb56b9e1916869b59, 0xcf473c41cc6c22e3) }, // 2353
+ { cat(0x27565b7ca4b0cbc6, 0x1be15e1ba66caa21), cat(0x9122e4e0ded215e1, 0x729f6367d6bce8b6) }, // 2354
+ { cat(0x3ef0926107814609, 0xc635635f70addd02), cat(0xe837d49afe1cefcf, 0x1dcbd23fbdfb0df0) }, // 2355
+ { cat(0x658d41e739343807, 0xd1c44f7f8d57e401), cat(0xb9c643af31b0bfd8, 0xe4a30e9964c8d7f3) }, // 2356
+ { cat(0xb7a434b8fa902cd3, 0x0e36a5ffa4465001), cat(0x949e9c8c27c0997a, 0x5082721450a0acc2) }, // 2357
+ { cat(0xf2a0545b2a8047b8, 0x16bdd665d3a3b335), cat(0xedca941372cdc25d, 0x4d9d8353b434479d) }, // 2358
+ { cat(0xc219dd15bb99d2f9, 0xabcb11eb0fb628f7), cat(0xbe3ba9a928a49b7d, 0xd7b135dc9029d2e4) }, // 2359
+ { cat(0xce7b17449614a8c7, 0xbca274bc0c91ba5f), cat(0x982fbaedba1d4931, 0x795a917d40217583) }, // 2360
+ { cat(0x4a5e8ba0f0210e0c, 0x6103edf9adb5f6ff), cat(0xf37f917c5cfba84f, 0x2890e8c8669bef39) }, // 2361
+ { cat(0xa1e53c80c01a71a3, 0x80cff1948af7f8cc), cat(0xc2cc74637d96203f, 0x53a720a0521658fa) }, // 2362
+ { cat(0x1b1dca0099aec14f, 0x9a3ff476d5932d70), cat(0x9bd6c382cade8032, 0xa952808041ab7a62) }, // 2363
+ { cat(0x91c9433429179bb2, 0x906653f155b848b3), cat(0xf9579f37aafd99ea, 0xa88400cd35df2a36) }, // 2364
+ { cat(0x0e3a9c29ba79495b, 0xa6b8432777c6a08f), cat(0xc7794c2c88cae188, 0x86d000a42b18ee92) }, // 2365
+ { cat(0xd82ee354952dd449, 0x522d0285f96bb3a6), cat(0x9f943cf06d6f1ad3, 0x9f0ccd50227a5874) }, // 2366
+ { cat(0x59e49eedbb7c86db, 0xb6ae6a6ff5791f70), cat(0xff5394b3e24b5e1f, 0x64e14880372a2721) }, // 2367
+ { cat(0x47ea18be2f96d249, 0x5ef1eebff7941926), cat(0xcc42dd5cb5091819, 0x1d8106ccf8ee85b4) }, // 2368
+ { cat(0x6cbb46fe8c78a83a, 0xb25b25665fa9adb8), cat(0xa368b116f73a79ad, 0xb1340570c72537c3) }, // 2369
+ { cat(0xf095d2653d2d5362, 0x2848eab84c87be2d), cat(0x82ba274592952e24, 0x8dc3378d6c1dc635) }, // 2370
+ { cat(0x1a8950a1fb7bb89d, 0x0d41778d473f96ae), cat(0xd129d86f50eeb03a, 0x7c6b8c1579c93d23) }, // 2371
+ { cat(0x486dda1b2f962d4a, 0x71012c7105cc788b), cat(0xa754ad25da588cfb, 0x96bc70112e3a974f) }, // 2372
+ { cat(0x6d24ae7c2611bdd5, 0x2734238d9e3d2d3c), cat(0x85dd57517b7a0a62, 0xdefd267424fbac3f) }, // 2373
+ { cat(0x483ab0c6a34f9621, 0xd8536c15c9fb7b94), cat(0xd62ef21bf8c343d1, 0x64c83d86a192ad32) }, // 2374
+ { cat(0xa02ef3d21c3fab4e, 0x46a92344a195fc76), cat(0xab58c1affa35cfda, 0xb706979ee7a88a8e) }, // 2375
+ { cat(0x19bf2974e36622a5, 0x05541c36e7ab305f), cat(0x8913ce2661c4a648, 0x926bac7f1fba0872) }, // 2376
+ { cat(0x5c650f216bd69dd4, 0xd5536057d911e6fe), cat(0xdb52e3709c6dd6da, 0x83df7a64ff900d83) }, // 2377
+ { cat(0x16b73f4defdee4aa, 0x4442b3797a74b8cb), cat(0xaf7582c07d24abe2, 0x03192eb732d9a469) }, // 2378
+ { cat(0x122c32a4bfe583bb, 0x69cef5fac85d60a2), cat(0x8c5e023397508981, 0x9c14255f5be15054) }, // 2379
+ { cat(0x5046b76dffd59f92, 0x42e4bcc473c89a9d), cat(0xe09669ec254da8cf, 0x60203bcbc6354d53) }, // 2380
+ { cat(0x403892be66447fa8, 0x3583ca36c306e218), cat(0xb3ab87f01dd7ba3f, 0x8019c96fd1c43ddc) }, // 2381
+ { cat(0x6693a89851d06620, 0x2acfd4f89c0581ad), cat(0x8fbc6cc017dfc832, 0xcce16df30e3697e3) }, // 2382
+ { cat(0x0a85da8d4fb3d699, 0xde1954c0f9a26914), cat(0xe5fa4799bfcc7384, 0x7b024984e38a8c9f) }, // 2383
+ { cat(0x3b9e48710c8fdee1, 0x7e7aaa33fae85410), cat(0xb7fb6c7affd6c2d0, 0x62683ad0b608707f) }, // 2384
+ { cat(0xc94b6d273d3fe581, 0x31fbbb5cc8b9dcda), cat(0x932f89fbffdf0240, 0x4eb9c8a6f806c065) }, // 2385
+ { cat(0x75457b71fb996f35, 0x1cc5f894745c948f), cat(0xeb7f432ccc98039a, 0x178fa7718cd79a3c) }, // 2386
+ { cat(0x2a9dfc5b2fadf290, 0xe3d193a9f6b076d9), cat(0xbc65cf570a133614, 0xdfa61f8e0a4614fd) }, // 2387
+ { cat(0xeee4c9e28c8b2873, 0xe97476219226c57a), cat(0x96b7d9126e75c4dd, 0x7fb8193e6e9e7730) }, // 2388
+ { cat(0x7e3adc9dadab73ec, 0xa8ba569c1d0ad590), cat(0xf126281d7d893afb, 0xff8cf530b0fd8b81) }, // 2389
+ { cat(0x982f16e48aef8ff0, 0x86fb787ce408aada), cat(0xc0eb534acad42f2f, 0xffa3f75a27313c67) }, // 2390
+ { cat(0xe025abea08bfa65a, 0x0595f9fd833a2248), cat(0x9a55dc3bd5768c26, 0x661cc5e1b8f43052) }, // 2391
+ { cat(0x99d5dfdcdacc3d5c, 0xd5bcc32f385d03a6), cat(0xf6efc6c6225746a3, 0xd6946fcf8e538084) }, // 2392
+ { cat(0x7b117fe3e23cfde3, 0xde309c25c6b0cfb8), cat(0xc58c9f04e845d21c, 0xaba9f30c71dc66d0) }, // 2393
+ { cat(0xfc0dffe981ca64b6, 0x4b5a16849ef3d960), cat(0x9e0a18d0b9d174e3, 0xbc87f5a38e49ebd9) }, // 2394
+ { cat(0x934999759c77078a, 0x1229bda0fe52f567), cat(0xfcdcf481294f216c, 0x60d98905b0764629) }, // 2395
+ { cat(0x42a1479149f8d2d4, 0xdb5497b3fea8c452), cat(0xca4a5d34210c1abd, 0x1a47a0d159f83821) }, // 2396
+ { cat(0x9bb4394107fa4243, 0xe2aa12f66553d042), cat(0xa1d5175ce73ce230, 0xe1d2e70de193601a) }, // 2397
+ { cat(0x1629c767399501cf, 0xe8880f2b84430d02), cat(0x817745e3ec30b4f3, 0xe7dbec0b1adc4ce2) }, // 2398
+ { cat(0xbd0fa571f5bb3619, 0x740ce5126d3814cf), cat(0xcf253c9fe04dee53, 0x0c931344f7c6e169) }, // 2399
+ { cat(0x640c845b2afc2b47, 0x900a50db8a9343d9), cat(0xa5b763b319d7f1dc, 0x0a0f429d93058121) }, // 2400
+ { cat(0x833d36af55968906, 0x0cd50d7c6edc3647), cat(0x8492b628e1798e49, 0xa1a5cee4759e00e7) }, // 2401
+ { cat(0x052ebde555bda809, 0xae21af2d7e2d23a5), cat(0xd41df04168c27d42, 0x9c3c7e3a55c99b0c) }, // 2402
+ { cat(0x6a8bcb1dde31533a, 0xf1b48c2464f0e951), cat(0xa9b18d01209b9768, 0x7cfd31c844a148d6) }, // 2403
+ { cat(0x22096f4b182775c8, 0xc15d3ce9ea5a5441), cat(0x87c13d9a807c7920, 0x63fdc16d03b43a45) }, // 2404
+ { cat(0x69a8b211c03f22da, 0xcefb94a976f6ed34), cat(0xd9352f5d9a60c1cd, 0x6cc9357b39205d3b) }, // 2405
+ { cat(0x87ba280e3365b57b, 0xd8c943bac592575d), cat(0xadc425e47b809b0a, 0xbd6dc4629419e42f) }, // 2406
+ { cat(0x6c94ecd8291e2ac9, 0x7a3a9c956adb7917), cat(0x8b03518396007c08, 0x978b03821014b68c) }, // 2407
+ { cat(0xe0ee47c041c9de0f, 0x29f760ef115f2825), cat(0xde6bb59f56672cda, 0x8c119f3680212413) }, // 2408
+ { cat(0x80be9fcd016e4b3f, 0x54c5e725a77f5351), cat(0xb1efc47f78528a48, 0x700e18f86680e9a9) }, // 2409
+ { cat(0x33cbb30a678b6f65, 0xdd6b1f5152cc42a7), cat(0x8e5969ff93753b6d, 0x2671ad938533ee21) }, // 2410
+ { cat(0xb945eb43d8df18a2, 0xfbde98821e139dd8), cat(0xe3c2433285885f15, 0x0a4f7c1f3b8649ce) }, // 2411
+ { cat(0xc76b229cad7f46e8, 0xc97ee068180fb17a), cat(0xb635028ed139e5aa, 0x6ea5fce5c9383b0b) }, // 2412
+ { cat(0x39228216f1329f20, 0xa1324d20133fc12e), cat(0x91c4020bda94b7bb, 0x8bb7fd84a0f9c8d6) }, // 2413
+ { cat(0x5b6a69be4eb76501, 0x01ea15001ecc684a), cat(0xe9399cdfc42125f8, 0xdf8cc8d434c2daf0) }, // 2414
+ { cat(0xe2bb87cb722c50cd, 0x9b21aa667f09ed08), cat(0xba947d7fd01a84c7, 0x193d6d76909be259) }, // 2415
+ { cat(0x1bc9396f8e89da3e, 0x15b48851ff3b2406), cat(0x9543979973486a38, 0xe0fdf12ba6e31b7b) }, // 2416
+ { cat(0xf941f57f4a7629fc, 0xef87408331f839a4), cat(0xeed28c28b873dd27, 0xce631b790b04f8c4) }, // 2417
+ { cat(0xfa9b2acc3b91bb30, 0xbf9f66cf5b2cfae9), cat(0xbf0ed686f9f64a86, 0x3eb5af9408d0c703) }, // 2418
+ { cat(0xc87c223cfc7495c0, 0x994c523f7c23fbee), cat(0x98d8ab9f2e5ea204, 0xfef7bfa9a0a7059c) }, // 2419
+ { cat(0x0d9369fb2d875600, 0xf546e9ff2d065fe3), cat(0xf48ddf6516fdd007, 0xfe5932a9010b3c2e) }, // 2420
+ { cat(0x3e0f87fc246c44cd, 0x910587ff57384cb6), cat(0xc3a4b2b74597d99f, 0xfeadc220cda2968b) }, // 2421
+ { cat(0x31a6066350569d71, 0x40d1399912937091), cat(0x9c83c22c37acae19, 0x988b01b3d7b5453c) }, // 2422
+ { cat(0x82a33d6bb3bdc8b5, 0x3481f5c1b7524db5), cat(0xfa6c69e0591449c2, 0x8dab35ec8c553b93) }, // 2423
+ { cat(0x688297895c97d3c4, 0x2a019167c5db715e), cat(0xc856bb19e0dd07ce, 0xd7bc2b23a37762dc) }, // 2424
+ { cat(0xed3546077d464303, 0x54ce0dec9e49277e), cat(0xa045627b1a4a6ca5, 0x796355b61c5f8249) }, // 2425
+ { cat(0x8a9104d2ca9e9c02, 0xaa3e718a183a85ff), cat(0x803781fc150856ea, 0xc782aaf816b2cea1) }, // 2426
+ { cat(0x10e807b7aa976004, 0x43971c1026c40997), cat(0xcd259cc6880d57de, 0x0c0444c024514a9c) }, // 2427
+ { cat(0xa720062c8879199d, 0x02df49a68569a146), cat(0xa41e170539a4464b, 0x3cd037001d0dd549) }, // 2428
+ { cat(0xb8e66b56d394147d, 0x9be5d4853787b438), cat(0x834b459dc7b69ea2, 0x970cf8cce40b1107) }, // 2429
+ { cat(0xc170abbe1f5353fc, 0x2ca2eda1f272b9f3), cat(0xd21208fc72bdca9d, 0xbe7b27ae39ab4e72) }, // 2430
+ { cat(0x678d5631b2a90ffc, 0xf08257b4c1f5618f), cat(0xa80e6d96c2316ee4, 0x98628624faef71f5) }, // 2431
+ { cat(0x860aab5af5540cca, 0x5a01dfc3ce5de7a6), cat(0x8671f14568278bea, 0x138204ea625927f7) }, // 2432
+ { cat(0xa344455e555347aa, 0x299c99394a2fd909), cat(0xd71cb53bd9d8dfdc, 0xec033b109d5b7325) }, // 2433
+ { cat(0xe9036ab1dddc3954, 0xee16e0faa1bfe0d4), cat(0xac16f76314ad7fe3, 0xf00295a6e44928ea) }, // 2434
+ { cat(0xed9c555b17e36110, 0xbe78b3fbb49980aa), cat(0x89abf91c108accb6, 0x599baaebe9d420bb) }, // 2435
+ { cat(0x48fa222b596bce81, 0x30c11ff920f59aa9), cat(0xdc465b601a77adf0, 0x8f5f77dfdc869ac6) }, // 2436
+ { cat(0x072e81bc47897200, 0xf3cdb32db3f7aeee), cat(0xb0384919aec624c0, 0x72b2c64cb06baf05) }, // 2437
+ { cat(0x38f201636c6df4cd, 0x8fd7c28af65fbf25), cat(0x8cf9d4148bd1b700, 0x5bc2383d59efbf37) }, // 2438
+ { cat(0x27e99bd24716547c, 0x19593744bd65fea1), cat(0xe18fb9ba794f8b33, 0xc6038d2ef64c6525) }, // 2439
+ { cat(0xb987afdb6c11dd30, 0x14475f6a311e654e), cat(0xb472fafb943fa28f, 0xd19c70f25ea3841d) }, // 2440
+ { cat(0xfad2f315f00e4a8c, 0xdd05e5ee8db1eaa5), cat(0x905bfbfc76994ed9, 0x747d27284bb6034a) }, // 2441
+ { cat(0x5e1e51bcb34a10e1, 0x61a3097daf831107), cat(0xe6f9932d8a8ee48f, 0x20c83ea6df899ede) }, // 2442
+ { cat(0xe4e50e308f6e73e7, 0x814f3acaf2cf40d3), cat(0xb8c7a8f13ba583a5, 0xb3d365524c6e18b1) }, // 2443
+ { cat(0x50b73e8d3f8b8fec, 0x6772956f28a5cd75), cat(0x93d2ed8dc951361e, 0x2975eaa83d24e08e) }, // 2444
+ { cat(0xe78b974865ac197a, 0x3f1dbbe50dd61588), cat(0xec84af49421b89c9, 0xdbefddd9fb6e3416) }, // 2445
+ { cat(0x1fa2df6d1e234794, 0xff4afcb73e44de07), cat(0xbd36f2a101afa16e, 0x498cb17b2f8b5cdf) }, // 2446
+ { cat(0xb2e8b2bdb1b5d2dd, 0x9908ca2c31d0b19f), cat(0x975f2880ce261abe, 0xa13d5ac8f2d5e3e5) }, // 2447
+ { cat(0x5174512f82bc8495, 0xc1a7a9e04fb44f65), cat(0xf231da67b03cf797, 0x68622adb1e23063c) }, // 2448
+ { cat(0x4129da8c6896d077, 0xce1fbb19d95d0c51), cat(0xc1c17b8626972c79, 0x204e88af4b4f3830) }, // 2449
+ { cat(0x00ee487053abd9f9, 0x71b2fc14ade409da), cat(0x9b012f9e8545bd2d, 0xb37206f2a2a5c68d) }, // 2450
+ { cat(0x67e3a71a1f795cc2, 0x4f84c6877ca00fc3), cat(0xf801e5ca6ed5fb7c, 0x52500b1dd1093dae) }, // 2451
+ { cat(0xb982ec14e5fab09b, 0x72d09ed2ca19a636), cat(0xc667eb0858ab2f96, 0xa84008e4a73a97be) }, // 2452
+ { cat(0xc79bf010b7fbc07c, 0x5bda18a8a1ae1e92), cat(0x9eb988d37a228c78, 0x8699a0b6ec2edfcb) }, // 2453
+ { cat(0x0c2cb34df32c672d, 0x5fc35aa76916974f), cat(0xfdf5a7b8c36a7a5a, 0x70f5cdf179e49946) }, // 2454
+ { cat(0xa356f5d7f5bd1f57, 0x7fcf7bb920dedf73), cat(0xcb2aec93cf8861e1, 0xf3f7d7f46183add1) }, // 2455
+ { cat(0x1c45917991641912, 0xcca5fc941a4be5f5), cat(0xa288bd430c6d1b1b, 0x29931329e79c8b0e) }, // 2456
+ { cat(0xb037a7947450140f, 0x0a1e63a9aea31e5e), cat(0x8206fdcf3d2415af, 0x5475a8ee52e3a271) }, // 2457
+ { cat(0x19f2a5ba53b3534b, 0x4363d2a9176b63c9), cat(0xd00b2fb1fb6cef7e, 0xed890e4a1e3903e9) }, // 2458
+ { cat(0xae5bb7c842f5dc3c, 0x35e9755412bc4fd4), cat(0xa66f595b2f8a5932, 0x57a0d83b4b60cfed) }, // 2459
+ { cat(0xf1e2f96d025e49c9, 0xc4bac44342303fdd), cat(0x8525e115bfa1e0f5, 0x12e71362a2b3d98a) }, // 2460
+ { cat(0xe96b28ae6a30760f, 0xa12ad39ed04d32fb), cat(0xd5096822cc3634bb, 0x5171b89dd11fc277) }, // 2461
+ { cat(0xbabc208b8826c4d9, 0x4dbbdc7f0d0a8f2f), cat(0xaa6dece8a35e9095, 0xdac1607e40e6352c) }, // 2462
+ { cat(0x62301a0939b89d7a, 0xa49649ff3da20c26), cat(0x8857f0ba1c4ba6de, 0x489ab39833eb5dbd) }, // 2463
+ { cat(0x9d19c341f5f42f2a, 0xa0f076652f69ad09), cat(0xda264df693ac3e30, 0x742ab8f3864562c8) }, // 2464
+ { cat(0xb0e16901919025bb, 0xb3f391ea8c548a6e), cat(0xae850b2ba9569826, 0xc35560c2d1d11bd3) }, // 2465
+ { cat(0x271aba67a7a68496, 0x298fa7eed6aa0858), cat(0x8b9da28954454685, 0x69111a3574a74976) }, // 2466
+ { cat(0xd82ac3d90c3da0f0, 0x427f7317bddcda26), cat(0xdf629da886d53da2, 0x41b4f6bbedd87589) }, // 2467
+ { cat(0x79bbcfe0d697b3f3, 0x6865f5ac97e3e1b8), cat(0xb2b54aed38aa97b5, 0x015d922ff179f7a1) }, // 2468
+ { cat(0x61630cb3dedfc329, 0x20519156dfe98160), cat(0x8ef76f242d55462a, 0x677e0e8cc12e5fb4) }, // 2469
+ { cat(0x9bd1adec97cc6b75, 0x0082822499759bcd), cat(0xe4bf1839e22209dd, 0x72634a7aceb09920) }, // 2470
+ { cat(0x49748b23aca3892a, 0x66cece83adf7afd7), cat(0xb6ff4694b4e807e4, 0x5b82a1fbd88d474d) }, // 2471
+ { cat(0x3ac3a282f082d421, 0xebd8a53624c62646), cat(0x9265d21090b99fe9, 0xe2cee7fcad3dd2a4) }, // 2472
+ { cat(0x91390404b404869c, 0xac8dd5236e09d6d6), cat(0xea3c834db45c330f, 0xd14b0cc77b961dd3) }, // 2473
+ { cat(0xda940336f66a054a, 0x23a4aa82be6e4578), cat(0xbb639c3e29e35c0c, 0xa76f3d6c62de7e42) }, // 2474
+ { cat(0xaedccf5f2b88043b, 0x4fb6eecefebe9dfa), cat(0x95e949cb54b5e33d, 0x52bf6456b57ecb68) }, // 2475
+ { cat(0x7e2e189845a66d2b, 0xb2be4ae4caca965c), cat(0xefdba94554563862, 0x1dff06f1226478a7) }, // 2476
+ { cat(0xfe8b46e037b85756, 0x28983bea3bd54517), cat(0xbfe2edd11044f9e8, 0x17ff38c0e8506085) }, // 2477
+ { cat(0xcba29f19c62d12ab, 0x53acfcbb63110412), cat(0x998257da736a6186, 0x7998fa33ed0d1a04) }, // 2478
+ { cat(0xac3764f609e1b778, 0x85e1945f04e80683), cat(0xf59d595d85770270, 0xc28e5d1fe1ae9007) }, // 2479
+ { cat(0x89c5ea5e6e4e2c60, 0x6b1add18d0b99ecf), cat(0xc47de1179df8cec0, 0x9ba5174cb48ba66c) }, // 2480
+ { cat(0xa16b21e5250b56b3, 0x88e24a7a40947f0c), cat(0x9d3180dfb193d89a, 0x161dac3d5d3c8523) }, // 2481
+ { cat(0x9bde9ca1d4def11f, 0x416a10c39a8731ad), cat(0xfb8267cc4f52f429, 0xbcfc46c8952da1d2) }, // 2482
+ { cat(0xafe54a1b10b25a7f, 0x67880d69486c27be), cat(0xc9351fd6a5dbf687, 0xca636bd3aa8ae7db) }, // 2483
+ { cat(0x59843b48da284865, 0xec6cd7876d2352fe), cat(0xa0f74cabb7e32b9f, 0xd51c5642eed58649) }, // 2484
+ { cat(0xe13695d3e1b9d384, 0xbd23df9f8a82a8cc), cat(0x80c5d6efc64f5619, 0x7749de9bf2446b6d) }, // 2485
+ { cat(0x01f0efb96929526d, 0xfb6c98ff44044146), cat(0xce0957e60a1889c2, 0x587630f983a0abe3) }, // 2486
+ { cat(0x34c0bfc7875441f1, 0x95f07a65d003676b), cat(0xa4d44651a1ad3b01, 0xe05e8d94694d564f) }, // 2487
+ { cat(0x2a33cc9f9f769b27, 0xab26c8517335ec56), cat(0x83dd050e1af0fc01, 0x804ba476baa4450c) }, // 2488
+ { cat(0xdd1fadcc32575ea5, 0xdea473b5852313bc), cat(0xd2fb3b49c4b4c668, 0xcd45d3f12aa06e79) }, // 2489
+ { cat(0xb0e624a35b791884, 0xb21d295e041c0fca), cat(0xa8c8fc3b03c3d1ed, 0x7104a98dbbb38b94) }, // 2490
+ { cat(0xf3eb5082af94139d, 0x5b4a877e69b00ca1), cat(0x8707302f3636418a, 0xc0d087a496293c76) }, // 2491
+ { cat(0x1fdee7377f535295, 0x5edda5970f801435), cat(0xd80b804b89f068de, 0x014da5d423752d8b) }, // 2492
+ { cat(0x4cb25292cc42a877, 0x7f17b7ac0c667691), cat(0xacd6003c6e59ed7e, 0x6771517682c4246f) }, // 2493
+ { cat(0x0a28420f09ceed2c, 0x65ac92f009eb920e), cat(0x8a44ccfd2514bdfe, 0xb927745ecf035059) }, // 2494
+ { cat(0xa9da034b42e4aead, 0x6f7a84b343128349), cat(0xdd3ae19508212ffd, 0xf50bed647e6bb3c1) }, // 2495
+ { cat(0x217b35d5cf1d588a, 0xbf9536f5cf4202a1), cat(0xb0fbe7aa6ce75997, 0xf73cbde9febc8fce) }, // 2496
+ { cat(0xb4629177d8e446d5, 0x6610f8c4a5ce6881), cat(0x8d9652eebd85e146, 0x5f63cb219896d971) }, // 2497
+ { cat(0x209db58c8e3a0aef, 0x09b4c13aa2e3da67), cat(0xe28a1e4ac8d6353d, 0x656c7835c0f15be9) }, // 2498
+ { cat(0x1a17c47071c808bf, 0x3af700fbb5831520), cat(0xb53b4b6f0711c431, 0x1df0602b00c11654) }, // 2499
+ { cat(0xae7969f38e39a098, 0xfbf8cd962acf4419), cat(0x90fc3c58d2749cf4, 0x17f380226700dea9) }, // 2500
+ { cat(0x4a5bdcb8e38f675b, 0x2cc148f0447ed35b), cat(0xe7f9fa27b720fb20, 0x2652669d719afddc) }, // 2501
+ { cat(0x08497d60b60c52af, 0x570107269d3242b0), cat(0xb994c81fc5b3fc19, 0xb841ebb127af317d) }, // 2502
+ { cat(0xd36dfde6f809dbbf, 0x78cd9f52175b688d), cat(0x9477067fd15cc9ae, 0x2d01895a8625c130) }, // 2503
+ { cat(0xebe32fd7f342f932, 0x5ae29883589240e1), cat(0xed8b3d994efadc49, 0xe19c0ef73d09351a) }, // 2504
+ { cat(0x564f59798f68c75b, 0x7be87a02ad41cd81), cat(0xbe08fe143f2f16a1, 0x8149a592973a90e2) }, // 2505
+ { cat(0xdea5e12e0c53d2af, 0x965394cef1017134), cat(0x980731a9cc25abb4, 0x676e1e0edf620d81) }, // 2506
+ { cat(0xcaa301e346ec844c, 0x23b8ee17e8024eb9), cat(0xf33eb5dc79d5df87, 0x0be3634aff0348cf) }, // 2507
+ { cat(0x6ee8ce4f6bf069d6, 0x82fa58132001d894), cat(0xc298917d2e44b2d2, 0x6fe91c3bff35d3d9) }, // 2508
+ { cat(0x58ba3ea5eff387de, 0xcf2eacdc199b13aa), cat(0x9bad4130f1d08f0e, 0xbfedb02fff5e4314) }, // 2509
+ { cat(0xf45d31097fec0c97, 0xb1e447c68f5e85dc), cat(0xf915351b1c80e4e4, 0x664919e665639e86) }, // 2510
+ { cat(0xf6b0f4079989a3ac, 0x8e50396ba5e537e3), cat(0xc7442a7c16cd83e9, 0xeb6dae51eab6186b) }, // 2511
+ { cat(0xc55a5cd2e13ae956, 0xd8402defb7ea931c), cat(0x9f69bb9678a46987, 0xef8af1db222b46bc) }, // 2512
+ { cat(0x6ef6faeb01f7dbbe, 0x26cd164c597751c7), cat(0xff0f928a5aa0a8d9, 0x7f44b62b69ded794) }, // 2513
+ { cat(0x8bf8c8bc01931631, 0xb8a411d6adf90e39), cat(0xcc0c753b7bb3ba47, 0x9903c4ef87e57943) }, // 2514
+ { cat(0xa32d6d633475ab5a, 0xfa1cdb1224c73e94), cat(0xa33d2a95fc8fc839, 0x4736372606512dcf) }, // 2515
+ { cat(0xb5bdf11c29f7bc48, 0xc81715a81d6c3210), cat(0x82975544ca0ca02d, 0xd291c5b8050dbe3f) }, // 2516
+ { cat(0x22c981c6a98c6074, 0x735822a69579e9b3), cat(0xd0f22207a9adcd16, 0x1db609266e7c6399) }, // 2517
+ { cat(0x4f079b0554704d29, 0xf5e01bb87794baf6), cat(0xa7281b39548b0a78, 0x17c4d41ebec9e947) }, // 2518
+ { cat(0x3f3948d11059d754, 0xc4b349605faa2f2b), cat(0x85b9af61106f3b93, 0x4637101898a1876c) }, // 2519
+ { cat(0xcb8edae81a295887, 0xa11edbcd65dd1845), cat(0xd5f5e5681a4b9285, 0x3d24e68dc1027246) }, // 2520
+ { cat(0x093f15867b5446d2, 0xe74be30ab7e4136a), cat(0xab2b1dece1d60ed0, 0xfdb71ed7cd9b8e9f) }, // 2521
+ { cat(0xa0ff446b95dd0575, 0x85d64f3bc6500f88), cat(0x88ef4b23e7de7240, 0xcaf8e57971493ee5) }, // 2522
+ { cat(0xce653a45bc94d588, 0xd623b1f93d4ce5a6), cat(0xdb18783972fd839a, 0xde5b08c24edb97d5) }, // 2523
+ { cat(0x0b842e9e3077113a, 0x44e95b2dcaa3eaec), cat(0xaf46c6945bfe02e2, 0x4b7c0701d8afacab) }, // 2524
+ { cat(0x09368bb1c05f40fb, 0x6a5448f16ee988bd), cat(0x8c389edd1664cf1b, 0x6f966c017a2623bc) }, // 2525
+ { cat(0x752412b6009867f8, 0xaa2074b57e427461), cat(0xe05a97c823d47e92, 0x4c23e0025d09d2c6) }, // 2526
+ { cat(0x2a83422b33ad1ffa, 0x21b3909131cec381), cat(0xb37baca01ca9fedb, 0x701cb335173b0f05) }, // 2527
+ { cat(0x886901bc29574cc8, 0x1af60d40f4a56934), cat(0x8f9623b34a2198af, 0x8ce3c290df62726a) }, // 2528
+ { cat(0x0d74cf9375587ad9, 0xc4bce201876f0eb9), cat(0xe5bd05eba9cf5ab2, 0x7b06041aff03ea44) }, // 2529
+ { cat(0xd790a60f9113957b, 0x03ca4e679f8c0bc7), cat(0xb7ca6b22ee3f7bc1, 0xfc04d01598cfee9c) }, // 2530
+ { cat(0x794084d940dc7795, 0x9ca1d852e609a306), cat(0x930855b58b65fc9b, 0x3003d9aae0a6587d) }, // 2531
+ { cat(0x28673af53493f288, 0xfa9c8d51700f6b3c), cat(0xeb40892278a32dc5, 0x199fc2ab010a272f) }, // 2532
+ { cat(0xed1f625dc3a98ed3, 0xfbb0710df33f88fd), cat(0xbc33a0e860828b04, 0x147fceef34081f58) }, // 2533
+ { cat(0x8a7f81e49c87a576, 0x62f38da4c2993a64), cat(0x968fb3ed1a0208d0, 0x10663f25c339b2ad) }, // 2534
+ { cat(0x43ff363a940c3bf0, 0x9e527c3ad0f52a3a), cat(0xf0e5ecae9003414c, 0xe709fea2d1f5eaaf) }, // 2535
+ { cat(0x033291c876702ff3, 0xb1db969573f754fb), cat(0xc0b7f08ba669010a, 0x526e654f0e5e5559) }, // 2536
+ { cat(0x028edb06c5268cc2, 0xf4afabaac32c43fc), cat(0x9a2cc06fb85400d5, 0x0ebeb77271e51114) }, // 2537
+ { cat(0x374af80ad50a7ad1, 0x877f79113846d32d), cat(0xf6ae00b2c08667bb, 0x4acabf1d83081b53) }, // 2538
+ { cat(0x5f6f2cd5773b9574, 0x6c65fa742d0575bd), cat(0xc558008f006b862f, 0x6f0898e468d3490f) }, // 2539
+ { cat(0xb2bf57112c2faac3, 0x89eb2ec357379164), cat(0x9de0007266bc6b59, 0x25a07a5053dc3a72) }, // 2540
+ { cat(0x1dfef1b5137f779f, 0x4311e46bbebf4f07), cat(0xfc999a50a460abc1, 0xd5cd9080862d2a51) }, // 2541
+ { cat(0x17ff27c40f992c7f, 0x68db1d22feff726c), cat(0xca147b73b6b3bc9b, 0x11714066d1bdbb74) }, // 2542
+ { cat(0xdfff53033fadbd32, 0xba48e41bff32c1f0), cat(0xa1a9fc5c922963af, 0x412766b8a7cafc5c) }, // 2543
+ { cat(0x19990f35cc8afdc2, 0x2ea0b67ccc289b27), cat(0x8154c9e3a8211c8c, 0x341f8560863bfd17) }, // 2544
+ { cat(0xc28e7ebc7a77fc69, 0xe434572e13742b71), cat(0xceee0fd2a69b60e0, 0x5365a23409f994f1) }, // 2545
+ { cat(0x9ba5323061f996bb, 0x1cf6ac24dc5cef8d), cat(0xa58b3fdbb87c4d80, 0x42b7b4f66e6143f4) }, // 2546
+ { cat(0x161dc1c04e614562, 0x7d922350b04a593e), cat(0x846f664960637133, 0x6892f72b8b81032a) }, // 2547
+ { cat(0x2362cf9a1702089d, 0x95b69ee78076f530), cat(0xd3e57075670581eb, 0xda84beac12680510) }, // 2548
+ { cat(0xe91bd948126806e4, 0x77c54bec66c590f3), cat(0xa98459f7859e0189, 0x7b9d65567520040c) }, // 2549
+ { cat(0x20e31439a85338b6, 0xc6376ff05237a729), cat(0x879d14c6047e67a1, 0x2fb11ddec4199cd7) }, // 2550
+ { cat(0xce38205c4085278a, 0xd6bf1980838c3ea8), cat(0xd8fb54700730a5ce, 0xb2b4fc97a028faf1) }, // 2551
+ { cat(0x71c68049cd3752d5, 0x7898e1339c703220), cat(0xad95dd266c26eb0b, 0xc22a63ac8020c8c1) }, // 2552
+ { cat(0xc16b99d4a42c4244, 0x607a4dc2e38cf4e6), cat(0x8ade4a85235255a3, 0x01bb82f06680a09a) }, // 2553
+ { cat(0x9bdf5c876d139d3a, 0x33f6e2d16c14bb0a), cat(0xde30773b6bb6ef6b, 0x35f8d180a40100f7) }, // 2554
+ { cat(0xe31916d2bda94a94, 0xf65f1bdabcdd626e), cat(0xb1c05f62bc925922, 0x9193dacd5000cd92) }, // 2555
+ { cat(0xb5adabdbcaedd543, 0xf84c1648971781f2), cat(0x8e337f823075141b, 0xa7a97bd77333d7a8) }, // 2556
+ { cat(0x22af795fab162206, 0x5a1356da8b58cfe9), cat(0xe38598d04d88202c, 0x3f7592f251ec8c41) }, // 2557
+ { cat(0x4ef2c77fbc11b4d1, 0xe1a912486f7a3fee), cat(0xb6047a403e068023, 0x65f7a8c1db23a367) }, // 2558
+ { cat(0xd8c23932fcdaf70e, 0x4e20db6d25fb6658), cat(0x919d2e99cb386682, 0xb7f953ce48e94f85) }, // 2559
+ { cat(0x5ad05b84c7c4be7d, 0x49ce2be1d65f0a26), cat(0xe8fb7dc2dec0a404, 0x598eec7d41754c09) }, // 2560
+ { cat(0xaf0d1603d303cb97, 0x6e3e8981784c081f), cat(0xba62cb024bcd5003, 0x7ad8bd31012aa33a) }, // 2561
+ { cat(0x25a4119ca8cfd612, 0xbe986e012d09a019), cat(0x951bd59b6fd77335, 0xfbe0975a67554f62) }, // 2562
+ { cat(0xa2a01c2ddae62351, 0x30f3e33514dc335a), cat(0xee92ef5f1958b856, 0x5fcdbef70bbbb236) }, // 2563
+ { cat(0xe880168b1584e90d, 0xc0c31c2a77168f7c), cat(0xbedbf2b27aad6045, 0x197165926fc95b5e) }, // 2564
+ { cat(0x86ccded5aad0ba71, 0x67027ceec5aba5fd), cat(0x98aff55b95578037, 0x478deadb8ca115e5) }, // 2565
+ { cat(0xa47afe22aae790b5, 0x719d94b13c45d661), cat(0xf44cbbc5bbbf338b, 0xa5afde2c1434efd5) }, // 2566
+ { cat(0x1d2f31b555860d5d, 0xf47e108dc9d1784d), cat(0xc3709637c965c2d6, 0x1e264b567690bfde) }, // 2567
+ { cat(0xe425c15dde04d77e, 0x5d31a6d7d4a79371), cat(0x9c5a11c63ab7cf11, 0xb1b83c452ba6ffe4) }, // 2568
+ { cat(0x39d6022fc9a158ca, 0x2eb5d7bfbaa5b8b5), cat(0xfa29b609f78c7e82, 0xb5f393a1df71996e) }, // 2569
+ { cat(0xfb119b596e1aad6e, 0x8bc4ac99621e2d5e), cat(0xc8215e6e5fa39868, 0x918fa94e4c5ae124) }, // 2570
+ { cat(0x2f4149145815578b, 0xa303bd4781b1bde5), cat(0xa01ab1f1e61c79ed, 0x413fbaa509e24db7) }, // 2571
+ { cat(0x5901074379aaac6f, 0xb59c976c67c164b7), cat(0x80155b27eb49fb24, 0x3432fbb73b1b715f) }, // 2572
+ { cat(0xf4ce72058f777a4c, 0x55c758ad72cf078b), cat(0xcceef83fdedcc506, 0xb9eb2c585e924efe) }, // 2573
+ { cat(0x5d71f4d13f92c83d, 0x116c46f128a59fa2), cat(0xa3f2603318b09d9e, 0xfb2289e04ba83f32) }, // 2574
+ { cat(0x7df4c3da994239ca, 0x74569f2753b7b2e8), cat(0x83284cf5ad5a17b2, 0x628207e6a2ecff5b) }, // 2575
+ { cat(0xc9879fc42869f610, 0xba2431d885f2b7da), cat(0xd1da14bc489025ea, 0x3736730a9e47fef8) }, // 2576
+ { cat(0x3ad2e63686bb2b40, 0x94e9c17a04c22cae), cat(0xa7e1aa303a0ceb21, 0xc5c528d54b6ccbfa) }, // 2577
+ { cat(0xfbdbeb5ed22f55cd, 0x43ee34619d6823bf), cat(0x864e21c02e70bc1b, 0x049dba443c570994) }, // 2578
+ { cat(0xf95fdefe1d188948, 0x6cb053cf62403931), cat(0xd6e369337d812cf8, 0x0762c3a0608b4287) }, // 2579
+ { cat(0xfab318cb4a7a076d, 0x23c0430c4e99c75b), cat(0xabe920f5fe00f0c6, 0x6c4f02e6b3a29b9f) }, // 2580
+ { cat(0x6228e0a2a1fb3924, 0x1c99cf3d0bae3915), cat(0x89874d919800c09e, 0xbd0c0252294ee2e6) }, // 2581
+ { cat(0x36a7cdd1032b8ea0, 0x2dc2e52e7916c1bb), cat(0xdc0baf4f599acdca, 0xc81336e9dbb16b0a) }, // 2582
+ { cat(0x5eeca4a735bc7219, 0xbe3584252dabce30), cat(0xb009590c47af0b08, 0xa00f5f217c8def3b) }, // 2583
+ { cat(0xe58a1d5291638e7a, 0xfe913684248971c0), cat(0x8cd4473d0625a26d, 0x4cd918e796d7f295) }, // 2584
+ { cat(0xa2769550e89f4a5e, 0x641b8a6d07424f99), cat(0xe153a52e703c3715, 0x47c1c1728af31dbc) }, // 2585
+ { cat(0x4ec54440ba19084b, 0x83493b8a6c350c7a), cat(0xb442ea8b8cfcf8dd, 0xd301678ed58f4afd) }, // 2586
+ { cat(0x3f04369a2e7a6d09, 0x35d42fa1f02a7062), cat(0x9035886fa3fd93e4, 0xa8cdec724472a264) }, // 2587
+ { cat(0x9806bdc37d90ae75, 0x22ed190319dd809d), cat(0xe6bc0d7f6cc8eca1, 0x0e16471d3a5103d3) }, // 2588
+ { cat(0x133897cf97a6f1f7, 0x4f2414027b179a17), cat(0xb8967132bd6d8a1a, 0x71ab6c1761da6976) }, // 2589
+ { cat(0xa8fa130c79525b2c, 0x3f501001fc12e1ac), cat(0x93ab8dc231246e7b, 0x8e22bcdf817b8791) }, // 2590
+ { cat(0x0e5ceb472883c513, 0x9880199cc6849c46), cat(0xec45af9d1b6d7d92, 0x7d0461659bf8d8e9) }, // 2591
+ { cat(0x71e3ef6c20696a76, 0x1399ae170536e36c), cat(0xbd048c7daf8acadb, 0x9736b4514993e0ba) }, // 2592
+ { cat(0xc18325f019edeec4, 0xdc7af1ac042be923), cat(0x9736d6caf2d56f16, 0x129229daa1431a2e) }, // 2593
+ { cat(0x68d1d64cf6497e07, 0xc72b1c466d130e9e), cat(0xf1f157ab1e224b56, 0x841d0fc4353829e4) }, // 2594
+ { cat(0x53db11d72b6dfe6c, 0x9f55b03857427218), cat(0xc18ddfbc181b6f78, 0x69b0d969c42cee50) }, // 2595
+ { cat(0xa97c0e45bc57febd, 0x4c448cf9df685b47), cat(0x9ad7e630134925f9, 0xee2714549cf0bea6) }, // 2596
+ { cat(0xdbf9b06f93bffdfb, 0xad3a7b296573c53d), cat(0xf7bfd6b3520ea329, 0x7d0b53ba94b4643d) }, // 2597
+ { cat(0xaffaf38c76333196, 0x242ec8edeac30431), cat(0xc63312290e721c21, 0x30d5dc9543c38364) }, // 2598
+ { cat(0x8cc8c2d6c4f5c144, 0xe9bf0724bbcf368e), cat(0x9e8f41ba71f4e34d, 0xc0ab16ddcfcf9c50) }, // 2599
+ { cat(0x47a79e246e560207, 0xdc64d83ac6185749), cat(0xfdb202c3e987d216, 0x0111be2fb2e5c6e7) }, // 2600
+ { cat(0x6c86181d25119b39, 0x7d1d79c89e79df6e), cat(0xcaf4cf03213974de, 0x674164f2f5849f1f) }, // 2601
+ { cat(0x239e79b0ea747c2d, 0xfdb12e3a18617f8b), cat(0xa25d7268e7612a4b, 0x85cdea5bf79d4c19) }, // 2602
+ { cat(0xe94b948d885d3024, 0xcaf424fb46b46609), cat(0x81e45b871f80eea2, 0xd171884992e43ce0) }, // 2603
+ { cat(0x0edf5415a6fb803a, 0xde536e5ed78709a8), cat(0xcfd3c5a4ff34b104, 0x824f4075b7d3949b) }, // 2604
+ { cat(0x3f1910115262ccfb, 0xe50f8b7f12d26e20), cat(0xa6430483ff5d5a6a, 0x01d9005e2ca943af) }, // 2605
+ { cat(0x65ada67441e8a3fc, 0xb73fa2cc0f0ebe80), cat(0x85026a0332b11521, 0x9b14004b56edcfbf) }, // 2606
+ { cat(0x3c490a539ca76cc7, 0x8b990479b1b130cc), cat(0xd4d0a99eb781bb68, 0xf82000788b161932) }, // 2607
+ { cat(0xfd073b7616ec5706, 0x094736c7c15a8d70), cat(0xaa4087b22c67c920, 0xc68000606f44e0f4) }, // 2608
+ { cat(0x9738fc5e78bd126b, 0x3a9f5f0634487127), cat(0x88339fc1bd1fd41a, 0x386666b38c371a5d) }, // 2609
+ { cat(0xf1f4c6fd8dfb50ab, 0x90fefe7053a71b71), cat(0xd9ec32cf94ffb9c3, 0x8d70a45279f1c3c8) }, // 2610
+ { cat(0xf4c3d2647195da22, 0xda659859dc85af8e), cat(0xae568f0c7732fb02, 0xd78d5041fb27cfd3) }, // 2611
+ { cat(0x909ca8505ade481b, 0xe1eae047e39e260b), cat(0x8b7872705f5bfc02, 0x460aa69b2f530ca9) }, // 2612
+ { cat(0x1a9440809163a693, 0x031166d96c303cde), cat(0xdf271d8098932cd0, 0x70110a91e551addc) }, // 2613
+ { cat(0xaedd0066dab61edc, 0x0274524789c030b2), cat(0xb285b133ad428a40, 0x59a73ba7eaa7be49) }, // 2614
+ { cat(0x58b0cd1f155e7f16, 0x685d0e9fa1668d5b), cat(0x8ed15a8fbdced500, 0x47b8fc865552fea1) }, // 2615
+ { cat(0x8de7ae982230cb57, 0x0d61b0ff68a4155f), cat(0xe4822a7f9617bb33, 0xa5f4c73d55519768) }, // 2616
+ { cat(0xd7ec8bace8270912, 0x711af3ff86e9aab2), cat(0xb6ce886611ac95c2, 0xeb2a38fddddadf86) }, // 2617
+ { cat(0xacbd3c8a53526da8, 0x5a7bf6660587bbc2), cat(0x923ed384daf077cf, 0x22882d97e4af1938) }, // 2618
+ { cat(0x1461fa76ebb715da, 0x2a5ff0a33c0c5f9c), cat(0xe9fe1f3af7e72618, 0x374048f3077e8ec1) }, // 2619
+ { cat(0x76b4c85f22f8de48, 0x21e65a1c3009e617), cat(0xbb31b295931f51ac, 0xf9003a5c05fed89a) }, // 2620
+ { cat(0xf890a04c1bfa4b6c, 0xe7eb7b49c007eb45), cat(0x95c15baadc190e23, 0xfa6695166b3246e1) }, // 2621
+ { cat(0xc0e766e02cc3abe1, 0x73125edc66731208), cat(0xef9bc5de2cf4e36c, 0xc3d754f0ab83a49c) }, // 2622
+ { cat(0x33ec524cf09c8981, 0x28db7f16b85c0e6d), cat(0xbfafd17e8a5d82bd, 0x697910c089361d4a) }, // 2623
+ { cat(0x5cbd0ea3f3b06e00, 0xed7c65abc6b00b8b), cat(0x995974653b7e0231, 0x212da7006dc4e43b) }, // 2624
+ { cat(0xc794e43985e71667, 0xe260a2ac7119ac11), cat(0xf55bed6ec59669e8, 0x3515d800afa16d2b) }, // 2625
+ { cat(0x9faa502e04b8deb9, 0x81e6e889f41489a7), cat(0xc4498abf047854b9, 0xc411799a261abdbc) }, // 2626
+ { cat(0x7fbb735803c71894, 0x67ebed3b29aa07b9), cat(0x9d07a23269f9dd61, 0x69a7947b51aefe30) }, // 2627
+ { cat(0x992bebc0060b5a87, 0x0cacaec50f7672c1), cat(0xfb3f69ea43296235, 0x75d8ed921c4b304d) }, // 2628
+ { cat(0x4756563338091538, 0xd6f08bd0d92b8f01), cat(0xc8ff87ee9c211b5d, 0xf7e0be0e7d08f371) }, // 2629
+ { cat(0x05deab5c2cd410fa, 0x458d3ca71422d8ce), cat(0xa0cc6cbee34daf7e, 0x5fe6fe71fda0c2c1) }, // 2630
+ { cat(0x37e555e357100d95, 0x0470fd527682470b), cat(0x80a38a324f715931, 0xe6526527fe1a3567) }, // 2631
+ { cat(0x8ca223055819af54, 0xd3e7fbb72403a4de), cat(0xcdd276b6e582284f, 0xd6ea3b733029ef0b) }, // 2632
+ { cat(0xa3b4e8d11347bf77, 0x0fecc95f5002ea4c), cat(0xa4a85ef8b79b5373, 0x1254fc5c2687f26f) }, // 2633
+ { cat(0x1c90ba40dc3965f8, 0xd98a3ab2a668bb70), cat(0x83b9e593c615dc5c, 0x0eaa637ceb9ff526) }, // 2634
+ { cat(0x60e79067c6c23cc1, 0x5c105deaa3dac57f), cat(0xd2c308ec7022fa2c, 0xe443d26178ffeea3) }, // 2635
+ { cat(0xe71fa6b96bce9701, 0x16737e554fe23799), cat(0xa89c07238ce8c823, 0xe9cfdb812d998bb5) }, // 2636
+ { cat(0xec19522defd878cd, 0xab8f98443fe82c7b), cat(0x86e338e93d870683, 0x21731600f147a2f7) }, // 2637
+ { cat(0xe028837cb2f3f47c, 0x45b28d39ffd9e0c4), cat(0xd7d1f4a86271a405, 0x0251bcce4ed904bf) }, // 2638
+ { cat(0x19ba02ca28c329fd, 0x048ed761997b1a36), cat(0xaca7f6ed1b8e1cd0, 0xcea7ca3ea57a6a33) }, // 2639
+ { cat(0x7afb356e870287fd, 0x9d3f12b47ac8e1c5), cat(0x8a1ff8bdafa4e3da, 0x3eeca1cbb79521c2) }, // 2640
+ { cat(0x5e5ebbe40b373ffc, 0x2ecb5120c4749c6e), cat(0xdcfff462b2a16c90, 0x64adcfac58ee9c6a) }, // 2641
+ { cat(0xb1e5631cd5c5ccc9, 0xbf090db3d05d49f2), cat(0xb0ccc382288123a6, 0xb6f172f0472549ee) }, // 2642
+ { cat(0x5b1de8e3de37d707, 0xcc073e29737dd4c2), cat(0x8d709c6820674fb8, 0x925ac259d2843b25) }, // 2643
+ { cat(0x5e96416c96bfbe72, 0xe00b96a8b8c95469), cat(0xe24dc70d00a54c5a, 0x83c46a2950d391d5) }, // 2644
+ { cat(0x7ede9abd456631f5, 0x80094553c70776ba), cat(0xb50b05a400843d15, 0x3636bb5440a94177) }, // 2645
+ { cat(0x324baefdd11e8e5e, 0x00076aa96c05f895), cat(0x90d59e1ccd369744, 0x2b5efc4366edcdf9) }, // 2646
+ { cat(0x507917fc81ca7d63, 0x333f110f133cc0ee), cat(0xe7bc302e15242539, 0xdefe606bd7e2e328) }, // 2647
+ { cat(0x0d2dacca016ecab5, 0xc298da7275ca33f2), cat(0xb96359be77501dc7, 0xe5984d23131be8ed) }, // 2648
+ { cat(0x70f1570801256ef7, 0xcee0aec1f7d4f65b), cat(0x944f7afec5d9b16c, 0xb7ad0a8275afed8a) }, // 2649
+ { cat(0xb4b5580ccea24b26, 0x17cde4698c87f092), cat(0xed4bf7fe095c4f14, 0x5914dd9d89197c10) }, // 2650
+ { cat(0x2a2aacd70bb508eb, 0x463e5054706cc075), cat(0xbdd65ffe6de37276, 0xadaa4ae46dadfcda) }, // 2651
+ { cat(0xbb5557126fc40722, 0x9e9840438d23cd2a), cat(0x97deb331f182c1f8, 0x8aeea25057be63e1) }, // 2652
+ { cat(0x5eeef1b71939a504, 0x30f39a05ae9faeaa), cat(0xf2fdeb831c04698d, 0xab176a1a25fd6c9c) }, // 2653
+ { cat(0x7f258e2c142e1d9c, 0xf3f614d1587fbeee), cat(0xc264bc68e336bad7, 0xbc12bb481e6456e3) }, // 2654
+ { cat(0x328471bcdcf1b14a, 0x5cc4dd7446cc98bf), cat(0x9b83c9ed82922f12, 0xfcdbc9067eb6abe9) }, // 2655
+ { cat(0x50d3e92e2e4f8210, 0x946e2f2071475acb), cat(0xf8d2dcaf37504b51, 0x9492db3d978aaca8) }, // 2656
+ { cat(0xda4320f1bea601a6, 0xdd24f2805a9f7bd5), cat(0xc70f16f292a6a2a7, 0xaa0f15cadfa223b9) }, // 2657
+ { cat(0x4835b3f49884ce1f, 0x1750c200487f9644), cat(0x9f3f458edbb8821f, 0xbb3f44a24c81b62e) }, // 2658
+ { cat(0x73891fedc0d47cfe, 0x8bb4699a0d98f06d), cat(0xfecba27e2c5a69cc, 0x5ecba103ad9c56b0) }, // 2659
+ { cat(0x5c6db3249a439732, 0x095d21480ae0c057), cat(0xcbd61b98237b87d6, 0xb23c80cfbe16abc0) }, // 2660
+ { cat(0x16be28ea1502df5b, 0x3ab0e76cd58099e0), cat(0xa311aface92f9fde, 0xf4fd33d964deefcd) }, // 2661
+ { cat(0x4564ed8810cf1915, 0xc88d85f0aacd47e6), cat(0x82748c8a5426197f, 0x2a64297ab718bfd7) }, // 2662
+ { cat(0x08a17c0ce7b1c1bc, 0x7415a31aaae20ca3), cat(0xd0ba7a76ed09c265, 0x10a0425df1c132f2) }, // 2663
+ { cat(0xd3b4633d8627ce30, 0x5cde1c155581a3b6), cat(0xa6fb952bf0d49b84, 0x0d4d01e4c1675bf4) }, // 2664
+ { cat(0x0fc382979e863e8d, 0x17181677779ae95e), cat(0x859610eff3dd4936, 0x710a67ea3452aff7) }, // 2665
+ { cat(0x1938d0f2973d30e1, 0xbe8cf0bf25c4a897), cat(0xd5bce7e652fba857, 0x1b43d976ba1de658) }, // 2666
+ { cat(0xadc70d8edf64271a, 0xfed726ff516a2079), cat(0xaafd8651dbfc86ac, 0x15cfe12bc817eb79) }, // 2667
+ { cat(0x8b05a4724c501f48, 0xcbdf5265dabb4d2d), cat(0x88cad1db16639ef0, 0x11731a896cdfef94) }, // 2668
+ { cat(0xab3c3a507a19cba7, 0xac9883d62ac54848), cat(0xdade1c91bd6c3180, 0x1beb5da8ae3318ed) }, // 2669
+ { cat(0x55c9c84061ae3c86, 0x23ad3644ef0439d4), cat(0xaf1816dafdf02799, 0xafef7e208b5c13f1) }, // 2670
+ { cat(0xde3b0699e7be96d1, 0xb6242b6a58d02e43), cat(0x8c13457bfe59b947, 0xbff2cb4d3c49a98d) }, // 2671
+ { cat(0xfd2b3dc30c642482, 0xbd06abdd5ae6b06b), cat(0xe01ed593308f8ed9, 0x331e12152d42a8e2) }, // 2672
+ { cat(0xfdbc3168d6b6839b, 0xca6bbcb1158559ef), cat(0xb34bde0f5a0c7247, 0x5c180e775768871b) }, // 2673
+ { cat(0xcafcf453def86949, 0x6ebc96f411377b26), cat(0x8f6fe4d914d6c1d2, 0xb0133ec5df86d27c) }, // 2674
+ { cat(0xde6186ec97f3dba8, 0xb12dbe534ebf2b6f), cat(0xe57fd48e87be02ea, 0xb351fe0965a483fa) }, // 2675
+ { cat(0xb1e79f23acc31620, 0x8dbe31dc3eff55f3), cat(0xb79976d86c980255, 0x5c41980784839cc8) }, // 2676
+ { cat(0x27ec7f4fbd68de80, 0x7164f4b03265de5c), cat(0x92e12be056e001dd, 0xe367acd2d0694a3a) }, // 2677
+ { cat(0x7313fee5fbdafd9a, 0x4f07ede6b70963c6), cat(0xeb01dfcd57cccfc9, 0x6bd9148480a876c3) }, // 2678
+ { cat(0xc2766584c97bfe15, 0x0c0657ebc5a11c9f), cat(0xbc017fd77970a63a, 0xbcadaa039a205f02) }, // 2679
+ { cat(0x9b91ead0a12ffe77, 0x3cd1dfefd14db07f), cat(0x966799792df3b82e, 0xfd57bb3614e6b268) }, // 2680
+ { cat(0xc5b6448101e663f1, 0xfae9664c8215e731), cat(0xf0a5c25b7cb926b1, 0x95592b89bb0ab70d) }, // 2681
+ { cat(0x9e2b6a00ce51e98e, 0x625451d6ce77ec28), cat(0xc0849b7c63c75227, 0xaaadbc6e2f3bc5a4) }, // 2682
+ { cat(0x7e89219a3ea7ee0b, 0x81dd0e4571f989b9), cat(0x9a03af96b6390e86, 0x222496be8c2fd150) }, // 2683
+ { cat(0xca750290643fe345, 0x9c94e3a24ff5a928), cat(0xf66c4c2456c1b0d6, 0x9d07579746b2e880) }, // 2684
+ { cat(0xa1f7354050331c37, 0xb0771c81d9915420), cat(0xc523701d12348d78, 0x7d9f7945d228ba00) }, // 2685
+ { cat(0xb4c5c433735c1692, 0xf3927d34ae0ddce7), cat(0x9db5f34a74f6d793, 0x97b2c76b0e86fb33) }, // 2686
+ { cat(0x87a2d3858560241e, 0x5283fb877ce2fb0a), cat(0xfc565210bb248c1f, 0x591e0bde7da4c51f) }, // 2687
+ { cat(0x9fb576046ab35018, 0x42032f9f971bfc08), cat(0xc9dea80d6283a34c, 0x474b3cb1fe1d6a7f) }, // 2688
+ { cat(0x4c912b36bbc2a679, 0xce68f2e6127cc9a0), cat(0xa17eecd78202e909, 0xd2a296f4cb4abb99) }, // 2689
+ { cat(0x3d40ef5efc9bb861, 0x71ed8f1e7530a14d), cat(0x81325712ce68ba6e, 0x421babf709089614) }, // 2690
+ { cat(0x2ece4bcb2dc5f3cf, 0x1caf4b63eeb43548), cat(0xceb6f1b7b0a790b0, 0x69c5dff1a80dbced) }, // 2691
+ { cat(0xbf0b6fd5be37f63f, 0x4a25d5e98bc35dd3), cat(0xa55f27c626ec73c0, 0x549e4cc1533e30bd) }, // 2692
+ { cat(0x65a2bfde31c65e99, 0x081e44bad635e4a9), cat(0x844c1fd1b8bd2966, 0xaa183d6775cb5a31) }, // 2693
+ { cat(0x3c37996382d6fdc1, 0xa696d45e23896ddb), cat(0xd3acffb5f461dbd7, 0x768d2f0befabc382) }, // 2694
+ { cat(0xfcf94782cf12649a, 0xebabdd181c6df17c), cat(0xa95732f7f6b4afdf, 0x920a8c098c896934) }, // 2695
+ { cat(0x972dd2cf0c0eb6e2, 0x562317467d24c130), cat(0x8778f5932bc3bfe6, 0x0e6ed66e0a07875d) }, // 2696
+ { cat(0x5849514b467df16a, 0x236b5870c83aceb3), cat(0xd8c188eb79393309, 0xb0b157167672722f) }, // 2697
+ { cat(0xad07743c3864c121, 0xb5ef79f3d3623ef6), cat(0xad67a0bc60fa8f3a, 0xf3c112785ec1f4f2) }, // 2698
+ { cat(0xf0d2c36360509a81, 0x5e592e5ca91b6592), cat(0x8ab94d6380c87295, 0x8fcda8604bce5d8e) }, // 2699
+ { cat(0x4e1e056bcd4dc402, 0x308eb09441c56f4f), cat(0xddf5489f3473ea88, 0xe615da33ac7d627e) }, // 2700
+ { cat(0x3e7e6abca43e3668, 0x26d88d4367d125d9), cat(0xb19106e5c38feed3, 0xeb44ae8fbd311b98) }, // 2701
+ { cat(0xfecb8896e9cb5eb9, 0xb8ad3dcf8640eb14), cat(0x8e0d9f1e360cbf0f, 0xef6a253fca8dafac) }, // 2702
+ { cat(0x3145a757dc78978f, 0x8de1fc7f3d34ab53), cat(0xe348fe96bce131b3, 0x18a9d532ddaf7f7b) }, // 2703
+ { cat(0xf437b91316c6dfa6, 0x0b1b3065ca90890f), cat(0xb5d3fedefd80f48f, 0x46ee4428b15932c8) }, // 2704
+ { cat(0x29c62da8df057fb8, 0x08e28d1e3ba6d40c), cat(0x9176657f3133f6d9, 0x058b69ba277a8f07) }, // 2705
+ { cat(0x42d6af749808cc59, 0xa7d0e1c9f90aece0), cat(0xe8bd6f31e853248e, 0x6f4575f6a590e4d8) }, // 2706
+ { cat(0x35788c5d466d7047, 0xb973e7d4c73bf0b4), cat(0xba3125c186a8ea0b, 0x8c3791921e0d83e0) }, // 2707
+ { cat(0xf793a37dd1f1269f, 0xc78fecaa38fcc090), cat(0x94f41e346bba54d6, 0x09c60e0e7e71364c) }, // 2708
+ { cat(0xf285d262e981d766, 0x0c197aa9f4c79a7f), cat(0xee53638712c3baf0, 0x0fa349b0ca4ebd47) }, // 2709
+ { cat(0x8ed1751bee01791e, 0x70146221909faecc), cat(0xbea91c6c0f02fbf3, 0x3fb5d48d6ea56439) }, // 2710
+ { cat(0x72412a7cbe679418, 0x59a9e81ada1958a4), cat(0x988749f00c026328, 0xffc4aa0abeeab694) }, // 2711
+ { cat(0x839b772dfd72868d, 0x5c430cf7c35bc106), cat(0xf40ba9801337050e, 0x6607767797ddf0ed) }, // 2712
+ { cat(0x69492c24cac2053d, 0xe368d72c9c496738), cat(0xc33c8799a8f8d0d8, 0x519f91f9464b2724) }, // 2713
+ { cat(0xedd42350a234d0fe, 0x4f87128a16a11f60), cat(0x9c306c7aed93da46, 0xa7b2db2dd1d5b8e9) }, // 2714
+ { cat(0xe2ed054dd0548196, 0xe5a4ea768a9b6566), cat(0xf9e713f7e2862a0a, 0xa5eaf8494fbc5b0f) }, // 2715
+ { cat(0x825737717376ce12, 0x5150bb92087c511e), cat(0xc7ec0ff98204ee6e, 0xeb22603aa63048d9) }, // 2716
+ { cat(0x01df5f8df5f8a4db, 0x7440960e6d3040e5), cat(0x9ff00cc79b372525, 0x88e84cfbb826a0ae) }, // 2717
+ { cat(0x02feff49898dd492, 0x539a89b0aeb39b08), cat(0xffe67ad8f8583b6f, 0x4173ae5f8d0a9ab0) }, // 2718
+ { cat(0x3598cc3ad47176db, 0x76153af3bef615a0), cat(0xccb862472d1362bf, 0x678fbeb2d73baef3) }, // 2719
+ { cat(0x2ae0a362438df8af, 0x91aa958fcbf8114d), cat(0xa3c6b505bda91bcc, 0x52d9655bdf62f25c) }, // 2720
+ { cat(0xbbe6e91b693e608c, 0x748877a63cc6743e), cat(0x83055d9e3154163d, 0x0f1451164c4f2849) }, // 2721
+ { cat(0x930b0e9241fd6747, 0x20da5909fad72063), cat(0xd1a22f6382202394, 0xe4ed4e8a13b1da0f) }, // 2722
+ { cat(0x0f3c0ba834cab905, 0xb3e1e0d4c8ac19e9), cat(0xa7b4f2b601b34faa, 0x50bdd86e7627e1a6) }, // 2723
+ { cat(0x72966fb9c3d560d1, 0x5cb4b3dd6d567b21), cat(0x862a5bc4ce290c88, 0x4097e0585e864e1e) }, // 2724
+ { cat(0x50f0b2c2d2ef014e, 0xfabab962488a5e9a), cat(0xd6aa2c6e16a8140d, 0x342633c0973d49ca) }, // 2725
+ { cat(0x0d8d5bcf0f259aa5, 0x95622de83a084baf), cat(0xabbb56be78867670, 0xf684f633ac3107d5) }, // 2726
+ { cat(0x3e0aafd8d8eae21e, 0x111b57ecfb39d625), cat(0x8962abcb939ec527, 0x2b9d91c2f0273977) }, // 2727
+ { cat(0xc9aab2f48e449cfc, 0xe82bbfe191f6236f), cat(0xdbd112df5297a1d8, 0x45c8e937e6a528be) }, // 2728
+ { cat(0x6e2228c3a503b0ca, 0x5356331adb2b4f8c), cat(0xafda757f75461b13, 0x6b0720f98550ed65) }, // 2729
+ { cat(0x24e8209c8402f3d5, 0x0f7828e248ef72d6), cat(0x8caec465f76b48dc, 0x559f4d946aa72451) }, // 2730
+ { cat(0xd4a69a94066b1fbb, 0x4bf3749d417f1e24), cat(0xe117a0a325787493, 0xbc3215ba443ea081) }, // 2731
+ { cat(0xaa1ee21005227fc9, 0x098f907dcdff4b50), cat(0xb412e6e8eac6c3a9, 0x635b449503654d34) }, // 2732
+ { cat(0x54e581a66a81ffd4, 0x07a60d317199090d), cat(0x900f1f20bbd23621, 0x1c4903aa691dd75d) }, // 2733
+ { cat(0xbb08cf70aa699953, 0x3f70151be8f4db47), cat(0xe67e98345fb6bd01, 0xc6db3910a82fbefb) }, // 2734
+ { cat(0xfc070c5a21ee1442, 0x99267749872a4906), cat(0xb86546904c9230ce, 0x38af60da20263262) }, // 2735
+ { cat(0x3005a37b4e581035, 0x4751f9079f550738), cat(0x938438737074f3d8, 0x2d591a4819b8284f) }, // 2736
+ { cat(0x8009059216f34d22, 0x0bb65b3f6554d859), cat(0xec06c0b8b3ee52f3, 0x7bc1c3a68f8d0d4b) }, // 2737
+ { cat(0x99a0d141abf5d74e, 0x6fc515cc5110ad14), cat(0xbcd233c6f658425c, 0x630169520c70d76f) }, // 2738
+ { cat(0x47b3da9aeff7df71, 0xf304117040da2410), cat(0x970e8fd25ead01e3, 0x82678774d6c0ac59) }, // 2739
+ { cat(0xd91fc42b198c98b6, 0x51a01be6ce29d34d), cat(0xf1b0e61d64480305, 0x9d7272548acde08e) }, // 2740
+ { cat(0xe0e63688e13d46f8, 0x414ce31f0b54a90b), cat(0xc15a51b11d0668d1, 0x4ac1f5106f0b1a0b) }, // 2741
+ { cat(0x80b82ba0b4310593, 0x6770b5b26f76eda2), cat(0x9aaea7c0e40520a7, 0x6f0190d9f26f4809) }, // 2742
+ { cat(0x678d129ab9e808eb, 0xd8b455ea4bf17c36), cat(0xf77dd934a008343f, 0x1802815cb7187342) }, // 2743
+ { cat(0x860a754894b9a0bc, 0xad5d11883cc1302c), cat(0xc5fe475d4cd35cff, 0x4668677d5f46c29b) }, // 2744
+ { cat(0x6b3b9106dd614d63, 0xbde40e069700f356), cat(0x9e6505e43d75e3ff, 0x6b86b9311905687c) }, // 2745
+ { cat(0xab9281a495687bd2, 0xc96ce33dbe67ebbd), cat(0xfd6e6fd395896ccb, 0xdf3df51b5b3bda60) }, // 2746
+ { cat(0x22db9aea1120630f, 0x078a4f64985322fd), cat(0xcabebfdc77a123d6, 0x4c3190e2af63151a) }, // 2747
+ { cat(0x824948bb40e6b5a5, 0x9fa1d91d46a8e8cb), cat(0xa2323316c61a8311, 0xd68e0d8225e8ddae) }, // 2748
+ { cat(0x683aa095cd855e1e, 0x194e474a9eed8709), cat(0x81c1c2789e7b9c0e, 0x453e7134eb20b158) }, // 2749
+ { cat(0xa6c43422e26efcfc, 0xf54a0baa97e271a7), cat(0xcf9c6a5a972c2ce3, 0xa1fd81ee45011bc0) }, // 2750
+ { cat(0x8569c34f1b8bfd97, 0x2aa1a2eedfe85aec), cat(0xa616bb7bac23571c, 0x81979b250400e300) }, // 2751
+ { cat(0xd121690c160997ac, 0x221ae8bf1986af24), cat(0x84defc62f01c45b0, 0x67ac7c1d9ccd8266) }, // 2752
+ { cat(0x1b68a8135675bf79, 0xd02b0dfe8f3de505), cat(0xd497fa37e693a2b3, 0xd913f9c8fae26a3e) }, // 2753
+ { cat(0x15ed5342ab9165fb, 0x0cef3e653f64b738), cat(0xaa132e931edc8229, 0x7a76616d9581ee98) }, // 2754
+ { cat(0xab24429bbc745195, 0xa3f29850ff83c5c6), cat(0x880f5875b24a01ba, 0xc85eb457aace5879) }, // 2755
+ { cat(0xab6d375f93ed4f55, 0xd31dc08198d2d60a), cat(0xd9b22722b6dccf91, 0x409786f2aae3c0c2) }, // 2756
+ { cat(0x55f0f91943243f77, 0xdc17cd347a4244d5), cat(0xae281f4ef8b0a60d, 0xcd46058eef1c9a35) }, // 2757
+ { cat(0xde5a60e1028365f9, 0x7cdfd75d2e9b6a44), cat(0x8b534c3f2d5a1e71, 0x7104d13f25b07b5d) }, // 2758
+ { cat(0x96f7016804056ff5, 0x94995895175f106c), cat(0xdeebad31e229ca4f, 0x1b3ae865091a5efc) }, // 2759
+ { cat(0x45926786699df32a, 0xdd477a10df7f4057), cat(0xb2562427e8216ea5, 0xaf62538407484bfd) }, // 2760
+ { cat(0x6adb8605214b28ef, 0x176c61a7193299df), cat(0x8eab501fece78bb7, 0xbf81dc699f6d0997) }, // 2761
+ { cat(0x4492700835450e4b, 0x58ad690b5b842965), cat(0xe4454cffe1727925, 0xff362d75cbe1a8f2) }, // 2762
+ { cat(0x6a0ec00691040b6f, 0x7a24540916035451), cat(0xb69dd7331ac1fa84, 0xcc2b57916fe7ba5b) }, // 2763
+ { cat(0x880bccd20d9cd5f2, 0xc81d100744cf76a7), cat(0x9217df5c1567fb9d, 0x7022ac7459862eaf) }, // 2764
+ { cat(0x4012e15015c7bcb7, 0xa694e67207b25771), cat(0xe9bfcbc688a65f62, 0x4d0447208f3d177f) }, // 2765
+ { cat(0x99a8b440116c96f9, 0x5210b85b395b7927), cat(0xbaffd6386d51e5e8, 0x3d9d05b3a5ca7932) }, // 2766
+ { cat(0x1486f699a78a1261, 0x0e73c6af6115fa86), cat(0x9599782d244184b9, 0xcae4048fb7d52dc2) }, // 2767
+ { cat(0x540b24290c101d68, 0x171fa44bce8990d6), cat(0xef5bf37b6d35a129, 0x44a0074c59551603) }, // 2768
+ { cat(0x433c1ceda3401786, 0x78e61d097207a712), cat(0xbf7cc2c9242ae754, 0x36e66c3d1444119c) }, // 2769
+ { cat(0xcf634a57b5ccdf9e, 0xc71e7da128061f42), cat(0x99309bd41cef1f76, 0x9251f030dd034149) }, // 2770
+ { cat(0xe56baa25efae3297, 0xa4fd95cea6703202), cat(0xf51a92ecfb183257, 0x508319e7c8053542) }, // 2771
+ { cat(0x845621b7f2f1c212, 0xea6477d885268e68), cat(0xc41542572f468eac, 0x4068e186399dc435) }, // 2772
+ { cat(0x36ab4e2cc25b01a8, 0xbb8393139db871ed), cat(0x9cddceac25d20bbd, 0x0053e79e947e3691) }, // 2773
+ { cat(0x8aabb0479d5e690d, 0xf8d284ec2f8d8315), cat(0xfafc7de03c8345fb, 0x33b9729753fd241b) }, // 2774
+ { cat(0x088959d2e44b873e, 0x60a86a568c7135aa), cat(0xc8c9fe4cfd35d195, 0xc2fac212a9975016) }, // 2775
+ { cat(0x6d3aae42503c6c31, 0xe6ed21ded6c0f7bc), cat(0xa0a1983d975e4144, 0x9bfbce7554790cde) }, // 2776
+ { cat(0x57622501d9c9f027, 0xebf0e7e5789a5fc9), cat(0x80814697ac4b676a, 0x16630b911060d718) }, // 2777
+ { cat(0xbf036e695c764d0c, 0xacb4a63bf42a32db), cat(0xcd9ba425e078a576, 0x8a381281b3ce24f3) }, // 2778
+ { cat(0xff35f1ede391d73d, 0x56f6eb6329bb5be3), cat(0xa47c83518060845e, 0xd4f9a867c30b50c2) }, // 2779
+ { cat(0x65c4c18b1c74ac31, 0x125f22b5bafc4982), cat(0x8396cf7466b39d18, 0xaa61538635a2a702) }, // 2780
+ { cat(0x093acf44fa5446b4, 0xea31d122c4c6dc04), cat(0xd28ae5870ab8fb5a, 0xaa35527055d10b37) }, // 2781
+ { cat(0x3a95729d95103890, 0xbb5b0db56a38b003), cat(0xa86f1e05a22d95e2, 0x21c441f377da6f5f) }, // 2782
+ { cat(0xfbaac217aa736073, 0xc915a49121c6f336), cat(0x86bf4b37b4f144b4, 0xe7d034c2c6485918) }, // 2783
+ { cat(0xc5de035910b89a52, 0xdb55d41b693e51ef), cat(0xd798785921820787, 0xd94d2137a3a6f4f4) }, // 2784
+ { cat(0x9e4b35e0da2d4842, 0x4911767c5431db26), cat(0xac79f9e0e79b3939, 0x7aa41a92e9525d90) }, // 2785
+ { cat(0x4b6f5e4d7b576d01, 0xd40df863768e48eb), cat(0x89fb2e4d8615c761, 0x2ee9aedbeddb7e0d) }, // 2786
+ { cat(0xdf1896e25ef24802, 0xece327058a7d4178), cat(0xdcc516e27022d89b, 0x7e42b15fe2f8c9ae) }, // 2787
+ { cat(0xb27a124eb25b6ccf, 0x23e8ec046eca9ac6), cat(0xb09dabe859b57a15, 0xfe9bc1198260a158) }, // 2788
+ { cat(0x5b94db72284923d8, 0xe9872336bf087bd2), cat(0x8d4aefed14912e77, 0xfee300e1351a1aad) }, // 2789
+ { cat(0x9287c58373a8395b, 0x0f3e9ebdfe73f950), cat(0xe2117fe1ba81e3f3, 0x316b349b8829c448) }, // 2790
+ { cat(0xdb9fd135f6202de2, 0x72987efe65299440), cat(0xb4daccb49534b65c, 0x2788f6e2d3549d06) }, // 2791
+ { cat(0x494ca75e5e8024b5, 0x2879ff31ea87a9cd), cat(0x90af0a2a10f6f849, 0xb93a5f1bdc43b0d2) }, // 2792
+ { cat(0xa87aa563ca66a121, 0xda5ccb8310d90fae), cat(0xe77e76a9b4be5a0f, 0x8ec3cb5fc6d2b483) }, // 2793
+ { cat(0xed2eeab63b854db4, 0xaeb0a2cf40ada625), cat(0xb931f887c3cb7b3f, 0xa5696f7fd2422a02) }, // 2794
+ { cat(0xf0f2555e96043e2a, 0x255a1bd9008aeb51), cat(0x9427fa06363c6299, 0x512125ffdb68219b) }, // 2795
+ { cat(0x8183bbca89a06376, 0xa229c62800de454e), cat(0xed0cc33d2393d0f5, 0x4e9b6fffc57368f9) }, // 2796
+ { cat(0x9acfc96ed4804f92, 0x1b549e8667183771), cat(0xbda3cf641c7640c4, 0x3ee2bfffd12920c7) }, // 2797
+ { cat(0x7bd96df24399d941, 0xaf76e5385279c5f4), cat(0x97b63f8349f833d0, 0x324effffda874d6c) }, // 2798
+ { cat(0x92f57cb6d28fc202, 0xb257d526ea5c6fed), cat(0xf2bd326ba98d1fb3, 0x83b199995da548ad) }, // 2799
+ { cat(0x75913092420c9b35, 0x5b7977525516bff1), cat(0xc230f522ee0a7fc2, 0xcfc147ade4843a24) }, // 2800
+ { cat(0xc47426db680a15c4, 0x492df90eaa78998e), cat(0x9b5a5db58b3b9968, 0xa6343957ea0361b6) }, // 2801
+ { cat(0x6d86a492401022d3, 0xa8498e7ddd8dc27c), cat(0xf89095ef452c28a7, 0x70538ef310056924) }, // 2802
+ { cat(0xf13883a833401bdc, 0x86a13ecb17a49b97), cat(0xc6da118c375686ec, 0x59dc725c0cd120e9) }, // 2803
+ { cat(0xc0fa02ecf5cce316, 0xd21a98a279507c79), cat(0x9f14dad692ab9f23, 0x7b16c1e33d741a54) }, // 2804
+ { cat(0x9b299e47efae3824, 0x835dc103f54d93f4), cat(0xfe87c48a8445cb6b, 0xf824696b95869087) }, // 2805
+ { cat(0x15bae50659582cea, 0x02b167365dd7a990), cat(0xcb9fd06ed037d5ef, 0xf9b6babc779eda06) }, // 2806
+ { cat(0xde2f1d9eade023ee, 0x688dec2b7e462140), cat(0xa2e64058a693118c, 0xc7c562305fb24804) }, // 2807
+ { cat(0xb1bf4ae557e68325, 0x207189bc6504e767), cat(0x8251cd13b875a7a3, 0xd3044e8d195b6cd0) }, // 2808
+ { cat(0x4f9877d55970d1d5, 0x00b5a92d6e6e3f0a), cat(0xd082e1b92722a5d2, 0xeb3a1748289247b4) }, // 2809
+ { cat(0x0c79f9777ac0a7dd, 0x9a2aedbdf1f1cc08), cat(0xa6cf1afa85b55175, 0x88fb45d353a8395d) }, // 2810
+ { cat(0x3d2e612c6233b97e, 0x14ef2497f4c17007), cat(0x85727bfb9e2aa791, 0x3a629e42a9536117) }, // 2811
+ { cat(0x61e3cead69ec5bfc, 0xee4b6dbfee024cd7), cat(0xd583f99296aaa5b5, 0x2a37639ddbb89b58) }, // 2812
+ { cat(0x81830bbdee56affd, 0x8b6f8afff19b70ac), cat(0xaacffadbabbbb7c4, 0x21c5e94b162d4913) }, // 2813
+ { cat(0x679c0964beabbffe, 0x092608ccc14926f0), cat(0x88a66249562fc636, 0x816b2108de8aa0dc) }, // 2814
+ { cat(0xa5c6756dfddf9996, 0x7509a7ae020ea4b3), cat(0xdaa3d07556b2d6bd, 0x9bde9b4164110160) }, // 2815
+ { cat(0xb7d1f78b317fae11, 0xf73aec8b34d883c3), cat(0xaee973911228abca, 0xe3187c34500d9ab3) }, // 2816
+ { cat(0x5fdb2c6f5acc8b41, 0x92958a08f7139c9c), cat(0x8bedf60da820896f, 0x1c139690400ae229) }, // 2817
+ { cat(0x995ead7ef7adab9c, 0x1dbc100e581f60f9), cat(0xdfe323490d00dbe4, 0xf9b8f0e6ccde36a8) }, // 2818
+ { cat(0xade55798c6248949, 0xb163400b79b2b3fb), cat(0xb31c1c3a70cd7cb7, 0x2e2d8d8570b1c553) }, // 2819
+ { cat(0x57eaac7a381d3aa1, 0x5ab5ccd5faf55cc9), cat(0x8f49b02ec0a463c5, 0xbe8ad79df3c16aa9) }, // 2820
+ { cat(0x26444729f361f768, 0x9122e1565e556141), cat(0xe542b37e01070609, 0x30de25c986024442) }, // 2821
+ { cat(0xeb69d287f5e7f920, 0x741be7784b778101), cat(0xb7688f9800d26b3a, 0x8d7e84a13801d034) }, // 2822
+ { cat(0xef87db9ff7ecc74d, 0x29afec603c5f9a67), cat(0x92ba0c799a41ef62, 0x0acb9d4dc667d9c3) }, // 2823
+ { cat(0x18d95f66597ad87b, 0x75e647006098f70b), cat(0xeac34728f6cfe569, 0xaadf62160a3fc2d3) }, // 2824
+ { cat(0x7a477f85146246c9, 0x2b1e9f33807a5f3c), cat(0xbbcf6c20c5731dee, 0x224c4e7808330242) }, // 2825
+ { cat(0xc83932d0dd1b6bd4, 0x227ee5c2cd2eb297), cat(0x963f89b3d128e4be, 0x81d6a52cd35c01ce) }, // 2826
+ { cat(0x0d28514e2e924620, 0x37316f9e15178424), cat(0xf065a91fb50e3aca, 0x69576eae1ef99c7e) }, // 2827
+ { cat(0x70ed0dd82541d1b3, 0x5f5abfb1aa793683), cat(0xc05154195da4fbd5, 0x2112bef1b26149fe) }, // 2828
+ { cat(0xf3f0d7e01dce415c, 0x4c48995aeec75ecf), cat(0x99daa9ade483fcaa, 0x80dbcbf48eb43b31) }, // 2829
+ { cat(0x531af3002fb06893, 0xad40f55e4ad897b2), cat(0xf62aa9163a6cc777, 0x3492dfedb1205eb6) }, // 2830
+ { cat(0x0f48c2668c8d2076, 0x2433f77ea246dfc2), cat(0xc4eeedab61f09f92, 0x90757ff15a804bc5) }, // 2831
+ { cat(0x72a09b853d3db391, 0xb68ff9321b6be635), cat(0x9d8bf155e7f3b2db, 0xa6c4665aaecd096a) }, // 2832
+ { cat(0x5100f8d52ec91f4f, 0x8a7ff51cf8aca387), cat(0xfc131bbca652b7c5, 0xd7a0a3c44ae1a8aa) }, // 2833
+ { cat(0x40cd93ddbf074c3f, 0xa1fff74a608a1c6c), cat(0xc9a8e2fd51dbc637, 0xdfb3b636a24e2088) }, // 2834
+ { cat(0xcd714317cc05d699, 0x4e665f6eb3a1b057), cat(0xa153e8caa7e304f9, 0x7fc2f82bb50b4d39) }, // 2835
+ { cat(0x0ac102797004abad, 0xd851e5f2294e26ac), cat(0x810fed6eecb59d94, 0x663593562a6f70fb) }, // 2836
+ { cat(0x446803f580077916, 0x26e96fe9dbb03ddf), cat(0xce7fe24b1455c8ed, 0x7055b889dd7f1b2b) }, // 2837
+ { cat(0xd053365e0005fa78, 0x1f212654afc03180), cat(0xa5331b6f4377d3f1, 0x26aafa07e465af55) }, // 2838
+ { cat(0x7375c5180004c860, 0x18e751dd59668e00), cat(0x8428e2bf692ca98d, 0xb888c80650515911) }, // 2839
+ { cat(0x52560826666e0d66, 0x8e3ee96228a41666), cat(0xd3749dff0eaddc15, 0xf40e0cd6e6e88e82) }, // 2840
+ { cat(0x41de6ceb8524d785, 0x3e98bab4ed5011eb), cat(0xa92a17ff3ef17cde, 0x5cd80a458586d868) }, // 2841
+ { cat(0xce4b8a56041d7937, 0x6546fbc3f10cdb23), cat(0x8754dfff658dfd7e, 0xb0acd5046ad246b9) }, // 2842
+ { cat(0xb078dd566cfbf525, 0x6ed7f93981ae2b6a), cat(0xd887cccbd5affbfd, 0xe77aee6d77b6d78f) }, // 2843
+ { cat(0xc060b111f0c990ea, 0xbf132dc79af1bc55), cat(0xad3970a311599664, 0xb92f25245fc5793f) }, // 2844
+ { cat(0x33808da7f3d473ee, 0xff428b06158e3044), cat(0x8a945a1c0de1451d, 0x60f2841d196ac766) }, // 2845
+ { cat(0xec00e2a652ed864b, 0x320411a355b04d3a), cat(0xddba29c67c9ba1c8, 0x9b1da02e8f113f09) }, // 2846
+ { cat(0x2333e8850f246b6f, 0x5b367482aaf370fb), cat(0xb161bb05307c816d, 0x48e480253f40ff3b) }, // 2847
+ { cat(0xb5c3206a72838925, 0xe291f6ceef29272f), cat(0x8de7c8d0f396cdf1, 0x071d3350ff673295) }, // 2848
+ { cat(0xef9e9a43ea6c0ea3, 0x041cbe17e50ea518), cat(0xe30c748185be164e, 0x71c8521b323eb755) }, // 2849
+ { cat(0xf2e5483655233ee8, 0xd016fe79840bb747), cat(0xb5a390679e31ab71, 0xf4a041af5b655f77) }, // 2850
+ { cat(0x5beaa02b774f6587, 0x0cdf31fad0095f6c), cat(0x914fa6b94b5aef8e, 0x5d4d015915eab2c6) }, // 2851
+ { cat(0xc6443378bee56f3e, 0x7afeb65e19a898ac), cat(0xe87f712878917f4a, 0x2ee19bc1bcaab7a3) }, // 2852
+ { cat(0x6b69c2c6ff1df298, 0x62655eb1ae207a23), cat(0xb9ff8db9fa0dff6e, 0x8be7afce308892e9) }, // 2853
+ { cat(0xbc549bd265b18ee0, 0x4eb77ef48b4d2e83), cat(0x94cc716194d7ff8b, 0xa31fbfd826d3a8ba) }, // 2854
+ { cat(0xfa20f950a2b5b166, 0xe458cb20dee1e404), cat(0xee13e89c215998df, 0x6b65ffc03e1f745d) }, // 2855
+ { cat(0xfb4d9440822af452, 0x504708e718b4b66a), cat(0xbe7653b01aae13e5, 0xef84cc99cb4c5d17) }, // 2856
+ { cat(0x2f714366ce88c375, 0x0d05a0b8e09091ee), cat(0x985ea959aef1a984, 0xbf9d707b0909e413) }, // 2857
+ { cat(0x18b538a47da79f21, 0xae6f678e341a8317), cat(0xf3caa88f7e4f75a1, 0x329580c4db430685) }, // 2858
+ { cat(0xad5dc6e9fe1fb281, 0x58591fa4f67b9c12), cat(0xc30886d931d92ae7, 0x5baacd6a49026b9d) }, // 2859
+ { cat(0xbde49f2198195b9a, 0xad141950c52fb00f), cat(0x9c06d2475b142252, 0xafbbd7883a685617) }, // 2860
+ { cat(0x963a9835c0289291, 0x14ecf54e084c4ce4), cat(0xf9a483a55e869d51, 0x192c8c0d2a4089bf) }, // 2861
+ { cat(0x44fbacf7cced420d, 0xaa572aa4d3703d83), cat(0xc7b6cfb77ed21774, 0x1423a33dbb66d499) }, // 2862
+ { cat(0x6a62f0c63d8a9b3e, 0x21df5550a926979c), cat(0x9fc572f93241ac5c, 0xdce94f6495ebdd47) }, // 2863
+ { cat(0x43d1813d2f442b96, 0x9c9888810ea425c7), cat(0xffa2518eb6cf7a2e, 0x2e4218a0efdfc872) }, // 2864
+ { cat(0x6974676425d022de, 0xe3ad3a00d883516c), cat(0xcc81dad8923f94f1, 0xbe9b46e7264ca05b) }, // 2865
+ { cat(0x2129ec501e401be5, 0x82f0fb33e0690df0), cat(0xa39b157a0e9943f4, 0x987c38b8eb708049) }, // 2866
+ { cat(0x80ee56a67e99afea, 0xcf272f5cb3873e5a), cat(0x82e27794d87a9cc3, 0xad302d60bc5a003a) }, // 2867
+ { cat(0xce4a243d975c4caa, 0xe50b7efab8d863c2), cat(0xd16a58ee272a946c, 0x484d156793c33390) }, // 2868
+ { cat(0x0b6e83647916a3bb, 0xea6f98c893e04fcf), cat(0xa7884724ec221056, 0xa03daab943028fa7) }, // 2869
+ { cat(0xa2becf8394121c96, 0x552613d3a9803fd9), cat(0x86069f50bce80d12, 0x19caeefa9c020c85) }, // 2870
+ { cat(0xd1314c05b9b69423, 0xbb701fb90f33995b), cat(0xd670fee794a67b50, 0x2944b190f99ce0d5) }, // 2871
+ { cat(0xa75aa337c7c5434f, 0xc9267fc73f5c7aaf), cat(0xab8d98b943b862a6, 0x876a27a72e171a44) }, // 2872
+ { cat(0xb9154f5fd30435d9, 0x6db86638ff7d2ef2), cat(0x893e13c769604eeb, 0x9f881fb8f1ac1503) }, // 2873
+ { cat(0xf4eee5661e6d22f5, 0x7c5a3d27ff2eb184), cat(0xdb96860bdbcd4b12, 0x98d9cc5b1c468805) }, // 2874
+ { cat(0xf7258451b1f0e8c4, 0x637b641fff588e03), cat(0xafab9e6fe30aa275, 0x4714a37c169ed337) }, // 2875
+ { cat(0xc5b79d0e27f3ed69, 0xe92f834ccc46d802), cat(0x8c894b8cb5a21b91, 0x05aa1c63454bdc2c) }, // 2876
+ { cat(0x6f8c2e7d0cb97bdc, 0xa84c0547ad3e266a), cat(0xe0dbac1455d02c1b, 0x3c43609ed5462d14) }, // 2877
+ { cat(0xbfa358640a2dfcb0, 0x86a3376c8a981ebb), cat(0xb3e2f01044a689af, 0x63691a18aa9e8a76) }, // 2878
+ { cat(0x994f79e9a1be63c0, 0x6bb5c5f06ee01896), cat(0x8fe8c00d03b86e25, 0xe920e1ad554ba1f8) }, // 2879
+ { cat(0x8ee58fdc35fd6c67, 0x12bc6fe717ccf423), cat(0xe641334805f3e36f, 0xdb67cf7bbbac365a) }, // 2880
+ { cat(0xa5847316919789ec, 0x0efd26527970c34f), cat(0xb83429066b2982bf, 0xe2b972c962f02b7b) }, // 2881
+ { cat(0x1e038f45414607f0, 0x0bfdb841fac09c3f), cat(0x935ced9ebc213566, 0x4efac23ab58cef96) }, // 2882
+ { cat(0x3005b20868700cb3, 0x4662c06991342d32), cat(0xebc7e29793685570, 0x7e5e0391227b18f0) }, // 2883
+ { cat(0x8cd15b39ed26708f, 0x6b823387a75cf0f5), cat(0xbc9fe87942b9ddf3, 0x984b360db52f4726) }, // 2884
+ { cat(0x3d7448fb241ec072, 0xbc68293952b0c0c4), cat(0x96e6539435617e5c, 0x79d5c4d7c425d285) }, // 2885
+ { cat(0x6253a7f839cacd84, 0x60a6a85bb781346d), cat(0xf17085b9ef0263c7, 0x295607bfa03c8408) }, // 2886
+ { cat(0x4ea9532cfb08a469, 0xe6ebb9e2f93429f1), cat(0xc126d1618c01e96c, 0x21119fcc803069a0) }, // 2887
+ { cat(0xa554428a626d5054, 0xb8bc94b59429bb27), cat(0x9a85744e099b2123, 0x4da7b30a0026bae6) }, // 2888
+ { cat(0x0886d0dd6a488087, 0x8dfa8788ed0f91d8), cat(0xf73bed49a8f83505, 0x490c51a999d79171) }, // 2889
+ { cat(0xd39f0d7deea066d2, 0xd7fb9fa0bda60e46), cat(0xc5c98aa153f9c404, 0x3a7041547b12dac0) }, // 2890
+ { cat(0xdc7f3dfe58805242, 0x4662e61a3151a505), cat(0x9e3ad54ddcc7d003, 0x61f36776c8dbe233) }, // 2891
+ { cat(0x2d9863308d9a1d36, 0xd704a35d1bb5d4d5), cat(0xfd2aeee2fad94cd2, 0x36523f2474930386) }, // 2892
+ { cat(0xbe13828d3e14e42b, 0xdf36e917495e43dd), cat(0xca88bf1bfbe10a41, 0xc50e98e9f6dc02d1) }, // 2893
+ { cat(0x980f9ba431aa5023, 0x18f8ba79077e9cb1), cat(0xa206ff49964da1ce, 0x373ee0bb2be33574) }, // 2894
+ { cat(0x133fafb68e21d9b5, 0xad93c860d2cbb08e), cat(0x819f32a1450ae7d8, 0x2c324d628982912a) }, // 2895
+ { cat(0xeb991924169c8f89, 0x15b9409aeadf80e3), cat(0xcf651dced4de3fc0, 0x46b6e237426a81dc) }, // 2896
+ { cat(0x894747501216d93a, 0x77c766e2557f9a4f), cat(0xa5ea7e3f10b1cc99, 0xd22be82c3522017d) }, // 2897
+ { cat(0x6dd29f7341abe0fb, 0x9305ebe84466150c), cat(0x84bb983273c1707b, 0x0e898689c41b3464) }, // 2898
+ { cat(0x4950ff1ecf7967f8, 0xeb3caca6d3d68813), cat(0xd45f59ea52cf1a5e, 0x7da8d742d35eba3a) }, // 2899
+ { cat(0xd440cc18a5fab993, 0xef63bd5243120676), cat(0xa9e5e188423f484b, 0x97ba45cf0f7efb61) }, // 2900
+ { cat(0x436709ad51956143, 0x25e96441cf419ec5), cat(0x87eb1ad36832a03c, 0x7961d17272cbfc4e) }, // 2901
+ { cat(0xd23e75e21c223538, 0x3ca8a0694b9c313a), cat(0xd9782aebd9ea99fa, 0x5bcfb583eadffa16) }, // 2902
+ { cat(0x41cb9181b01b5dc6, 0x96ed4d210949c0fc), cat(0xadf9bbefe1887b2e, 0xafd95e03224cc812) }, // 2903
+ { cat(0x34a2dace267c4b05, 0x458aa41a6dd49a63), cat(0x8b2e2ff31ad395be, 0xf3144b35b50a39a8) }, // 2904
+ { cat(0x21049149d72d44d5, 0x3c110690afba909e), cat(0xdeb04cb82aec22cb, 0x1e86debc54dd290d) }, // 2905
+ { cat(0xe736daa178f103dd, 0xc9a73873bfc873b2), cat(0xb226a3c688bce8a2, 0x7ed24bc9dd7dba70) }, // 2906
+ { cat(0x85c57bb460c0cfe4, 0xa152938fcca05c8e), cat(0x8e854fd206fd86e8, 0x6575096e4acafb8d) }, // 2907
+ { cat(0x3c6f2c53ce014ca1, 0x021db8e61433c74a), cat(0xe4087fb67195a4a7, 0x08bb424a1144c5af) }, // 2908
+ { cat(0x3058f0430b343d4d, 0x9b4afa51a9c305d5), cat(0xb66d32f85ade1d52, 0x6d629b6e7437048c) }, // 2909
+ { cat(0x59e0c035a290310a, 0xe2a261daee359e44), cat(0x91f0f5937be4e441, 0xf11baf8b902c03a3) }, // 2910
+ { cat(0xc30133890419e811, 0x6a9d695e49ef63a0), cat(0xe98188ebf96e3a03, 0x1b5f7f45b3799f6b) }, // 2911
+ { cat(0x359a8fa0d014b9a7, 0x887dede507f2b619), cat(0xbace07232df1c802, 0x7c4c65d15c614c56) }, // 2912
+ { cat(0x914872e70cdd6152, 0xd397f184065bc4e1), cat(0x95719f4f57f4a001, 0xfd09eb0de38109de) }, // 2913
+ { cat(0x4eda5171ae2f021e, 0x1f59826cd6f93b02), cat(0xef1c32188cba999c, 0xc80fde7c9f34dc97) }, // 2914
+ { cat(0x72484127be8c01b1, 0xb2ae01f0abfa959b), cat(0xbf49c1ad3d62147d, 0x6cd97eca18f716df) }, // 2915
+ { cat(0xc1d36752fed667c1, 0x5bbe67f3bcc877af), cat(0x9907ce24311b4397, 0x8a4798a1ad9278b2) }, // 2916
+ { cat(0x361f0bb7fe23d935, 0x5f970cb92e0d8c4b), cat(0xf4d949d381c538f2, 0x76d8f435e283f451) }, // 2917
+ { cat(0xc4e5a2f9981cadc4, 0x4c78d6fa8b3e09d6), cat(0xc3e107dc67d0fa5b, 0x924729c4b5365d0d) }, // 2918
+ { cat(0xd0b7b59479b08b03, 0x7060abfba29807df), cat(0x9cb40649eca72eaf, 0xa838ee36f75eb0d7) }, // 2919
+ { cat(0x8125ef53f5e744d2, 0x4d6779929dc00c97), cat(0xfab9a3a97aa5177f, 0x738e49f18bcab48c) }, // 2920
+ { cat(0x341e590ff7ec370e, 0xa452c7a87e333d46), cat(0xc89482edfbb745ff, 0x8fa507f46fd55d3d) }, // 2921
+ { cat(0x29b1e0d993235f3e, 0xe9dbd2ed31c2976b), cat(0xa076cf24c95f6b32, 0xd950d329f3111764) }, // 2922
+ { cat(0xee27e71475b5e5cb, 0xee49758a8e3545ef), cat(0x805f0c1d6de5ef5b, 0xe10d75bb28da791c) }, // 2923
+ { cat(0x16a63e8722bca2df, 0xe3a8bc10e3886fe5), cat(0xcd64e02f163cb22c, 0x9b48bc5ea7c3f4fb) }, // 2924
+ { cat(0xdeeb6538e896e8b3, 0x1c86fcda4fa05984), cat(0xa450b358de96f4f0, 0x7c3a304bb96990c8) }, // 2925
+ { cat(0x7f22b760ba1253c2, 0x7d38ca483fb37ad0), cat(0x8373c2ad7edf2a59, 0xfcfb59d62dee0d6d) }, // 2926
+ { cat(0x31d12567901d52d0, 0xc85add4065ebf7b3), cat(0xd252d11597cb76f6, 0x61922956afe348af) }, // 2927
+ { cat(0x5b0db7860ce44240, 0xa048b100518992f6), cat(0xa84240de13092bf8, 0x4e0e87788cb5d3bf) }, // 2928
+ { cat(0x7c0af9380a503500, 0x803a2733746e0f2b), cat(0x869b67180f3a8993, 0x71a5392d3d5e42ff) }, // 2929
+ { cat(0x2cde5b8cdd4d219a, 0x66c371ebed7ce512), cat(0xd75f0b59b1f74285, 0x82a1f5152efd37ff) }, // 2930
+ { cat(0x5718493d7dd74e15, 0x1f02c1898aca50db), cat(0xac4c09148e5f686a, 0xcee7f74425975fff) }, // 2931
+ { cat(0x78e03a9797df71aa, 0x7f3567a13bd50d7c), cat(0x89d66daa0b7f86bb, 0xd8b9929ceadf7fff) }, // 2932
+ { cat(0x5b005dbf596582aa, 0x65223f685fbb48c6), cat(0xdc8a49101265a45f, 0xc128ea94aaff3332) }, // 2933
+ { cat(0x1599e49914513555, 0x1db4ff86b2fc3a38), cat(0xb06ea0d9a851504c, 0x9a87221088cc28f5) }, // 2934
+ { cat(0xaae183ada9da9110, 0xe490cc6bc26361c7), cat(0x8d254d7aed0dd9d6, 0xe205b4da0709ba5d) }, // 2935
+ { cat(0x449c05e2a95db4e7, 0xd41ae0ac6a389c71), cat(0xe1d548c4ae7c8fbe, 0x366f87c33e75f6fc) }, // 2936
+ { cat(0x6a166b1bbab15d86, 0x4348b3bd21c6e38e), cat(0xb4aaa09d5863a631, 0xc5260635cb919263) }, // 2937
+ { cat(0x21ab88e2fbc1179e, 0x9c3a29641b0582d8), cat(0x9088807de04fb827, 0xd0eb382b094141e9) }, // 2938
+ { cat(0x02ac0e37f934f297, 0x605d0f0691a26af3), cat(0xe740cd9633b2c03f, 0xb4ab8d11a8686975) }, // 2939
+ { cat(0x9bbcd82cc75d8edf, 0x804a726ba7b5225c), cat(0xb900a478295bccff, 0xc3bc70daed20545d) }, // 2940
+ { cat(0xafca468a3917a57f, 0x99d528561fc41b7d), cat(0x94008393544970cc, 0x9c96c0af2419dd17) }, // 2941
+ { cat(0x4c76d7438e8c3bff, 0x5c884089cc6cf8c7), cat(0xeccd9f5220758147, 0x60f1344b6cf62e8c) }, // 2942
+ { cat(0x3d2bdf693ed69665, 0xe3a033a170572d6c), cat(0xbd714c41b3913439, 0x1a5a903c572b5870) }, // 2943
+ { cat(0xfdbcb2ba98abab84, 0xb619c2e78d128abd), cat(0x978dd69af60dc360, 0xe1e20cfd1289138c) }, // 2944
+ { cat(0x95fab790f445df3a, 0xbcf604a5ae84112e), cat(0xf27c8a9189af9f01, 0x6969ae61b741b8e1) }, // 2945
+ { cat(0xab2ef940c36b18fb, 0xca5e6a1e25367425), cat(0xc1fd3ba7a1594c01, 0x2121584e2c3493e7) }, // 2946
+ { cat(0x88f261009c55ad96, 0x3b7ebb4b50f85ceb), cat(0x9b30fc861aadd667, 0x4db446a4f02a0fec) }, // 2947
+ { cat(0x4183ce67608915bd, 0x2bfdf878818d6177), cat(0xf84e60d6911623d8, 0x7c53a43b19dce647) }, // 2948
+ { cat(0x346971ec4d3a77ca, 0x8997f9fa013de793), cat(0xc6a51a4540de8313, 0x96a9502f47e3eb6c) }, // 2949
+ { cat(0xf6bac189d761f96e, 0xd47994c800fe52dc), cat(0x9eea7b6a9a4b9c0f, 0xabbaa68c398322bc) }, // 2950
+ { cat(0xf12acf42f2365be4, 0x8728ee0cce63b7c6), cat(0xfe43f8aa9078f9b2, 0xac5dd746c26b6ac7) }, // 2951
+ { cat(0x8dbbd9025b5eafea, 0x05ba580a3eb62c9e), cat(0xcb6993bba6c72e28, 0x89e4ac389b892239) }, // 2952
+ { cat(0xa496473515e55988, 0x0495133b655e8a18), cat(0xa2badc961f05be86, 0xd4b6f02d493a81c7) }, // 2953
+ { cat(0x507838f744b77ad3, 0x36dda8fc51186e7a), cat(0x822f16de7f37cb9f, 0x109259bdd42ece39) }, // 2954
+ { cat(0x1a59f4bed458c485, 0x2495db2d4e8d7d90), cat(0xd04b57ca65261298, 0x1a83c2c9537e16c2) }, // 2955
+ { cat(0x7b7b2a32437a36d0, 0xea117c243ed797a6), cat(0xa6a2aca1ea84dbac, 0xe203023aa931abce) }, // 2956
+ { cat(0xfc62882835fb5f0d, 0x880dfce9cbdfac85), cat(0x854ef081886a4957, 0x1b359b6220f48971) }, // 2957
+ { cat(0x2d6a7373899231af, 0x4016617612ff7a6e), cat(0xd54b1a68da43a88b, 0x5ebc2bd034ba7583) }, // 2958
+ { cat(0x57885c5c6e0e8e25, 0xccdeb45e75992ebf), cat(0xaaa27b871502ed3c, 0x4bc9bca690952acf) }, // 2959
+ { cat(0xdfa049e38b3ed81e, 0x3d7ef6b1f7adbeff), cat(0x8881fc6c10cf2430, 0x3ca163b873aa88a5) }, // 2960
+ { cat(0x99007638decaf363, 0x9597f11cbf7c64cb), cat(0xda6993e01ae506b3, 0x94356c5a52aa743c) }, // 2961
+ { cat(0x473391c718a25c4f, 0xaadff416ff96b709), cat(0xaebadcb348b7388f, 0xa9c456aea8885cfd) }, // 2962
+ { cat(0xd28fa7d27a1b7d0c, 0x88b329abffabc5a1), cat(0x8bc8b08f6d5f6072, 0xee36abbeed39e3fd) }, // 2963
+ { cat(0xb74c3fb729c594e0, 0xdab842accc460901), cat(0xdfa780e57bcbcd84, 0xb05779317b8fd32f) }, // 2964
+ { cat(0x2c3cffc5bb04771a, 0x4893688a3d04d401), cat(0xb2ec671dfca30ad0, 0x8d12c75ac93fdc26) }, // 2965
+ { cat(0x56973304959d2c15, 0x06dc53a1ca6a4334), cat(0x8f2385b196e8d573, 0xa40f05e23a997ceb) }, // 2966
+ { cat(0x575851a0ef61e021, 0xa493b902dd76d1ec), cat(0xe505a2b5be415585, 0xd34b3c9d2a8f2e45) }, // 2967
+ { cat(0xac46a7b3f2b4b34e, 0x1d42fa68b12bdb24), cat(0xb737b55e31cdde04, 0xa908fd4a88728b6a) }, // 2968
+ { cat(0x236bb95cc22a290b, 0x4a9bfb86f42315b6), cat(0x9292f77e8e3e4b36, 0xeda0caa206c20922) }, // 2969
+ { cat(0x6bdf8efad04374de, 0xddc65f3e536b55f0), cat(0xea84bf30e396debe, 0x4901443671367503) }, // 2970
+ { cat(0xefe60bfbd9cf90b2, 0x4b0518fea922ab27), cat(0xbb9d65c0b6124bcb, 0x6d9a9cf85a91f735) }, // 2971
+ { cat(0x5984d66314a60d5b, 0x6f37473220e888ec), cat(0x9617849a2b41d63c, 0x57aee3f9e20e5f5e) }, // 2972
+ { cat(0xc26e23d1baa34892, 0x4b8ba51d01740e46), cat(0xf025a0f6ab9c89fa, 0x25e49ff6367d6563) }, // 2973
+ { cat(0x68581ca7c882a075, 0x093c8417345cd838), cat(0xc01e1a5eefb06e61, 0xb7ea1991c5311de9) }, // 2974
+ { cat(0x86ace3b96d354d2a, 0x6dca0345c37d79c6), cat(0x99b1aeb25959f1e7, 0xc654e1416a8db187) }, // 2975
+ { cat(0xa447d2c248554843, 0xe2dcd20938c8c2d7), cat(0xf5e91783c229830c, 0x7087cecf10e2b5a5) }, // 2976
+ { cat(0xe9d30f01d3776d03, 0x1be3db3a93d3cf12), cat(0xc4ba793634ee0270, 0x5a063f0c0d822aea) }, // 2977
+ { cat(0x87dc0c0175f92402, 0x7cb648fba9763f42), cat(0x9d61fa91c3f19b8d, 0x14d1cc09a4682255) }, // 2978
+ { cat(0xd9601335898ea003, 0xfabd4192a8bd3203), cat(0xfbcff74f9fe8f8e1, 0xbae94675d3d9d088) }, // 2979
+ { cat(0x7ab342913ad88003, 0x2efdce0eed642802), cat(0xc9732c3fb320c71a, 0xfbedd1f7dcae406d) }, // 2980
+ { cat(0x6229020dc8ad3335, 0xbf3171a58ab68668), cat(0xa128f032f5b3d27b, 0xfcbe419316f1cd24) }, // 2981
+ { cat(0x1b5401a4a08a8f5e, 0x328df4846ef86b87), cat(0x80ed8cf5915ca863, 0x30983475abf4a41d) }, // 2982
+ { cat(0xc55335d43410e563, 0x8416540717f3df3e), cat(0xce48e188e894409e, 0xb426ba55dfedd361) }, // 2983
+ { cat(0x04429176900d844f, 0x9cdea99f465cb298), cat(0xa5071ad3ed4366e5, 0x5cebc844b324a91b) }, // 2984
+ { cat(0x0368745ed9a469d9, 0x4a4bbae5d1e3c213), cat(0x8405af0ff102b8b7, 0x7d896d03c283ba7c) }, // 2985
+ { cat(0x9f0d86fe29070fc2, 0x10792b094fd2d01e), cat(0xd33c4b4cb4d1278b, 0xfc0f14d2d0d2c3f9) }, // 2986
+ { cat(0xe5a46bfe8738d968, 0x0d2dbc07730f0ce5), cat(0xa8fd090a2a40ec6f, 0xfcd8dd7573dbcffa) }, // 2987
+ { cat(0xb7b6bccb9f60adec, 0xd757c99f8f3f3d84), cat(0x8730d40821cd89f3, 0x30ad7df78fe30cc8) }, // 2988
+ { cat(0xbf8ac7ac3234497a, 0xf2260f65b1fec8d3), cat(0xd84e200d02e27651, 0xe77bfcbf4c9e7ada) }, // 2989
+ { cat(0x32d56c89c1c36dfb, 0xf4eb3f848e656d76), cat(0xad0b4cd73581f841, 0x85fcca32a3b1fbe2) }, // 2990
+ { cat(0x5bddf06e349c57fc, 0xc3ef6603a51df12b), cat(0x8a6f70ac2ace6034, 0x6b30a1c21c8e631b) }, // 2991
+ { cat(0x92fcb3e387608cc7, 0x9fe57005d4fcb512), cat(0xdd7f1aad114a3387, 0x11e76936941704f8) }, // 2992
+ { cat(0xa8ca2982d2b3a3d2, 0xe651266b10ca2a75), cat(0xb1327bbda76e8f9f, 0x4185edc543459d93) }, // 2993
+ { cat(0x87082135755c830f, 0x1ea751ef40a1bb91), cat(0x8dc1fc97b9253fb2, 0x9ad18b0435d14adc) }, // 2994
+ { cat(0x0b4035225560d1b1, 0xcaa54fe53435f8e7), cat(0xe2cffa8c5b6ecc50, 0xf7b5ab39efb54494) }, // 2995
+ { cat(0x09002a81dde70e27, 0xd5510cb75cf7fa53), cat(0xb5732ed6af8bd6a7, 0x2c9155c7f2f76a10) }, // 2996
+ { cat(0x07335534b185a4ec, 0xaaa73d5f7d932ea9), cat(0x9128f245593cabb8, 0xf074449ff592bb40) }, // 2997
+ { cat(0x0b8555211c0907e1, 0x110b956595b84aa7), cat(0xe84183a2286112c1, 0x80ba076655b79200) }, // 2998
+ { cat(0x0937774db0073980, 0xda6faab7aaf9d553), cat(0xb9ce02e8204da89a, 0xcd619f85115fa800) }, // 2999
+ { cat(0x075f92a48cd29467, 0x1526222c88c7dddc), cat(0x94a4cf2019d7ba15, 0x711ae6040de62000) }, // 3000
+ { cat(0xa565b76dae1dba3e, 0x883d037a7472fc93), cat(0xedd47e99c2f2c355, 0x81c4a339afd69999) }, // 3001
+ { cat(0xb78492be24e494fe, 0xd36402c85d28ca0f), cat(0xbe43987b025bcf77, 0x9b03b5c7bfdee147) }, // 3002
+ { cat(0xf936dbcb50b6dd98, 0xa91ccf06b0ed6e72), cat(0x983613959b7ca5f9, 0x48cfc49fccb24dd2) }, // 3003
+ { cat(0x8ebe2c78812495c1, 0x0e947e711b157d84), cat(0xf389b8ef5f2dd65b, 0xa7b2d432e11d4951) }, // 3004
+ { cat(0xd89823939a83ab00, 0xd876cb8daf446469), cat(0xc2d493f2b28b11e2, 0xec8f1028b4176dda) }, // 3005
+ { cat(0xad4682dc7b9c88cd, 0x79f8a2d7bf69e9ee), cat(0x9bdd43288ed5a7e8, 0xbd3f40209012be48) }, // 3006
+ { cat(0x7ba40493f8fa747b, 0xf65a9e25ff0fdcb0), cat(0xf962050db155d974, 0x61fecd00e68463a7) }, // 3007
+ { cat(0x961cd07660c85d2f, 0xf8487e84cc0cb08d), cat(0xc7819da48dde4790, 0x4e6570cd8536b61f) }, // 3008
+ { cat(0xde7d7391e706b0f3, 0x2d06cb9d700a26d7), cat(0x9f9ae483a4b1d2d9, 0xd851270ad0f891b2) }, // 3009
+ { cat(0x63fbec1ca4d78185, 0x14d7ac2f19a9d7be), cat(0xff5e3a6c3ab61e29, 0x5a1b71aae7f41c51) }, // 3010
+ { cat(0x4ffcbce3b712ce04, 0x10ac89bf47bb12ff), cat(0xcc4b61f02ef81821, 0x14e2c155865ce374) }, // 3011
+ { cat(0x3ffd63e95f423e69, 0xa6f06e329fc8dbff), cat(0xa36f818cf260134d, 0xaa4f0111384a4f90) }, // 3012
+ { cat(0xcccab6544c34feba, 0xebf38b5bb3071666), cat(0x82bf9ad7284cdc3e, 0x21d8cda7603b72d9) }, // 3013
+ { cat(0x47aabd53ad219791, 0x7985abc5eb3e8a3c), cat(0xd1329158407af9fd, 0x02f47c3f005f1e29) }, // 3014
+ { cat(0x6c889776241adfa7, 0x946aefd188fed4fd), cat(0xa75ba779cd2f2e64, 0x025d303266b27e87) }, // 3015
+ { cat(0xbd3a12c4e9af1952, 0xdd2259746d98aa64), cat(0x85e2ec6170f28b83, 0x351759c1ebc1fed2) }, // 3016
+ { cat(0xc85cead4a9182884, 0x9503c253e28ddd6d), cat(0xd637e09be7ea78d1, 0xee8bc2cfdf9ccaea) }, // 3017
+ { cat(0xa04a5576edaced36, 0xdd9c9b764ed7e457), cat(0xab5fe6e31feec70e, 0x586fcf0cb2e3d588) }, // 3018
+ { cat(0x19d5112bf157242b, 0xe47d492b72465046), cat(0x891985827ff238d8, 0x46bfd8d6f583113a) }, // 3019
+ { cat(0xf621b5131bbea046, 0x3a620eabea0a1a09), cat(0xdb5c08d0ccb6c15a, 0x0acc8e24bc04e85c) }, // 3020
+ { cat(0xf81af7427c988038, 0x2eb4d889880814d4), cat(0xaf7cd3da3d5f0114, 0xd57071b6fcd0b9e3) }, // 3021
+ { cat(0x6015929b96e06693, 0x5890ad3ad339aa43), cat(0x8c63dcae977f3410, 0xaac05af8ca4094b6) }, // 3022
+ { cat(0x99bc1dc5be33d752, 0x274de1f7b85c439e), cat(0xe09fc77dbf31ece7, 0x779a2b27aa00edf0) }, // 3023
+ { cat(0x47c9b16afe8fdf74, 0xec3e4e5fc6b03618), cat(0xb3b305fe328e571f, 0x92e1bc1fbb33f18d) }, // 3024
+ { cat(0xd307c122653fe5f7, 0x23650b7fd22691ad), cat(0x8fc26b31c20b78e6, 0x0f1afce62f5cc13d) }, // 3025
+ { cat(0xb80c683708663cbe, 0x9f0812661d0a82af), cat(0xe603deb603458e3c, 0xe4f7fb09e561352f) }, // 3026
+ { cat(0x2cd6b9c5a051ca32, 0x18d341eb4a6ecef2), cat(0xb80318919c37a4fd, 0x83f995a1844dc426) }, // 3027
+ { cat(0xbd78949e19db0828, 0x13dc34bc3b8bd8c2), cat(0x9335ad4149c61d97, 0x9cc7aae79d0b0351) }, // 3028
+ { cat(0x625a87635c91a6a6, 0x862d212d2c12f469), cat(0xeb89153542d695bf, 0x613f77d8fb44d21c) }, // 3029
+ { cat(0xb515391c4a0e1eeb, 0x9e8a80f0f00f29ee), cat(0xbc6daa9102454499, 0x1a992cad95d0a816) }, // 3030
+ { cat(0x2a7760e36e71b256, 0x186ecd8d8cd8ee58), cat(0x96be220d9b6a9d47, 0x487a8a2477da2012) }, // 3031
+ { cat(0xdd8bce38b0b5ea23, 0x5a4ae27c148e4a26), cat(0xf130367c2bddc872, 0x0d90dd072629cce9) }, // 3032
+ { cat(0x7e0971c6f3c4bb4f, 0x7b6f1b9676d83b52), cat(0xc0f35ec9bcb16d28, 0x0ada4a6c1e87d721) }, // 3033
+ { cat(0xfe6df49f296a2f72, 0xc925afab924695db), cat(0x9a5c4bd496f45753, 0x3be1d5234b9fdf4d) }, // 3034
+ { cat(0x63e320fea8a9e584, 0x7509191283a422f8), cat(0xf6fa12edbe53beeb, 0x9302ee9edf663216) }, // 3035
+ { cat(0x1cb5b3feed54b79d, 0x2a6dada869501bf9), cat(0xc594dbf1650fcbef, 0xa8cf254be5eb5b45) }, // 3036
+ { cat(0x4a2af6658aaa2c7d, 0xbb8af15387734994), cat(0x9e10aff450d96ff2, 0xed72843cb7ef7c37) }, // 3037
+ { cat(0xa9de5708dddd13fc, 0x5f44b55272520f54), cat(0xfce77fed4e28b31e, 0x48b739fabfe5938b) }, // 3038
+ { cat(0x217eac0717e40ffd, 0x1903c441f50e72a9), cat(0xca52ccbdd8208f4b, 0x6d5f6195665142d6) }, // 3039
+ { cat(0xe798899f46500cca, 0x7a6969ce5da52888), cat(0xa1dbd6fe468072a2, 0xbde5e7aab8410244) }, // 3040
+ { cat(0xb946d47f6b733d6e, 0xc85454a517b753a0), cat(0x817cabfe9ecd2882, 0x3184b955603401d0) }, // 3041
+ { cat(0x8ed7ba6578b8624a, 0xda20876e8c5885cc), cat(0xcf2ddffdcae1da69, 0xe8d45bbbcd2002e7) }, // 3042
+ { cat(0x72462eb793c6b508, 0xae806c587046d170), cat(0xa5be4ccb08b4aebb, 0x20a9e2fca4199bec) }, // 3043
+ { cat(0xf504f22c763890d3, 0xbecd2379f36bdac0), cat(0x84983d6f3a2a2562, 0x8087e8ca1ce14989) }, // 3044
+ { cat(0x21a1837a56c0e7b9, 0x314838c31f12f79a), cat(0xd426c8b1f6a9d56a, 0x673fdadcfb020f43) }, // 3045
+ { cat(0x1ae79c61df00b960, 0xf439c7027f425fae), cat(0xa9b8a08e5eee4455, 0x1f6648b0c8ce729c) }, // 3046
+ { cat(0xaf1fb04e4c00944d, 0x902e38cecc351958), cat(0x87c6e6d84bf1d044, 0x191ea08d6d71f549) }, // 3047
+ { cat(0x4b65e6e3accdba15, 0xb37d27b146bb5bc0), cat(0xd93e3e26dfe94d39, 0xc1ca9a7be24feedc) }, // 3048
+ { cat(0x6f84b8b623d7c811, 0x5c641fc10562afcd), cat(0xadcb64ebe6543dc7, 0xce3baec981d98be3) }, // 3049
+ { cat(0xf2d093c4e9796cda, 0xb05019673782263e), cat(0x8b091d898510316c, 0xa4fc8bd467e13cb5) }, // 3050
+ { cat(0x1e1a8607dbf57af7, 0x808028a5259d09fc), cat(0xde74fc0f3b4d1be1, 0x07fa7953d9686123) }, // 3051
+ { cat(0xb1aed19fe32ac8c6, 0x006686ea847da197), cat(0xb1f7300c2f70e31a, 0x6cc8610fe1204db5) }, // 3052
+ { cat(0x5af2414cb5bbd3d1, 0x99eb9f220397b479), cat(0x8e5f59a359271c15, 0x23d380d980e6a491) }, // 3053
+ { cat(0xf7ea021455f952e8, 0xf645cb699f5920c1), cat(0xe3cbc29ef50b6021, 0xd2ec015c0171074e) }, // 3054
+ { cat(0xc654ce76ab2ddbed, 0x91d16f87b2adb3cd), cat(0xb63c9bb25da2b34e, 0x4256677ccdf405d8) }, // 3055
+ { cat(0x6b770b92228b1657, 0xa7dabf9fc2248fd8), cat(0x91ca16284ae88f71, 0xceab85fd719004ad) }, // 3056
+ { cat(0x78be78e9d0de8a25, 0xd95dff66036db2f2), cat(0xe94356a6de40e582, 0xe445a32f1c19a115) }, // 3057
+ { cat(0x93cb93ee40b2081e, 0x477e65eb35f15bf5), cat(0xba9c45524b671e02, 0x5037b5bf49ae1a77) }, // 3058
+ { cat(0x0fd60ff1cd5b39b1, 0xd2cb84bc2b277cc4), cat(0x9549d10ea2b8e4ce, 0xa692f7cc3af1aec6) }, // 3059
+ { cat(0x7fbce64faef85c4f, 0xb7ac0793783f2e06), cat(0xeedc81b1045b07b1, 0x0a84bfad2b1c4ad6) }, // 3060
+ { cat(0xcc971ea625937d0c, 0x92f0060f9365be6c), cat(0xbf16ce2736af395a, 0x6ed0995755b03bde) }, // 3061
+ { cat(0xd6df4bb81e0f973d, 0x42599e72dc516523), cat(0x98df0b529225c77b, 0x8bda1445de26964b) }, // 3062
+ { cat(0xbe3212c03018f1fb, 0x9d5c30b7c6e8a1d1), cat(0xf498121db6a2d8c5, 0xac90206fc9d756df) }, // 3063
+ { cat(0xcb5b423359ad8e62, 0xe449c0930586e7db), cat(0xc3acdb4af8824704, 0x8a0ce6bfd4ac457f) }, // 3064
+ { cat(0xd5e29b5c47be0b82, 0x503b00759e058649), cat(0x9c8a4908c6ce9f36, 0xd4d71effdd569dff) }, // 3065
+ { cat(0x23042bc6d930126a, 0x19f800bc3008d6da), cat(0xfa76db413e176524, 0x87be97ffc88a9666) }, // 3066
+ { cat(0x1c035638adc00ebb, 0x47f99a30266d78af), cat(0xc85f15cdcb45ea83, 0x9fcbaccca06edeb8) }, // 3067
+ { cat(0xb002ab608b000bc9, 0x066148268524608c), cat(0xa04c11716f6b2202, 0xe63c8a3d4d257ef9) }, // 3068
+ { cat(0xf33555e6d599a307, 0x384dd352041d1a0a), cat(0x803cdac125ef4e68, 0xb8306e9770eacbfa) }, // 3069
+ { cat(0xeb88897155c29e71, 0xf3afb88339c829a9), cat(0xcd2e2acea3187d74, 0x59e71758b4aadff7) }, // 3070
+ { cat(0x22d3a12777cee527, 0xf6262d35c7d35487), cat(0xa424ef0bb5ad3129, 0xe185ac46f6ef1993) }, // 3071
+ { cat(0xe8a94db92ca5841f, 0xf81e8a916ca9106c), cat(0x8350bf3c91575a87, 0xe79e236bf8bf47a8) }, // 3072
+ { cat(0x410ee2c1e108d366, 0x59ca774f1441b3e0), cat(0xd21acb941bbef73f, 0xd8fd05798dfed90e) }, // 3073
+ { cat(0x340be89b1a6d75eb, 0x7b085f72769af64d), cat(0xa8156fa9afcbf8ff, 0xe0ca6ac7a4cbe0d8) }, // 3074
+ { cat(0x900986e27b8ac4bc, 0x626d19285ee25ea4), cat(0x86778c87bfd660cc, 0xb3d5223950a31a46) }, // 3075
+ { cat(0xe675a49d9277a12d, 0x6a48284097d0976d), cat(0xd725ada5ffbd67ad, 0xec8836c21a9e9070) }, // 3076
+ { cat(0xb85e1d4adb92e757, 0x8839b9cd46407924), cat(0xac1e2484cc978624, 0xbd39c568154ba6c0) }, // 3077
+ { cat(0x604b4aa2494252ac, 0x6cfafb0a9e99fa83), cat(0x89b1b6d0a3ac6b50, 0x97616ab9aaa2ebcd) }, // 3078
+ { cat(0xcd454436db9d5113, 0xe19191aa975cc405), cat(0xdc4f8ae76c47121a, 0x8bcf11291104ac7b) }, // 3079
+ { cat(0x71043692494aa743, 0x1adadaeedf7d699d), cat(0xb03fa252bd05a815, 0x3ca5a7540d9d56c9) }, // 3080
+ { cat(0x8d9cf875076eec35, 0xaf157bf24c64547e), cat(0x8cffb50efd9e2010, 0xfd5152a9a47ddf07) }, // 3081
+ { cat(0xaf618d880be4ad22, 0xb1bbf983ad6d53fd), cat(0xe19921b195c9cce7, 0xfbb5510f6d9631a5) }, // 3082
+ { cat(0xbf813e066fea241b, 0xc1632e02f1244331), cat(0xb47a815ade3b0a53, 0x2fc440d9247827b7) }, // 3083
+ { cat(0x32cdcb3859881ce3, 0x011c24cf275035c1), cat(0x906201157e95a1dc, 0x26369a4750601fc6) }, // 3084
+ { cat(0x847c785a28d9c7d1, 0x9b603ae50bb38934), cat(0xe70334ef30ef6960, 0x3d242a0bb3ccffa3) }, // 3085
+ { cat(0x9d30604820ae3974, 0x7c4cfbea6fc2d42a), cat(0xb8cf5d8c2725ede6, 0x975021a2f63d994f) }, // 3086
+ { cat(0x1759e6a01a24fac3, 0x96a3fcbb8c9bdcee), cat(0x93d917a35284be52, 0x12a6814f2b647aa6) }, // 3087
+ { cat(0x8bc30a99c36e5e05, 0xbdd32df8e0f9617d), cat(0xec8e8c38840796e9, 0xb770cee5123a5dd6) }, // 3088
+ { cat(0xa3026ee169251804, 0x97dc24c71a611aca), cat(0xbd3ed6939cd2df21, 0x5f8d7250db61e4ab) }, // 3089
+ { cat(0xb59b8be78750e003, 0xacb01d6c151a7bd5), cat(0x97657876170f18e7, 0x7fa45b73e2b4b6ef) }, // 3090
+ { cat(0x55c5aca5a54e3339, 0x144cfbe021c3f955), cat(0xf23bf3f024e4f4a5, 0x9906f8b96ababe4c) }, // 3091
+ { cat(0xde37bd51510b5c2d, 0xa9d72fe681699444), cat(0xc1c98ff350b72a1e, 0x140593c788956509) }, // 3092
+ { cat(0x7e92fddaa73c49be, 0x2178f31ecdee1036), cat(0x9b07a65c40928818, 0x100476393a111da1) }, // 3093
+ { cat(0xca84c95dd86075fd, 0x025b1e97afe34d23), cat(0xf80c3d606750d9c0, 0x19a0bd285ce82f68) }, // 3094
+ { cat(0x086a3ab179e6c4ca, 0x6848e546264f70e9), cat(0xc6703119ec40ae33, 0x47b3ca86b0b9bf87) }, // 3095
+ { cat(0xa054fbc12e523708, 0x536d84381ea5f3ee), cat(0x9ec02747f033be8f, 0x6c8fd5388d616605) }, // 3096
+ { cat(0x66ee5f9b7d50580d, 0x5248d38cfdd65316), cat(0xfe003ed98052ca7f, 0x14195527489bd66f) }, // 3097
+ { cat(0xb8beb2e2caa6acd7, 0x75070fa3fe450f45), cat(0xcb33657acd0f0865, 0xa9adddb906e311f2) }, // 3098
+ { cat(0x60988f1bd55223df, 0x90d272e998373f6a), cat(0xa28f84623da5a051, 0x548b17c738b5a7f5) }, // 3099
+ { cat(0x1a13a5afdddb4fe6, 0x0d7528bae02c32bc), cat(0x820c69e831514d0d, 0xdd3c1305c6f7b991) }, // 3100
+ { cat(0x901f6f7fc95ee63c, 0xe2550df7cd13845f), cat(0xd013dca6b54ee1af, 0xc8601e6fa4bf8f4e) }, // 3101
+ { cat(0x734c5933077f1e97, 0x1b773e5fd742d04c), cat(0xa6764a1ef7724e26, 0x39e67ebfb6ffa5d8) }, // 3102
+ { cat(0xf5d6adc26c65b212, 0x7c5f65197902403d), cat(0x852b6e7f2c5b71b8, 0x2e51feffc5995179) }, // 3103
+ { cat(0x5624493713d5e9b7, 0x2d656e8f280399fb), cat(0xd5124a6513c582c0, 0x4a1ccb32d5c21bf6) }, // 3104
+ { cat(0x781d075f431187c5, 0xbdeabed8eccfae62), cat(0xaa750850dc9e0233, 0x6e7d6f5bde34e32b) }, // 3105
+ { cat(0xf9b0d2b29c0e0637, 0xcb22324723d9584f), cat(0x885da040b07e6829, 0x253125e3182a4f55) }, // 3106
+ { cat(0x8f81511dc67cd6bf, 0xab69ea0b6c8ef3b1), cat(0xda2f66cde730a6a8, 0x3b81d63826aa1889) }, // 3107
+ { cat(0x0c677417d1fd7899, 0x55ee54d5f0725c8e), cat(0xae8c523e528d5220, 0x2f9b11c68554e06e) }, // 3108
+ { cat(0x7052c346419793ad, 0xde5843de59f516d8), cat(0x8ba374fea8710e80, 0x2615a7d20443e6be) }, // 3109
+ { cat(0xe6ead20a028c1f7c, 0x96f39fca2988248c), cat(0xdf6bee6440b4e400, 0x3cef72e9a06ca463) }, // 3110
+ { cat(0x525574d4ced67f96, 0xdf294ca1bad35070), cat(0xb2bcbeb69a2a5000, 0x30bf8f214d23b6b6) }, // 3111
+ { cat(0x41ddf710a5786612, 0x4c210a1afbdc405a), cat(0x8efd655ee1bb7333, 0x5a32d8e770e95ef8) }, // 3112
+ { cat(0x9c96581aa25a3cea, 0x1368102b2c939a29), cat(0xe4c8a231692beb85, 0x5d1e27d8b4a897f3) }, // 3113
+ { cat(0x7d45134881e1ca54, 0xdc5340228a0fae88), cat(0xb706e82787565604, 0x4a7e8646f6ed465c) }, // 3114
+ { cat(0x643742a067e7d510, 0xb04299b53b3fbed3), cat(0x926becec6c45119d, 0x08653838c58a9eb0) }, // 3115
+ { cat(0x39f20433d972ee81, 0x1a042921f865fe1e), cat(0xea4647e0ad3b4f61, 0xa70859f46f44311a) }, // 3116
+ { cat(0x618e69c3145bf200, 0xe19cedb4c6b7fe7f), cat(0xbb6b6cb3bdc90c4e, 0x1f39e19059035a7b) }, // 3117
+ { cat(0xb471ee35a9e32800, 0xb47d8af7055ffecc), cat(0x95ef8a2964a0d6a4, 0xe5c7e7a6ad9c4862) }, // 3118
+ { cat(0x871cb055dc9ea667, 0x872f44be6efffe12), cat(0xefe5a9dbd4348aa1, 0x6fa63f7115c6da37) }, // 3119
+ { cat(0x9f4a26ab16e551ec, 0x6c25d09858cccb42), cat(0xbfeaee4976906ee7, 0x8c84ff8dab057b5f) }, // 3120
+ { cat(0x4c3b522278b774bd, 0x235173ad13d70902), cat(0x9988bea12ba6bf1f, 0xa39d993e226ac919) }, // 3121
+ { cat(0xad2bb69d8df25461, 0xd21bec481fbe74cf), cat(0xf5a7976845d79832, 0x9f628ec9d0aadb5b) }, // 3122
+ { cat(0x57562bb13e5b76b4, 0xa81656a019652a40), cat(0xc48612b9d179468e, 0xe5e8723b0d557c49) }, // 3123
+ { cat(0x7911bc8dcb7c5ef6, 0xecdeabb3478421cd), cat(0x9d380efb0dfa9ed8, 0xb7ed282f3dddfd07) }, // 3124
+ { cat(0x281c60e2df2d64be, 0x47caac520c069c7a), cat(0xfb8ce4c4e32a97c1, 0x2648404b962ffb3f) }, // 3125
+ { cat(0x867d1a4f18f11d65, 0x063bbd0e700549fb), cat(0xc93d83d0b5bbac9a, 0x850699d611bffc32) }, // 3126
+ { cat(0x3864150c13f41784, 0x04fc973ec0043b30), cat(0xa0fe030d5e2fbd48, 0x6a6bae44dafffcf5) }, // 3127
+ { cat(0xc6b6773cdcc34603, 0x373078ff0003628d), cat(0x80cb35a44b596439, 0xeebc8b6a48ccca5d) }, // 3128
+ { cat(0xd78a586161387005, 0x251a5b31999f0414), cat(0xce11ef6d455bd38f, 0xe460df10747add62) }, // 3129
+ { cat(0xac6ead1ab42d266a, 0x841515c147b269aa), cat(0xa4db25f10449760c, 0xb6b3e5a6c3957de8) }, // 3130
+ { cat(0x89f224155cf0eb88, 0x69aa77cdd2f52155), cat(0x83e284c0d03ac4d6, 0xf88feaebcfaacb20) }, // 3131
+ { cat(0x431d068894b4ac0d, 0x75dd8c7c84bb6887), cat(0xd304079ae6c46e24, 0xc0e644ac7f77ab67) }, // 3132
+ { cat(0x35b0d206dd5d5671, 0x2b17a396d095ed39), cat(0xa8d006158569f1b7, 0x00b836f065f955ec) }, // 3133
+ { cat(0x5e270e6be44aab8d, 0xbc12e94573ab242e), cat(0x870cd1aad1218e2c, 0x00935f26b7faab23) }, // 3134
+ { cat(0x6371b0aca07778e2, 0xc684a86f1f7839e2), cat(0xd81482aae835b046, 0x675231d78cc44505) }, // 3135
+ { cat(0x1c5af3bd4d2c60b5, 0x6b9d538c192cfb1c), cat(0xacdd3555869159d1, 0xec41c1793d69d0d1) }, // 3136
+ { cat(0xe37bf6310a89e6f7, 0x894aa93ce0f0c8e3), cat(0x8a4a9111387447db, 0x2367cdfa9787da40) }, // 3137
+ { cat(0x9f2cbd1b440fd7f2, 0x754441fb0181416b), cat(0xdd441b4ec0ba0c91, 0xd23faff758d95d34) }, // 3138
+ { cat(0xb28a30e29cd9798e, 0xc4369b2f34676789), cat(0xb103490bcd61a3a7, 0xdb66265f7a477dc3) }, // 3139
+ { cat(0xf53b5a4ee3e12e0b, 0xd02baf58f6b91fa1), cat(0x8d9c3a6fd7814fb9, 0x7c51b84c61d2cb02) }, // 3140
+ { cat(0x21f8907e396849ac, 0x8045e55b245b65ce), cat(0xe29390b2f2687f8f, 0x2d4f8d4702eade6b) }, // 3141
+ { cat(0xb4c6d9fe94536e23, 0x99d18448e9e2b7d8), cat(0xb542da28c1ed32d8, 0xf10c71059bef1855) }, // 3142
+ { cat(0x909f14cba9dc581c, 0x7b0e036d87e89313), cat(0x910248209b2428ad, 0x8da38d9e1658e044) }, // 3143
+ { cat(0xe764ee12a9608cfa, 0x5e7cd248d9741e85), cat(0xe803a69a91d37448, 0xe29f48fcf08e33a0) }, // 3144
+ { cat(0x85ea580eede6d72e, 0xb1fd7507145ce537), cat(0xb99c854874a929d3, 0xe87f6d9726d8294d) }, // 3145
+ { cat(0x9e55133f24b8ac25, 0x5b312a6c104a50f9), cat(0x947d376d2a20ee43, 0x2065f145b8acedd7) }, // 3146
+ { cat(0x30881ecb6df446a2, 0x2b81dd79b3aa1b28), cat(0xed95257b769b16d1, 0xcd6fe86f8de17c8c) }, // 3147
+ { cat(0x5a067f0924c36bb4, 0xef9b17948fbb48ed), cat(0xbe10eac92baf4574, 0xa45986bfa4b463a3) }, // 3148
+ { cat(0xae6b98d41d6922f7, 0x2615ac76d962a0bd), cat(0x980d88a0efbf6ac3, 0xb6ae05661d5d1c82) }, // 3149
+ { cat(0x17128e202f0e9e58, 0x3cef7a57c2376795), cat(0xf348da9b1932446c, 0x577cd5702efb60d1) }, // 3150
+ { cat(0xac0ed819bf3ee513, 0x63f2c84634f91fab), cat(0xc2a0aee27a8e9d23, 0x7930aac02595e70d) }, // 3151
+ { cat(0x5672467aff65840f, 0x8328a0382a60e622), cat(0x9bb3bf1b953ee41c, 0x60f3bbcceade5271) }, // 3152
+ { cat(0x8a5070c4cbd5a018, 0xd1da99f377017036), cat(0xf91f982c21fe39c7, 0x0185f947de3083e8) }, // 3153
+ { cat(0x3b738d6a3caae67a, 0x417bae5c5f3459c5), cat(0xc74c79bce7fe949f, 0x346b2dd31826cfed) }, // 3154
+ { cat(0xc9293dee96ef1ec8, 0x3462f1e37f5d149e), cat(0x9f706163eccbaa18, 0xf6bc24a8e01f0cbd) }, // 3155
+ { cat(0xa841fcb0f17e97a6, 0xba37e96bfefb542f), cat(0xff1a356cae12a9c1, 0x8ac6a10e3364e12f) }, // 3156
+ { cat(0x869b308d8dfedfb8, 0x94f9878998c91026), cat(0xcc14f78a24dbbb01, 0x3bd21a71c2b71a8c) }, // 3157
+ { cat(0xd215c0713e657fc6, 0xdd946c6e13d40ceb), cat(0xa343f93b50afc8cd, 0xc974e1f49bc5aed6) }, // 3158
+ { cat(0xdb4499f431eacc9f, 0x17a9f0580fdcd723), cat(0x829cc762a6f3070b, 0x0790b4c3afd158ab) }, // 3159
+ { cat(0xc53a8fed1caae0fe, 0x8c431a267fc7be9e), cat(0xd0fad89dd7eb3e78, 0x0c1abad2b2e88ddf) }, // 3160
+ { cat(0x6a953ff0e3bbe732, 0x09cf481ecc9fcbb2), cat(0xa72f13b17988fec6, 0x7015624228ba0b19) }, // 3161
+ { cat(0xbbaa998d82fcb8f4, 0xd4a5d34bd6e63c8e), cat(0x85bf42f4613a656b, 0x8cdde834ed61a27a) }, // 3162
+ { cat(0x2c4428e26b2df4ba, 0xedd61edfbe3d2db0), cat(0xd5fed18701f708ac, 0x14964054af029d91) }, // 3163
+ { cat(0xf036871b88f19095, 0x8b11b24c9830f15a), cat(0xab324138ce5f3a23, 0x43ab66aa259bb140) }, // 3164
+ { cat(0xf35ed27c6d8e0d44, 0x6f415b7079c0c115), cat(0x88f500fa3eb294e9, 0x02ef8554eae2f433) }, // 3165
+ { cat(0x856483fa48e3486d, 0x7ecef8b3f60134ed), cat(0xdb219b29fdea87db, 0x37e5a22177d186b9) }, // 3166
+ { cat(0x6ab6cffb6d82a057, 0x98a593c32b342a58), cat(0xaf4e15bb31886caf, 0x5feae81ac6413894) }, // 3167
+ { cat(0xbbc5732f8acee6ac, 0x7a1e0fcf55c35513), cat(0x8c3e77c8f46d23bf, 0x7fef20156b676076) }, // 3168
+ { cat(0xf93beb7f447e3de0, 0xc3634c7eef9eee85), cat(0xe063f2db20ae9f98, 0xccb1ccef123f00bd) }, // 3169
+ { cat(0xc76322cc36cb64b3, 0xcf82a398bfb2586a), cat(0xb38328af4d587fad, 0x708e3d8c0e98cd64) }, // 3170
+ { cat(0x6c4f4f09c56f83c3, 0x0c6882e0995b79ef), cat(0x8f9c208c3de06624, 0x5a0b64700bad711d) }, // 3171
+ { cat(0x7a187e7608b26c6b, 0x470d9e3428925cb1), cat(0xe5c69a79fc9a3d06, 0xf678a0b345e24e95) }, // 3172
+ { cat(0xfb46cb91a08ebd22, 0x9f3e1829ba0eb08d), cat(0xb7d2152e63ae9738, 0xc52d4d5c37e83edd) }, // 3173
+ { cat(0x95d23c74807230e8, 0x7f64e02161a55a0b), cat(0x930e77584fbedf60, 0x9dbdd77cf98698b1) }, // 3174
+ { cat(0xbc8393ed9a504e40, 0xcbd499cf02a229ab), cat(0xeb4a588d4c64989a, 0x95fc8bfb28d75ab5) }, // 3175
+ { cat(0x306943247b7371cd, 0x6fdd47d8cee82155), cat(0xbc3b7a0aa383ad48, 0x77fd3cc8ed79155e) }, // 3176
+ { cat(0x8d21028395f5f4a4, 0x597dd313d8b9b444), cat(0x9695fb3bb602f106, 0xc66430a0bdfa777e) }, // 3177
+ { cat(0xe1ce6a6c23232106, 0xf5961e86278f86d4), cat(0xf0eff85f899e4e71, 0x3d6d1a9ac990bf30) }, // 3178
+ { cat(0x4e3ebb89b5b5b405, 0x9144e5381fa60576), cat(0xc0bff9e607b1d85a, 0x978a7baf07a6ff5a) }, // 3179
+ { cat(0xd8322fa15e2af66a, 0xda9d842ce61e6ac5), cat(0x9a332e519fc179e2, 0x12d52fbf395265e1) }, // 3180
+ { cat(0x59e9e5cefd118a44, 0x90fc06ae3cfd77a1), cat(0xf6b84a1c32cf2969, 0xb7bb7f985bb70969) }, // 3181
+ { cat(0xe187eb0bfda7a1d0, 0x73fcd224fd9792e8), cat(0xc5603b49c23f5454, 0x92fc66137c926ded) }, // 3182
+ { cat(0xb46cbc0997b94e40, 0x5cca41b731460f20), cat(0x9de695d49b65dd10, 0x7596b80f96db8b24) }, // 3183
+ { cat(0xba4793428c5bb066, 0xfadd35f1e8701833), cat(0xfca422edc56fc81a, 0x55bdf34c2492783a) }, // 3184
+ { cat(0xc839429ba37c8d1f, 0x2f175e5b2059acf5), cat(0xca1ce8be378ca015, 0x1164c2a350752cfb) }, // 3185
+ { cat(0xd36102161c63a418, 0xf2791848e6ae23f8), cat(0xa1b0ba31c60a19aa, 0x74509bb5d9f7572f) }, // 3186
+ { cat(0xa91a6811b04fb67a, 0x5b94136d85581cc6), cat(0x815a2e8e38081488, 0x5d0d495e47f9128c) }, // 3187
+ { cat(0xdb5d734f807f8a5d, 0x5f535248d559c7a3), cat(0xcef6b0e38cd9ba73, 0xc815423073281dad) }, // 3188
+ { cat(0xaf7df5d933993b7d, 0xe5dc41d3dde16c83), cat(0xa592271c70ae2ec3, 0x06776826c2867e24) }, // 3189
+ { cat(0x25fe5e475c7a95fe, 0x517d01764b1abd35), cat(0x8474ec16c08b589c, 0x052c5352353864ea) }, // 3190
+ { cat(0x0996fd3efa5dbcca, 0x1bfb358a11c461ef), cat(0xd3ee468acdabc0f9, 0xa1e08550552707dd) }, // 3191
+ { cat(0x3adf30ff2eb163d4, 0xe32f5e080e36b4bf), cat(0xa98b6ba23e2300c7, 0xb4b39dd9ddb8d317) }, // 3192
+ { cat(0x2f18f3ff588de977, 0x1c25e4d33e922a33), cat(0x87a2bc81cb4f33d2, 0xf6f617e17e2d75ac) }, // 3193
+ { cat(0x7e8e53322749758b, 0x603ca151fdb6a9ea), cat(0xd90460cfabb1ec84, 0xbe568c9bfd158913) }, // 3194
+ { cat(0x320b75c1b907913c, 0x4cfd4ddb315eee55), cat(0xad9d1a3fbc8e56d0, 0x98453d4997446da9) }, // 3195
+ { cat(0x28092b0160d2da96, 0xa3fdd7e28de58b77), cat(0x8ae414ffca0b78a6, 0xe037643adf69f154) }, // 3196
+ { cat(0x400eab3567b7c424, 0x39962637496f458b), cat(0xde39bb32dcdf2771, 0x66bf06c498a98220) }, // 3197
+ { cat(0x667222911fc63683, 0x6144eb5f6df29e09), cat(0xb1c7c8f57d7f52c1, 0x1eff389d46ee01b3) }, // 3198
+ { cat(0x85281ba74c9e9202, 0xb43722b2be5bb1a1), cat(0x8e396d913132a89a, 0x7f3293b1058b348f) }, // 3199
+ { cat(0x3b735f721430e99d, 0xed2504513092b5ce), cat(0xe38f15b51b8440f7, 0x31ea85e808deba7f) }, // 3200
+ { cat(0x95f5e5f4dcf3ee17, 0xf0ea69da8d422b0c), cat(0xb60c115daf9d00c5, 0xc1886b2007189532) }, // 3201
+ { cat(0x44c4b7f717298b46, 0x5a55217ba434ef3d), cat(0x91a34117bfb0cd6b, 0x0139ef4cd27a10f5) }, // 3202
+ { cat(0x07a12658250f453d, 0x5d55025f6d217ec7), cat(0xe90534f2cc4e1578, 0x01f64bae1d901b22) }, // 3203
+ { cat(0x061a851350d90431, 0x17773519241acbd2), cat(0xba6a90c23d0b4460, 0x0191d624e47348e8) }, // 3204
+ { cat(0x38153742a714035a, 0x792c2a7a8348a30f), cat(0x95220d6830d5d04c, 0xce0e44ea505c3a53) }, // 3205
+ { cat(0x59bb8b9dd820055d, 0x8ead10c4054104e4), cat(0xee9ce2404e22e6e1, 0x49b06e43b3c6c3b8) }, // 3206
+ { cat(0xae2fa2e4ace66ab1, 0x3ef0da366a9a6a50), cat(0xbee3e83371b58581, 0x07c05836296bcfc6) }, // 3207
+ { cat(0x8b594f1d571ebbc0, 0xff2714f85548550d), cat(0x98b6535c5af79e00, 0xd3004691babca638) }, // 3208
+ { cat(0x788ee4fbbe9792ce, 0x650b54c08873bb48), cat(0xf456ebc6f7f29667, 0xb80070e92ac7705a) }, // 3209
+ { cat(0xfa0bea62fedfa8a5, 0x1da2aa33a05c95d3), cat(0xc378bc9f2cc211ec, 0x93338d87556c59e1) }, // 3210
+ { cat(0xfb3cbb82657fba1d, 0xb14eee8fb37d44a9), cat(0x9c6096e5bd680e56, 0xdc293e05ddf047e7) }, // 3211
+ { cat(0x91fac59d6f32c362, 0xb54b174c52620775), cat(0xfa3424a2c8a67d57, 0xc6a8633c964d3fd9) }, // 3212
+ { cat(0x74c89e178c289c4e, 0xf76f45d6a84e6c5d), cat(0xc829b6e8a0853113, 0x05538296dea43314) }, // 3213
+ { cat(0x2a3a1812d686e372, 0x5f8c37deed0b89e4), cat(0xa0215f20806a8da8, 0xd10f9babe55028dd) }, // 3214
+ { cat(0x882e79a8ab9f1c5b, 0x7fa35fe58a6fa184), cat(0x801ab28066bba487, 0x0da616231dd9ba4a) }, // 3215
+ { cat(0xd9e3f5daac31c6f8, 0xcc38996f43e5cf39), cat(0xccf78400a45f6da4, 0xe2a3569e96292a10) }, // 3216
+ { cat(0x47e9917bbcf49f2d, 0x702d478c36517294), cat(0xa3f93666e9e5f150, 0xb54f787ede8754da) }, // 3217
+ { cat(0x06547462fd907f57, 0x8cf10609c50df543), cat(0x832dc51f2184c10d, 0x5dd92d324b9f7715) }, // 3218
+ { cat(0x7087209e6280cbbf, 0x47e809a93b49886b), cat(0xd1e2d4fe9c079b48, 0x9628485078ff24ee) }, // 3219
+ { cat(0xf39f4d4b8200a2ff, 0x6cb9a1542f6e06bc), cat(0xa7e8aa65499faf6d, 0x44ed06a6c73283f1) }, // 3220
+ { cat(0xf6190aa2ce66e8cc, 0x56fae7768c580564), cat(0x8653bb843ae625f1, 0x03f0d21f05c20327) }, // 3221
+ { cat(0xbcf4ddd14a3e4146, 0xf191725746f33bd2), cat(0xd6ec5f39f7d6a31b, 0x39815031a2d0050c) }, // 3222
+ { cat(0x972a4b0dd4fe9a9f, 0x27a78eac38c29642), cat(0xabf04c2e5fdee8e2, 0x9467735ae8a66a70) }, // 3223
+ { cat(0x78eea2717732154c, 0x1fb93ef02d687835), cat(0x898d09beb318ba4e, 0xdd1f8f7bed51eec0) }, // 3224
+ { cat(0xc17dd0b58b835546, 0x992864b37bda59ee), cat(0xdc14dc6451c12a17, 0xc8327f2caee97e00) }, // 3225
+ { cat(0x013173c46f9c4438, 0x7a86b6f5fcaeae58), cat(0xb010b050416754df, 0xd35b98f08bedfe67) }, // 3226
+ { cat(0x00f45c9d26169cf9, 0xfb9ef8c4ca255846), cat(0x8cda26a69ab910b3, 0x0f7c7a5a098b31ec) }, // 3227
+ { cat(0x0186fa9509bdc7f6, 0x5f64c13add088d3d), cat(0xe15d0aa42ac1b451, 0xb260c3c342784fe0) }, // 3228
+ { cat(0xce05954407cb065e, 0xb2b700fbe406d764), cat(0xb44a6ee9bbce29da, 0xf51a3635cec6a64c) }, // 3229
+ { cat(0x0b37aa9cd308d1e5, 0x5bc59a631cd245ea), cat(0x903b8bee2fd8217b, 0xf7482b5e3f0551d7) }, // 3230
+ { cat(0x785910faeb414fd5, 0x5fa2909e9483a310), cat(0xe6c5acb04c8d025f, 0xf20d123064d54fbe) }, // 3231
+ { cat(0xf9e0da6255cdd977, 0x7fb5407edd361c0d), cat(0xb89e23c03d3d9b7f, 0xf4d741c050aaa631) }, // 3232
+ { cat(0xfb1a484eab0b145f, 0x995dcd324a91b00a), cat(0x93b1b63364314933, 0x2a45ce3373bbb827) }, // 3233
+ { cat(0x5e9073b111ab53cc, 0x2896151d441c4cdd), cat(0xec4f89ebd3820eb8, 0x43a2e38585f926a6) }, // 3234
+ { cat(0x18738fc0daef763c, 0xed44ddb10349d717), cat(0xbd0c6e5642ce722d, 0x02e8b6046b2db885) }, // 3235
+ { cat(0xad293fcd7bf2c4fd, 0x8a9d7e2735d4ac13), cat(0x973d2511cf0b8e8a, 0x68ba2b36bc24939d) }, // 3236
+ { cat(0x7b7532e25fead4c8, 0xddc8c9d856211351), cat(0xf1fb6e82e4df4a77, 0x0df6ab8ac6a0ec2f) }, // 3237
+ { cat(0x62c428b51988aa3a, 0x4b0707e044e742a7), cat(0xc195f20250b2a1f8, 0xd7f8893bd21a568c) }, // 3238
+ { cat(0x823686f747a0882e, 0xa26c064d03ec3552), cat(0x9ade5b350d5bb4c7, 0x132d3a9641aeaba3) }, // 3239
+ { cat(0x9d240b253f67404a, 0x9d79a3ae6cad221d), cat(0xf7ca2b88155f87a4, 0xeb7b90f069177905) }, // 3240
+ { cat(0xb0e9a28432b9003b, 0xb12e1c8b8a241b4b), cat(0xc63b5606777f9fb7, 0x22c940c05412c737) }, // 3241
+ { cat(0xc0bae869c22d99c9, 0x5a8b4a093b5015d5), cat(0x9e95de6b92cc7fc5, 0xb56dcd66a9a89f5f) }, // 3242
+ { cat(0x012b0d76037c2942, 0x2a7876752bb35622), cat(0xfdbc9712847a6609, 0x224948a442a76566) }, // 3243
+ { cat(0x3422712b35fcedce, 0x88605ec422f5de82), cat(0xcafd45a869fb84d4, 0x1b6dd3b69bb91deb) }, // 3244
+ { cat(0x29b52755c4ca57d8, 0x6d19e569b5917ece), cat(0xa26437b9ee62d0a9, 0xaf8b0fc54960e4bc) }, // 3245
+ { cat(0xee2a85de37084646, 0xbdae51215e0dff0c), cat(0x81e9c62e584f0d54, 0x8c6f3fd10780b6fc) }, // 3246
+ { cat(0xb04409638b407071, 0x2f7d4e9bc9affe79), cat(0xcfdc704a26e4e220, 0xe0b1ffb4d8cdf194) }, // 3247
+ { cat(0xf369a11c6f66c05a, 0x8c643ee307bffec7), cat(0xa649f36e8583e81a, 0x4d5b32f713d7f476) }, // 3248
+ { cat(0xc2bae749f2b899e2, 0x09e9cbe8d2ffff06), cat(0x8507f5f20469867b, 0x7115c25f431329f8) }, // 3249
+ { cat(0xd12b0ba9845a8fd0, 0x0fdc797484cccb3c), cat(0xd4d989833a4270c5, 0x81bc6a3204eb765a) }, // 3250
+ { cat(0xa755a2ee037ba640, 0x0cb0612a03d708fd), cat(0xaa47a135c8352704, 0x67c9ee8e6a55f848) }, // 3251
+ { cat(0x52aae8be692fb833, 0x3d59e754cfdf3a64), cat(0x88394dc4a02a859d, 0x1fd4bed85511936d) }, // 3252
+ { cat(0x8444a7970eb2c051, 0xfbc30bbae631f706), cat(0xd9f5493a99dda294, 0xffbacaf3bb4f5248) }, // 3253
+ { cat(0xd036ec78d88f0041, 0x9635a2fbeb5b2c05), cat(0xae5dd42ee17e1baa, 0x662f08c2fc3f7506) }, // 3254
+ { cat(0x402bf060ad3f3367, 0xab5e1bfcbc48f004), cat(0x8b7e4358b464e2ee, 0xb825a09bfcff90d2) }, // 3255
+ { cat(0x00464d677b98523f, 0x7896932dfa0e4cd3), cat(0xdf306bc120a16b17, 0x8d0900f994cc1aea) }, // 3256
+ { cat(0x00383dec62e041cc, 0x607875be61a50a42), cat(0xb28d2300e6e788df, 0xa40733fadd701588) }, // 3257
+ { cat(0xccf9cb23824d0170, 0x4d2d2afeb4840835), cat(0x8ed74f33ebec6d7f, 0xb66c29957df3446c) }, // 3258
+ { cat(0x14c2de9f36e19be6, 0xe1e1de6454067388), cat(0xe48bb1ecacad7bff, 0x8a46a8ef2feba0ae) }, // 3259
+ { cat(0x43cf187f5f1ae31f, 0x1b1b185043385c6d), cat(0xb6d627f08a246332, 0xd50553f28cbc808b) }, // 3260
+ { cat(0x030c139918e24f4c, 0x15af46a69c2d16be), cat(0x9244ecc06e83828f, 0x10d10ff53d639a09) }, // 3261
+ { cat(0x6b4685c1c16a1879, 0xbc4ba43dc6ae8ac9), cat(0xea07e133e4059db1, 0xb481b321fbd2900e) }, // 3262
+ { cat(0x890537ce3454e061, 0x636fb697d2253bd4), cat(0xbb3980f650047e27, 0xc39af5b4c975400b) }, // 3263
+ { cat(0xa0d0f971c37719e7, 0x82bfc54641b76310), cat(0x95c79a5ea669fe86, 0x3615915d6df7666f) }, // 3264
+ { cat(0x34818f1c6bf1c30c, 0x0466087069256b4d), cat(0xefa5c3caa3dcca70, 0x5688e8957cbf0a4c) }, // 3265
+ { cat(0xc39ad8e3898e35a3, 0x36b806c0541def71), cat(0xbfb7cfd54fe3d526, 0xaba0ba113098d509) }, // 3266
+ { cat(0x36157a4fa13e914f, 0x5ef99f00434b25f4), cat(0x995fd977731caa85, 0x561a2e7426e0aa6e) }, // 3267
+ { cat(0xf0225d4c3530e87e, 0xfe5c319a05450986), cat(0xf56628bf1e944408, 0x89c37d86a49aaa49) }, // 3268
+ { cat(0xf34eb109c4272065, 0x9849c14804373ad1), cat(0xc451ba327edd033a, 0x07cf979eea155507) }, // 3269
+ { cat(0x8f72273b03528051, 0x46a1676cd02c2f0e), cat(0x9d0e2e8ecbe40294, 0xd30c794bee777739) }, // 3270
+ { cat(0x18b6a52b38840082, 0x0a9bd8ae19e04b49), cat(0xfb49e417aca00421, 0x51ad8edfe3f2585c) }, // 3271
+ { cat(0xad5eea88fa03339b, 0x3bafe08b47e6a2a1), cat(0xc907e9ac8a199ce7, 0x748ad8b31cc1e049) }, // 3272
+ { cat(0x8ab2553a619c2948, 0xfc8cb3a29febb54e), cat(0xa0d32156d4e14a52, 0xc3a246f5b09b19d4) }, // 3273
+ { cat(0xd55b7761e7b02107, 0x30708fb54cbc910b), cat(0x80a8e778aa4dd50f, 0x02e838c48d48e176) }, // 3274
+ { cat(0xbbc58bcfd919ce71, 0xe71a7f887ac74e78), cat(0xcddb0bf443afbb4b, 0x37d9f46daedb0257) }, // 3275
+ { cat(0x9637a30cadae3ec1, 0x85aecc6d2f05d860), cat(0xa4af3cc3695962a2, 0x9314c38af248ceac) }, // 3276
+ { cat(0x782c82708af1cbce, 0x048bd6bdbf37e04d), cat(0x83bf63cf877ab54e, 0xdc109c6f283a3ef0) }, // 3277
+ { cat(0xf37a6a4dab1c7949, 0xa0dfbdfc652633ae), cat(0xd2cbd2e5a5912217, 0xc680fa4b739064b3) }, // 3278
+ { cat(0x292ebb7155b06107, 0xb3e63196b751c2f2), cat(0xa8a30f1e1e0db4df, 0xd200c83c5c7383c3) }, // 3279
+ { cat(0x20f22f8dde26b406, 0x2984f47892a7cf28), cat(0x86e8d8e4e4d7c3e6, 0x419a39c9e38f9c9c) }, // 3280
+ { cat(0x67e9e5afc9d78670, 0x426e53f41dd94b73), cat(0xd7daf4a16e26063d, 0x35c38fa96c18fa93) }, // 3281
+ { cat(0xecbb1e263b12d1f3, 0x68584329b17aa2c2), cat(0xacaf2a1abe84d1ca, 0x91693fbabce0c875) }, // 3282
+ { cat(0x8a2f4b51c8dbdb29, 0x20469c215ac88235), cat(0x8a25bb48986a416e, 0xdaba996230b3d391) }, // 3283
+ { cat(0xdd187882daf95ea8, 0x33a42d022ada69ee), cat(0xdd092ba75a439be4, 0x912a8f03811fb8e8) }, // 3284
+ { cat(0xe413939be2611886, 0x8fb68a68224854bf), cat(0xb0d422ec48361650, 0x74220c02cdb2fa53) }, // 3285
+ { cat(0x8342dc7cb51a7a05, 0x3fc53b8681d376ff), cat(0x8d768256a02b450d, 0x29b4d668a48f2ea9) }, // 3286
+ { cat(0x6b9e2d9454f729a1, 0xffa1f8d7361f24cb), cat(0xe25736f100453b48, 0x42baf0a76db1e442) }, // 3287
+ { cat(0xefb1be1043f8ee1b, 0x32e7fa45c4e5b709), cat(0xb512925a669dc906, 0x9bc8c085f15b1d01) }, // 3288
+ { cat(0x2627cb403660be7c, 0x28b995049d84926e), cat(0x90dba8485217d405, 0x496d66d18de27d9b) }, // 3289
+ { cat(0x3d0c7866bd67972d, 0x0df5bb3a95a0ea49), cat(0xe7c5da0d50262008, 0x757bd7b5afd0c8f8) }, // 3290
+ { cat(0x6409f9ebcab945bd, 0xa4c495c877b3eea1), cat(0xb96b14d77351b339, 0xf796462af30d6d93) }, // 3291
+ { cat(0x5007fb23089437ca, 0xea36de39f95cbee7), cat(0x9455aa45f5daf5c7, 0xf94504ef28d78adc) }, // 3292
+ { cat(0x4cd991d1a7538c77, 0xdd2496c3289464a5), cat(0xed55dd3cbc91893f, 0xf53b3b184158de2d) }, // 3293
+ { cat(0xa3e1417485dc705f, 0xe41d4568ed4383b7), cat(0xbdde4a96fd413a99, 0x90fc2f469aad7e8a) }, // 3294
+ { cat(0xe981012a04b059e6, 0x50176aba5769362c), cat(0x97e50878ca9a9547, 0xa73025d21557986e) }, // 3295
+ { cat(0x0f34cea9a11a2970, 0x802577908bdb89e0), cat(0xf3080d8e10f7553f, 0x71e6a2e9bbbf5a4b) }, // 3296
+ { cat(0x7290a55480e1bac0, 0x66845fa6d6493b1a), cat(0xc26cd7a4da5f7765, 0xf4b882549632aea2) }, // 3297
+ { cat(0xf54084439a4e2f00, 0x52037fb8ab6dc8e1), cat(0x9b8a461d7b7f92b7, 0xf6fa01dd44f55881) }, // 3298
+ { cat(0xeecda06c2a16b19a, 0x1cd265f4457c749c), cat(0xf8dd3cfbf8cc1df3, 0x24c3362ed4bbc0cf) }, // 3299
+ { cat(0x25714d2354def47b, 0x4a41eb29d1305d49), cat(0xc71763fcc709b18f, 0x509c2b58aa2fcd73) }, // 3300
+ { cat(0x1df43db5dd7f29fc, 0x3b67ef54a759e43b), cat(0x9f45e99705a15ad9, 0x0d49bc46ee8ca45c) }, // 3301
+ { cat(0xfcb9fc562f31dcc6, 0xc573188772296d2b), cat(0xfed6428b3c355e28, 0x1542c6d7e4143a2c) }, // 3302
+ { cat(0xca2e637825c17d6b, 0xd128e06c5b545755), cat(0xcbde9ba296911820, 0x110238acb67694f0) }, // 3303
+ { cat(0x08251c601e346456, 0x40ed8056af76ac44), cat(0xa3187c82120dace6, 0x7401c6f091f87727) }, // 3304
+ { cat(0x068416b34b5d1d11, 0xcd8acd1225f889d0), cat(0x8279fd34db3e23eb, 0x90016bf3a7f9f8ec) }, // 3305
+ { cat(0x3da02452122e94e9, 0x48de14e9d65a761a), cat(0xd0c32ebaf8636cac, 0x199bdfec3ff65b13) }, // 3306
+ { cat(0x314ce9db41bedd87, 0x6d7e772178485e7b), cat(0xa7028bc8c6b5f089, 0xae164cbcfff848dc) }, // 3307
+ { cat(0x5aa3ee4901657e05, 0xf131f8e7936d1863), cat(0x859ba307055e5a07, 0xbe783d63fff9d3e3) }, // 3308
+ { cat(0x2a9fe3a8023bfcd6, 0x4eb65b0c1f14f3d1), cat(0xd5c5d1a4d563c33f, 0x9726c89ffff61fd2) }, // 3309
+ { cat(0x887fe95334fcca45, 0x0bc515a34c10c30e), cat(0xab04a7b7111c9c32, 0xdf523a199991b30e) }, // 3310
+ { cat(0x6d33210f5d970837, 0x3c9daae909a70271), cat(0x88d0862c0db07cf5, 0x7f74fb47ae0e28d8) }, // 3311
+ { cat(0x151e9b4bc8f1a6be, 0xc762ab0e75d803e8), cat(0xdae73d13491a6188, 0xcbee5ed9167d0e27) }, // 3312
+ { cat(0x774baf6fd3f48565, 0x6c4eef3ec4accfed), cat(0xaf1f640f6daeb46d, 0x6ff1e57a78640b52) }, // 3313
+ { cat(0x92a2f2bfdcc39dea, 0xbd0bf2989d570cbe), cat(0x8c191cd9248bc38a, 0xbff4b7952d1cd5db) }, // 3314
+ { cat(0xea9e5132fad29644, 0x61acb75a95581463), cat(0xe0282e283a7938dd, 0xffedf288482e22f8) }, // 3315
+ { cat(0x887ea75bfbdbab69, 0xe7bd5f7baaacdd1c), cat(0xb35358202ec760b1, 0x998b286d068b4f2d) }, // 3316
+ { cat(0x6d321f7cc97c8921, 0x8631192fbbbd7db0), cat(0x8f75e019bf05e6f4, 0x7ad5b9f0d2090c24) }, // 3317
+ { cat(0x485032614260db68, 0xd6b4f5192c6262b3), cat(0xe589668f98097187, 0x2aef8fe7b674e03a) }, // 3318
+ { cat(0x39d9c1e7684d7c53, 0xdef72a7a89e84ef5), cat(0xb7a11ed9466df46c, 0x22593fec91f719c8) }, // 3319
+ { cat(0xfb149b1f86a46376, 0x4bf8eec86e53725e), cat(0x92e74be10524c389, 0xb5143323a7f8e16c) }, // 3320
+ { cat(0x91ba91cc0aa09f23, 0xacc17e0d7d525096), cat(0xeb0bac9b3b6e05a9, 0x21b9eb6c3ff49be1) }, // 3321
+ { cat(0xa7c874a33bb3b282, 0xf09acb3dfddb73ab), cat(0xbc0956e295f19e20, 0xe7c7ef89ccc3afe7) }, // 3322
+ { cat(0x8639f6e8fc8fc202, 0x5a156f64cb15f623), cat(0x966ddf1bab27b1b3, 0xec9ff2d4a3cfbfec) }, // 3323
+ { cat(0x705cbe419419366a, 0x29bbe56e11bcbd04), cat(0xf0afcb5f783f82b9, 0x7a9984876c7f997a) }, // 3324
+ { cat(0xc04a31ce10142b88, 0x21631df1a7ca30d0), cat(0xc08ca2b2c6993561, 0x2ee136d2bd32e12e) }, // 3325
+ { cat(0x003b5b0b401022d3, 0x4de8e4c15308270d), cat(0x9a0a1bc2387a911a, 0x8be75f0efdc24dbf) }, // 3326
+ { cat(0xcd2bc4decce69e1e, 0xe30e3aceeb403e7b), cat(0xf67692d05a5db4f7, 0x463efe7e62d07c64) }, // 3327
+ { cat(0xa42303e570b87e7f, 0x1c0b623f2299cb96), cat(0xc52ba8a6aeb15d92, 0x9e98cb984f0d3050) }, // 3328
+ { cat(0xb68269845a2d31ff, 0x49a2b4ff4ee16fab), cat(0x9dbc86ebbef44adb, 0xb213d6137270f373) }, // 3329
+ { cat(0x2403dc06f6aeb665, 0x429dee654b024c45), cat(0xfc60d7df97ed4492, 0xb686235250b4b8b9) }, // 3330
+ { cat(0x1ccfe338c55891ea, 0x9bb18b843c01d69e), cat(0xc9e7131946576a0e, 0xf86b4f750d5d6094) }, // 3331
+ { cat(0x4a3fe8fa377a0e55, 0x495ad6036334abb1), cat(0xa185a8e10512bb3f, 0x2d22a5f73de44d43) }, // 3332
+ { cat(0x6e99872e92c80b77, 0x6de244cf8290895b), cat(0x8137ba4d9da895cc, 0x241bb7f8fe503dcf) }, // 3333
+ { cat(0x4a8f3eb0ead9abf2, 0x496a07b26a80dbc4), cat(0xcebf907c2f7422e0, 0x39c5f327fd4d2fb2) }, // 3334
+ { cat(0xd53f655a557aeff5, 0x078806285533e303), cat(0xa5660d3025f6824c, 0xfb04c286643dbfc1) }, // 3335
+ { cat(0xaa991de1ddfbf32a, 0x6c6cd1b9ddc31c03), cat(0x8451a42684c5350a, 0x626a353850316634) }, // 3336
+ { cat(0xddc1c969632cb843, 0xe0ae1c5c9604f99e), cat(0xd3b5d370d46ebb43, 0xd0a9eec0804f09ed) }, // 3337
+ { cat(0x7e34a1211c23c69c, 0xb3be7d16de6a614b), cat(0xa95e42c0a9f22f69, 0x73bb2566cd0c07f1) }, // 3338
+ { cat(0x64f6e74db01c9ee3, 0xc2feca78b1eeb43c), cat(0x877e9bcd54c1bf87, 0x8fc8eab8a4099ff4) }, // 3339
+ { cat(0x3b24a54919c7649f, 0x9e647727831786c6), cat(0xd8ca92e22135ff3f, 0x4c74aac10675ccba) }, // 3340
+ { cat(0xc8ea1dd4149f83b2, 0xe51d2c1f9c12d238), cat(0xad6edbe81a9198ff, 0x705d5567385e3d61) }, // 3341
+ { cat(0x0721b17676e602f5, 0x8417567fb00f0e94), cat(0x8abf165348747a65, 0xf37dddec2d18311b) }, // 3342
+ { cat(0x0b691bf0be3cd188, 0xd3588a65e67e7db9), cat(0xddfe8a1eda53f709, 0x85962fe04826b4f8) }, // 3343
+ { cat(0xa2ba7cc09830a7a0, 0xa913a1eb1ecb97c7), cat(0xb1986e7f150ff8d4, 0x6ade8cb36cebc3f9) }, // 3344
+ { cat(0x4efb970079c0861a, 0x20dc8188e56fac9f), cat(0x8e138b98dda660a9, 0xef18708f8a563661) }, // 3345
+ { cat(0xb1928b33f600d690, 0x34940274a24c4765), cat(0xe35278f495d7010f, 0xe4f3e74c1089f09b) }, // 3346
+ { cat(0xc14208f65e67120c, 0xf6dccec3b509d2b7), cat(0xb5db93f6de459a73, 0x1d8fec3cda07f3af) }, // 3347
+ { cat(0xcdce6d91e51f41a3, 0xf8b0a5695da17560), cat(0x917c765f1837aec2, 0x7e0cbcfd7b398fbf) }, // 3348
+ { cat(0x7c7d7c1ca1cb9c39, 0x8de76f0efc358899), cat(0xe8c723cb59f2b137, 0x3014619591f5b2cc) }, // 3349
+ { cat(0xc9fdfce3b4a2e361, 0x3e52bf3f302ad3ad), cat(0xba38e96f7b288dc5, 0xc0104e1141915bd6) }, // 3350
+ { cat(0xa197fd82f6e8b5e7, 0x650eff65c02242f1), cat(0x94fa54592f53a49e, 0x33403e7434744978) }, // 3351
+ { cat(0x35bffc04be41230b, 0xd4e4cbd60036d182), cat(0xee5d53c1e552a0fd, 0x1ecd30b9ed86dbf4) }, // 3352
+ { cat(0x91666336fe9a826f, 0xdd83d644ccf8a79b), cat(0xbeb10fce510ee730, 0xe570f3c7f138aff6) }, // 3353
+ { cat(0xdab84f5f32153526, 0x4acfde9d70c6ec7c), cat(0x988da63ea73f1f5a, 0x5127296cc0fa265e) }, // 3354
+ { cat(0x5df3b231e9bb883d, 0x447fca95813e472d), cat(0xf415d6caa531cbc3, 0xb50b757ace5d0a31) }, // 3355
+ { cat(0xe4c2f4f4bafc6cfd, 0xd0663baacdcb6c24), cat(0xc344abd550f4a302, 0xf73c5dfbd84a6e8d) }, // 3356
+ { cat(0x1d68c3f6fbfd23fe, 0x4051c955716f89b6), cat(0x9c36efddda5d4f35, 0x9296b19646a1f20b) }, // 3357
+ { cat(0x2f0e0657f9950663, 0x9a1c7555824c0f8a), cat(0xf9f17fc95d621855, 0xb757828a0a9cb678) }, // 3358
+ { cat(0x58d805132e10d1e9, 0x4816c444683cd93b), cat(0xc7f4663ab11b46aa, 0xf912ced4d54a2b93) }, // 3359
+ { cat(0x7a466a75be73db21, 0x06789d0386971430), cat(0x9ff6b82ef415d222, 0x60dbd8aa443b560f) }, // 3360
+ { cat(0x9070aa55fd862b68, 0x0a5a94d270f1b9e5), cat(0xfff126b186895037, 0x015fc1106d2bbce5) }, // 3361
+ { cat(0x405a21de646b55ec, 0xd51543db8d8e2e51), cat(0xccc0ebc1386dd9c5, 0x9ab300d9f0efca51) }, // 3362
+ { cat(0x337b4e4b8389118a, 0x441103160ad8250e), cat(0xa3cd89676057e16a, 0xe228cd7b27263b74) }, // 3363
+ { cat(0x8f95d83c693a746e, 0x9cda68de6f1350d8), cat(0x830ad452b3798122, 0x4e870ac8ec1e95f6) }, // 3364
+ { cat(0x18efc060a85d8717, 0x615d7497181ee7c0), cat(0xd1aaed511f28ce9d, 0x4a71aadb13642324) }, // 3365
+ { cat(0xad8c99e6ed179f45, 0xe77df6df467f1fcd), cat(0xa7bbf10db2870bb1, 0x085aef15a91ce8e9) }, // 3366
+ { cat(0xbe0a14b8bdac7f6b, 0x1f97f8b29ecc1971), cat(0x862ff40af538d627, 0x39e258de20e3ed87) }, // 3367
+ { cat(0xfcdcedf462ad98ab, 0x65bff450fe135be7), cat(0xd6b32011885af03e, 0xc303c16367d315a5) }, // 3368
+ { cat(0xca4a57f6b557ad55, 0xeafff6a731a91653), cat(0xabc2800e06af2698, 0x9c03011c530f4484) }, // 3369
+ { cat(0xd508465ef7795777, 0xef332bb8f487450f), cat(0x896866719ef28546, 0xe3359a7d0f3f6a03) }, // 3370
+ { cat(0x54da0a318bf558bf, 0xe51eac5b20d86e7e), cat(0xdbda3d8297ea6ed7, 0xd1ef5d94e5324339) }, // 3371
+ { cat(0x43e1a1c13cc446ff, 0xea7ef048e7138b98), cat(0xafe1cacedfeebf13, 0x0e5917aa50f50294) }, // 3372
+ { cat(0x364e1b00fd69d266, 0x553259d3ec0fa2e0), cat(0x8cb4a23f198bcc0f, 0x3eadac8840c40210) }, // 3373
+ { cat(0xbd49c4ce6242ea3d, 0x551d5c86467f6b00), cat(0xe121039828dface5, 0x3115e0da01399ce6) }, // 3374
+ { cat(0xfdd49d71e8358831, 0x10e44a050532bc00), cat(0xb41a69468719571d, 0xc0de4d7b342e171e) }, // 3375
+ { cat(0x64aa178e535e068d, 0xa71d080404289667), cat(0x9015210538e1127e, 0x33e50ac8f68b45b2) }, // 3376
+ { cat(0xa11025b085633daf, 0x71c80cd339da8a3d), cat(0xe68834d527ce83fd, 0x1fd4de0e57453c50) }, // 3377
+ { cat(0x80d9b7c06ab5caf2, 0xc16cd70f617ba1cb), cat(0xb86cf710eca53664, 0x1977180b79043040) }, // 3378
+ { cat(0x33e15fcd222b08c2, 0x34571272b462e7d6), cat(0x938a5f40bd50f850, 0x145f466f940359cd) }, // 3379
+ { cat(0x8635661503780e03, 0x86f1b71ded6b0c89), cat(0xec109867954e5a19, 0xba320a4c20055c7b) }, // 3380
+ { cat(0xd1c451aa692cd802, 0xd25af8e4bdef3d3a), cat(0xbcda1386110b7b47, 0xc828083ce66ab062) }, // 3381
+ { cat(0xdb0374885423e002, 0x41e260b6fe58fdc8), cat(0x9714dc6b40d5fc39, 0x6cecd363eb888d1b) }, // 3382
+ { cat(0x919f20da2039666a, 0x0303cdf196f4c940), cat(0xf1bafa453489938f, 0x14ae1f0645a7482c) }, // 3383
+ { cat(0xdae5b3e1b3611ebb, 0x359ca4c14590a100), cat(0xc16261d0f6d4760c, 0x108b4c050485d356) }, // 3384
+ { cat(0xe2515cb48f80e562, 0x914a1d676ada1a67), cat(0x9ab51b0d924391a3, 0x406f7004039e42ab) }, // 3385
+ { cat(0x6a1bc7874c016f04, 0x1ba9c8a577c35d71), cat(0xf7882b48ea05b5d2, 0x00b24cd338fd3779) }, // 3386
+ { cat(0xbb496c6c3ccdf269, 0xafbb06eac635e45a), cat(0xc6068907219e2b0e, 0x66f50a4293fdc5fa) }, // 3387
+ { cat(0x62a12389ca3e5b87, 0xbfc8d2556b5e5048), cat(0x9e6ba0d2814b55a5, 0x1f2a6e9ba997d195) }, // 3388
+ { cat(0x9dce9f42dd309272, 0xcc7483bbdefd4d40), cat(0xfd790150cedeef6e, 0x9843e42c428c8288) }, // 3389
+ { cat(0x7e3ee5cf175a0ec2, 0x3d2a02fcb2643dcd), cat(0xcac73440a57f25f2, 0x136983569ba39ba0) }, // 3390
+ { cat(0xfe98b7d8df7b3f01, 0xca880263c1e9cb0b), cat(0xa238f69a1dff518e, 0x75ee02abafb61619) }, // 3391
+ { cat(0x6546f97a4c6298ce, 0x3ba001e967ee3c09), cat(0x81c72bae7e65dad8, 0x5e580222f2f811ae) }, // 3392
+ { cat(0xa20b28c3ad6a8e16, 0xc5cccfdbd97d2cda), cat(0xcfa512b0ca3c915a, 0x308cd037eb2682b0) }, // 3393
+ { cat(0xe808ed69578871ab, 0xd170a6497aca8a48), cat(0xa61da88d6e96daae, 0x8d3d735fef520226) }, // 3394
+ { cat(0xecd3f12112d38e23, 0x0df3b83ac8a2083a), cat(0x84e486d78babe225, 0x3dcac2b325db34eb) }, // 3395
+ { cat(0x14864e9b51527d04, 0xe31f8d2ada9cd9f6), cat(0xd4a0d7bf45dfd03b, 0x96113785095ebb13) }, // 3396
+ { cat(0xdd383ee2a77530d0, 0xb5b2d7557bb0ae5e), cat(0xaa1a46329e4ca696, 0x11a75f9da11895a8) }, // 3397
+ { cat(0xe42cff1bb92a8d73, 0xc48f12aac95a2518), cat(0x881504f54b708544, 0xdaec4c7e1a7a1153) }, // 3398
+ { cat(0x39e1982c5b7748b9, 0x3a7e8444755d0827), cat(0xd9bb3b22124da207, 0xc4ad47302a5ce886) }, // 3399
+ { cat(0x61814689e2c5d3c7, 0x61fed036c44a6cec), cat(0xae2f6281a83e1b39, 0x6a2438f35517206b) }, // 3400
+ { cat(0x4e01053b1bd17639, 0x1b32402bd03b8a56), cat(0x8b591b9aecfe7c2d, 0xee8360c2aa78e6bc) }, // 3401
+ { cat(0x7cce6ec4f94f238e, 0x91ea004619f8dd57), cat(0xdef4f8f7e1972d16, 0x4a6bce0443f4a460) }, // 3402
+ { cat(0x30a5256a610c1c72, 0x0e54cd04e193e446), cat(0xb25d93f98145bdab, 0x6ebca4d0365d504d) }, // 3403
+ { cat(0x5a1db7884da349f4, 0xd843d7371adcb69e), cat(0x8eb1432e010497bc, 0x5896ea402b7dd9d7) }, // 3404
+ { cat(0xc362bf407c387654, 0x8d3958582afabdca), cat(0xe44ed1e334d425fa, 0x2757dd3378c95c8b) }, // 3405
+ { cat(0x02b565cd302d2b76, 0xd7611379bbfbcb08), cat(0xb6a574b5c3dceb2e, 0x85dfe4292d6de3a3) }, // 3406
+ { cat(0x355deb0a8cf0ef92, 0x45e742c7c9963c06), cat(0x921df6f7cfe3ef58, 0x6b1983542457e94f) }, // 3407
+ { cat(0xeefcab4414b4b283, 0xa30b9e0c75bd2cd7), cat(0xe9c98b26196cb227, 0x11c26bb9d3bfdbb1) }, // 3408
+ { cat(0x58ca229cdd5d5b9c, 0x826fb1a3916423df), cat(0xbb07a284e123c1b8, 0xdb01efc7dc997c8e) }, // 3409
+ { cat(0xe0a1b54a4ab11616, 0xcebfc14fa7834fe6), cat(0x959fb5371a830160, 0xaf34bfd316e13071) }, // 3410
+ { cat(0x676922107781bcf1, 0x4acc687f726bb309), cat(0xef65eebe90d19bcd, 0xe52132eb57ceb3e9) }, // 3411
+ { cat(0xb920e80d2c67ca5a, 0xa23d2065f522f5a1), cat(0xbf84befeda414971, 0x841a8f22aca55cba) }, // 3412
+ { cat(0x60e7200a89eca1e2, 0x1b6419eb2a825e1a), cat(0x9936ff3248343ac1, 0x367ba5b556eab095) }, // 3413
+ { cat(0x9b0b667743143636, 0x9239c311dd9d635d), cat(0xf524cb83a6b9f79b, 0x8a5f6f888b111a88) }, // 3414
+ { cat(0x48d5eb929c102b5e, 0xdb6168db17b11c4a), cat(0xc41d6f9c856192e2, 0xd5192606d5a7486d) }, // 3415
+ { cat(0xd3de560ee34022b2, 0x491aba48dfc0e36f), cat(0x9ce4594a044e0f1b, 0xddadb80577b906bd) }, // 3416
+ { cat(0x1fca234b05336ab6, 0xdb5df6daff9b057e), cat(0xfb06f5433a167e92, 0xfc49266f25f4d796) }, // 3417
+ { cat(0xe63b4f6f375c555f, 0x15e4c57bffaf3798), cat(0xc8d25dcf61ab9875, 0x96a0eb8c1e5d7944) }, // 3418
+ { cat(0xeb62a5f292b0444c, 0x1183d12fffbf5fad), cat(0xa0a84b0c4e22e05e, 0x121a5609b1e46103) }, // 3419
+ { cat(0xef821e5ba88d0370, 0x0e030dbfffcc4c8a), cat(0x8086a2703e824d18, 0x0e7b7807c18380cf) }, // 3420
+ { cat(0xb269ca2c40e19f19, 0xb004e2cccc7a1410), cat(0xcda43719fd9d4826, 0x7d9259a6026c014c) }, // 3421
+ { cat(0x2854a1bd00b47f47, 0xc003e8a3d6c8100d), cat(0xa4835f47fe176ceb, 0x97a847b801f0010a) }, // 3422
+ { cat(0xb9dd4e30cd5d329f, 0xcccfed4fdf06733e), cat(0x839c4c399812bd89, 0x46203960018ccda1) }, // 3423
+ { cat(0xf62ee38148951dcc, 0x7ae6487fcb3d852f), cat(0xd293ad28f3512f42, 0x09cd28999c147c35) }, // 3424
+ { cat(0x5e8be9343a10e4a3, 0x958506cca2979dc0), cat(0xa8762420c2a75901, 0xa170ed47b010635e) }, // 3425
+ { cat(0x186fedc361a71d4f, 0xaad0d23d4edfb166), cat(0x86c4e9b3ceec4734, 0x8127243959a6b5e5) }, // 3426
+ { cat(0xf3e649389c3e954c, 0x4481506217cc4f0a), cat(0xd7a175ec7e46d854, 0x01d839f55c3defd4) }, // 3427
+ { cat(0x298507607cfeddd6, 0x9d34404e79703f3b), cat(0xac812b239838ad10, 0x0179c7f77cfe5977) }, // 3428
+ { cat(0x21373919fd98b178, 0x7dc366a52df365c9), cat(0x8a00ef4facfa240c, 0xcdfb065f9731e12c) }, // 3429
+ { cat(0x68585b5cc8f44f27, 0x2f9f0aa1e31f0941), cat(0xdcce4bb2ae5d067a, 0xe32b3d65beb63513) }, // 3430
+ { cat(0x5379e2b0a0c37285, 0xbfb26ee7e8e5a101), cat(0xb0a5095bbeb0d1fb, 0xe8ef6451655e90dc) }, // 3431
+ { cat(0xa92e4ef3b3cf8ed1, 0x662858b9871e1a67), cat(0x8d50d449655a4196, 0x53f2b6a7844ba716) }, // 3432
+ { cat(0x41e3b185ec7f4ae8, 0xa373c128d8302a3f), cat(0xe21aed423bc39c23, 0xb98457726d45d824) }, // 3433
+ { cat(0x9b1c8e04bd32a253, 0xb5f63420acf354ff), cat(0xb4e257682fcfb01c, 0x9469df8ebdd179b6) }, // 3434
+ { cat(0xaf4a0b36fdc21b76, 0x2b2b5ce6f0c2aa66), cat(0x90b512b9bfd959b0, 0x76bb193efe412e2b) }, // 3435
+ { cat(0xb21011f196035f23, 0x7845617181377709), cat(0xe7881df5ffc2291a, 0x5791c1fe639b7d12) }, // 3436
+ { cat(0xf4d9a7f47802b282, 0xc69de78e00f92c07), cat(0xb939b191996820e1, 0xdfa7ce651c7c640e) }, // 3437
+ { cat(0x90ae1ff6c6688ecf, 0x054b1fa4cd942339), cat(0x942e27a7adece71b, 0x19530b8416c9e9a5) }, // 3438
+ { cat(0x4de36657a3da7e18, 0x087832a148ed0528), cat(0xed16a5d91647d82b, 0x5bb8126cf1430f6f) }, // 3439
+ { cat(0xa4b5eb794fe1fe79, 0xa060288107240420), cat(0xbdabb7e0de9fe022, 0xafc67523f435a5f2) }, // 3440
+ { cat(0x83c4bc610cb4cb94, 0x804ced3405b669b3), cat(0x97bc931a4bb319b5, 0x596b90e9902aeb28) }, // 3441
+ { cat(0x6c6dfa34e12145ba, 0x66e17b866f8a42b8), cat(0xf2c751c3ac51c2bb, 0xc245b4a8e6ab11da) }, // 3442
+ { cat(0xbd24c82a4db437c8, 0x524dfc6b8c6e9bc7), cat(0xc2390e3623749bc9, 0x6837c3ba522274ae) }, // 3443
+ { cat(0x30ea39bb715cf96d, 0x0ea4c9efa38bafd2), cat(0x9b60d82b4f907ca1, 0x202c9c950e81f6f2) }, // 3444
+ { cat(0x4e438f924efb28ae, 0x7dd4764c38df7fb6), cat(0xf89af3787f4d9435, 0x004760ee7d9cbe50) }, // 3445
+ { cat(0x0b693fa83f2f53be, 0xcb105ea360b2cc92), cat(0xc6e25c6065d7a9c4, 0x00391a58647d650d) }, // 3446
+ { cat(0x6f876620328c42ff, 0x08d9e54f808f0a0e), cat(0x9f1b7d19eb12ee36, 0x669415138397840a) }, // 3447
+ { cat(0xb2723d0050e06b31, 0xa7c3087f34181017), cat(0xfe9261c311b7e38a, 0x3db9bb526c25a010) }, // 3448
+ { cat(0xf52830cd0d8055c1, 0x53026d3290134012), cat(0xcba84e35a7c64fa1, 0xcafafc41f01e19a6) }, // 3449
+ { cat(0x5db9c0a40acd1167, 0x759b8a8ed9a9000f), cat(0xa2ed0b5e1fd1d94e, 0x3bfbfd018ce4e152) }, // 3450
+ { cat(0xb16166e9a23da785, 0xf7afa20be154000c), cat(0x82573c4b4ca7e10b, 0x632ffd9ad71d810e) }, // 3451
+ { cat(0xb568a4a90395d8d6, 0x5919034635533346), cat(0xd08b93abadd96812, 0x384cc8f7be959b4a) }, // 3452
+ { cat(0xc453b6ed9c77e0ab, 0x7a7a6904f775c29f), cat(0xa6d60fbc8b145341, 0xc6a3d3f965447c3b) }, // 3453
+ { cat(0x03762bf149f98089, 0x2ec85403f92b0219), cat(0x85780c96d5a9dc34, 0x9ee976611dd06363) }, // 3454
+ { cat(0x0589dfe8765c00db, 0x7e0d53398eab368d), cat(0xd58ce0f155dc9387, 0x64a8bd682fb3d238) }, // 3455
+ { cat(0x6ad4b3205eb000af, 0x980aa8fad888f871), cat(0xaad71a5aab16dc6c, 0x5086fdecf2f641c6) }, // 3456
+ { cat(0x2243c2804bc0008c, 0x79a220c8ad3a605b), cat(0x88ac151555abe389, 0xda0597f0c25e9b05) }, // 3457
+ { cat(0x6a06040079333413, 0xf5d03474485d66f7), cat(0xdaacee88891305a9, 0x5cd5bfe79d642b3b) }, // 3458
+ { cat(0x54d19ccd2dc2900f, 0xf7d9c39039e4525f), cat(0xaef0bed3a0dc0487, 0x7d77ccb94ab688fc) }, // 3459
+ { cat(0x10a7b0a4249ba673, 0x2cae360cfb1d0eb3), cat(0x8bf3cbdc80b0039f, 0x97930a2dd55ed3fd) }, // 3460
+ { cat(0x1aa5e76d075f70b8, 0x477d2347f82e7deb), cat(0xdfec7960cde66c32, 0x8c1e76afbbcaecc8) }, // 3461
+ { cat(0xaeeb1f8a6c4c5a2d, 0x05fdb5d32cf1fe55), cat(0xb323944d7185235b, 0xa34b92262fd58a39) }, // 3462
+ { cat(0xf255b2d523704824, 0x04caf7dc23f4cb78), cat(0x8f4fa9d78e041c49, 0x4f6fa81e8caad4fa) }, // 3463
+ { cat(0x50891e21d24d4039, 0xa144bfc69fee1259), cat(0xe54c42f27cd36075, 0x4be5d9ca7aaaee5e) }, // 3464
+ { cat(0xa6d4181b0ea43361, 0x4dd0996bb324db7a), cat(0xb770358eca42b391, 0x0984ae3b95558b7e) }, // 3465
+ { cat(0x857679af3ee9c2b4, 0x3e407abc8f50af95), cat(0x92c02ad8a1cef60d, 0xa136f1c944446f98) }, // 3466
+ { cat(0xa257291864a93786, 0xca00c460e54de5bb), cat(0xeacd115a9c7e567c, 0x3524b60ed3a0b28d) }, // 3467
+ { cat(0xe845ba79ea20f938, 0xa19a36b3eaa4b7c9), cat(0xbbd7411549feab96, 0x90ea2b3f0fb3c20a) }, // 3468
+ { cat(0x2037c861881a60fa, 0x1ae1c55cbbb6f96e), cat(0x9645cdaaa1988945, 0x40bb55cc0c8fce6f) }, // 3469
+ { cat(0x338c73cf402a34c3, 0x5e3608945f8b28af), cat(0xf06faf7768f40ed5, 0x345eeface0e61718) }, // 3470
+ { cat(0x8fa38fd90021c3cf, 0x7e91a076b2d5ba26), cat(0xc059592c53f67244, 0x29e58c8a4d84df46) }, // 3471
+ { cat(0x72e93fe0cce7cfd9, 0x320e19f88f1161b8), cat(0x99e11423765ec1d0, 0x2184706ea46a4c38) }, // 3472
+ { cat(0xb7db9967ae3fb2f5, 0x1ce35cc0e4e89c59), cat(0xf634ed058a313619, 0xcf3a4d7dd3dd46c0) }, // 3473
+ { cat(0x2cafadec8b6628c4, 0x171c4a33ea53b047), cat(0xc4f724046e8dc4e1, 0x72950acb0fe4389a) }, // 3474
+ { cat(0x56f2f18a091e8703, 0x45b03b5cbb7626a0), cat(0x9d928336bed7d0b4, 0x5baa6f08d983607b) }, // 3475
+ { cat(0x57eb1c100e973e6b, 0xa2b3922df8bd0a99), cat(0xfc1d9ebdfe261aba, 0x2c43e4daf59f00c5) }, // 3476
+ { cat(0x4655b00cd878febc, 0x822941be60973bae), cat(0xc9b14bcb31b81561, 0xbd031d7bf7b26704) }, // 3477
+ { cat(0x9eaaf33d79fa6563, 0x9b5434984d45c958), cat(0xa15aa308f493444e, 0x30cf4ac992f51f36) }, // 3478
+ { cat(0x7eef28fdfb2eb782, 0xe2a9c3ad0a9e3aad), cat(0x81154f3a5d429d0b, 0x5a3f6f07a8c418f8) }, // 3479
+ { cat(0x64b1db2ff84abf37, 0xd10f9f7b44305de1), cat(0xce887ec3c86a94de, 0xf6cbe4d90e068e5a) }, // 3480
+ { cat(0x508e48f32d0898f9, 0x740c7f95d026b181), cat(0xa539ff0306bbaa4b, 0xf8a31d7a719ed848) }, // 3481
+ { cat(0x73a50728f0d3ad94, 0x5cd6cc77d9b88e01), cat(0x842e659c0562eea3, 0x2d4f4ac85ae579d3) }, // 3482
+ { cat(0x85d4d8418152af53, 0xc7be13f2f5f41667), cat(0xd37d6f60089e4a9e, 0xaee54473c4a25c85) }, // 3483
+ { cat(0x6b10ad01344225dc, 0x9fcb4328c4c3451f), cat(0xa93125e66d4b6ee5, 0x58b769f636e84a04) }, // 3484
+ { cat(0x88da2400f69b517d, 0x4ca29c209d690419), cat(0x875a84b8576f8bea, 0xad5f87f82bed0803) }, // 3485
+ { cat(0x415d0667f0f88262, 0x143760342f0e6cf5), cat(0xd890d45a257f4644, 0x4898d98d1314d99f) }, // 3486
+ { cat(0x01173853272d351b, 0x435f8029bf3ebd91), cat(0xad40a9e1b7990503, 0x6d471470dc10ae19) }, // 3487
+ { cat(0x9a78f9dc1f575daf, 0x6919335498fefe0e), cat(0x8a9a21815fad9d9c, 0x576c105a49a6f1ad) }, // 3488
+ { cat(0x5d8e5c93655895e5, 0x74f51eedc197fce2), cat(0xddc368ceff7c2f60, 0x8be01a2a0f7182af) }, // 3489
+ { cat(0xe471e3a91de077ea, 0xc3f74bf167acca4f), cat(0xb16920a5993025e6, 0xd64ce1bb3f8e0225) }, // 3490
+ { cat(0x1d27e95417e6c655, 0x6992a3278623d50c), cat(0x8dedb3b7adc01e52, 0x450a4e2f660b34eb) }, // 3491
+ { cat(0xc83fdbb9bfd7a3bb, 0xdc1dd1d8d69fbb46), cat(0xe315ec5916003083, 0xa1aa16b23cdebb11) }, // 3492
+ { cat(0x6cffe2faffdfb62f, 0xe34b0e471219629e), cat(0xb5ab237a780026cf, 0xb488122830b22f41) }, // 3493
+ { cat(0x23ffe8c8ccb2f826, 0x4f6f3e9f41ade87f), cat(0x9155b5fb9333523f, 0xc3a00e868d5b5901) }, // 3494
+ { cat(0x399974747ab7f370, 0x7f18643202afda64), cat(0xe889232c1eb88399, 0x3900173daef88e68) }, // 3495
+ { cat(0x2e145d29fbc65c59, 0xff46b68e688caeb7), cat(0xba074f567efa02e0, 0xfa6678fe2593a520) }, // 3496
+ { cat(0xbe76b0ee630516ae, 0x65d22ba520708bc5), cat(0x94d2a5decbfb3580, 0xc851fa64eadc8419) }, // 3497
+ { cat(0x63f11b1704d4f117, 0x095045d500b412d5), cat(0xee1dd631465ebc01, 0x40832a3b1160d35c) }, // 3498
+ { cat(0x4ff415ac03dd8dac, 0x07736b10cd5cdbde), cat(0xbe7e44f4384bc99a, 0x9a02882f411a42b0) }, // 3499
+ { cat(0x0cc344899cb13e23, 0x39292273d77d7cb2), cat(0x986503f6936fd47b, 0xae686cf29a7b688d) }, // 3500
+ { cat(0x146ba0dc2de8636b, 0x8ea8371fbf2f2de9), cat(0xf3d4d3241f1953f9, 0x170d7b1dc3f8a748) }, // 3501
+ { cat(0x10561a49be5382bc, 0x72202c1965bf57ed), cat(0xc310a8e9b27aa994, 0x12712f4b032d52a0) }, // 3502
+ { cat(0xa6ab483afea93563, 0x8e80234784991324), cat(0x9c0d53ee28622143, 0x41f425d59c244219) }, // 3503
+ { cat(0x0aaba6c4caa8556c, 0x17336ba5a0f4eb6d), cat(0xf9aeecb0409d0205, 0x36536fbc2d06d029) }, // 3504
+ { cat(0x3bbc856a3bb9ddf0, 0x128f89514d90bc57), cat(0xc7bf23c033b0ce6a, 0x91dc59635738a687) }, // 3505
+ { cat(0x96306abb62fb17f3, 0x420c6ddaa473c9e0), cat(0x9fcc1c99c2f3d855, 0x417d144f78fa1ed2) }, // 3506
+ { cat(0x89e7112bd191bfeb, 0x9ce0afc43a52dc99), cat(0xffacfa8f9e52f3bb, 0x9bfb53b25b29caea) }, // 3507
+ { cat(0x6e5274230e0e3322, 0xe3e6f30361dbe3ad), cat(0xcc8a620c7ea8c2fc, 0x7cc90fc1e287d588) }, // 3508
+ { cat(0x5841f68271a4f5b5, 0x831f28cf817cb624), cat(0xa3a1e809feed68c9, 0xfd6da634b53977a0) }, // 3509
+ { cat(0xad019201f483f7c4, 0x68e5ba3f9aca2b50), cat(0x82e7ecd4cbf120a1, 0x978aeb5d5dc792e6) }, // 3510
+ { cat(0xae68e99cba6cbfa0, 0xa7d5f6cc2add121a), cat(0xd1731487acb50102, 0x8c11789562d8eb0a) }, // 3511
+ { cat(0x8b87214a2ebd661a, 0x1fde5f09bbe40e7b), cat(0xa78f439fbd5d9a68, 0x700dfa111be0bc08) }, // 3512
+ { cat(0x6f9f4dd4f2311e7b, 0x4cb1e5a1631cd863), cat(0x860c3619644ae1ed, 0x267194da7cb3c9a0) }, // 3513
+ { cat(0xe5cbafbb1d1b63f8, 0x7ab63c356b615a37), cat(0xd679f028a077cfe1, 0xd71c215d9452dc33) }, // 3514
+ { cat(0x84a2f2fc17491cc6, 0xc891c9c455e77b60), cat(0xab94c020805fd981, 0x78e34de476a8b029) }, // 3515
+ { cat(0x03b58f3012a0e3d2, 0x3a0e3b0377ec62b3), cat(0x8943cce6cd197acd, 0xfa4f718392208cee) }, // 3516
+ { cat(0x6c55b1e684349fb6, 0xc349f8058cad6ab8), cat(0xdb9fae3e14f59149, 0x907f1c05b69a7b16) }, // 3517
+ { cat(0xf0448e52035d4c92, 0x35d4c66ad6f1222d), cat(0xafb2f1cb43f7a76e, 0x0d327cd15ee1fc11) }, // 3518
+ { cat(0x59d071db35e43d41, 0xc4aa385578c0e824), cat(0x8c8f27d5cff952be, 0x70f530a77f1b300e) }, // 3519
+ { cat(0x294d82f85639fb9c, 0x6ddd26ef279b0d06), cat(0xe0e50c894cc21dfd, 0x81884dd8cb5eb34a) }, // 3520
+ { cat(0xbaa468c6ab619616, 0xbe4a858c1faf3d9e), cat(0xb3ea706dd701b197, 0x9ad3717a3c4bc2a1) }, // 3521
+ { cat(0xfbb6ba38891ade78, 0x983b9e09b2f297b2), cat(0x8feec057df348e12, 0xe242c12e96a3021a) }, // 3522
+ { cat(0xc5f129f40e9163f4, 0x26c5c9a91e50f2b6), cat(0xe64acd596520e351, 0x6a04684a8a9e69c4) }, // 3523
+ { cat(0xd18dbb29a5411cc3, 0x5237d4874b73f55f), cat(0xb83bd77ab74d82a7, 0x880386a2087ebb03) }, // 3524
+ { cat(0x74716287b7674a35, 0xdb5fdd3909299119), cat(0x936312c892a46886, 0x06693881a0656269) }, // 3525
+ { cat(0xed82373f8bd876bc, 0x9232fb8e750f4e8d), cat(0xebd1b7a751070da3, 0x3d752735cd6f03db) }, // 3526
+ { cat(0x8ace92993cad2bca, 0x0e8f2fa52a72a53e), cat(0xbca7c61f7405a482, 0x9790ec2b0abf3649) }, // 3527
+ { cat(0x3bd8754763bdbca1, 0xa53f5950eec21dcb), cat(0x96ec9e7f9004839b, 0xac73f0226eff5ea1) }, // 3528
+ { cat(0xf95a553f05fc6102, 0xa1fef54e4ad02fab), cat(0xf17a9732800738f9, 0x13ecb36a4b323101) }, // 3529
+ { cat(0xfaaeaa98d196b402, 0x1b325dd83bd9bfbc), cat(0xc12edf5b999f60c7, 0x4323c2bb6f5b5a67) }, // 3530
+ { cat(0x2ef22213dadef668, 0x15c1e4acfcae32fd), cat(0x9a8be5e2e14c4d6c, 0x35b63562bf7c4853) }, // 3531
+ { cat(0x4b1d0352f7cb23d9, 0xbc696de19449eb2e), cat(0xf7463c9e3546e246, 0xbc56bbd1326073b8) }, // 3532
+ { cat(0x6f4a690f2ca28314, 0x96babe4e103b228c), cat(0xc5d1ca182a9f1b6b, 0xc9defca75b805c93) }, // 3533
+ { cat(0xf2a1eda5bd4ecf43, 0xabc8983e73628209), cat(0x9e416e79bbb27c56, 0x3b18ca1f7c66b075) }, // 3534
+ { cat(0xea9caf6f954ae539, 0x12da8d30b89d9cdc), cat(0xfd357d8f92b72d56, 0xc4f47698c70ab3ef) }, // 3535
+ { cat(0x887d59261108b760, 0xdbe20a8d607e1716), cat(0xca91313fa8928aab, 0xd0c39213d26ef659) }, // 3536
+ { cat(0x6d31141e7406f91a, 0x4981a20ab3981278), cat(0xa20dc0ffba0ed556, 0x409c74dca858c514) }, // 3537
+ { cat(0x575a767ec338c748, 0x3ace1b3bc2e00ec7), cat(0x81a49a662e724445, 0x007d2a4a20470410) }, // 3538
+ { cat(0x8bc3f0cad1f4720d, 0x2ae35ec60499b13e), cat(0xcf6dc3d6b0b6d3a1, 0x9a61dd4366d80680) }, // 3539
+ { cat(0x3c9cc0a241905b3d, 0xbbe9189e6a148dcb), cat(0xa5f169788d5f0fb4, 0x7b817dcf85799ecd) }, // 3540
+ { cat(0x96e3cd4e9ad9e297, 0xc98746e521aa0b09), cat(0x84c1212d3de5a629, 0xfc6797d937947f0a) }, // 3541
+ { cat(0xbe39487dc48fd0f2, 0xdc0ba4a1cf76780e), cat(0xd46835152fd5d6a9, 0x93d8f2f525ba64dd) }, // 3542
+ { cat(0x31c76d316a0ca728, 0xb009508172c52cd8), cat(0xa9ecf7442644abba, 0xdcad8f2a84951d7e) }, // 3543
+ { cat(0xc16c575abb3d5286, 0xf33aa6cdf56a8a46), cat(0x87f0c5d01e9d562f, 0x16f13f5536ddb131) }, // 3544
+ { cat(0x68ad58912b9550d7, 0xeb910ae322441070), cat(0xd9813c8030fbbd18, 0x24b53221f162b51c) }, // 3545
+ { cat(0x86f113a756110d79, 0x8940d58281d00d27), cat(0xae00fd335a62fdac, 0xea2a8e818de890e3) }, // 3546
+ { cat(0x058da952ab40d794, 0x6dcd779b9b0cd752), cat(0x8b33fdc2aeb597bd, 0x88220b9ad7ed40b6) }, // 3547
+ { cat(0x08e2a88445348c20, 0xafaf25c5c4e15884), cat(0xdeb996044abc25fc, 0x0d0345c48caecdf0) }, // 3548
+ { cat(0xa0b5539d042a09b3, 0xbfbf516b03e77a03), cat(0xb22e119d089684c9, 0xa4029e36d6f23e59) }, // 3549
+ { cat(0xb3c442e40354d48f, 0xcc990def3652c802), cat(0x8e8b414a6d453707, 0xb6687e92458e9847) }, // 3550
+ { cat(0x52d39e399eee20e6, 0x1428164b8a1e0cd0), cat(0xe4120210aed524d9, 0x23da641d3c175a0c) }, // 3551
+ { cat(0x0f0fb1c7b2581a51, 0xa9b9ab6fa1b1a3da), cat(0xb674ce73bf10ea47, 0x4fe1e9b0fcdf7b3d) }, // 3552
+ { cat(0x7272f49fc1e0150e, 0x216155f2e7c14fe2), cat(0x91f70b8fcc0d8839, 0x0cb4baf3fd7f95ca) }, // 3553
+ { cat(0x83eb20ff9c99bb49, 0xcf02231e3f9bb302), cat(0xe98b45b2e015a6c1, 0xadedf7ecc8cc22dd) }, // 3554
+ { cat(0x6988e732e3ae2f6e, 0x3f34e8e4ffafc268), cat(0xbad5d15be677b89a, 0xf18b2cbd6d701be4) }, // 3555
+ { cat(0x546d85c24fbe8c58, 0x3290ba50cc8c9b87), cat(0x9577daafeb92fa15, 0x8e08f0978ac01650) }, // 3556
+ { cat(0x20af3c6a1930e08d, 0x1db45d4e14142c0b), cat(0xef262ab31284c355, 0xb00e4dbf44668a1a) }, // 3557
+ { cat(0x1a25c9ee7a8d8070, 0xe4904aa4dcdcf009), cat(0xbf51bbc2753702aa, 0xf33ea49903853b48) }, // 3558
+ { cat(0xe1b7d4bec871338d, 0x83a6a21d7d7d8cd4), cat(0x990e2fcec42c0222, 0x5c321d4736042f6c) }, // 3559
+ { cat(0x02bfbacada4eb8e2, 0x6c3dd02f2f2f47b9), cat(0xf4e37fb139e0036a, 0x2d1cfba52339e57b) }, // 3560
+ { cat(0x6899623be1d893e8, 0x5697d9bf58f29fc7), cat(0xc3e932f42e4ccf88, 0x24172fb74f618462) }, // 3561
+ { cat(0xed4781c9817a0fed, 0x1213149913f54ca0), cat(0x9cba8f29bea3d939, 0xb678f2f90c4e0381) }, // 3562
+ { cat(0x4872694268c34cae, 0x8351ba8e86554765), cat(0xfac41842ca9fc1f5, 0xf0c184c1ad499f36) }, // 3563
+ { cat(0xd38eba9b8702a3be, 0xcf74953ed1ddd2b8), cat(0xc89ce0356ee634c4, 0xc09ad09af107b291) }, // 3564
+ { cat(0xa93efbaf9f354fcb, 0xd92a10ff0e4b0ef9), cat(0xa07d802abf1e909d, 0x66e2407bf4062874) }, // 3565
+ { cat(0xedcbfc8c7f5dd96f, 0xe0ee73ff3ea27261), cat(0x8064668898e5407d, 0xebe833965cd1b9f6) }, // 3566
+ { cat(0x16132dad989628b3, 0x017d86653103ea35), cat(0xcd6d70da8e3b9a63, 0x130d1f56fae9298b) }, // 3567
+ { cat(0x11a8f157ad44ed5c, 0x01313850f40321c4), cat(0xa4578d7ba4fc7b82, 0x75a419126254213c) }, // 3568
+ { cat(0x74872779576a577c, 0xcdc0f9da5ccf4e36), cat(0x83793dfc83fd2f9b, 0x9150140eb5101a96) }, // 3569
+ { cat(0x873ea58ef243bf2e, 0x16018fc3c7b216bd), cat(0xd25b9660d32eb292, 0x8219b9b121b35dbd) }, // 3570
+ { cat(0x9f65513f2836328b, 0x44ce0c9c9fc1abcb), cat(0xa849451a428bc20e, 0xce7afaf41af5e497) }, // 3571
+ { cat(0x4c510dcc202b5ba2, 0x9d71a3b07fce2309), cat(0x86a104150209680b, 0xd862625ce25e5079) }, // 3572
+ { cat(0x13b4e2e03378929d, 0xc8b5d2b3ffb0380e), cat(0xd768068803424012, 0xf3d09d616a3080c2) }, // 3573
+ { cat(0x762a4f19c2c6dbb1, 0x6d5e42299959c671), cat(0xac53386ccf683342, 0x5ca6e44dee8d33ce) }, // 3574
+ { cat(0x2b550c149bd2495a, 0xbde501bae1149ec1), cat(0x89dc2d23d9202901, 0xe3b8b6a4bed75ca5) }, // 3575
+ { cat(0x788813542c83a891, 0x2fd4cf916820fe02), cat(0xdc937b6c8e99db36, 0x39278aa13158943b) }, // 3576
+ { cat(0x606cdc4356cfba0d, 0xbfdd72dab9b3fe68), cat(0xb075fc56d87b15c4, 0xfa860880f446dcfc) }, // 3577
+ { cat(0xb38a49cf78a62e71, 0x664ac248948ffeba), cat(0x8d2b304579fc116a, 0x6204d39a5d057d96) }, // 3578
+ { cat(0x5276dc7f27704a4f, 0x0a1136da874ccac2), cat(0xe1deb3a25cc68243, 0xd007b8f6fb3bfc24) }, // 3579
+ { cat(0xa85f16cc1f8d083f, 0x3b40f8aed2a3d568), cat(0xb4b2294eb09ece9c, 0xa66c93f8c8fcc9b6) }, // 3580
+ { cat(0x204c123ce60a6cff, 0x629a608bdbb64453), cat(0x908e877226e57216, 0xeb8a0ffa3a63d492) }, // 3581
+ { cat(0xcd468394a343e198, 0x9dc3cdac92bd3a1f), cat(0xe74a72503e3be9be, 0x45a9b329f70620e9) }, // 3582
+ { cat(0xd76b9c76e9031ae0, 0x7e363e23a89761b2), cat(0xb9085b7364fcbafe, 0x9e215c21926b4d87) }, // 3583
+ { cat(0x45efb05f20cf48b3, 0x982b64e953ac4e28), cat(0x9406af8f83fd6265, 0x4b4de34e0ebc3e06) }, // 3584
+ { cat(0xa3191a31ce187452, 0x8d123b0eec46e374), cat(0xecd77f4c06623708, 0x787c9ee34ac6c9a3) }, // 3585
+ { cat(0x4f474827d8139042, 0x0a74fc0bf038b5f6), cat(0xbd7932a3384e926d, 0x2d307f1c3bd23ae9) }, // 3586
+ { cat(0x3f6c39b979a94034, 0xd52a633cc02d5e5f), cat(0x9794288293720ebd, 0xbdc065b02fdb6254) }, // 3587
+ { cat(0xcbe05c5bf5db99ee, 0x21dd6b9466aefd64), cat(0xf286a73752501795, 0xfc670919e62bd086) }, // 3588
+ { cat(0x6fe6b049917c7b24, 0xe7e4561052259783), cat(0xc2055292a84012de, 0x6385a0e184efda05) }, // 3589
+ { cat(0x598559d4746395b7, 0x1fe9de7374eadf9c), cat(0x9b3775422033424b, 0x82d14d8137264804) }, // 3590
+ { cat(0x28d55c87209f55f1, 0xcca963ebee4498fa), cat(0xf858bb9d005203ac, 0x0482159b8b70733a) }, // 3591
+ { cat(0xed777d38e6e5de5b, 0x0a211cbcbe9d472e), cat(0xc6ad62e400419c89, 0x9d34de160926c294) }, // 3592
+ { cat(0x5792ca93ebeb1848, 0xd4e74a30987dd28c), cat(0x9ef11be999ce16d4, 0x7dc3e4de6db89baa) }, // 3593
+ { cat(0x8c1e10ecacab5a0e, 0x2172104dc0c950df), cat(0xfe4e930f5c7cf153, 0xfc6ca163e2c0f910) }, // 3594
+ { cat(0x09b1a723bd55e1a4, 0xe78e7371670773e6), cat(0xcb720f3f7d30c10f, 0xfd23b44fe89a60da) }, // 3595
+ { cat(0x6e27b8e96444b483, 0xec71f5f4526c5cb8), cat(0xa2c1a5cc642700d9, 0x974fc373207b80ae) }, // 3596
+ { cat(0xf1b960bab69d5d36, 0x56c1919041f04a2d), cat(0x823484a383526714, 0x790c9c5c19fc66f1) }, // 3597
+ { cat(0xe9289ac457622ebd, 0x579c1c1a031a1047), cat(0xd054076c0550a4ed, 0x8e7a93c68ffa3e4f) }, // 3598
+ { cat(0x8753af03791b5897, 0x7949b014cf480d06), cat(0xa6a99f899dda1d8a, 0xd8620fd20cc831d9) }, // 3599
+ { cat(0x6c42f2692daf7a12, 0xc76e26770c39a405), cat(0x85547fa14b14e46f, 0x1381a641a3d35b14) }, // 3600
+ { cat(0x7a04b70eaf7f29b7, 0xa57d0a58138f6cd4), cat(0xd553ff6878216d7e, 0x859c3d35d2ebc4ed) }, // 3601
+ { cat(0x94d0927225ff5492, 0xeaca6eacdc72bd77), cat(0xaaa99920601abdfe, 0xd149ca9175896a57) }, // 3602
+ { cat(0x770d41f4eb32aa0f, 0x223b8bbd7d289792), cat(0x8887adb3801564cb, 0xdaa16edac46deeac) }, // 3603
+ { cat(0xf1aecfee451ddce5, 0x0392792f2ea758ea), cat(0xda72af8599bbd479, 0x5dcf17c46d7cb113) }, // 3604
+ { cat(0x8e2573250417e3ea, 0x6941fa8c2552ad88), cat(0xaec226047afca9fa, 0xb1727969f1308da9) }, // 3605
+ { cat(0xa4eac28403464fee, 0xba9b2ed68442246d), cat(0x8bce84d06263bb2e, 0xf45b9454c0f3a487) }, // 3606
+ { cat(0xa1779da0053d4cb1, 0x2a91e48a6d36a0ae), cat(0xdfb0d4809d6c5eb1, 0x86f8ed5467ec3a72) }, // 3607
+ { cat(0xb45fb14cd0fdd6f4, 0x220e506ebdc54d58), cat(0xb2f3dd33b1237ef4, 0x6bfa5776b989c85b) }, // 3608
+ { cat(0x904c8dd70d97df29, 0xb4d8405897d10aad), cat(0x8f297dc2f41c6590, 0x5661df922e07d37c) }, // 3609
+ { cat(0xe6e0e2f1af59650f, 0x87c066f4261b4447), cat(0xe50f2f9e5360a280, 0x8a3632837cd95260) }, // 3610
+ { cat(0xb8b3e8c1591450d9, 0x3966b8c351af69d3), cat(0xb73f594b75e6e866, 0xd4f8286930addb80) }, // 3611
+ { cat(0xc6f653cde0dd0d7a, 0x94522d690e25ee42), cat(0x9299143c5e525385, 0x772ced20f3be4933) }, // 3612
+ { cat(0x3e56ec7c9afb48c4, 0x20837bdb49d64a04), cat(0xea8e86c6fd5085a2, 0x5847e1ce52ca0eb9) }, // 3613
+ { cat(0x651256ca1595d3d0, 0x1a02c97c3b11d4d0), cat(0xbba5389f310d37b5, 0x136cb4a50f080bc7) }, // 3614
+ { cat(0x50db78a1aade430c, 0xe19bd4636274aa40), cat(0x961dc6e5c0d75fc4, 0x0f8a2a1da5a0096c) }, // 3615
+ { cat(0x815f276911639e7b, 0x0292ed6bd0baaa00), cat(0xf02fa4a2ce256606, 0x7f437695d5ccdbe0) }, // 3616
+ { cat(0x677f52ba744fb1fc, 0x020f2456409554cd), cat(0xc0261d4f0b511e6b, 0x9902c544ab0a4980) }, // 3617
+ { cat(0x85ff7561f6a627fc, 0xce72837833aaaa3d), cat(0x99b817726f741856, 0x1402376a226ea133) }, // 3618
+ { cat(0xd665889cbdd6a661, 0x4a50d259ec444395), cat(0xf5f358b718b9c089, 0xb99d25769d7dceb8) }, // 3619
+ { cat(0x78513a16fe4551e7, 0x6ea70eae569d02de), cat(0xc4c2ad5f46fb006e, 0x2e17512bb131722d) }, // 3620
+ { cat(0xf9da94df31d10e52, 0xbeec0bbeabb0cf18), cat(0x9d688ab29f2f338b, 0x5812a756275ac1bd) }, // 3621
+ { cat(0x5c90ee31e94e7d51, 0x3179ac6445e7b1bf), cat(0xfbda778431e51f45, 0x59b77223722acf96) }, // 3622
+ { cat(0xe3a724f4baa5310d, 0xc12e23836b1fc166), cat(0xc97b92d027ea7f6a, 0xae2c5b4f8e88a611) }, // 3623
+ { cat(0x1c85b72a2eea8da4, 0x9a8b4f9c55b3011f), cat(0xa12fa8a6865532bb, 0xbe89e2a60ba084db) }, // 3624
+ { cat(0x4a04928825887150, 0x7ba2a616aaf59a7f), cat(0x80f2ed520510f562, 0xfed4b551a2e6d0af) }, // 3625
+ { cat(0x100750d9d5a71bb3, 0xf9043cf11188f731), cat(0xce517bb66e81889e, 0x648788829e3e1ab2) }, // 3626
+ { cat(0x0cd2a714aaec1629, 0x940363f40e072c27), cat(0xa50dfc91f2013a18, 0x506c6d354b64e228) }, // 3627
+ { cat(0xd70eec1088bcde87, 0xa99c4ff6719f5686), cat(0x840b3074c19a94e0, 0x4056bdc43c50b4ec) }, // 3628
+ { cat(0x8b4b134da794973f, 0x75c6e6571c322409), cat(0xd3451a5468f7549a, 0x008ac939fa1abb14) }, // 3629
+ { cat(0xd5d5a90aec76df65, 0xf7d251df49c1b66e), cat(0xa904151053f9107b, 0x33a23a94c8156276) }, // 3630
+ { cat(0x44aaeda256c57f84, 0xc641db1907ce2b8b), cat(0x87367740432da6c8, 0xf61b6210a0111b92) }, // 3631
+ { cat(0xa1117c36f13bff3a, 0xd6cfc4f4d949df45), cat(0xd85725339eaf7141, 0x89c569b4334e9283) }, // 3632
+ { cat(0x1a74635f27633295, 0x78a6372a476e4c37), cat(0xad1284294bbf8dce, 0x07d1215cf5d87536) }, // 3633
+ { cat(0x1529e918ec4f5baa, 0xc6eb5f5505f1d693), cat(0x8a7536876fcc7171, 0x9fda81172b1390f8) }, // 3634
+ { cat(0xeea974f4ad4bc5de, 0x0b123221a31c8a84), cat(0xdd88573f19471be8, 0xffc401beab52818c) }, // 3635
+ { cat(0x8bbac3f6f1096b18, 0x08db5b4e1c16d537), cat(0xb139df65add27cba, 0x663667cbbc42013d) }, // 3636
+ { cat(0xa2fbcff8c0d455ac, 0xd3e2af71b012442c), cat(0x8dc7e5eaf1753095, 0x1e91eca2fd019a97) }, // 3637
+ { cat(0x04c6198e0153bc47, 0xb96ab24f801d39df), cat(0xe2d96fde4f21e754, 0xfdb6476b2e68f759) }, // 3638
+ { cat(0x9d6b47a4cddc969f, 0xc7888ea600176180), cat(0xb57abfe50c1b1f77, 0x315e9f88f1ed92ad) }, // 3639
+ { cat(0x1789061d717d454c, 0x9fa0721e66791acd), cat(0x912effea7015b2c5, 0xc1187fa0c18adbbe) }, // 3640
+ { cat(0x58db3cfbe8c86ee0, 0xff671cfd70c1c47a), cat(0xe84b3310b355ead6, 0x01c0cc3468de2c63) }, // 3641
+ { cat(0x7a48fd9653d38be7, 0x32b8e3fdf3ce36c8), cat(0xb9d5c273c2ab2244, 0xce33d69053e4f04f) }, // 3642
+ { cat(0x950731450fdc6fec, 0x2893e997f63e923a), cat(0x94ab01f63555b503, 0xd82978737650c03f) }, // 3643
+ { cat(0xbb3eb53b4c93e646, 0xa7530f5989fdb6c3), cat(0xedde6989eeef8806, 0x26a8c0b8bd4e0065) }, // 3644
+ { cat(0x95cbc42f707651d2, 0x1f75a5e13b315f02), cat(0xbe4b87a18bf2d338, 0x1eed66fa310b3384) }, // 3645
+ { cat(0x44a3035926c50e41, 0xb2c484b42f5ab268), cat(0x983c6c813cc24293, 0x4bf11f2e8da28f9d) }, // 3646
+ { cat(0xa104d2283e0816cf, 0x846da1204bc450a7), cat(0xf393e0cec79d3752, 0x131b6517490418fb) }, // 3647
+ { cat(0x80d0a82031a0123f, 0x9d2480e6a30373b9), cat(0xc2dcb3d89fb0f90e, 0x75af8412a0d013fc) }, // 3648
+ { cat(0xcd73b9b35ae674ff, 0xb0ea00b882692961), cat(0x9be3c313b2f3fa71, 0xf7bf9cdbb3d9a996) }, // 3649
+ { cat(0x1585f5ebc4a3ee65, 0xe7dccdf403db7567), cat(0xf96c6b52b7ecc3e9, 0x8c65c7c5ec8f75be) }, // 3650
+ { cat(0xde04c4bc9d4ff1eb, 0x1fe3d7f6697c5dec), cat(0xc789ef755ff09cba, 0xd6b7d304bd3f9164) }, // 3651
+ { cat(0x1803d096e43ff4bc, 0x1983132b8796b18a), cat(0x9fa18c5de65a16fb, 0xdef9759d6432dab7) }, // 3652
+ { cat(0x599fb424a0665460, 0x28d1b845a5bde8dc), cat(0xff68e0963d5cf192, 0xfe5bef6239eaf78b) }, // 3653
+ { cat(0xe14c901d4d1ea9e6, 0x870e2d048497ed7d), cat(0xcc53e6de977d8e0f, 0x31e325e82e5592d5) }, // 3654
+ { cat(0x4dd6d9b10a7eee52, 0x05a4f0d06a132464), cat(0xa376524bac6471a5, 0xc18284b9beaadbde) }, // 3655
+ { cat(0x7178ae273b98bea8, 0x0483f3d9ee75b6b7), cat(0x82c50ea2f0505aeb, 0x013536fafeef164b) }, // 3656
+ { cat(0x4f277d0b928dfdd9, 0xa0d31fc31722bdf1), cat(0xd13b4a9e4d4d5e44, 0xcebb8b2b317e8a12) }, // 3657
+ { cat(0xd8ec6409420b317a, 0xe70f4c9c1282318d), cat(0xa762a2183dd77e9d, 0x722fa288f4653b41) }, // 3658
+ { cat(0x13f050076808f462, 0x5272a3b00ece8e0b), cat(0x85e881acfe45fee4, 0x5b594ed3f6b7629b) }, // 3659
+ { cat(0x531a19a573418703, 0xb71dd2b34ae41677), cat(0xd640cf7b306ffe3a, 0x2bc217b98abf042b) }, // 3660
+ { cat(0x427b47b78f679f36, 0x2c17dbc2a25011f9), cat(0xab670c628d2664fb, 0x5634dfc7a23269bc) }, // 3661
+ { cat(0x68629fc60c52e5c4, 0xf01316354ea674c8), cat(0x891f3d1ba41eb72f, 0x782a4c9fb4f52163) }, // 3662
+ { cat(0x0d6a993ce084a2d4, 0xb351bd221770bad9), cat(0xdb652e92a0312518, 0xc043adcc54bb689f) }, // 3663
+ { cat(0xa4554763e6d08243, 0xc2a7ca81ac5a2f14), cat(0xaf84254219c0ea7a, 0x336957d6aa2f86e5) }, // 3664
+ { cat(0x83776c4febda01cf, 0xceeca20156ae8c10), cat(0x8c69b768149a552e, 0x8f87797888260584) }, // 3665
+ { cat(0x058be07fdfc33619, 0x4b1436688ab0e019), cat(0xe0a92573542a21e4, 0x18d8c25a737008d4) }, // 3666
+ { cat(0x6ad64d331968f814, 0x3c102b86d55a4ce1), cat(0xb3ba845c4354e7e9, 0xad7a351529266d76) }, // 3667
+ { cat(0x88ab70f5aded9343, 0x634022d244483d81), cat(0x8fc869e36910b987, 0xbdfb5daa8751f12b) }, // 3668
+ { cat(0x41124e55e315b86b, 0xd20037b6d3a6c8ce), cat(0xe60d7638a81ac272, 0xc9922f773ee981df) }, // 3669
+ { cat(0x6741d844b5aaf9ef, 0xdb335fc5761f070b), cat(0xb80ac4fa2015685b, 0xd474f2c5cbee017f) }, // 3670
+ { cat(0x85ce469d5e22618c, 0xaf5c4c9df818d26f), cat(0x933bd0c819aab9e3, 0x105d8f04a324cdff) }, // 3671
+ { cat(0x6fb070fbc9d09c14, 0x4bc6e0fcc027b718), cat(0xeb92e7a68f778fd1, 0xb3c8e4d4383ae332) }, // 3672
+ { cat(0xf2f38d963b0d49a9, 0xd638b3fd66862c14), cat(0xbc75861ed92c730e, 0x296d83dcf9c8b5c1) }, // 3673
+ { cat(0x28c2d7ab627107bb, 0x11c6f6645204f010), cat(0x96c46b4be0f05c0b, 0x54579cb0c7d3c49b) }, // 3674
+ { cat(0xa79e25df03e80c5e, 0x82d7f0a0833b19b3), cat(0xf13a454634b3c678, 0x86f2944e0c86075e) }, // 3675
+ { cat(0x52e4eb18cfecd6b2, 0x02465a1a0295ae29), cat(0xc0fb6a9e908fd1fa, 0x058edd0b3d3805e5) }, // 3676
+ { cat(0xa8b7227a3ff0abc1, 0x9b6b7b4802115821), cat(0x9a62bbb20d3fdb2e, 0x6ad8b0d5ca9337ea) }, // 3677
+ { cat(0x412503f6ccb44602, 0x9245920cd01bc034), cat(0xf7045f8348662b7d, 0x77c11aefaa852644) }, // 3678
+ { cat(0x341d9cc570903802, 0x0e9e0e70a67c99c3), cat(0xc59d1935d384ef97, 0x9300e259553751d0) }, // 3679
+ { cat(0xf67e17045a0cf99b, 0x3ee4d85a1eca149c), cat(0x9e17475e42d0bfac, 0x759a4eadddc5db0c) }, // 3680
+ { cat(0xf0c9be6d5ce18f5e, 0xcb07c0903143542d), cat(0xfcf20bca048132ad, 0x88f6e44962d62b47) }, // 3681
+ { cat(0x5a3afebde3e7a5e5, 0x6f3966d9c102a9be), cat(0xca5b3ca19d34288a, 0xd3f8b6a11bde8906) }, // 3682
+ { cat(0x482f3231831fb7ea, 0xbf611f149a6887cb), cat(0xa1e296e7b0f686d5, 0x7660921a7cb20738) }, // 3683
+ { cat(0xa025c1c135b2f988, 0x991a7f43aeba063c), cat(0x81821252f3f86bdd, 0xf84d41aeca2805c6) }, // 3684
+ { cat(0x336f9c6855eb28da, 0x8e90cb9f7df67060), cat(0xcf3683b7ecc0ac96, 0x5a1535e476a66fa4) }, // 3685
+ { cat(0xf5f2e386ab228715, 0x3eda3c7f97f859e6), cat(0xa5c5362cbd66f078, 0x4810f7e9f885261c) }, // 3686
+ { cat(0x918f1c6bbc1b9f44, 0x32483066132d14b8), cat(0x849dc4f097858d2d, 0x0673f987fa041e7d) }, // 3687
+ { cat(0x4f4b60ac602c3206, 0xb6d9e709b8482127), cat(0xd42fa180f26f4848, 0x0a5328d99006972f) }, // 3688
+ { cat(0xa5d5e6f04cf02805, 0x5f14b8d4936ce752), cat(0xa9bfb467285906a0, 0x08428714733878f2) }, // 3689
+ { cat(0x84ab1f26a3f35337, 0x7f43c71075f0b90f), cat(0x87cc905286ad9ee6, 0x6d0205a9f5c6c728) }, // 3690
+ { cat(0x077831d76cb88525, 0x986c71b3efe78e7e), cat(0xd9474d50d77c3170, 0xae69a2a9893e0b74) }, // 3691
+ { cat(0xd2c68e45f0939db7, 0xad238e298cb93ecb), cat(0xadd2a440ac635ac0, 0x8b87b5546dcb3c5c) }, // 3692
+ { cat(0x423871d18d42e492, 0xf0e93e87a3c7656f), cat(0x8b0ee9cd56b5e233, 0xa2d2f776be3c304a) }, // 3693
+ { cat(0xd05a4fb5aed16db7, 0xe7db973f6c723be5), cat(0xde7e42e2245636b9, 0x0484bf2463938076) }, // 3694
+ { cat(0x737b72f7bf0df15f, 0xecafac32bd282feb), cat(0xb1fe9be81d11c560, 0xd06a328382dc66c5) }, // 3695
+ { cat(0x292f8f2c98d7f44c, 0xbd59568efdb9bfef), cat(0x8e6549867da7d11a, 0x4054f5360249ebd1) }, // 3696
+ { cat(0x0eb27eadc15986e1, 0x2ef5574b2f8f997e), cat(0xe3d54270c90c81c3, 0x9a2188566a0fdfb5) }, // 3697
+ { cat(0x3ef532249aae0580, 0xf25ddf6f593fadfe), cat(0xb6443527073d349c, 0x7b4e06ab880cb2f7) }, // 3698
+ { cat(0x6590f4ea15580467, 0x284b1925e0ffbe65), cat(0x91d02a859f642a16, 0xc90b388939a3c25f) }, // 3699
+ { cat(0xa28187dceef33a3e, 0xa6de8ea3019930a2), cat(0xe94d10d5cbd3768a, 0xdb452741f5d2d098) }, // 3700
+ { cat(0x4ece064a58c294fe, 0xebe53ee8ce1426e8), cat(0xbaa40d77d642c53b, 0xe29db901917573ad) }, // 3701
+ { cat(0xd8a4d1d513cedd98, 0xbcb765870b435253), cat(0x95500ac645023763, 0x1bb160ce0df78fbd) }, // 3702
+ { cat(0x5aa14fbb52e495c1, 0x2df23c0b453883b8), cat(0xeee677a3a19d256b, 0x5f82347ce325b2c9) }, // 3703
+ { cat(0x154dd962a8b6de34, 0x24c1c9a29dc6cfc7), cat(0xbf1ec61c814a8455, 0xe601c3971c1e28a1) }, // 3704
+ { cat(0x77717ab553c57e90, 0x1d67d48217d23fd2), cat(0x98e56b4a010869de, 0x519b02df49b1ba1a) }, // 3705
+ { cat(0x58b591221fa26419, 0xc8a620d0261d32ea), cat(0xf4a2454334da42fd, 0x4f5e6afedc4f902a) }, // 3706
+ { cat(0x7a2ada81b2e85014, 0xa084e70ceb4a8f21), cat(0xc3b50435c3e1cf31, 0x0c4b88cbe372d9bb) }, // 3707
+ { cat(0x61bbe2015bed0cdd, 0x4d371f3d89087281), cat(0x9c90d02b031b0c27, 0x3d093a3cb5f57afc) }, // 3708
+ { cat(0x9c5fd0022cae7afb, 0xaebe986274da50ce), cat(0xfa814d119e91ad0b, 0x94db906123225e60) }, // 3709
+ { cat(0x16b30cce8a252f2f, 0xbefee04ec3e1da3f), cat(0xc86770dae541573c, 0x77160d1a8281e51a) }, // 3710
+ { cat(0x788f3d72081dbf59, 0x6598b372364e4832), cat(0xa052c0af1dcddf63, 0x92780a7b9b9b1dae) }, // 3711
+ { cat(0xfa0c3128067e32ad, 0xeae08f8e91d839c2), cat(0x804233bf4b0b191c, 0x752cd52fafaf4af1) }, // 3712
+ { cat(0x29ad1b733d96b77c, 0xab00e5b0e959f603), cat(0xcd36b93211ab5b60, 0xbb7aeeb2b2b21183) }, // 3713
+ { cat(0x87bdaf8f647892ca, 0x22671e272114c4cf), cat(0xa42bc75b4155e2b3, 0xc92f255bc2280e02) }, // 3714
+ { cat(0xd2fe260c5060756e, 0x81ec181f4daa370c), cat(0x83563915cdde4ef6, 0x3a8c1de301b9a4ce) }, // 3715
+ { cat(0xeb303ce0809a557d, 0x9cacf36549105813), cat(0xd2238e894963b189, 0xf746963802c2a14a) }, // 3716
+ { cat(0xef59ca4d33aeaaca, 0xe3bd8f843a7379a9), cat(0xa81c72076de95ad4, 0xc5d211c6689bb43b) }, // 3717
+ { cat(0x8c47d50a8fbeef08, 0xb6313f9cfb8f9487), cat(0x867d2805f1877bdd, 0x6b0e749eba1629c9) }, // 3718
+ { cat(0x46d954ddb2cb180d, 0xf04ecc2e5f4c20d8), cat(0xd72ea66fe8d8c62f, 0x11b0ba979023760f) }, // 3719
+ { cat(0x9f1443e48f08e00b, 0x26a570251909b3e0), cat(0xac2551f320ad6b58, 0xdaf3c879401c5e72) }, // 3720
+ { cat(0x7f436983a5a0b33c, 0x1eeac01dada15cb4), cat(0x89b774c2808abc47, 0x158fd3943349e528) }, // 3721
+ { cat(0x6538a8d2a29ab860, 0x317799c915cefab9), cat(0xdc58bad0cdaac6d8, 0x227fb8ed1edca1da) }, // 3722
+ { cat(0xea93ba421baef9e6, 0x8df947d41172622d), cat(0xb046fbda3e2238ac, 0xe8662d8a7f16e7e1) }, // 3723
+ { cat(0x88762e9b4958c7eb, 0xa4c76ca9a78eb4f1), cat(0x8d05964831b4fa23, 0xed1e8ad53278b981) }, // 3724
+ { cat(0x40bd175edbc13fdf, 0x6e0be10f727dee4e), cat(0xe1a28a0d1c54c36c, 0xae97448850c128cf) }, // 3725
+ { cat(0xcd6412b24967664c, 0x580980d92864bea5), cat(0xb482080a7d109c56, 0xf2129d39da3420a5) }, // 3726
+ { cat(0x3de9a88ea11f8509, 0xe0079a475383cbb8), cat(0x9068066eca73b045, 0x8e754a94ae901a1e) }, // 3727
+ { cat(0xfca90db101cc080f, 0xccd8f6d8859fac59), cat(0xe70cd717aa52b3a2, 0x7d8877544a8029c9) }, // 3728
+ { cat(0x63ba715a67d66cd9, 0x70ad9246d14c89e1), cat(0xb8d71279550ef61b, 0x97a05f76a200216e) }, // 3729
+ { cat(0x82fb8de1ecab8a47, 0x8d57a838a7706e4d), cat(0x93df41faaa725e7c, 0x794d192bb4cce78b) }, // 3730
+ { cat(0x04c5afcfe11276d8, 0xe225d9f43f1a4a15), cat(0xec98699110b6fd93, 0xf5482845ee14a5ac) }, // 3731
+ { cat(0x9d6af30cb40ec57a, 0x4e84ae5cff483b44), cat(0xbd46bada73c597a9, 0x9106869e58108489) }, // 3732
+ { cat(0x4abbf5a3c33f0461, 0xd86a251732a02f6a), cat(0x976bc8aec3047954, 0x7405387eacda03a1) }, // 3733
+ { cat(0x445fef6c6b980702, 0xf3dd08251dcd18a9), cat(0xf2460de46b3a5bba, 0x533b8d977af66c35) }, // 3734
+ { cat(0x9d198c56bc799f35, 0x8fe4068417d746ee), cat(0xc1d1a4b6bc2eafc8, 0x42960adf9591f02a) }, // 3735
+ { cat(0x1747a37896c7b291, 0x3fe99ed013129f25), cat(0x9b0e1d5efcf22639, 0xcede6f194474c022) }, // 3736
+ { cat(0x253f6bf42472b74e, 0xcca8fe19b81dcb6e), cat(0xf8169564c7e9d6c2, 0xe49718286d8799d0) }, // 3737
+ { cat(0xb765eff6838ef90b, 0xd6ed9814934b0925), cat(0xc6787783d321789b, 0xea1279b9f13947d9) }, // 3738
+ { cat(0x5f84bff8693f2da3, 0x1257acdd42a26db7), cat(0x9ec6c6030f4dfa16, 0x54db9494c0fa9fe1) }, // 3739
+ { cat(0x326dfff3db984904, 0xea25e162043715f1), cat(0xfe0ad66b4baff68a, 0x215f542134c43302) }, // 3740
+ { cat(0x2857fff64946a0d0, 0xbb51811b369277f4), cat(0xcb3bdebc3c8cc53b, 0x4de5dce75d69c268) }, // 3741
+ { cat(0xed13332b6dd21a40, 0x95dacdaf5edb932a), cat(0xa2964bc9ca0a3762, 0xa4b7e3ec4abb01ec) }, // 3742
+ { cat(0x8a75c28924a81500, 0x77e23e25e57c75bb), cat(0x8211d63b08082c4e, 0xea2cb656a22f34bd) }, // 3743
+ { cat(0x43ef9da83aa68800, 0xbfd0636fd593ef92), cat(0xd01c89f80cd9e07e, 0x437abd5769e5212f) }, // 3744
+ { cat(0x698c7e202eeba000, 0x997382bfde0ff2db), cat(0xa67d3b2cd714b398, 0x35fbcaac54b74dbf) }, // 3745
+ { cat(0xbad6cb4cf256199a, 0x145c68997e7328af), cat(0x8530fc23df43c2e0, 0x2b2fd556aa2c3e32) }, // 3746
+ { cat(0xc48adee183bcf5c3, 0x53c70dc263eb744b), cat(0xd51b2d0632060499, 0xdeb2eef11046c9ea) }, // 3747
+ { cat(0xd06f18b46963f7cf, 0x7638d7ceb655f6a3), cat(0xaa7c2404f4d19d47, 0xe55bf25a736bd4bb) }, // 3748
+ { cat(0x0d25ad5d211cc63f, 0x91c7130bc511921c), cat(0x88635003f70e176c, 0xb77cc1e1f5efdd63) }, // 3749
+ { cat(0x7b6f7bc834fad6cc, 0x1c71b812d4e8e9c6), cat(0xda38800658168be1, 0x25946969897fc89e) }, // 3750
+ { cat(0x95f2c96cf72f123c, 0xe38e2cdbdd87216b), cat(0xae93999eacded64d, 0xb7a9edee07996d4b) }, // 3751
+ { cat(0xde5bd4572c25a830, 0xb60b57164ad28123), cat(0x8ba947b223e5783e, 0x2c87f18b39478aa2) }, // 3752
+ { cat(0x63c6208b79d5d9e7, 0x89abbe8a1150ce9e), cat(0xdf753f836ca259fd, 0x140cb5ab8ed8ddd1) }, // 3753
+ { cat(0xb6381a092e44ae52, 0xd489653b410d7218), cat(0xb2c432cf8a1b7b30, 0xdcd6f7bc724717da) }, // 3754
+ { cat(0x2b6014d42503bea8, 0xaa07842f673df4e0), cat(0x8f035bd93b492f5a, 0x4a4592fd2838dfe2) }, // 3755
+ { cat(0x456687b9d4d2caa7, 0x76726d18a52fee33), cat(0xe4d22c8ec541e55d, 0x43a284c8405affd0) }, // 3756
+ { cat(0x0452062e43dbd552, 0xc5285746ea8cbe8f), cat(0xb70e8a0bd101844a, 0x9c8203d366af330d) }, // 3757
+ { cat(0x69db382503164442, 0x3753790588709873), cat(0x92720809740136a2, 0x16ce6975ebbf5c0a) }, // 3758
+ { cat(0x762b8d0804f06d36, 0xbeebf4d5a71a8d84), cat(0xea500cdbeccebdd0, 0x247d758979322cdd) }, // 3759
+ { cat(0x5e893da003f38a92, 0x32565d77b8e20ad0), cat(0xbb733d7cbd723173, 0x50645e07942823e4) }, // 3760
+ { cat(0x186dcae6698fa20e, 0x8eab7df960b4d573), cat(0x95f5caca3128278f, 0x73837e6c7686831d) }, // 3761
+ { cat(0xc0afab0a427f69b0, 0xe445965bcdee2252), cat(0xefefaadd1b73727f, 0x1f38ca47240a6b61) }, // 3762
+ { cat(0x33bfbc083532baf3, 0xe9d145163e581b75), cat(0xbff2ef1749292865, 0xb293d505b66ebc4e) }, // 3763
+ { cat(0xf632fcd35dc22f29, 0x87da9dab6513492a), cat(0x998f25ac3a875384, 0x8edcaa6af85896a4) }, // 3764
+ { cat(0x2384c7b896037ea8, 0xd95dc9123b520eaa), cat(0xf5b1d5e05da5526d, 0xb16110ab26f4243b) }, // 3765
+ { cat(0xe937062d44cf9887, 0x144b0741c90e7222), cat(0xc48e44b37e1ddb8a, 0xf44da6ef525ce9c8) }, // 3766
+ { cat(0xba926b576a3fad38, 0xdd08d29b073ec1b5), cat(0x9d3e9d5c64e4afa2, 0x5d0aebf2a84a54a0) }, // 3767
+ { cat(0x90ea4558a9ff7b8e, 0x2e74842b3ecacf87), cat(0xfb97622d6e3ab29d, 0x61ab131dda108767) }, // 3768
+ { cat(0x40bb6aad54cc62d8, 0x252a0355cbd572d3), cat(0xc945e824582ef54a, 0xb488dc17e1a6d2b9) }, // 3769
+ { cat(0x0095eef110a38246, 0x84219c44a31128a9), cat(0xa104b9b6acf25dd5, 0x5d3a49acb4857561) }, // 3770
+ { cat(0x0077f25a73b601d2, 0x034e169d4f40ed54), cat(0x80d0949223f517dd, 0xe42ea156f6d12ab4) }, // 3771
+ { cat(0x33f31d5d85f002e9, 0x9ee357621867e21f), cat(0xce1a87503988262f, 0xd37dcef18ae84453) }, // 3772
+ { cat(0x5cc27de46b2668ba, 0xe582ac4e79ecb4e6), cat(0xa4e205d9c7a01e8c, 0xa931725ad5869d0f) }, // 3773
+ { cat(0xe3cecb1d22852095, 0x846889d8618a2a52), cat(0x83e804ae394ce53d, 0x54278eaf11387da5) }, // 3774
+ { cat(0x9fb144fb6a6e9a88, 0xd3da76270276aa1c), cat(0xd30cd449f547d52e, 0xed0c177e81f3fc3c) }, // 3775
+ { cat(0x7fc103fc5525486d, 0x76485e859b9221b0), cat(0xa8d7103b2a9fddbf, 0x2409ac6534c33030) }, // 3776
+ { cat(0xffcd9cc9ddb76d24, 0x5ea04b9e160e815a), cat(0x87127362887fe498, 0xe9a156b75d68f359) }, // 3777
+ { cat(0x32e294762f8be1d3, 0xca9a129689b0cef6), cat(0xd81d856a73ffd427, 0xdc35578bc8a7ebc3) }, // 3778
+ { cat(0xf582105e8c6fe7dc, 0xa214dbaba15a3f2b), cat(0xace46abb8fffdcec, 0xb02aac6fd3b98968) }, // 3779
+ { cat(0xc4680d187059864a, 0x1b43e2efb4483289), cat(0x8a505562d9997d8a, 0x268889f30fc7a120) }, // 3780
+ { cat(0x3a4014f3e6f5a3a9, 0xc5396b192073840e), cat(0xdd4d556af5c26276, 0xa40da984e60c3501) }, // 3781
+ { cat(0x950010c31f2ae954, 0x9dc788e0e6c2d00b), cat(0xb10aaabbf7ceb52b, 0xb671546a51a35d9a) }, // 3782
+ { cat(0x10ccda35b288baaa, 0x17d2d3e71f024009), cat(0x8da2222ff9722a89, 0x5ec110550e1c4ae2) }, // 3783
+ { cat(0xb47af6bc50dac443, 0x5951530b64d06675), cat(0xe29d037ff5837742, 0x3134e6ee7cfa1169) }, // 3784
+ { cat(0xc395923040af0369, 0x14410f3c50a6b85d), cat(0xb54a69332acf929b, 0x5a90b8beca61a787) }, // 3785
+ { cat(0x9c77a8269a259c54, 0x10340c304085604b), cat(0x91085428ef0c7549, 0x154093cbd51aec6c) }, // 3786
+ { cat(0x93f2a6a429d5c6ec, 0xe6b9ad1a00d566de), cat(0xe80d5374b1ad8874, 0xeecdb94621c4ad7a) }, // 3787
+ { cat(0xdcc21ee9bb116bf0, 0xb8948a7b33ddebe5), cat(0xb9a442c3c157a05d, 0x8bd7c76b4e36f12e) }, // 3788
+ { cat(0x4a34e587c8dabcc0, 0x93aa08628fe4bcb7), cat(0x9483689c9aac804a, 0xd6463922a4f8c0f2) }, // 3789
+ { cat(0x4387d5a60e2ac79a, 0x85dcda374ca12df1), cat(0xed9f0dc75de0cd44, 0x8a09f5043b279b1d) }, // 3790
+ { cat(0x02d31151a4ef0615, 0x37e3e1c5d6e757f4), cat(0xbe18d7d2b180a436, 0xd4d4c403628615b1) }, // 3791
+ { cat(0x0242744150bf3810, 0xf9831b04abec465d), cat(0x9813dfdbc133b692, 0x43dd699c4ed1aaf4) }, // 3792
+ { cat(0x039d86cee79859b4, 0xc26b5e6ddfe07095), cat(0xf352ffc601ec5750, 0x6c9575c6e482ab20) }, // 3793
+ { cat(0x02e46bd8b946ae2a, 0x3522b1f17fe6c077), cat(0xc2a8cc9e67f045d9, 0xf077916bea022280) }, // 3794
+ { cat(0x9be9efe094388b54, 0xf74ef4c1331f0060), cat(0x9bba3d4b8659d17b, 0x26c60defee681b99) }, // 3795
+ { cat(0x2ca97fcdb9f41221, 0x8bb1879b84fe66ff), cat(0xf929fbac0a294f2b, 0x713ce3197d735f5c) }, // 3796
+ { cat(0x8a21330afb29a81a, 0xd6279faf9d985266), cat(0xc754c9566e877289, 0x2763e8e131291916) }, // 3797
+ { cat(0xd4e75c08c8ee2015, 0x781fb2f2e479db85), cat(0x9f770778586c5ba0, 0xec4fed80f420e0de) }, // 3798
+ { cat(0xbb0bc67474b03355, 0x8cff84b7d3f62c07), cat(0xff24d8c08d7a2c34, 0xad4caf34b9ce3497) }, // 3799
+ { cat(0xfc096b905d59c2aa, 0xd732d0930ff82339), cat(0xcc1d7a33a461bcf6, 0xf10a25c3c7d82a12) }, // 3800
+ { cat(0xfcd4560d177b0222, 0x45c24075a6601c2e), cat(0xa34ac829504e30c5, 0x8da1b7cfd31354db) }, // 3801
+ { cat(0x971044d745fc01b5, 0x049b66c48519b025), cat(0x82a239baa6a4f3d1, 0x3e1af9730f42aa49) }, // 3802
+ { cat(0xbe806e253cc66921, 0xa0f8a46da1c2b36e), cat(0xd1038f910aa1861b, 0x96918f1e7ed11075) }, // 3803
+ { cat(0xfecd24ea970520e7, 0xb3fa1d2481688f8b), cat(0xa7360c7408813816, 0x120e0c1865740d2a) }, // 3804
+ { cat(0xff0a83eedf374d86, 0x2994e41d3453a609), cat(0x85c4d6c33a00f9ab, 0x41a4d679eac33dbb) }, // 3805
+ { cat(0xcb44064afebee270, 0x4287d361ed52a341), cat(0xd607be05299b2912, 0x02a15729779ec92c) }, // 3806
+ { cat(0xd5d00508cbcbe859, 0xced30f818aa8829b), cat(0xab3964d0ee15ba74, 0xcee778edf94bd423) }, // 3807
+ { cat(0x44a66a6d6fd6537b, 0x0bdc0c67a220687c), cat(0x88fab70d8b44952a, 0x3f1f93f1943ca9b6) }, // 3808
+ { cat(0x0770aa48b2f08591, 0xac93470c369a40c6), cat(0xdb2abe7c12075510, 0x64ff531c20610f8a) }, // 3809
+ { cat(0x3926eea08f26d141, 0x56dc38d69215009e), cat(0xaf5565300e6c440d, 0x1d990f49b380d93b) }, // 3810
+ { cat(0x2db8bee6d8ebda9a, 0xabe360aba810cd4b), cat(0x8c4450f33ebd033d, 0xb1473f6e2933e0fc) }, // 3811
+ { cat(0x492797d7c1795dc4, 0x46389aac401ae212), cat(0xe06d4e51fdfb3862, 0xb53ecbe3751fce60) }, // 3812
+ { cat(0xa0ec797967944b03, 0x6b607bbd001581a8), cat(0xb38aa50e64c8f9e8, 0x90ff0982c41971e6) }, // 3813
+ { cat(0xb3f0612dec76a269, 0x22b39630ccde0153), cat(0x8fa21da51d6d94ba, 0x0d98d4689ce127eb) }, // 3814
+ { cat(0x531a35164724370e, 0x9dec238147c99bb8), cat(0xe5d02f6e957c2129, 0xaf5aed742e350cac) }, // 3815
+ { cat(0xdc14f74505b69272, 0x17f01c676ca14960), cat(0xb7d9bf8baac9b421, 0x59158ac3582a7089) }, // 3816
+ { cat(0x7cdd929d9e2ba85b, 0x4659b052bd4dd44d), cat(0x9314993c88a15ce7, 0x7a77a235e021f3a1) }, // 3817
+ { cat(0xfafc1dc8fd12a6f8, 0x708f80846216207b), cat(0xeb542860da9bc7d8, 0xc3f29d230036529b) }, // 3818
+ { cat(0x2f3017d3fda88593, 0x8d3f9a0381ab4d2f), cat(0xbc435380aee30647, 0x03287db599c50ee3) }, // 3819
+ { cat(0x58f3464331539e0f, 0xa432e19c67bc3dc0), cat(0x969c42cd58b59e9f, 0x35b9fe2ae16a724f) }, // 3820
+ { cat(0x27eba39eb552967f, 0x6d1e35c70c6062cc), cat(0xf0fa047bc1229765, 0x22c330449bdd83b2) }, // 3821
+ { cat(0xecbc82e55ddbab99, 0x24182b05a3804f0a), cat(0xc0c80396341bac50, 0xe89c269d497e02f4) }, // 3822
+ { cat(0xf096cf1de4afbc7a, 0x834688d14f99d8d5), cat(0x9a399c7829afbd0d, 0x86e352176dfe68c3) }, // 3823
+ { cat(0x4dbe182fd44c60c4, 0x053da7b54c295aee), cat(0xf6c293f375e5fb48, 0xd7d21cf249970e06) }, // 3824
+ { cat(0xa498135976a3809c, 0xd0fe1fc43cede258), cat(0xc568765c5e5195d3, 0xdfdb4a5b6e12719e) }, // 3825
+ { cat(0x1d4675e12bb6007d, 0x73fe7fd030be4ead), cat(0x9ded2b7d184144a9, 0x7fe2a1e2be7527b2) }, // 3826
+ { cat(0x620a563512bccd95, 0x8663ffb381307de1), cat(0xfcaeabfb5a020775, 0x996a9c9dfd883f83) }, // 3827
+ { cat(0x81a1de90dbca3e11, 0x384fffc2cdc064b4), cat(0xca255662ae6805f7, 0xadeee3b197a032cf) }, // 3828
+ { cat(0x34817eda496e980d, 0xc6a666357166b6f6), cat(0xa1b7784ef1ecd192, 0xf18be95adfb35bd9) }, // 3829
+ { cat(0xc39acbe1d45879a4, 0x9eeb84f78debc592), cat(0x815f93725b23dadb, 0xf46fede24c8f7cad) }, // 3830
+ { cat(0x6c2adfcfba272907, 0x64ac07f27cac6f50), cat(0xceff525091d2f7c6, 0x53e6496a1418c77c) }, // 3831
+ { cat(0xf0224ca62e85ba6c, 0x50899ff53089f2a6), cat(0xa5990ea6db0f2c9e, 0xa98507881013d2c9) }, // 3832
+ { cat(0xc01b7084f2049523, 0x73a14cc426d4c21f), cat(0x847a721f15a5bd4b, 0xbad0d2d3400fdbd4) }, // 3833
+ { cat(0x99c580d4b66dbb6b, 0xec3547a03e213697), cat(0xd3f71cfe89092edf, 0x914e1e1ecce62c87) }, // 3834
+ { cat(0x47d133dd5ebe2f89, 0x89c4394cfe80f879), cat(0xa9927d986da0f24c, 0x743e7e7f0a51bd39) }, // 3835
+ { cat(0xd30dc3177efe8c6e, 0x07d02dd73200c6c7), cat(0x87a86479f14d8ea3, 0x9031fecc0841642d) }, // 3836
+ { cat(0xeb49382597fdad7c, 0xd94d16251cce0ad8), cat(0xd90d6d8fe87c176c, 0x19e997acda0239e2) }, // 3837
+ { cat(0x22a0f9b7accaf130, 0xadd744ea7d71a247), cat(0xada457a653967923, 0x47ee12f0ae682e4f) }, // 3838
+ { cat(0x4ee72e2c8a3bf426, 0xf17903eecac14e9f), cat(0x8ae9dfb842dec74f, 0x6cbe758d5853583f) }, // 3839
+ { cat(0xb171e37a76c65371, 0x825b397e11354a98), cat(0xde42ff8d37cad87f, 0x1463ef488d5226cb) }, // 3840
+ { cat(0xf45b1c61f89ea927, 0x9b7c2dfe742aa213), cat(0xb1cf32d75fd579ff, 0x438325d3a441b8a2) }, // 3841
+ { cat(0xf6af49e7fa188752, 0xe2c9be6529bbb4dc), cat(0x8e3f5bdf7fddfb32, 0x9c68eb0fb69afa1b) }, // 3842
+ { cat(0x244ba97329c0d884, 0x9e0f970842c5ee2d), cat(0xe39892ff32fcc51d, 0xc70e44e5f0f7f693) }, // 3843
+ { cat(0x836fbac287cd7a03, 0xb1a6126d0237f1be), cat(0xb613a8cc28ca374b, 0x05a503eb272cc542) }, // 3844
+ { cat(0x9c59623539712e69, 0x5aeb41f0ce9327cb), cat(0x91a953d687082c3c, 0x0484032285bd6a9b) }, // 3845
+ { cat(0x608f03885be84a42, 0x2b12031ae41ea611), cat(0xe90eec8a71a6ad2c, 0xd4066b6a6f95775f) }, // 3846
+ { cat(0xe6d8cfa04986a1ce, 0x88db35af1ce551a8), cat(0xba7256d527b88a8a, 0x433855eebfaac5e5) }, // 3847
+ { cat(0x857a3fb36e054e3e, 0xd3e29158e3eaa7b9), cat(0x9528457752fa086e, 0x9c2d118bcc889e51) }, // 3848
+ { cat(0xa25d32b8b0087d31, 0x53041bc16caaa5f5), cat(0xeea6d58bb7f673e4, 0x2d14e8dfada763b5) }, // 3849
+ { cat(0xe84a8efa266d30f4, 0x4269afcdf08884c4), cat(0xbeebde095ff85cb6, 0x8a7720b2f152b62a) }, // 3850
+ { cat(0x536ed8c81ebdc0c3, 0x68548ca4c06d3703), cat(0x98bcb1a119937d5e, 0xd52c1a28c10ef822) }, // 3851
+ { cat(0x1f17c140312f9ad2, 0x4087476e00aebe6c), cat(0xf4611c34f5b8c897, 0xbb79c3746817f36a) }, // 3852
+ { cat(0xe5ac9a99c0f2e241, 0xcd3905f19a256523), cat(0xc380e35d9160a079, 0x62c7cf9053465c54) }, // 3853
+ { cat(0x5156e2149a5be834, 0xa42d9e5ae1b7841c), cat(0x9c671c4adab3b394, 0x4f063fa6a90516aa) }, // 3854
+ { cat(0x82249cedc3c64054, 0x39e296f7cf8c0693), cat(0xfa3e93aaf785ec20, 0x7e7065d774d4f110) }, // 3855
+ { cat(0x34ea17249c9e99dc, 0xfb1babf972d66ba9), cat(0xc8320fbbf937f019, 0xfec051792a43f40d) }, // 3856
+ { cat(0x2a54df507d4bae4a, 0x627c89945bdebc87), cat(0xa0280c9660f98ce1, 0x9899dac7550329a4) }, // 3857
+ { cat(0xbb77190d3109583b, 0x81fd3add164bca06), cat(0x80200a11e72e0a4e, 0x13ae489f7735bae9) }, // 3858
+ { cat(0x5f24f4e1e80ef392, 0x69952afb56dfa9a3), cat(0xcd00101ca51676e3, 0x52b074325855f7dc) }, // 3859
+ { cat(0x4c1d90b4b9a58fa8, 0x54775595df195482), cat(0xa4000ce3b7452be9, 0x0ef3902846ab2cb0) }, // 3860
+ { cat(0xa34ada2a2e1e0c86, 0xa9f91144b27aaa02), cat(0x83333d82f9042320, 0xd8c2d9b9d2228a26) }, // 3861
+ { cat(0x054490437cfce0d7, 0x765b4ed450c44336), cat(0xd1eb959e5b39d1ce, 0x279e292950374371) }, // 3862
+ { cat(0x6a9d4035fd971a45, 0xf8490bdd0d69cf5f), cat(0xa7efaae515c7db0b, 0x52e4edbaa6929c5a) }, // 3863
+ { cat(0x2217669197ac1504, 0xc6a0d64a712172b2), cat(0x86595584116caf3c, 0x4250be2eeba87d15) }, // 3864
+ { cat(0xd02570e8f2acee6e, 0x0a9af0771b68b783), cat(0xd6f555a01be11860, 0x6a1ac9e4ac40c821) }, // 3865
+ { cat(0x73512720c223f1f1, 0xa2158d2c15ed5f9c), cat(0xabf777b34980e04d, 0x21af07ea23670681) }, // 3866
+ { cat(0x5c40ec1a34e98e5a, 0xe8113dbcde577fb0), cat(0x8992c629079a4d0a, 0x8158d321b5ec0534) }, // 3867
+ { cat(0x939b135d2175b091, 0x734ec92e308bff80), cat(0xdc1e09db3f5d4810, 0xcef48502bcacd520) }, // 3868
+ { cat(0x0faf42b0e7915a0d, 0xf5d8a0f1c06fff9a), cat(0xb01807e299176cda, 0x3f2a0402308a441a) }, // 3869
+ { cat(0xd95902271fa77b3e, 0x5e46e727cd266615), cat(0x8ce0064ee0df8a48, 0x32880334f3a1d014) }, // 3870
+ { cat(0x288e69d832a591fd, 0x63a4a50c7b70a354), cat(0xe166707e3498dd40, 0x50d99ebb1f694cee) }, // 3871
+ { cat(0xed3ebb135bb7a7fd, 0xe9508409fc5a1c43), cat(0xb451f3982a13e433, 0x73e14bc8e5edd724) }, // 3872
+ { cat(0x24322f42afc61ffe, 0x544069a196ae7d03), cat(0x90418facee765029, 0x2981096d84be45b7) }, // 3873
+ { cat(0x06b6b2044c703330, 0x86cd75cf577d94d1), cat(0xe6cf4c47e3f08041, 0xdc01a8af3aca0925) }, // 3874
+ { cat(0x389228037059c28d, 0x38a45e3f793143da), cat(0xb8a5d69fe98d3367, 0xe33486f2956e6db7) }, // 3875
+ { cat(0xfa0e866926ae353d, 0xc6e9e4ff9427697c), cat(0x93b7dee65470f5ec, 0xb5c39f28778b8af8) }, // 3876
+ { cat(0x5ce40a41d77d21fc, 0x71763b3286a57592), cat(0xec5964a3ba4e5647, 0x8938fea725ac118e) }, // 3877
+ { cat(0x171cd5017930e7fd, 0x2791c8f538845e0f), cat(0xbd145082fb71de9f, 0xa0fa65528489a7a5) }, // 3878
+ { cat(0x78e3dd9ac75a5330, 0xec74a0c42d36b1a6), cat(0x9743739bfc5b187f, 0xb3fb844203a152ea) }, // 3879
+ { cat(0xc16c95c4722a1eb4, 0xad8767a0485782a2), cat(0xf20585c66091c0cc, 0x532c06d005ceeb10) }, // 3880
+ { cat(0x0123ab038e881890, 0x8ad2b94d06ac6882), cat(0xc19e049eb3a7cd70, 0x42899f0cd17255a7) }, // 3881
+ { cat(0x00e9559c72067a0d, 0x3bdbc770d22386ce), cat(0x9ae4d07ef61fd78d, 0x0207b270a78eaaec) }, // 3882
+ { cat(0xce422293e9a3f67b, 0x92f93f1ae9d2714a), cat(0xf7d480cb236625ae, 0x69a5ea4dd8e444ac) }, // 3883
+ { cat(0x0b681ba987b65ec9, 0x4260ff48bb0ec108), cat(0xc6439a3c1c51b7be, 0xbaeb21d7e0b69d57) }, // 3884
+ { cat(0x09201621395eb23a, 0x9b80cc3a2f3f00d3), cat(0x9e9c7b6349daf965, 0x6255b4acb3c54aac) }, // 3885
+ { cat(0x750023685bcab6c4, 0x2c0146c37ecb3485), cat(0xfdc72bd20fc4c23b, 0xd089211452d54446) }, // 3886
+ { cat(0x5d99b5ed163bc569, 0xbccdd235ff08f6d1), cat(0xcb05bca80c9d682f, 0xda074da9dbddd038) }, // 3887
+ { cat(0x7e14918a782fd121, 0x63d7db5e65a0c574), cat(0xa26afd533d4ab9bf, 0xe19f7154afe4a693) }, // 3888
+ { cat(0xfe76dad52cf30db4, 0x4fdfe2b1eae7045d), cat(0x81ef310f643bc7cc, 0xb47f8ddd5983b875) }, // 3889
+ { cat(0xfd8af7bb7b1e7c53, 0xb2ffd11cab0b3a2e), cat(0xcfe51b4bd392d947, 0x87327c955c05f3ef) }, // 3890
+ { cat(0xcad592fc627ec9dc, 0x8f330db088d5c825), cat(0xa650e2a30fa8add2, 0xd28eca11166b298c) }, // 3891
+ { cat(0x3bde0f304ecbd4b0, 0x728f3e26d3de39b7), cat(0x850d821c0c86f175, 0x753f080dab88ee0a) }, // 3892
+ { cat(0xc630184d4adfbab3, 0xea7ec9d7b9638f8b), cat(0xd4e269c67a718255, 0x8864d9af78db1676) }, // 3893
+ { cat(0x04f346a43be62ef6, 0x55323b12fab60c6f), cat(0xaa4ebb052ec13511, 0x39ea47bf93e2785f) }, // 3894
+ { cat(0x03f5d21cfcb82591, 0xddc1c8dbfbc4d6c0), cat(0x883efc0425675da7, 0x618839660fe8604c) }, // 3895
+ { cat(0x06561cfb2df36f4f, 0xc9360e2cc607bdff), cat(0xd9fe6006a23efc3f, 0x02738f09b30d66e0) }, // 3896
+ { cat(0x3844e3fc24c2bf73, 0x075e71bd6b3964cc), cat(0xae65199ee8326365, 0x9b8fa5a15c0ab8b3) }, // 3897
+ { cat(0x60371cc9b70232c2, 0x6c4b8e31229450a3), cat(0x8b84147f20284f84, 0x7c72eae77cd5608f) }, // 3898
+ { cat(0x99f1c7a924d05137, 0x13ac16b504208105), cat(0xdf39ba6500407f3a, 0x60b7de3f2e223418) }, // 3899
+ { cat(0x47f49fba83d9da92, 0x7623455d9ce6cd9e), cat(0xb294951d99cd3295, 0x1a2cb1cc24e829ad) }, // 3900
+ { cat(0x6cc3b2fb9cae4875, 0x2b4f6ab14a523e18), cat(0x8edd4417ae3dc210, 0xe1bd5b09b7202157) }, // 3901
+ { cat(0x7ad2b7f8fab073ee, 0xabb2444edd506359), cat(0xe49539bf7d2f9ce7, 0xcf955e75f1cd0225) }, // 3902
+ { cat(0x2f0ef993fbc05cbe, 0xefc1d03f177382ae), cat(0xb6ddc7cc6426171f, 0xd9444b918e3d9b51) }, // 3903
+ { cat(0xbf3f2e0ffc99e3cb, 0xf3017365ac5c688b), cat(0x924b063d1ceb45b3, 0x1436a2dad831490d) }, // 3904
+ { cat(0x9865167ffa8fd2df, 0xeb35856f7a2d7412), cat(0xea11a394fb12091e, 0x86bdd15e26b541af) }, // 3905
+ { cat(0x79ea7866620ca8b3, 0x2291378c61bdf675), cat(0xbb414faa6274d418, 0x6bcb0de4ebc4348c) }, // 3906
+ { cat(0x61886051e80a208f, 0x4eda92d6b497f85d), cat(0x95cdd9551b90a9ad, 0x2308d7ea56369070) }, // 3907
+ { cat(0xcf409a1ca6769a7e, 0xe490eaf120f326fc), cat(0xefafc221c5b442ae, 0x9e748caa238a80b3) }, // 3908
+ { cat(0x3f66e1b0852baecb, 0xea0d88c0e728ebfd), cat(0xbfbfce816af69bbe, 0xe52a0a21b60866f6) }, // 3909
+ { cat(0xff85815a0422f23c, 0xbb3e0700b8ed8997), cat(0x99663ecdef2bafcb, 0xea88081af806b8c4) }, // 3910
+ { cat(0x98d59bc339d18394, 0x5ec9a4cdf4af428b), cat(0xf570647cb1df7fac, 0xaa73402b267127a1) }, // 3911
+ { cat(0xe0aae30294a79c76, 0xb23aea3e5d590209), cat(0xc459e9fd5b1932f0, 0x885c3355b85a861a) }, // 3912
+ { cat(0xb3bbe8cedd52e392, 0x282f21cb7de0ce6e), cat(0x9d14bb3115adc25a, 0x06b0291160486b48) }, // 3913
+ { cat(0xec5fdae495516c1d, 0x0d18361263014a49), cat(0xfb545eb4ef7c6a29, 0xa44d0e8233a7120d) }, // 3914
+ { cat(0x237fe2507774567d, 0xa4135e751c01083a), cat(0xc9104bc3f2c9ee87, 0xb6a40b9b5c85a80b) }, // 3915
+ { cat(0x4f9981d9f929deca, 0xe9a9185db000d362), cat(0xa0d9d6365bd4bed2, 0xf8833c7c4a04866f) }, // 3916
+ { cat(0x72e134ae60ee4bd5, 0x87ba79e48ccd75e8), cat(0x80ae44f84976ff0f, 0x2d35c9fd08039ebf) }, // 3917
+ { cat(0x5168544a34b07955, 0xa5f7296dae158973), cat(0xcde3a18d4257fe7e, 0xaebc7661a66c3132) }, // 3918
+ { cat(0xdab9dd082a26c777, 0xb7f8edf158113ac2), cat(0xa4b61ad768466532, 0x256391e7b8568dc1) }, // 3919
+ { cat(0x15617da021b89f92, 0xf993f18de00dc89c), cat(0x83c4e245ed051dc1, 0xb782db1fc6aba49b) }, // 3920
+ { cat(0x5568c90035f43284, 0xc2864f49667c742c), cat(0xd2d49d3cae6e9602, 0xbf37c4ffa445d42b) }, // 3921
+ { cat(0x4453d4002b29c203, 0xced1d90785305cf0), cat(0xa8aa1763bebede68, 0x98f96a661d04a9bc) }, // 3922
+ { cat(0x36a9766688ee34cf, 0xd8a7e0d2d0f37d8d), cat(0x86ee791c9898b1ed, 0x472deeb81736ee30) }, // 3923
+ { cat(0x57758a3da7e387b2, 0xf43fce1e1b1f2f48), cat(0xd7e3f4fa8dc11cae, 0xd8497df35857e380) }, // 3924
+ { cat(0x792ad4fe1fe9395b, 0xf69971b1af4c25d3), cat(0xacb65d953e3416f2, 0x46a1318f79dfe933) }, // 3925
+ { cat(0x60ef10cb4cba9449, 0x92145af48c3ceb0f), cat(0x8a2b7e10fe90125b, 0x6bb427a5fb19875c) }, // 3926
+ { cat(0x017e81454790ed42, 0x8353c4ba79fb11b2), cat(0xdd12634e6419b6f8, 0xac5372a32b5c0bc7) }, // 3927
+ { cat(0x6798676a9fa72435, 0x35dc9d61fb2f415b), cat(0xb0db82a51ce15f2d, 0x56a9288289166fd2) }, // 3928
+ { cat(0xb946b9221952835d, 0xc4b07de7fc25cde3), cat(0x8d7c6884171ab28a, 0xabba86ced411f30e) }, // 3929
+ { cat(0x8ed78e9cf550d22f, 0xa11a630cc6a2e304), cat(0xe260a739be911daa, 0xac5da47e201cb817) }, // 3930
+ { cat(0x0bdfa54a5dda41bf, 0xb4151c0a38824f36), cat(0xb51a1f616540e488, 0x89e4839819b09346) }, // 3931
+ { cat(0x097fb76eb17b67cc, 0x9010e33b60683f5f), cat(0x90e1b2b45100b6d3, 0xa1839c79ae26dc38) }, // 3932
+ { cat(0xdbff8be44f2bd947, 0x4ce7d1f89a406564), cat(0xe7cf8453b4cdf152, 0x9c05c72916a4938c) }, // 3933
+ { cat(0xafffa31d0c231439, 0x0a530e607b66b783), cat(0xb972d042f70b2775, 0x499e38edabb6dc70) }, // 3934
+ { cat(0x59994f4a701c102d, 0xa1dc0b8062b892d0), cat(0x945bd9cf2c08ec5d, 0xd47e93f1562be38d) }, // 3935
+ { cat(0xc28ee543e6934d15, 0xcfc678cd6ac0eae5), cat(0xed5fc2e513417a2f, 0xba641fe889dfd27b) }, // 3936
+ { cat(0x9ba58436520f70de, 0x3fd1fa3def00bbeb), cat(0xbde635840f6794f2, 0xfb834cba07e641fc) }, // 3937
+ { cat(0x7c8469c50e72c0b1, 0xcca7fb64bf33c989), cat(0x97eb5e033f8610c2, 0x62cf7094d31e9b30) }, // 3938
+ { cat(0x2da0a93b4a51344f, 0xadd9923acb860f41), cat(0xf312300532701ad0, 0x9e18b42151ca91e7) }, // 3939
+ { cat(0x57b3ba95d50dc372, 0xf17adb623c6b3f67), cat(0xc274f3375b8ce240, 0x7e7a29b4416edb1f) }, // 3940
+ { cat(0xac8fc877dda49c5b, 0xf462491b6388ff86), cat(0x9b90c292afa3e833, 0x9861baf69abf15b2) }, // 3941
+ { cat(0x141940bfc9076093, 0x209d41c56c0e65a3), cat(0xf8e79db77f6ca6b8, 0xf3cf918a9131bc51) }, // 3942
+ { cat(0x101433cca0d2b3a8, 0xe6e4349df00b8482), cat(0xc71fb15f9923b893, 0xf63fa7a20dc16374) }, // 3943
+ { cat(0x0cdcf63d4d755c87, 0x1f1cf6e4c00936cf), cat(0x9f4c8de6141c93a9, 0x91cc861b3e344f90) }, // 3944
+ { cat(0x47c7f0621588940b, 0x64fb24a13341f14a), cat(0xfee0e309b9c752a8, 0xe9473cf86386e5b3) }, // 3945
+ { cat(0x06398d1b446d433c, 0x50c8ea1a8f67f43c), cat(0xcbe71c07c7d2a887, 0x2105ca604f9f1e29) }, // 3946
+ { cat(0xd1c7a415d05768fd, 0x0d6d88153f865cfd), cat(0xa31f499fd30eed38, 0xe737d519d94c1820) }, // 3947
+ { cat(0x416c8344a6ac53fd, 0xa457a010ff9eb0ca), cat(0x827f6e1975a58a93, 0xec2caa7b143ce01a) }, // 3948
+ { cat(0x9be0d2077113b995, 0xd3bf668198fde7aa), cat(0xd0cbe35bef6f441f, 0xe047772b539499c3) }, // 3949
+ { cat(0xafe70e6c5a762e11, 0x7632b867ad97ec88), cat(0xa70982aff2bf69b3, 0x19d2c5bc42dd47cf) }, // 3950
+ { cat(0xf31f3ebd152b580d, 0xf828938624798a06), cat(0x85a135598eff87c2, 0x7b0f04969be43972) }, // 3951
+ { cat(0x51cb9794eeabc016, 0x59da85a36d8f433d), cat(0xd5cebbc27e65a603, 0xf81807575fd38f1e) }, // 3952
+ { cat(0x0e3c7943f2230011, 0xe17b9e1c57a5cf64), cat(0xab0bc968651e1e69, 0x93466c45e642d8e5) }, // 3953
+ { cat(0x71c9fa9cc1b599a7, 0xe7961816ac84a5ea), cat(0x88d63ab9ea7e7eba, 0xdc38569e51cf13ea) }, // 3954
+ { cat(0x4fa990facf88f5d9, 0x7289c024473aa30f), cat(0xdaf05df643fd9791, 0x605a243082e4ecaa) }, // 3955
+ { cat(0xd95473fbd93a5e47, 0x8ed499b69f621c0c), cat(0xaf26b191cffe12da, 0xb37b5026cf1d8a21) }, // 3956
+ { cat(0xe1105cc97a951839, 0x3f107af87f81b00a), cat(0x8c1ef474a664dbe2, 0x292f73523f4ad4e7) }, // 3957
+ { cat(0x01b3c7a8c421c05b, 0x981a5e5a659c4cdd), cat(0xe03187210a3af969, 0xdb7f1ee9fede2173) }, // 3958
+ { cat(0xce296c87034e337c, 0x79aeb1e1eae370b1), cat(0xb35ad280d4fbfabb, 0x15ff4bee657e8128) }, // 3959
+ { cat(0x3e878a059c3e8f96, 0xc7bef4b4bbe926f4), cat(0x8f7bdb9a43fcc895, 0xab32a3251dfecdba) }, // 3960
+ { cat(0x973f433c2d30e5be, 0x0c64babac641d7ec), cat(0xe592f8f6d32e0dbc, 0x451dd1d4fccae2c3) }, // 3961
+ { cat(0x45cc35c9bdc0b7cb, 0x3d1d622f0501798a), cat(0xb7a8c72bdc24d7c9, 0xd0e4a7dd9708b569) }, // 3962
+ { cat(0x6b09c4a1649a2ca2, 0x974ab4f26a67946e), cat(0x92ed6c231683dfd4, 0xa71d5317ac06f787) }, // 3963
+ { cat(0x44dc6dcf075d1437, 0x587787ea43d8ed7d), cat(0xeb1579d1bd9fcc87, 0x71c884f2acd7f272) }, // 3964
+ { cat(0x9d7d24a59f7da9c5, 0xe05f9fee9cad8acb), cat(0xbc112e41647fd6d2, 0xc16d37288a465b8e) }, // 3965
+ { cat(0x7dfdb6eae5fe216b, 0x19e6198bb08ad56f), cat(0x967425011d331242, 0x34575f53a1d1e2d8) }, // 3966
+ { cat(0xfcc924ab09969bde, 0x8fd68f45e74488b1), cat(0xf0b9d4ce951e839d, 0x208bcbb902e96af3) }, // 3967
+ { cat(0x30a0ea226e12164b, 0xa6453f6b1f6a06f4), cat(0xc094aa3eddb202e4, 0x1a096fc7358788c3) }, // 3968
+ { cat(0x26e721b524db4509, 0x51d0ff88e5ee6bf7), cat(0x9a1088324af4cf1c, 0xe1a12638f79fa09c) }, // 3969
+ { cat(0xd7d835eea15ed4db, 0xb61b3274a3171324), cat(0xf680d9ea1187b1c7, 0xcf683d27f29900f9) }, // 3970
+ { cat(0x13135e588118aa49, 0x5e7c285d4f45a8ea), cat(0xc533e1880e0627d3, 0x0c53641ff54733fb) }, // 3971
+ { cat(0x75a91846cdad5507, 0x7ec9b9e43f6aed88), cat(0x9dc31ad33e6b530f, 0x3d0f834cc438f662) }, // 3972
+ { cat(0xbc41c071491554d8, 0xcadc5ca06577e273), cat(0xfc6b5e1eca4551b1, 0xfb4c0547a05b23d0) }, // 3973
+ { cat(0xc9ce338dd41110ad, 0x6f16b080512cb529), cat(0xc9ef7e7f0837748e, 0x62a3376c8048e973) }, // 3974
+ { cat(0x6e3e8fa4a9a7408a, 0xbf455a0040f090ed), cat(0xa18c65326cf92a0b, 0x821c2c56cd072129) }, // 3975
+ { cat(0x24fed95087b9006e, 0xff6aae669a5a0d8b), cat(0x813d1dc1f0c754d6, 0x01b02378a405b421) }, // 3976
+ { cat(0x07fe2880d92800b1, 0x98aab0a42a29af44), cat(0xcec82f9cb4722156, 0x6919d25aa0092035) }, // 3977
+ { cat(0xd331ba00adb99a27, 0xad555a1cee87bf6a), cat(0xa56cf2e3c38e8111, 0xedae41e219a0e690) }, // 3978
+ { cat(0x75c1619a24947b52, 0xf11114e3f20632bb), cat(0x845728b6360b9a74, 0xbe250181ae1a520d) }, // 3979
+ { cat(0x893568f6a0ed921e, 0x4e81bb065009eac5), cat(0xd3bea789f01290ba, 0xc9d4cf35e35d5015) }, // 3980
+ { cat(0x075ded921a57a818, 0x3ece2f384007ef04), cat(0xa96552d4c00eda2f, 0x07dd729182b10cde) }, // 3981
+ { cat(0x6c4b2474e1dfb9ac, 0xff0b58f9ccd3259d), cat(0x87844243ccd8ae8c, 0x064ac20e02273d7e) }, // 3982
+ { cat(0xad4507216965f5e1, 0x981227f6148508fb), cat(0xd8d39d3947c11746, 0x70779ce336a52f30) }, // 3983
+ { cat(0x576a6c1abab7f7e7, 0xacdb532b439da0c9), cat(0xad7617610634129e, 0xc05fb0b5c550f28d) }, // 3984
+ { cat(0x7921f015622cc652, 0xf0af75bc3617b3d4), cat(0x8ac4df80d1c34218, 0x99e626f7d10d8ed7) }, // 3985
+ { cat(0x5b69802236ae0a1e, 0x4de5892d23591fb9), cat(0xde07cc014f9ed027, 0x5ca3718c81af4af2) }, // 3986
+ { cat(0x15ee001b5ef1a1b1, 0xd7ead4241c474c94), cat(0xb19fd66772e57352, 0xb082c13d348c3bf5) }, // 3987
+ { cat(0x44be667c4bf4815b, 0x13224350169f7077), cat(0x8e197852c251290e, 0xf39bcdca90702ff7) }, // 3988
+ { cat(0xd463d72d4654022b, 0x51d06bb3576580bd), cat(0xe35bf3b79d4ea817, 0xec2c7c774d804cbe) }, // 3989
+ { cat(0xdd1cac24384334ef, 0x74a6bc8f791e0098), cat(0xb5e3295fb10bb9ac, 0xbcf06392a466a3cb) }, // 3990
+ { cat(0xe416f01cf9cf5d8c, 0x5d523072c74b33ad), cat(0x9182877fc0d62e23, 0xca59e9421d1ee96f) }, // 3991
+ { cat(0xa024b3618fb22f46, 0xfbb6b3ead87852ad), cat(0xe8d0d8cc67bd169f, 0xaa29753694fe424c) }, // 3992
+ { cat(0xb3508f813fc1bf6b, 0xfc922988ad2d0ef1), cat(0xba40ad7052fdabb2, 0xee8790f87731cea3) }, // 3993
+ { cat(0x5c4072cdcc9aff89, 0x96db546d57573f28), cat(0x95008ac04264895b, 0xf2060d93928e3ee9) }, // 3994
+ { cat(0xfa00b7afadc4cc0f, 0x57c553e22558650c), cat(0xee674466d0a0dbc6, 0x5009af528416cb0e) }, // 3995
+ { cat(0x2e66f95957d0a33f, 0x796aa981b779ea70), cat(0xbeb9038573b3e305, 0x0cd48c4203456f3f) }, // 3996
+ { cat(0x8b8594477973b5cc, 0x6122213492c7eec0), cat(0x989402d1295cb59d, 0xa3dd3d019c378c32) }, // 3997
+ { cat(0x45a286d8c252bc7a, 0x350368541e0cb133), cat(0xf4200481dbc788fc, 0x3961fb35c6bf46b7) }, // 3998
+ { cat(0x37b538ad68423061, 0xc402b9dce4d6f429), cat(0xc34cd067e3060730, 0x2de7fc2b0565d22c) }, // 3999
+ { cat(0xf95dc6f12034f381, 0x699bc7e3ea459021), cat(0x9c3d73864f3805c0, 0x24b99688d11e41bc) }, // 4000
+ { cat(0xc22fa4b50054b8cf, 0x0f5fa63976d5b367), cat(0xf9fbec0a1859a2cd, 0x078f57414e96cf94) }, // 4001
+ { cat(0x68261d5d99dd60a5, 0xa5e61e945f115c53), cat(0xc7fcbcd4e047b570, 0xd2d9129aa54572dd) }, // 4002
+ { cat(0xeceb4ab147e44d51, 0x5184e5437f4116a9), cat(0x9ffd63dd80395df3, 0xdbe0dbaeea9df57d) }, // 4003
+ { cat(0x7b12111ba63a154e, 0xe8d4a20598682441), cat(0xfffbd2fc005bc986, 0x2c9af917ddc988c9) }, // 4004
+ { cat(0xc8db40e2eb61aaa5, 0x8710819e13868367), cat(0xccc9759666afd46b, 0x56e260dfe4a13a3a) }, // 4005
+ { cat(0xd3e29a4f22b48884, 0x6c0d347e760535ec), cat(0xa3d45e11ebbfdd22, 0xabe84d7fea1a94fb) }, // 4006
+ { cat(0x0fe87b72822a06d0, 0x5670f6cb919dc4bd), cat(0x83104b4189664a82, 0x23203dffee7baa63) }, // 4007
+ { cat(0xe640c5840376714d, 0x571b2478e8fc6dfb), cat(0xd1b3ab9c0f0a10d0, 0x383396664a5f7704) }, // 4008
+ { cat(0xb833d136692b8dd7, 0x78e28393ed96be63), cat(0xa7c2efb00c080d73, 0x6029451ea1e5f8d0) }, // 4009
+ { cat(0x6029742b87560b12, 0xc71b9c7657abcb82), cat(0x86358c8cd66cd78f, 0x802104188184c70d) }, // 4010
+ { cat(0x00425378d889ab51, 0x3e9293f08c46126a), cat(0xd6bc14148a47bf4c, 0x0034d35a68d471af) }, // 4011
+ { cat(0x00350f93e06e22a7, 0x65420ff3a36b41ee), cat(0xabc9a9aa083965d6, 0x6690a91520a9f48c) }, // 4012
+ { cat(0x99c40c764d24e885, 0xea9b3ff61c55ce58), cat(0x896e2154d3611e45, 0x1eda20ddb3bb2a09) }, // 4013
+ { cat(0x5c6ce0bd483b0da3, 0x10f8665693bc7d5a), cat(0xdbe36887b89b63a1, 0xcaf69afc52c5100f) }, // 4014
+ { cat(0xb0571a310695a482, 0x73f9eb7876306448), cat(0xafe9206c93af82e7, 0xd5921596a89da672) }, // 4015
+ { cat(0x59df48273877b6ce, 0xc32e55f9f826b6a0), cat(0x8cba8056dc8c68b9, 0x77a8114553b151f5) }, // 4016
+ { cat(0x5c987371f3f2be17, 0x9eb0898ff3712433), cat(0xe12a66f160e0a78f, 0x25d9b53bb91bb655) }, // 4017
+ { cat(0xb079f5f4c3289812, 0xe55a07a65c5a835c), cat(0xb421ebf44d80860c, 0x1e47c42fc7495eaa) }, // 4018
+ { cat(0xf394c4c3cf53acdb, 0xeaae6c8516aecf7d), cat(0x901b2329d79a04d6, 0x7e9fd02639077eee) }, // 4019
+ { cat(0x5287a1394bb91493, 0x11171408244ae594), cat(0xe691d1dc8c29a157, 0x30ffb3705b3f317e) }, // 4020
+ { cat(0x0ed2e7610960dd42, 0x7412766ce9d58477), cat(0xb874a7e3a3548112, 0x8d995c59e298f465) }, // 4021
+ { cat(0xd8a8b91a6de71768, 0x5cdb91f0bb1136c5), cat(0x9390864fb5dd340e, 0xd7ade37b1bad9050) }, // 4022
+ { cat(0xc10df4f7163e8bda, 0x2e2c1cb45e81f13c), cat(0xec1a707f8961ece4, 0x8c496bf82c48e6e7) }, // 4023
+ { cat(0xcda4c3f8de986fe1, 0xbe89b0904b9b2763), cat(0xbce1f3993ab4bd83, 0xa36deff9bd071f1f) }, // 4024
+ { cat(0xa483cffa4bad264e, 0x3207c0736faf52b6), cat(0x971b2947622a3136, 0x1c57f32e30d27f4c) }, // 4025
+ { cat(0xd406199079150a16, 0xb672cd857f7eeabc), cat(0xf1c50ed89d104ebc, 0xfa2651e38150cbad) }, // 4026
+ { cat(0x1004e14060dda1ab, 0xc528a46acc658897), cat(0xc16a7246e40d0bca, 0x61b84182cdda3c8b) }, // 4027
+ { cat(0x0cd0b43380b14e23, 0x04208388a3846d45), cat(0x9abb8e9f1cd73ca1, 0xe7c69acf0b14fd3c) }, // 4028
+ { cat(0x148120526782169e, 0x6d00d27438d3e208), cat(0xf7927dcb61586103, 0x0c70f7b1ab54c860) }, // 4029
+ { cat(0x10674d0eb934dee5, 0x2400a85cfa431b3a), cat(0xc60ecb091aad1a68, 0xd6c0c627bc43d380) }, // 4030
+ { cat(0x0d1f70d8942a4bea, 0x8333b9e3fb68e295), cat(0x9e723c07488a7b87, 0x1233d1b963697600) }, // 4031
+ { cat(0x48324e275376dfdd, 0x9eb9296cc5749dbb), cat(0xfd83933eda772c0b, 0x5052e9289f0f2333) }, // 4032
+ { cat(0x39c1d81f75f8b317, 0xb22dbabd6ac3b162), cat(0xcacfa8ff152c233c, 0x404254207f3f4f5c) }, // 4033
+ { cat(0x6167e0192b2d5c12, 0xf4f1623122362782), cat(0xa23fba65aa89b5c9, 0xcd01dce6cc32a5e3) }, // 4034
+ { cat(0xb45319adbc2449a8, 0xc3f44e8db4f81f9b), cat(0x81cc951e2207c4a1, 0x70ce4a523cf55182) }, // 4035
+ { cat(0x2084f5e2c6a075da, 0xd3207daf87f365c5), cat(0xcfadbb6369a60768, 0xb47d43b6c7eee8d1) }, // 4036
+ { cat(0x1a03f7e89ee6c4af, 0x0f4d3159398f849e), cat(0xa62495e921519f86, 0xf6ca9c92398bed74) }, // 4037
+ { cat(0x14cff986e5856a25, 0xa5d75aadc7a603b1), cat(0x84ea11874ddae605, 0x923bb074fad65790) }, // 4038
+ { cat(0x214cc2716f3bdd09, 0x095891160c3cd2b5), cat(0xd4a9b5a5495e3cd5, 0xb6c5e7219156f280) }, // 4039
+ { cat(0xe7709b8df2964a6d, 0xa113a744d6970ef7), cat(0xaa215e1dd44b63de, 0x2bd185b474458ecc) }, // 4040
+ { cat(0xb926e2d7f5450857, 0xb40fb903dedf3f2c), cat(0x881ab1b176a2b64b, 0x564137c39037a570) }, // 4041
+ { cat(0x283e37bfeed4da25, 0xece5f4d2fe31fead), cat(0xd9c44f82576abd45, 0x56cebf9f4d25d581) }, // 4042
+ { cat(0xecfe92fff243e1b7, 0xf0b7f70f31c1988b), cat(0xae36a601df88976a, 0xabd8994c3db7de00) }, // 4043
+ { cat(0x23fedbfff5031af9, 0x8d5ff8d8f49ae06f), cat(0x8b5eeb34b2d3ac55, 0x5646e109caf97e67) }, // 4044
+ { cat(0xd3315fffee6b5e5c, 0x15665af4ba916718), cat(0xdefe45211e1f7a22, 0x23a49b42de5bfd71) }, // 4045
+ { cat(0xdc277ffff1ef7eb0, 0x111eaf2a2edab8e0), cat(0xb265041a7e7f94e8, 0x1c83af68b1e33127) }, // 4046
+ { cat(0x49b9333327f2cbc0, 0x0db225bb58aefa4d), cat(0x8eb7367b986610b9, 0xb06959208e4f5a86) }, // 4047
+ { cat(0xdc5b851ea6514600, 0x15e9d5f88de4c3ae), cat(0xe458572c2709b45c, 0x4d755b674a1890d6) }, // 4048
+ { cat(0x7d160418850dd199, 0xab2177fa0b1d6958), cat(0xb6ad1289b8d49049, 0xd79115ec3b46da45) }, // 4049
+ { cat(0x30de69ad373e4147, 0xbc1ac661a27dede0), cat(0x92240ed493dd403b, 0x12da77f02f6be1d1) }, // 4050
+ { cat(0x8163dc4858639ba5, 0xf9c4709c372fe300), cat(0xe9d34aedb962005e, 0x8490bfe6b246361b) }, // 4051
+ { cat(0xcde97d06ad1c7c84, 0xc7d05a16928cb599), cat(0xbb0f6f24944e66b2, 0x03a6ffebc1d1c4e2) }, // 4052
+ { cat(0x0b2130d22416ca03, 0xd30d14dedba3c47b), cat(0x95a5f283a9d85228, 0x02ebffefce416a4f) }, // 4053
+ { cat(0xab684e1d068adcd2, 0xeb482164929fa0c4), cat(0xef6fea6c42f3b6a6, 0x6b1333194a0243b1) }, // 4054
+ { cat(0x55ed0b4a6ba24a42, 0x55d34dea0ee61a37), cat(0xbf8cbb89cf295eeb, 0x88dc28e10801cfc1) }, // 4055
+ { cat(0xde573c3b894ea1ce, 0xab0f71880beb482c), cat(0x993d62d4a5bab256, 0x0716871a6cce3fcd) }, // 4056
+ { cat(0xfd58605f4217694a, 0xab4be8d9acaba6ac), cat(0xf52f04876f911d56, 0x71bda4f7147d32e2) }, // 4057
+ { cat(0x9779e6b29b45edd5, 0x55d653e156efb88a), cat(0xc4259d39260db111, 0xf497b72c106428b5) }, // 4058
+ { cat(0x45fb1ef54904be44, 0x44ab764ddf262d3b), cat(0x9ceae42db80af40e, 0x5d462c2340502091) }, // 4059
+ { cat(0x3cc4fe5541a1306d, 0x3aabf07c983d152b), cat(0xfb116d15f344b9b0, 0x953d136b9a19cdb5) }, // 4060
+ { cat(0xfd6a6511014dc057, 0x622326ca136410ef), cat(0xc8dabdab2903c7c0, 0x77640f894814a490) }, // 4061
+ { cat(0xfdeeb740cdd7cd12, 0xb4e8ebd4dc500d8c), cat(0xa0aefe2287363966, 0xc5e9a6076cdd5073) }, // 4062
+ { cat(0x64bef900a4aca40e, 0xf720bcaa49d9a470), cat(0x808bfe8205c4fab8, 0x9e5484d2bd7dd9f6) }, // 4063
+ { cat(0xd464c19aa11439b1, 0x8b679443a95c3a4d), cat(0xcdacca69a2d4c45a, 0x96eda1512f2fc323) }, // 4064
+ { cat(0x4383ce154da9c7c1, 0x3c52dd02ede361d8), cat(0xa48a3b87b577037b, 0xabf14dda8c2635b6) }, // 4065
+ { cat(0xcf9ca4ddd7bb0634, 0x30424a68be4f8179), cat(0x83a1c9395df8cf96, 0x2327717ba351c491) }, // 4066
+ { cat(0x18faa162f2c4d6b9, 0xe6d0770dfd4c025b), cat(0xd29c7528965ae5bd, 0x050be8c5d21c6db6) }, // 4067
+ { cat(0x13fbb44f289d7894, 0xb8a6c5a4caa33516), cat(0xa87d2a86deaf1e30, 0xd0d653d174e38af8) }, // 4068
+ { cat(0xa99629d8ed4ac6dd, 0x60856aea3bb5c412), cat(0x86ca886be558e4f3, 0xda450fdac3e93bf9) }, // 4069
+ { cat(0xdc237627e2113e2f, 0x00d577dd2c560682), cat(0xd7aa73dfd55b07ec, 0x906e7fc46ca85ff5) }, // 4070
+ { cat(0x1682c4ecb4da9825, 0x9a445fe423780535), cat(0xac885cb311159ff0, 0x738b9969f086b32b) }, // 4071
+ { cat(0x45356a56f7154684, 0x7b69e6501c60042b), cat(0x8a06b08f40de198d, 0x293c7abb26d228ef) }, // 4072
+ { cat(0xa1ef108b24eed73a, 0x5f0fd6e693ccd377), cat(0xdcd780e534968f48, 0x41fa5df83e1d0e4b) }, // 4073
+ { cat(0x818c0d3c1d8bdf61, 0xe5a64585430a42c6), cat(0xb0ac671dc3aba5d3, 0x67fb7e6031b0d83c) }, // 4074
+ { cat(0x9ad670fce46fe5e7, 0xeaeb6ad1026e9bd2), cat(0x8d56b8e49c895175, 0xecc931e68e271363) }, // 4075
+ { cat(0xf7bd8194a0b30973, 0x1178aae803e42c82), cat(0xe2245b0760dbb589, 0x7adb830a7d0b5238) }, // 4076
+ { cat(0xf96467aa1a28d45c, 0x0dfa22533650239c), cat(0xb4e9e26c4d7c913a, 0xc8af9c0864090e93) }, // 4077
+ { cat(0xc7838621ae871049, 0xa4c81b75c50ce949), cat(0x90bb1b89d796da95, 0x6d5949a050073edc) }, // 4078
+ { cat(0x726c09cf7da4e6dc, 0x3ad9c5893b47dba8), cat(0xe791c5a958f15dbb, 0xe22875cd4cd86494) }, // 4079
+ { cat(0x8ebcd4a5fe1d857c, 0xfbe16ad42f6cafba), cat(0xb9416aede0c117c9, 0x81b9f7d770ad1d43) }, // 4080
+ { cat(0x3efd76eb31b13797, 0x2fe788a9bf8a262e), cat(0x9434558b1a341307, 0x9afb2cac5a241769) }, // 4081
+ { cat(0x31958b11e91b8c25, 0x19727442cc103d17), cat(0xed2088de905351a5, 0xc4c51446f6a02575) }, // 4082
+ { cat(0x8e113c0e541609b7, 0x478ec368a34030df), cat(0xbdb3a0b20d0f7484, 0x9d6a769f2bb3512a) }, // 4083
+ { cat(0x0b40fcd84344d492, 0x9fa569208299c0b3), cat(0x97c2e6f4d73f906a, 0x17885ee5bc8f7422) }, // 4084
+ { cat(0x1201948d386e20ea, 0x9908a83404293451), cat(0xf2d17187becc1a43, 0x58da316f9418b9d0) }, // 4085
+ { cat(0xa80143a42d24e722, 0x1406ecf669ba9041), cat(0xc241279fcbd67b69, 0x13e1c1261013c7d9) }, // 4086
+ { cat(0xeccdcfb68a83ec1b, 0x4338bd91ee2ed9cd), cat(0x9b6752e63cab95ed, 0xa9816751a676397a) }, // 4087
+ { cat(0xae16192410d3135e, 0xd1f4628316b15c7b), cat(0xf8a551706112897c, 0x4268a54f70bd28c4) }, // 4088
+ { cat(0xf1ab47500d75a918, 0xa7f6b535abc116c9), cat(0xc6eaa78d1a753ac9, 0xceba1dd926fdba36) }, // 4089
+ { cat(0x8e229f733df7ba7a, 0x1ff890f7bc9a78a1), cat(0x9f221fa4152a956e, 0x3efb4b141f3161c5) }, // 4090
+ { cat(0x169dcbeb96592a5c, 0xfff41b25fa90c102), cat(0xfe9cff6ceeaa88b0, 0x64c544ecfeb5693c) }, // 4091
+ { cat(0x454b0989451421e3, 0xfff67c1e620d6735), cat(0xcbb0cc5725553a26, 0xb7043723fef78763) }, // 4092
+ { cat(0x376f3ad437434e4f, 0xfff8634b81a45291), cat(0xa2f3d6ac1dddc81e, 0xf8d02c1ccbf9391c) }, // 4093
+ { cat(0xf925c8a9c5cf71d9, 0x999382a2ce1d0eda), cat(0x825cabbce4b16ce5, 0x93d9bce3d660fa7c) }, // 4094
+ { cat(0x283c7442d618b628, 0xf5b8d1047cfb4af6), cat(0xd09445fb078247d5, 0xb95c616c8a34c3fb) }, // 4095
+ { cat(0x20305d0244e091ba, 0x5e2d7403972f6f2c), cat(0xa6dd04c8d2ce9fde, 0x2de38123a1c3cffc) }, // 4096
+ { cat(0x4cf37d9b6a4d4161, 0xe4f1299c78f2bf56), cat(0x857d9d6d7572197e, 0x8b1c674fb49ca663) }, // 4097
+ { cat(0x14b8c8f8aa153569, 0x6e4ea8fa5b1dfef0), cat(0xd595c8af225028ca, 0x782d721920faa3d2) }, // 4098
+ { cat(0xaa2d6d93bb442aba, 0xbea553fb7c17ff26), cat(0xaade3a25b50ced6e, 0xc68ac1adb3fbb641) }, // 4099
+ { cat(0x54f124762f69bbc8, 0x9884432f967998ec), cat(0x88b1c81e2a70bdf2, 0x386f0157c32fc501) }, // 4100
+ { cat(0x54b507237f0f92da, 0x8da06b7f5728f4ac), cat(0xdab60cfd10b4631d, 0x2718022605193b35) }, // 4101
+ { cat(0x76f738e93272dbe2, 0x0ae6bc65df53f6f0), cat(0xaef80a640d5d1c17, 0x52799b519dadc8f7) }, // 4102
+ { cat(0x5f2c2d875b8f164e, 0x6f1efd1e4c432bf3), cat(0x8bf9a1e9a44a7cdf, 0x752e15dae48b072c) }, // 4103
+ { cat(0xcb79e2722c1823b0, 0xb1cb2e96e06b7985), cat(0xdff5cfdc3a10c7cb, 0xeeb022f7d411a513) }, // 4104
+ { cat(0xd5fb1b8e89ace95a, 0x27d5bedf19ef946b), cat(0xb32b0cb02e73d309, 0x8bc01bf97674840f) }, // 4105
+ { cat(0xde627c7207bd877b, 0x5311657f47f2dd22), cat(0x8f55a3c0252975a1, 0x3c99affac52a033f) }, // 4106
+ { cat(0x9703fa500c62725e, 0xeb4f08cba65161d0), cat(0xe555d2cd084255ce, 0xc75c4cc46ea99ecc) }, // 4107
+ { cat(0xdf3661d9a381f518, 0xbc3f3a3c850de7da), cat(0xb777dbd739ceab0b, 0xd2b03d69f2214bd6) }, // 4108
+ { cat(0x4c2b817ae934c413, 0xc9cc2e96d0d7ecae), cat(0x92c64978fb0bbc09, 0x7559cabb281aa312) }, // 4109
+ { cat(0x46ac025e41ee0686, 0x0fad1757b48cade3), cat(0xead6dbf4c4df9342, 0x555c7791d9c4381d) }, // 4110
+ { cat(0xd223351834be6b9e, 0x72f0df795d3d57e9), cat(0xbbdf165d6a4c75ce, 0xaab05fa7e169c67d) }, // 4111
+ { cat(0x74e8f74690985618, 0x5bf3e5fab0fddfee), cat(0x964c11e45509f7d8, 0x888d19531abb0531) }, // 4112
+ { cat(0xbb0e5870e75a235a, 0x2cb96ff781963316), cat(0xf079b63a21a98c8d, 0xa7482884f791a1e8) }, // 4113
+ { cat(0x95a5138d85e1b5e1, 0xbd61265f9ade8f45), cat(0xc0615e94e7bad6d7, 0xb90686d0c60e1b20) }, // 4114
+ { cat(0x44840fa46b1af7e7, 0xcab41eb2e24ba5d1), cat(0x99e77edd862f1246, 0x2d9ed2409e71af4d) }, // 4115
+ { cat(0x6da0190711c4bfd9, 0x445364516a12a2e7), cat(0xf63f3162704b5070, 0x48fe1d3430b5e548) }, // 4116
+ { cat(0xf14ce0d2749d6647, 0x69dc504121a88253), cat(0xc4ff5ab526a2a6c0, 0x3a64e429c0918439) }, // 4117
+ { cat(0x2770b3db907deb6c, 0x54b040341aed350f), cat(0x9d99155db8821f00, 0x2eb71cee33a79cfb) }, // 4118
+ { cat(0xa5811fc5b3fcabe0, 0x878066b9c4aebb4b), cat(0xfc28222f8d9cfe66, 0xb124fb16b90c2e5e) }, // 4119
+ { cat(0xb79a7fd15cca231a, 0x0600522e36f22f6f), cat(0xc9b9b4f2d7b0cb85, 0x5a83fc122da3584b) }, // 4120
+ { cat(0x2c7b99744a3b4f48, 0x04cd0e8b5f2825f3), cat(0xa1615d8f12f3d604, 0x48699674f14f79d6) }, // 4121
+ { cat(0xf062e129d4fc3f6c, 0xd0a40ba2b28684c2), cat(0x811ab13f425cab36, 0xa054785d8dd92e44) }, // 4122
+ { cat(0xb3d16842ee60657a, 0xe76cdf6ab73da136), cat(0xce911b986a2ddebd, 0xcd53f3c8e2f516d4) }, // 4123
+ { cat(0xf64120358b80512f, 0x1f8a4c555f6480f8), cat(0xa540e2e054f17efe, 0x3ddcc3071bf74576) }, // 4124
+ { cat(0x2b674cf7a2cd0dbf, 0x4c6ea3777f839a60), cat(0x8433e8b3772798cb, 0x64b09c05aff9045f) }, // 4125
+ { cat(0x78a547f29e14e2cb, 0xad7dd258cc05c3cd), cat(0xd386411f250c27ab, 0xd44dc66f7ff4d3cb) }, // 4126
+ { cat(0xc6ea9ff54b43e8a2, 0xf1317513d66b030b), cat(0xa9383418ea701fbc, 0xa9d7d1f2ccc3dca2) }, // 4127
+ { cat(0x38bbb32aa29cba1b, 0xf42790dcab88cf3c), cat(0x876029ad8859b2fd, 0x54aca7f5709cb082) }, // 4128
+ { cat(0x2792b844376129c6, 0x5372816112747ec6), cat(0xd899dc48da291e62, 0x21143fef1a944d9d) }, // 4129
+ { cat(0xec75603692b4216b, 0x75f5344da85d3238), cat(0xad47e36d7b54184e, 0x80dcfff27ba9d7b0) }, // 4130
+ { cat(0x56c44cf8755ce789, 0x2b2a903e204a8e93), cat(0x8a9fe92462a9ad0b, 0x9a4a665b9621795a) }, // 4131
+ { cat(0xbe06e18d8894a5a8, 0x4510e6c9cd441752), cat(0xddcca83a3775e1ac, 0x2a10a3c5bd025bc3) }, // 4132
+ { cat(0x9805813e06dd5153, 0x6a73ebd4a436790e), cat(0xb1708694f92b1af0, 0x21a6e96afd9b7c9c) }, // 4133
+ { cat(0x799e00fe6be4410f, 0x885cbcaa1cf860d8), cat(0x8df39edd94227bf3, 0x4e1f2122647c63b0) }, // 4134
+ { cat(0x5c3001971306ce7f, 0x409461102e5a348d), cat(0xe31f6495b9d0c652, 0x16983503d3fa391a) }, // 4135
+ { cat(0x7cf33478dc0571ff, 0x66dd1a7358482a0b), cat(0xb5b2b6de2e409ea8, 0x12135d9ca994fa7b) }, // 4136
+ { cat(0x63f5c393e3378e65, 0xebe41529136cee6f), cat(0x915bc57e8b66e553, 0x41a917b087aa61fc) }, // 4137
+ { cat(0x065605b96b8c1709, 0x796ceea81f14b0b1), cat(0xe892d59745716eeb, 0x9c41bf80d9109cc7) }, // 4138
+ { cat(0x9eab37c7893cdf3a, 0xc78a58867f43c08e), cat(0xba0f1145d1278bef, 0xb0349933e0da1705) }, // 4139
+ { cat(0x7eef5fd2d430b295, 0x6c6ead3865cfcd3e), cat(0x94d8da9e40ec6ff2, 0xf35d475cb3e1ac04) }, // 4140
+ { cat(0xfe4bcc8486b450ef, 0x13e4485a3c7faeca), cat(0xee27c43067e0b31e, 0x522ed8945302acd3) }, // 4141
+ { cat(0x6509706a055d0d8c, 0x0fe9d37b639958a2), cat(0xbe86368d1fe6f5b1, 0xdb58ad43759bbd76) }, // 4142
+ { cat(0xb73ac054d1173e09, 0xa654a92f82e113b5), cat(0x986b5ed74cb8c48e, 0x4913bdcf9149645e) }, // 4143
+ { cat(0xbec466ee1b586342, 0xa3baa84c049b52ba), cat(0xf3defe25478e074a, 0x0e85fc7f4edbd3ca) }, // 4144
+ { cat(0x6569ebf1af79e902, 0x1c95537003af7562), cat(0xc318cb51060b3908, 0x0b9e63990be30fd5) }, // 4145
+ { cat(0xeabb2327bf94ba68, 0x16dddc599c8c5de8), cat(0x9c13d5da6b3c2da0, 0x094b82e0d64f3fdd) }, // 4146
+ { cat(0x445e9ea5ff545d73, 0x57c9608f60e09640), cat(0xf9b9562a452d15cc, 0xdbac049af07ecc96) }, // 4147
+ { cat(0x36b21884cc437df5, 0xdfd44d3f80b3ab66), cat(0xc7c77821d0f0de3d, 0x7c899d48c0657078) }, // 4148
+ { cat(0xc55b46d0a3693191, 0x7fdd0a9933c2ef85), cat(0x9fd2c68173f3e4fd, 0xfd3ae43a338459f9) }, // 4149
+ { cat(0x08920ae76bdb8282, 0x662e775b8604b26e), cat(0xffb7a402531fd4c9, 0x952b06c385a08ff6) }, // 4150
+ { cat(0xd3a808b923160201, 0xeb585f7c6b36f525), cat(0xcc92e99b75b310a1, 0x44226bcf9e1a0cc4) }, // 4151
+ { cat(0xdc866d60e8de6801, 0x89137f96bc2bf751), cat(0xa3a8bae2c48f4081, 0x034ebca61814d703) }, // 4152
+ { cat(0x4a05244d87185334, 0x6da932defceff90e), cat(0x82ed624f03a5cd34, 0x02a563b81343df36) }, // 4153
+ { cat(0xa9a1d3af3e8d51ed, 0x7c41eafe617ff4e2), cat(0xd17bd07e6c3c7b86, 0x6aa2392685396523) }, // 4154
+ { cat(0x87b4a958fed774bd, 0xfd0188cb81332a4f), cat(0xa796406523639605, 0x221b60eb9dc7841c) }, // 4155
+ { cat(0x9fc3baad98ac5d64, 0xca67a0a2cdc2883f), cat(0x8611cd1db5e944d0, 0xe815e722e49f9ce3) }, // 4156
+ { cat(0xcc6c5de28de0956e, 0x10a5cdd149374065), cat(0xd682e1c9230ed481, 0x73563e9e3a98fb05) }, // 4157
+ { cat(0x3d237e4ed7e6ddf1, 0xa6eb0b0dd42c3384), cat(0xab9be7d41c0bdd34, 0x5c44fee4fbad959e) }, // 4158
+ { cat(0x641c650bdfebe4c1, 0x5255a2717689c2d0), cat(0x8949864349a3175d, 0x169d98b72fbe114b) }, // 4159
+ { cat(0x39c70812ffdfd468, 0x83bc371bf0dc6ae6), cat(0xdba8d6d20f6b5894, 0xf0fc278b7f968212) }, // 4160
+ { cat(0x616c0675997fdd20, 0x69635f498d7d2252), cat(0xafba4574d922ad43, 0xf3fcec6f994534db) }, // 4161
+ { cat(0xe7899ec47accb0e6, 0xbab5e5d47130e842), cat(0x8c95045d7a822436, 0x5cca56bfadd0f715) }, // 4162
+ { cat(0x3f4297a0c47ab4a4, 0x5defd620b51b0d35), cat(0xe0ee6d625d9d06bd, 0x6143bdff7c818b56) }, // 4163
+ { cat(0x329bac809d2ef6e9, 0xe4bfde8090e270f8), cat(0xb3f1f11b7e173897, 0x8102fe65fd346f78) }, // 4164
+ { cat(0xf54956cd4a8bf8bb, 0x1d664b9a0d81f3f9), cat(0x8ff4c0e2cb45c6df, 0x9a68cb84ca90592c) }, // 4165
+ { cat(0x887557aeddacc12b, 0x623d45c348cfecc2), cat(0xe65467d1453c7165, 0xc3dadf3addb3c1e1) }, // 4166
+ { cat(0x39f77958b15700ef, 0x81ca9e35d3d98a35), cat(0xb843864104305ab7, 0xcfe24c2f17c30181) }, // 4167
+ { cat(0x6192c77a2778cd8c, 0x67d54b5e43146e91), cat(0x936938340359e22c, 0xa64ea358dfcf3467) }, // 4168
+ { cat(0xcf513f29d8c148e0, 0xa62212306b53e41b), cat(0xebdb8d20055c9d14, 0x3d4a9ef4994b870b) }, // 4169
+ { cat(0x3f743287e09aa0b3, 0xb81b41c055dcb67c), cat(0xbcafa4199de3b0dc, 0xfdd54bf6e10938d6) }, // 4170
+ { cat(0x9929c2064d48808f, 0xc67c3499de4a2b96), cat(0x96f2e9ae17e95a4a, 0x64aaa32be73a93de) }, // 4171
+ { cat(0xc1dc69a3aeda674c, 0x70c6ba8fca1045bd), cat(0xf184a9168ca89077, 0x07776b7971f752fd) }, // 4172
+ { cat(0xce49ee1c8be1ec3d, 0x2705620ca1a69e31), cat(0xc136edaba3ba0d2c, 0x05f922c78e5f7597) }, // 4173
+ { cat(0x0b6e5816d64e5697, 0x526ab4d6e7b87e8e), cat(0x9a9257bc82fb3dbc, 0xd1941bd2d84c5e13) }, // 4174
+ { cat(0x78b08cf156e3bdbe, 0xea44548b0c5a6415), cat(0xf7508c60d191fc61, 0x4f535fb7c07a301e) }, // 4175
+ { cat(0xc6f3a3f44582fe32, 0x550376d5a37b8344), cat(0xc5da09e70e0e6381, 0x0c42b2f966c8267e) }, // 4176
+ { cat(0x38c2e990379bfe8e, 0xaa692bde1c62cf6a), cat(0x9e4807ec0b3eb600, 0xd69bc2611f068532) }, // 4177
+ { cat(0x279e428058f9974a, 0xaa41dfc9c7047f10), cat(0xfd400cacdecabcce, 0x242c6a34fe70d51d) }, // 4178
+ { cat(0x1fb1cecd13fadf6e, 0xee9b196e38d065a6), cat(0xca99a3bd7f08970b, 0x5023882a652710e4) }, // 4179
+ { cat(0xe627d8a40ffbe5f2, 0x587c14582d738485), cat(0xa21482fdff3a126f, 0x734fa021ea85a71c) }, // 4180
+ { cat(0x84ecad500cc984c1, 0xe0634379bdf6039e), cat(0x81aa0264cc2e7525, 0xf5d94ce7eed1527d) }, // 4181
+ { cat(0xa17aaee67adc079c, 0x9a386bf5fcbcd296), cat(0xcf766a3ae04a5509, 0x895bae3fe4821d95) }, // 4182
+ { cat(0x1ac88beb957cd2e3, 0xae93899196fd7545), cat(0xa5f854fbe6a1dda1, 0x3aafbe99839b4ade) }, // 4183
+ { cat(0x48a06fefaaca424f, 0xbedc6e0e12645dd1), cat(0x84c6aa631ee7e480, 0xfbbfcbae02e2a24b) }, // 4184
+ { cat(0x7433e64c4476d07f, 0x97c7167cea3a2fb4), cat(0xd471109e97d96d9b, 0x2c6612b0049dd078) }, // 4185
+ { cat(0x5cf651d69d2bd9ff, 0xac9f4530bb61bfc3), cat(0xa9f40d4bacadf148, 0xf051a88cd07e4060) }, // 4186
+ { cat(0xe3f841787dbcae66, 0x23b29dc095e7cc9c), cat(0x87f6710956f18dd3, 0xf37486d70d31cd19) }, // 4187
+ { cat(0x9ff39bf3fc611709, 0xd2b762cdbca6142d), cat(0xd98a4e7557e8e2ec, 0xb8ba7158151c7b5c) }, // 4188
+ { cat(0x4cc2e32996b4126e, 0x422c4f0afd51a9be), cat(0xae083ec44653e8bd, 0x60952779aa7d2f7d) }, // 4189
+ { cat(0x0a358287abc341f1, 0xce89d8d5977487cb), cat(0x8b39cbd038432097, 0x807752c7bb975931) }, // 4190
+ { cat(0x4388d0d912d2031c, 0x7da95aef58ba72de), cat(0xdec2dfb38d383425, 0x9a588472c5bef51b) }, // 4191
+ { cat(0x02d3da4742419c16, 0xcaede25913c85be5), cat(0xb2357fc2d76029b7, 0xaead36c237cbf749) }, // 4192
+ { cat(0x02431505ce9ae345, 0x6f24b5140fd37cb7), cat(0x8e91330245e687c6, 0x25575f01c63cc5d4) }, // 4193
+ { cat(0x6a04ee6fb0f7d208, 0xb1d454ece61f2df2), cat(0xe41b84d06fd73fa3, 0x6ef2319c70613c86) }, // 4194
+ { cat(0xee6a58595a5fdb3a, 0x27dd10bd84e5be5b), cat(0xb67c6a405978ffb5, 0xf25b5ae38d1a96d1) }, // 4195
+ { cat(0x5855137aaeb315c8, 0x1fe40d646a516516), cat(0x91fd21cd1460cc91, 0x8eaf7be93daedf0e) }, // 4196
+ { cat(0x26ee85911784efa6, 0x996ce23a43b56e89), cat(0xe99502e1ba347a82, 0x7de5930ec917cb4a) }, // 4197
+ { cat(0x1f2537a74603f2eb, 0xadf0b4fb695df207), cat(0xbadd9be7c829fb9b, 0x97eadc0bd4130908) }, // 4198
+ { cat(0x4c1dc61f6b365bef, 0xbe5a2a62bab18e6c), cat(0x957e16530687fc7c, 0x7988b0097675a0d3) }, // 4199
+ { cat(0x79c93cff11f09319, 0x309043d12ab5b0ad), cat(0xef3023b80a732d93, 0xf5a7800f23ef67b8) }, // 4200
+ { cat(0x94a0fd98db26dc14, 0x26d9cfda88915a24), cat(0xbf59b62cd528f143, 0x2aec66728325ec93) }, // 4201
+ { cat(0x1080cae0af5249a9, 0xb8ae3fe206daae84), cat(0x991491bd7753f435, 0xbbf051f535b7f076) }, // 4202
+ { cat(0xe73477cde55075dc, 0x5ab06636715de405), cat(0xf4edb5fbf21fed22, 0xc64d4feebc5980bc) }, // 4203
+ { cat(0x52905fd7eaa6c4b0, 0x488d1e91f44b1cd1), cat(0xc3f15e6328198a82, 0x383dd98bc9e133ca) }, // 4204
+ { cat(0x75404cacbbb89d59, 0xd3a41874c36f4a41), cat(0x9cc1184f5347a201, 0xc697e13ca180f63b) }, // 4205
+ { cat(0xeecd477ac5f42ef6, 0x1f6cf3ee057edd35), cat(0xface8d4bb8729ccf, 0xa426352dcf34bd2b) }, // 4206
+ { cat(0xf23dd2c89e5cf25e, 0x7f8a5cbe6acbe42a), cat(0xc8a53dd62d287d72, 0xe9b82a8b0c2a30ef) }, // 4207
+ { cat(0x2831756d4b7d8eb1, 0xffa1e3cb88a31cef), cat(0xa08431782420645b, 0xee2ceed5a354f3f3) }, // 4208
+ { cat(0xecf45df109313ef4, 0xcc8183093a1c1725), cat(0x8069c12ce9b3837c, 0xbe8a58aae910c328) }, // 4209
+ { cat(0xae53c981a84ecb21, 0x47359e7529c68b6f), cat(0xcd7601e175ec0594, 0x64108dde41b46b74) }, // 4210
+ { cat(0x250fd467b9d8a281, 0x05c47ec4216ba2bf), cat(0xa45e67e791899e10, 0x500d3e4b67c3892a) }, // 4211
+ { cat(0x1da643862e46e867, 0x37d06569b4561bcc), cat(0x837eb9860e07b1a6, 0xa670fea2b9693a88) }, // 4212
+ { cat(0xfc3d38d6b07173d8, 0x594d6f0f86f02c7a), cat(0xd2645c09b00c4f71, 0x0a4e64378f0ec40c) }, // 4213
+ { cat(0xfcfdc71226c12979, 0xe10abf3f9f2689fb), cat(0xa85049a159a372c0, 0xd50b835fa5a569a3) }, // 4214
+ { cat(0x30cb05a81f00edfb, 0x1a6eff6618eba196), cat(0x86a6a14de14f8f00, 0xaa6f9c4c84845483) }, // 4215
+ { cat(0x8144d5d9cb34aff8, 0x2a4b323cf4ac35bc), cat(0xd7710216354c1801, 0x10b293ada0d3ba6b) }, // 4216
+ { cat(0x9a9d77e16f5d5993, 0x5508f4fd9089c496), cat(0xac5a6811c43ce000, 0xda28762480a961ef) }, // 4217
+ { cat(0xe217931abf7de142, 0xaa6d90cada07d078), cat(0x89e1ecdb0363e667, 0x14ed2b5066ede7f2) }, // 4218
+ { cat(0xd025b82acbfc9b9d, 0xdd7c1ade29a61a5a), cat(0xdc9cae2b389fd70b, 0x54aeabb3d7e30cb7) }, // 4219
+ { cat(0xd9b7c688a3307c7e, 0x4ac9af182151aeaf), cat(0xb07d582293b3126f, 0x76f222f6464f3d5f) }, // 4220
+ { cat(0x1493053a1c26c9fe, 0xa23af279b441588c), cat(0x8d31134edc8f41f2, 0xc58e825e9ea5cab3) }, // 4221
+ { cat(0x8751a1f693714331, 0x039183f5ed355a79), cat(0xe1e81ee494186984, 0x6f4a6a30fdd6111e) }, // 4222
+ { cat(0x05dae7f875f435c0, 0xcfa79cc4bdc44861), cat(0xb4b9b2507679ee03, 0x8c3b882731780db2) }, // 4223
+ { cat(0x9e48b99391902b00, 0xa61fb09d649d06b4), cat(0x90948ea6c52e5802, 0xd6960685c12cd7c1) }, // 4224
+ { cat(0x96dac285b5b37801, 0x09cc4dc8a0fb3dec), cat(0xe75417713b7d599e, 0x24233da2ceae2602) }, // 4225
+ { cat(0x457bced15e292ccd, 0xa1703e3a1a6297f0), cat(0xb91012c0fc6447b1, 0xb68297b57224eb35) }, // 4226
+ { cat(0x9dfca5744b5423d7, 0xb459cb61aeb5465a), cat(0x940cdbcd96b69fc1, 0x5ecedfc45b50bc2a) }, // 4227
+ { cat(0xc9943bed45536c8c, 0x53c2df02b1220a29), cat(0xece15faf578a9935, 0x647e32d3c54df9dd) }, // 4228
+ { cat(0x07a9c98a9ddc56d6, 0xa968b2688db4d4ee), cat(0xbd81195912d5475d, 0xe9fe8f0fd10b2e4b) }, // 4229
+ { cat(0x6c87d46ee4b04578, 0x8786f520715d7725), cat(0x979a7aada8aa9f7e, 0x54cba5a640d5bea2) }, // 4230
+ { cat(0xada620b16de6d58d, 0xa5a4bb671bc8bea1), cat(0xf290c4490dddcbfd, 0x5479090a0155fdd0) }, // 4231
+ { cat(0x57b81a278b1f113e, 0x1e1d62b8e306fee7), cat(0xc20d69d40b17d664, 0x4394073b3444cb0d) }, // 4232
+ { cat(0x796014ec6f4c0dcb, 0x4b4ab560b59f3253), cat(0x9b3dee433c1311e9, 0xcfa99f62903708d7) }, // 4233
+ { cat(0xc23354ad7ee01612, 0x1211223455cb83b7), cat(0xf86316d1f9b81ca9, 0x4c42989db38b4158) }, // 4234
+ { cat(0x9b5c43bdff19ab41, 0xa80db4f6ab09362c), cat(0xc6b5abdb2e2ce3ba, 0xa3687a17c2d5cde0) }, // 4235
+ { cat(0x7c49cfcb327aef67, 0xb9a490c555a0f824), cat(0x9ef7bcaf5823e962, 0x1c5394dfcf117180) }, // 4236
+ { cat(0x2d42e611ea5e4bd9, 0x29074e0889018d06), cat(0xfe592de559d30f03, 0x6085baffb1b58267) }, // 4237
+ { cat(0xf10251a7eeb1d647, 0x5405d806d4013d9e), cat(0xcb7a8b1de175a59c, 0x4d37c8cc8e2aceb8) }, // 4238
+ { cat(0x8d9b7486588e4505, 0xdcd1799f1000fe18), cat(0xa2c86f4b1ac4847d, 0x0a93070a0b55722d) }, // 4239
+ { cat(0x3e15f6d1e071d0d1, 0x7d74614c0ccd9813), cat(0x8239f2a27bd069fd, 0xa20f38d4d5ddf4f1) }, // 4240
+ { cat(0xc9bcbe1c9a4fb482, 0x6253cee0147c2685), cat(0xd05cb76a5fb3dcc9, 0x034b8e21562fee4e) }, // 4241
+ { cat(0x6e309816e1d95d35, 0x1b763f19a9fceb9e), cat(0xa6b092bb7fc31707, 0x35d60b4dde8cbea5) }, // 4242
+ { cat(0x8b5a1345817ab0f7, 0x492b65ae219722e5), cat(0x855a0efc6635ac05, 0xc4ab3c3e4ba3cbb7) }, // 4243
+ { cat(0x455ceba268c44e58, 0x75123c49cf5837d4), cat(0xd55ce4c709ef79a2, 0xd4452d30790612bf) }, // 4244
+ { cat(0x9de3efb5209d0b79, 0xf741c9d4a5e02caa), cat(0xaab0b705a18c614f, 0x10375759fa6b4232) }, // 4245
+ { cat(0x4b1cbfc41a173c61, 0x929b07dd518023bb), cat(0x888d5f37b4704dd8, 0xd9c5df7b2ebc34f5) }, // 4246
+ { cat(0x44facc6cf68b93cf, 0x50f80c954f336c5e), cat(0xda7bcb8c53e6e2f4, 0x8fa2ff2b7df9ee55) }, // 4247
+ { cat(0xd0c8a38a5ed60fd9, 0x0d933d443f5c56b2), cat(0xaec96fa376524f2a, 0x0c8265bc64c7f1dd) }, // 4248
+ { cat(0x40a082d518ab3fe0, 0xd7a8fdd032b0455b), cat(0x8bd4594f91db7288, 0x0a01eafd1d6cc17e) }, // 4249
+ { cat(0x9a9a6aee8ddecc9a, 0xf2a7fc80511a0892), cat(0xdfba287f4fc5840c, 0xdccfde61c8ae0263) }, // 4250
+ { cat(0x1548558ba4b23d48, 0xc21ffd337414d3a8), cat(0xb2fb53990c9e033d, 0x7d73184e3a24ceb6) }, // 4251
+ { cat(0x776d113c83c1caa0, 0x9b4cca8f9010a953), cat(0x8f2f76140a180297, 0x978f46a4fb50a55e) }, // 4252
+ { cat(0x8be1b52d9f9c7767, 0x5ee14418e6810eeb), cat(0xe518bcecdcf33758, 0xf27ed76e5ee76efd) }, // 4253
+ { cat(0xa31af757b2e392b9, 0x18b4367a5200d8bc), cat(0xb746fd8a4a5c2c47, 0x2865792518b92597) }, // 4254
+ { cat(0x4f48c5dfc24fa894, 0x13c35ec8419a46fd), cat(0x929f313b6eb0236c, 0x20512db746fa8479) }, // 4255
+ { cat(0x18746fcc6a190db9, 0xb93897a6cf5d3e62), cat(0xea984ec57de69f13, 0x66e849253e5da0c2) }, // 4256
+ { cat(0xad29f309ee7a7161, 0x60fa12ebd917651b), cat(0xbbad0bd131854c0f, 0x8586a0ea984ae701) }, // 4257
+ { cat(0x24218f3b252ec11a, 0xb3fb42564745ea7c), cat(0x96240974279dd672, 0xd13880bbad08b8ce) }, // 4258
+ { cat(0xd368e52b6eb134f7, 0x865ed08a0ba310c6), cat(0xf039a8b9d8fc8a51, 0x4ec0cdf914dac149) }, // 4259
+ { cat(0xa920b755f2275d92, 0xd1e573a1a2e8da38), cat(0xc02e2094ad96d50d, 0xd89a3e60dd7bcdd4) }, // 4260
+ { cat(0x541a2c44c1b917a8, 0xa7eac2e7b58714fa), cat(0x99be8076f145773e, 0x46e1cb80b12fd7dd) }, // 4261
+ { cat(0x2029e06e02c1bf74, 0x3fde04a5ef3e87f6), cat(0xf5fd9a57e86f2530, 0x7169459ab5195962) }, // 4262
+ { cat(0xe687e6be689aff90, 0x331803b7f2986cc5), cat(0xc4cae1dfed25b759, 0xf45437aef7477ab4) }, // 4263
+ { cat(0xeb9febcb86e2660c, 0xf5accfc65bad23d1), cat(0x9d6f1b198a8492ae, 0x5d102c8bf905fbc3) }, // 4264
+ { cat(0xac3312df3e3709ae, 0x55e14c7092ae9fb4), cat(0xfbe4f828dda0eab0, 0x94e6adacc1a32c6c) }, // 4265
+ { cat(0xbcf5a8b2982c07be, 0xab1aa38d42254c90), cat(0xc983f9ba4ae72226, 0xdd8557bd67b5bd23) }, // 4266
+ { cat(0x30c486f546899fcb, 0xbc154fa434eaa3a7), cat(0xa1366161d585b4eb, 0xe46aac97862afdb6) }, // 4267
+ { cat(0x8d6a0591053ae63c, 0x967772e9c3eee952), cat(0x80f84de7de0490bc, 0xb6bbbd4604ef315e) }, // 4268
+ { cat(0x7bdcd5b4d52b09fa, 0x8a58b7dc6cb17550), cat(0xce5a163fc9a0e794, 0x5792c87007e51bca) }, // 4269
+ { cat(0x2fe3de2a44226e62, 0x0846f97d23c12aa7), cat(0xa514de996e1a52dd, 0x12dbd38cd31dafd5) }, // 4270
+ { cat(0x264fe4ee9ce8584e, 0x6d0594641c9a8885), cat(0x8410b21458150f17, 0x4249760a427e2644) }, // 4271
+ { cat(0x0a196e4a94a6f3b0, 0xae6f53d360f740d5), cat(0xd34de9ba26881825, 0x36dbf0106a63706d) }, // 4272
+ { cat(0xa1adf1d543b8c2f3, 0xbebf7642b3f900ab), cat(0xa90b2161b86ce01d, 0xc57cc00d21e926bd) }, // 4273
+ { cat(0xb48b27ddcfc7025c, 0x98992b688ffa66ef), cat(0x873c1ab4938a4ce4, 0x9dfd6670e7edb897) }, // 4274
+ { cat(0x5411d962e60b36fa, 0x8dc1df0db32a3e4b), cat(0xd8602aba85aa14a0, 0xfcc8a3e7d97c5a8c) }, // 4275
+ { cat(0x43417ab584d5c595, 0x3e34b2715c21cb6f), cat(0xad19bbc86aee76e7, 0x30a0831fe1304870) }, // 4276
+ { cat(0x35cdfbc46a449e10, 0xfe908ec116816f8c), cat(0x8a7afca0558b9252, 0x8d4d35b31a8d06c0) }, // 4277
+ { cat(0xbc7cc607106dc9b4, 0xca80e46824024c13), cat(0xdd919433bc1283b7, 0x487b891e90e1a466) }, // 4278
+ { cat(0x3063d19f4057d490, 0xa200b6b9b6683cdc), cat(0xb141435c9675362c, 0x39fc6db20d815052) }, // 4279
+ { cat(0xf3830e19004643a6, 0xe800922e2b869717), cat(0x8dcdcf7d452a91bc, 0xfb3057c1a4677374) }, // 4280
+ { cat(0xec04e35b33a39f71, 0x73341d16ac0a8b57), cat(0xe2e2e5953b774f94, 0xc51a2602a0a58587) }, // 4281
+ { cat(0x899d82af5c82e5f4, 0x5c29b0def0086f79), cat(0xb58251442f92a610, 0x9dae84cee6ead139) }, // 4282
+ { cat(0xa14acef2b068b7f6, 0xb0215a4bf339f2c7), cat(0x91350dd0260eeb40, 0x7e25370bebef0dc7) }, // 4283
+ { cat(0x02114b1de70df324, 0x4d022a131ec31e0c), cat(0xe854e2e6a34b1200, 0xc9d524dfdfe4e2d9) }, // 4284
+ { cat(0x01a76f4b1f3e5c1d, 0x0a6821a8e568e4d6), cat(0xb9dd82521c3c0e67, 0x07ddb7197fea4f14) }, // 4285
+ { cat(0x3485f2a27f65167d, 0xa1ece7ba5120b712), cat(0x94b1350e7cfcd852, 0x6cb15f4799883f43) }, // 4286
+ { cat(0xeda31dd0cbd4f0c9, 0x0314a5f6e834581c), cat(0xede854e3fb2e26ea, 0x4782320c28d9fed1) }, // 4287
+ { cat(0x57b5b173d643f3d4, 0x0276eb2becf6ace3), cat(0xbe53771cc8f1b8bb, 0x6c682809ba47ff0e) }, // 4288
+ { cat(0x795e278fde9cc310, 0x01f8bc2323f88a50), cat(0x9842c5b0a0c16095, 0xf053533afb6ccc0b) }, // 4289
+ { cat(0xf563727fca946b4c, 0xcff46038398daa19), cat(0xf39e091a9acf00ef, 0xe6ebb85e5f1479ab) }, // 4290
+ { cat(0x911c5b996edd22a3, 0xd9904cf9c7a48814), cat(0xc2e4d41548a59a59, 0x8589604b7f439489) }, // 4291
+ { cat(0x7416afadf24a821c, 0xae0d0a616c83a010), cat(0x9bea43443a1e1514, 0x6ad44d09329c76d4) }, // 4292
+ { cat(0x868ab2afea10d02d, 0xe348109be0d299b3), cat(0xf976d206c36354ed, 0x77ba14db842d8aed) }, // 4293
+ { cat(0x9ed55bbfee73d9be, 0x4f6cda164d7547c2), cat(0xc792419f02b5dd8a, 0xc62e77160357a257) }, // 4294
+ { cat(0x7f11163325297afe, 0xa5f0ae783df76c9c), cat(0x9fa8347f355e4ad5, 0x6b585f44cf794eac) }, // 4295
+ { cat(0x64e8238508425e64, 0x3cb44a59fcbf142c), cat(0xff738731eefd4488, 0xabc0986e18c2177a) }, // 4296
+ { cat(0xea534f9da0351850, 0x30903b7b3098dcf0), cat(0xcc5c6c27f26436d3, 0xbc9a138b4701ac61) }, // 4297
+ { cat(0x8842a617b35dad0c, 0xf3a695fc26e0b0c0), cat(0xa37d235328502bdc, 0x96e1a93c38ce2381) }, // 4298
+ { cat(0xa03551ac8f7e240a, 0x5c8544c9b8b3c09a), cat(0x82ca82a8ed0cefe3, 0xabe7ba9693d81c67) }, // 4299
+ { cat(0x338882adb2636cdd, 0x60d53adc5ab93429), cat(0xd14404417b47e639, 0x130c5dbdb959c70c) }, // 4300
+ { cat(0x293a02248eb5f0b1, 0x1a442f16aefa9021), cat(0xa7699d012f6cb82d, 0xa8d6b1649447d270) }, // 4301
+ { cat(0x542e681d3ef7f3c0, 0xe1d025abbf2ed9b4), cat(0x85ee173425f09357, 0xba455ab6dd0641f3) }, // 4302
+ { cat(0xed170cfb97f31f9b, 0x02e6a2ac6517c2b9), cat(0xd649beb9d64db88c, 0x5d3bc457c80a031e) }, // 4303
+ { cat(0xbdac0a62dff5b2e2, 0x68b882238413022e), cat(0xab6e322e450afa09, 0xe42fd04639a19c18) }, // 4304
+ { cat(0x6489a1e8b32af581, 0xed60681c69a8ce8b), cat(0x8924f4f1d0d594d4, 0xb68ca69e948149ad) }, // 4305
+ { cat(0x6da9030deb77ef36, 0x489a402d75dae412), cat(0xdb6e54b61aef5487, 0x8a7aa430ed9ba915) }, // 4306
+ { cat(0xbe20cf3e55f98c2b, 0x6d483357917be9a8), cat(0xaf8b76f8158c439f, 0xa1fbb68d8ae2edaa) }, // 4307
+ { cat(0xfe80a5cb77fad689, 0x2439c2ac74632153), cat(0x8c6f9260113d02e6, 0x1b2fc53e08b58aee) }, // 4308
+ { cat(0x30cdd61259915741, 0xd38f9de0ba383552), cat(0xe0b283cce8619e3c, 0xf84c6ec9a788de4b) }, // 4309
+ { cat(0x5a3e44db7adaac34, 0xa93fb18094f9c441), cat(0xb3c2030a53814b63, 0xf9d6bf07b93a4b6f) }, // 4310
+ { cat(0xe1cb6a492f155690, 0x8766279a10c7d034), cat(0x8fce68d50f9aa2b6, 0x617898d2fa950925) }, // 4311
+ { cat(0x361243a84b55574d, 0xa5703f5ce7a619ed), cat(0xe6170e21b2910457, 0x025a8e1e5dbb41d6) }, // 4312
+ { cat(0xc4db69536f77790a, 0xeac032b0b951ae57), cat(0xb81271b48eda69df, 0x35153e7eb1629b11) }, // 4313
+ { cat(0x3715eddc592c60d5, 0x8899c226faa7beac), cat(0x9341f490724854b2, 0x90ddcb988de87c0e) }, // 4314
+ { cat(0xbe897c93c1e09aef, 0x40f60371910c6447), cat(0xeb9cba80b6da211d, 0xb496128dafda6016) }, // 4315
+ { cat(0x320796dc9b1a158c, 0x33f802c140d6b69f), cat(0xbc7d620092481a7e, 0x2a11a871597b8012) }, // 4316
+ { cat(0x5b39457d48e1aad6, 0x8ff99bcdcd789219), cat(0x96cab4cd41d34864, 0xee7486c11462ccdb) }, // 4317
+ { cat(0xc5286f2edb02aaf0, 0xe65c2c7c7bf41cf5), cat(0xf144547b9c8540a1, 0x7d873e01ba37ae2b) }, // 4318
+ { cat(0x6a86bf58af35558d, 0x851689fd2ff67d91), cat(0xc10376c94a0433b4, 0x646c319afb5fbe89) }, // 4319
+ { cat(0xbb9eff7a25c44471, 0x37453b30f32b97a7), cat(0x9a692bd43b368fc3, 0x8389c148c919653a) }, // 4320
+ { cat(0xf8fe65903c6d3a4e, 0xbed52b8185128c3e), cat(0xf70eac86c5241938, 0xd276020e0e8f085d) }, // 4321
+ { cat(0x2d985140305761d8, 0x98aa89346a753cff), cat(0xc5a556d23750142d, 0x752b34d80ba5a04b) }, // 4322
+ { cat(0xbe13743359df817a, 0x13bba0f6bb90fd99), cat(0x9e1ddf0e92a6768a, 0xc42290acd61e19d5) }, // 4323
+ { cat(0x301f205229659bf6, 0x85f9018ac5b4c8f4), cat(0xfcfc9817510a5744, 0x6d041aae23635c89) }, // 4324
+ { cat(0xf34c19db54514992, 0x04c7346f0490a0c3), cat(0xca63acdf740845d0, 0x57367bbe82b5e3a0) }, // 4325
+ { cat(0xf5d67b15dd0dd474, 0xd09f5d259d40809c), cat(0xa1e9571929a037d9, 0xdf5ec965355e4fb3) }, // 4326
+ { cat(0x2b11fc117da4a9f7, 0x0d4c4a847dcd33b0), cat(0x818778e0ee19c647, 0xe5e56dea91183fc3) }, // 4327
+ { cat(0x11b6601bfc3aa98b, 0x487a10d3fc7b85e7), cat(0xcf3f27ce49c2d6d9, 0x6fd57caa81c06605) }, // 4328
+ { cat(0x415eb3499695546f, 0x6d2e73dcc9fc6b1f), cat(0xa5cc1fd83b02457a, 0xbfddfd553499eb37) }, // 4329
+ { cat(0x9ab22907abaaa9f2, 0xbdbec31707fd227f), cat(0x84a34cacfc01d12e, 0xffe4caaa907b2292) }, // 4330
+ { cat(0xc45041a5df777651, 0x2f979e8b3ffb6a65), cat(0xd4387aae6002e84b, 0x3307aaaa80c5041d) }, // 4331
+ { cat(0x9d0d01517f92c50d, 0xbfac7ed5ccc921ea), cat(0xa9c6c88b8002536f, 0x5c062222009d9ce4) }, // 4332
+ { cat(0x173d9aa79942373e, 0x32f06577d7074e55), cat(0x87d23a0933350f8c, 0x499e81b4cd4ae3ea) }, // 4333
+ { cat(0xbec8f7728ed05863, 0x84b3d58c8b3ee3bb), cat(0xd9505cdb8521b27a, 0x0f6402bae2116ca9) }, // 4334
+ { cat(0x323a5f8ed8a6ad1c, 0x6a2977a3a298b62f), cat(0xadd9e3e2d0e7c1fb, 0x3f8335624e7456ee) }, // 4335
+ { cat(0x5b61e60be0855749, 0xee8792e94ee091c0), cat(0x8b14b64f0d8634c8, 0xff9c2ab50b90458b) }, // 4336
+ { cat(0x2bcfd679673bbedc, 0xb0d8eb0ee49a82cc), cat(0xde878a1815a387a7, 0xff604454df4d3c12) }, // 4337
+ { cat(0xefd978611f62ff16, 0xf3e0bc0bea153570), cat(0xb20608134482d2ec, 0xcc4d0377190a9674) }, // 4338
+ { cat(0xf314604db2b598df, 0x2980966fee775df3), cat(0x8e6b39a9039bdbf0, 0xa370cf927a6edec3) }, // 4339
+ { cat(0xeb53cd491def5afe, 0xa8cdbd7fe3f22fec), cat(0xe3dec2a805c62cb4, 0x38b47f50c3e4979f) }, // 4340
+ { cat(0xef763dd417f2af32, 0x20a4979983282656), cat(0xb64bceecd16b56f6, 0x93c3990d6983ac7f) }, // 4341
+ { cat(0xbf91cb1013288c28, 0x1a1d461468eceb78), cat(0x91d63f23dabc4592, 0x0fcfada4546956cc) }, // 4342
+ { cat(0xcc1c7819b840e040, 0x29c87020a7e178c0), cat(0xe956cb6c912d3c1c, 0xe61915d3ba42247a) }, // 4343
+ { cat(0xa349f9ae2d00b366, 0x87d38ce6ecb4609a), cat(0xbaabd5f074243017, 0x1e7a77dc9501b6c8) }, // 4344
+ { cat(0x4f6e615824008f85, 0x39760a5256f6b3ae), cat(0x955644c05ce9c012, 0x7ec85fe3aa67c56d) }, // 4345
+ { cat(0xb24a3559d33418d5, 0x28bcdd508b2452b0), cat(0xeef06e0094a93350, 0xcada3305dd72d57b) }, // 4346
+ { cat(0xf5082aae429013dd, 0xba30b10d3c1d0ef3), cat(0xbf26be66dd54290d, 0x6f14f59e4ac24462) }, // 4347
+ { cat(0x2a6ceef1ced9a97e, 0x2e8d5a70fce40bf6), cat(0x98ebcb857ddceda4, 0x58dd914b6f01d04f) }, // 4348
+ { cat(0x7714b182e48f7596, 0xb0e22a4e616cdff0), cat(0xf4ac78d5962e4906, 0xf495b5457e694d4b) }, // 4349
+ { cat(0x5f43c13583a5f7ab, 0xc0b4eea51abd7ff3), cat(0xc3bd2d77ab583a6b, 0xf6de2a9dfebaa43c) }, // 4350
+ { cat(0xb29c9a91361e5fbc, 0x9a2a58841564665c), cat(0x9c975792ef79c856, 0x5f182217fefbb696) }, // 4351
+ { cat(0x842dc41b89ca32c7, 0x5d108da0223a3d60), cat(0xfa8bbf517f29408a, 0x31c0368ccb2c5757) }, // 4352
+ { cat(0x0357d01607d4f56c, 0x4a73a4801b61cab3), cat(0xc86fcc41328766d4, 0xf499c53d6f56ac46) }, // 4353
+ { cat(0x69130cde6caa5df0, 0x3b8fb6cce2b4a229), cat(0xa0597034286c5243, 0xf6e16a978c45569e) }, // 4354
+ { cat(0x20dc0a4b8a21e4c0, 0x2fa62bd71bc3b4ee), cat(0x80478cf686bd0e9c, 0xc5812212d69ddee5) }, // 4355
+ { cat(0x01601078dd030799, 0xe5d6ac8b5f9f87e3), cat(0xcd3f47f0d794e42e, 0x08ce9ceaf0fc97d5) }, // 4356
+ { cat(0xcde67393e4026c7b, 0x1e4556d5e6193982), cat(0xa4329ff3dfaa5024, 0xd3d87d88c0ca1310) }, // 4357
+ { cat(0x3e51f60fe99b89fc, 0x183778ab1e7a9468), cat(0x835bb3297fbb7350, 0xa979fe0700a1a8da) }, // 4358
+ { cat(0xca1cbce642927660, 0x26bf277830c420a6), cat(0xd22c51dbff92521a, 0xa8c3300b3435daf6) }, // 4359
+ { cat(0xd4e3ca51cedb91e6, 0x8565b92cf3d01a1f), cat(0xa82374afffa841ae, 0xed68f33c29c4af2b) }, // 4360
+ { cat(0xaa4fd50e3f160e52, 0x045160f0c30ce1b2), cat(0x8682c3bfffb9ce25, 0x8aba5c30216a25bc) }, // 4361
+ { cat(0xaa1954e398234a1c, 0xd3b567e79e7b02b7), cat(0xd7379f99992949d5, 0xaac3c6b368a9d5fa) }, // 4362
+ { cat(0x881443e94682a1b0, 0xa95decb94b959bc5), cat(0xac2c7fae142107de, 0x2236388f86ee44c8) }, // 4363
+ { cat(0x39a9cfedd2021af3, 0xbab18a2dd611496b), cat(0x89bd32f1a9b4064b, 0x4e91c6d938be9d6d) }, // 4364
+ { cat(0x8f76197c83369185, 0xf78276afbce87578), cat(0xdc61eb1c42b9a3ab, 0xb0e93e285aca957b) }, // 4365
+ { cat(0x72c4e13068f8746b, 0x2c685ef2fd86c460), cat(0xb04e55b035614fbc, 0x8d8764ed156eddfc) }, // 4366
+ { cat(0x8f03e759ed939055, 0xbd204bf5979f0380), cat(0x8d0b77c02ab43fca, 0x0ad2b72411257e63) }, // 4367
+ { cat(0xb19fd88fe285b3bc, 0x61cd4655bf64d266), cat(0xe1abf2cd11206610, 0x1151250681d59705) }, // 4368
+ { cat(0xc14cad3fe86af630, 0x4e3dd1de32b70eb8), cat(0xb4898f0a7419eb40, 0x0dda840534aadf37) }, // 4369
+ { cat(0x010a2433205591c0, 0x3e97db182892722d), cat(0x906e0c085ce18900, 0x0b15366a9088b293) }, // 4370
+ { cat(0x01a9d3850088e933, 0x97595e8d0db71d14), cat(0xe71679a6fb0274cc, 0xde885710e7411db8) }, // 4371
+ { cat(0x67bb0f9d9a0720f6, 0x12ade53da4927daa), cat(0xb8dec7b8c8cec3d7, 0x186d1273ec3417c6) }, // 4372
+ { cat(0x52fc0c7e14d280c4, 0xdbbe50fe1d41fe22), cat(0x93e56c93d3d89cac, 0x138a752989c34638) }, // 4373
+ { cat(0xeb2ce0c9baea67a1, 0x5f96e7fcfb9cc9cf), cat(0xeca24752ec8dc779, 0xb8dd884276053d26) }, // 4374
+ { cat(0x55bd80a162551fb4, 0x4c78b9972fb0a173), cat(0xbd4e9f758a0b05fa, 0xfa4ad3685e6a9752) }, // 4375
+ { cat(0x77cacd4de844195d, 0x09fa2e128c8d4df5), cat(0x9772192ad4d59e62, 0x61d575ed185545db) }, // 4376
+ { cat(0x2611487ca6d35bc8, 0x0ff6b01dadaee322), cat(0xf250284487bc309d, 0x6955897b5a22095f) }, // 4377
+ { cat(0xeb4106ca1f0f7ca0, 0x0cc559b157bf1c1b), cat(0xc1d9b9d06c968d4a, 0xbaaad462ae81a118) }, // 4378
+ { cat(0xbc34056e7f3f96e6, 0x709de15aac98e349), cat(0x9b1494a6bd453dd5, 0x62224382253480e0) }, // 4379
+ { cat(0xc6b9a24a65328b0a, 0x4dc968911427d20e), cat(0xf820edd7953b9622, 0x369d38d03b87349a) }, // 4380
+ { cat(0xd22e1b6eb75ba26e, 0xa4a12074101fdb3f), cat(0xc680be4610fc781b, 0x5ee42d7362d2907b) }, // 4381
+ { cat(0x0e8b49255f7c81f2, 0x1d4db3900ce648ff), cat(0x9ecd6504da639349, 0x18b68ac2b5754063) }, // 4382
+ { cat(0x7daba83bcbfa6983, 0x6215ec19ae3d4198), cat(0xfe156e6e2a38eba8, 0x278a779def22009e) }, // 4383
+ { cat(0x6489536309952135, 0xe81189ae24fdce13), cat(0xcb44585821c722ec, 0xec6ec617f2819a18) }, // 4384
+ { cat(0x506ddc4f3addb42b, 0x200e07be83fe3e76), cat(0xa29d1379b49f4f23, 0xf0589e798ece14e0) }, // 4385
+ { cat(0x0d24b03f624af688, 0xe6719fcb9ccb652b), cat(0x821742c7c3b2a5b6, 0x59e07ec7a571aa4d) }, // 4386
+ { cat(0xaea119ff03ab240e, 0x3d829945c7abd512), cat(0xd02537a605eaa2bd, 0x5c9a6472a24f76e1) }, // 4387
+ { cat(0x8bb414cc02ef500b, 0x64687a9e3956440e), cat(0xa6842c84d1888231, 0x16e1e9f54ea5f8b4) }, // 4388
+ { cat(0xa2f677099bf2a66f, 0x8386c87e9445033f), cat(0x85368a03dad39b5a, 0x78b4bb2aa55193c3) }, // 4389
+ { cat(0x6b23f1a8f9843d7f, 0x38d7a730ed3b3864), cat(0xd52410062aec2bc3, 0xf4545eaaa21c1f9f) }, // 4390
+ { cat(0x88e98e20c79cfdff, 0x60ac85c0bdc8f9ea), cat(0xaa834004ef235636, 0x5d104bbbb4e34c7f) }, // 4391
+ { cat(0xa0bad81a394a64cc, 0x4d56d166fe3a6188), cat(0x88690003f282ab5e, 0xb0d9d62fc3e909ff) }, // 4392
+ { cat(0x345e26905baa3ae0, 0x7bbe1bd7fd2a35a6), cat(0xda41999fea6aabca, 0xb48fbd193974dccc) }, // 4393
+ { cat(0xc37e85404954fbe6, 0xc964e31330ee9152), cat(0xae9ae14cbb88896e, 0xf6d964142df71709) }, // 4394
+ { cat(0x693204336ddd9652, 0x3ab71c0f5a587441), cat(0x8baf1aa3c93a078b, 0xf8ade9a9be5f45a1) }, // 4395
+ { cat(0x41e9a05249628a1d, 0x2abe934bc3c0ba02), cat(0xdf7e91060ec33f46, 0x5aafdc42ca320902) }, // 4396
+ { cat(0x0187b37507820817, 0x556542a3030094ce), cat(0xb2cba7380bcf65d1, 0xe22649cf08280735) }, // 4397
+ { cat(0x346c8f90d2ce6cdf, 0x7784354f359a10a5), cat(0x8f0952933ca5eb0e, 0x4e8507d8d35338f7) }, // 4398
+ { cat(0xed7a7f4e1e171498, 0xbf39eee522901aa2), cat(0xe4dbb751faa311b0, 0x7da1a627b88527f1) }, // 4399
+ { cat(0xbdfb990b4b45aa13, 0xcc2e58b74ed9aee8), cat(0xb7162c41954f4159, 0xfe1aeb52fa041ff4) }, // 4400
+ { cat(0x319614090904880f, 0xd68b7a2c3f148bed), cat(0x92782367aaa5cde1, 0x9815890f2e69b32a) }, // 4401
+ { cat(0xe8f0200e74d40ce6, 0x24125d139820dfe1), cat(0xea59d23f776fafcf, 0x59bc0e7eb0a91ea9) }, // 4402
+ { cat(0xed8ce671f7100a51, 0xb6751742e01a4cb4), cat(0xbb7b0e992c595972, 0xae300b988d541887) }, // 4403
+ { cat(0x57a3eb8e5f400841, 0x5ec4129be67b7090), cat(0x95fc0badbd14478e, 0xf1c00946d7767a06) }, // 4404
+ { cat(0x8c3978e3cb99a6ce, 0xfe06842ca3f8b419), cat(0xeff9ac492e86d8e4, 0xb6000ed7bf23f670) }, // 4405
+ { cat(0x09c793e96fae1f0b, 0xfe6b9cf0832d5ce1), cat(0xbffaf03a8b9f13ea, 0x2b333f12ff4ff85a) }, // 4406
+ { cat(0xa16c7654595818d6, 0x6522e3f39c244a4e), cat(0x99958cfba2e5a988, 0x228f65a8cc3ff9e1) }, // 4407
+ { cat(0x9be0bd53c2268e23, 0xd5049fec2d06dd49), cat(0xf5bc14c5d16f75a6, 0x9db23c4146ccc302) }, // 4408
+ { cat(0xafe6fddc9b520b4f, 0xdd9d4cbcf0d24aa1), cat(0xc4967704a78c5e1e, 0xe48e969a9f0a359b) }, // 4409
+ { cat(0x598597e3af74d5d9, 0x7e177097270ea21b), cat(0x9d452c03b93d1818, 0xb6d8787bb26e9149) }, // 4410
+ { cat(0xf5a28c9f7f215628, 0xc9bf1a8b71b1035d), cat(0xfba1e005f52e8cf4, 0x57c0c0c5ea4a820e) }, // 4411
+ { cat(0x914ed6e5ff4dde87, 0x07cc153c5af402b1), cat(0xc94e4cd190f20a5d, 0x13009a37eea201a5) }, // 4412
+ { cat(0x0dd8abeb32a4b205, 0x9fd677637bf6688e), cat(0xa10b70a7a728084a, 0x759a14f98bb4ce1e) }, // 4413
+ { cat(0x0b13bcbc2883c19e, 0x19785f82c991ed3e), cat(0x80d5f3b952866d08, 0x5e14dd946fc3d818) }, // 4414
+ { cat(0xab52c79374060296, 0x8f26ff37a8e97b97), cat(0xce231f8eea70ae73, 0xc9bafc20b2d2f359) }, // 4415
+ { cat(0x890f060f9004cede, 0xd8ebff5fba5462df), cat(0xa4e8e60beec08b8f, 0xd49596808f0f2914) }, // 4416
+ { cat(0x073f380c73370be5, 0x7a5665e62ea9e8b3), cat(0x83ed84d6589a093f, 0xdd447866d8d8edaa) }, // 4417
+ { cat(0xd865267a51f1aca2, 0x5d5709704aa97451), cat(0xd315a156f429a866, 0x2ed3f3d7c15b15dc) }, // 4418
+ { cat(0xe050eb950e5af081, 0xe445a126a22129da), cat(0xa8de1aabf687b9eb, 0x58a98fdfcde277e3) }, // 4419
+ { cat(0x19da5610d848c067, 0xe9d14db881b4217b), cat(0x871815565ed2fb22, 0xad5473197181f983) }, // 4420
+ { cat(0x8fc3bce7c074670c, 0xa94ee2c0cf869bf8), cat(0xd826888a315191d1, 0x1553eb5be8cff59e) }, // 4421
+ { cat(0xa63630b966c385a3, 0xbaa58233d9387cc7), cat(0xaceba06e8ddadb0d, 0xaaa9891653d9914b) }, // 4422
+ { cat(0x51c4f3c7856937b6, 0x2eeace8fe0f9fd6c), cat(0x8a5619f20b157c0a, 0xeeee07450fe14109) }, // 4423
+ { cat(0x4fa1860c08a85923, 0x7e447db3018ffbe0), cat(0xdd568fe9ab559344, 0xb17cd86e7fcece75) }, // 4424
+ { cat(0xd94e04d66d537a82, 0xcb69fe28ce0cc980), cat(0xb1120cbaef77a903, 0xc130ad25330bd85d) }, // 4425
+ { cat(0xadd803debddc6202, 0x3c54cb53d80a3acd), cat(0x8da80a2f25f95403, 0x00f3bdb75c0979e4) }, // 4426
+ { cat(0x7c8cd2fdfc93d003, 0x93badeec8cdd2ae1), cat(0xe2a676b1d65bb99e, 0x67ec62bef9a8c307) }, // 4427
+ { cat(0x3070a8cb30764002, 0xdc957f23a3e4224e), cat(0xb551f88e45162e18, 0x532382326153cf39) }, // 4428
+ { cat(0x26c08708f391cccf, 0x16ddff4fb6501b71), cat(0x910e6071d0de8b46, 0xa8e934f51aa97294) }, // 4429
+ { cat(0x71340b4185b6147e, 0x8afccbb2bd4cf8b5), cat(0xe81700b61afdaba4, 0x417521882aa8b753) }, // 4430
+ { cat(0xc0f66f679e2b4398, 0x6f30a2f5643d93c4), cat(0xb9ac0091af31561d, 0x012a8139bbba2c42) }, // 4431
+ { cat(0x00c525ec7e8902e0, 0x58f3b5911cfe0fd0), cat(0x94899a0e25c111b0, 0xcdbb9a94962e89cf) }, // 4432
+ { cat(0x013b6fe0ca74d166, 0xf4b92281c7fce61a), cat(0xeda8f67d0934e91a, 0xe2c5c420f04a7618) }, // 4433
+ { cat(0x6762bfe7085d7452, 0x5d60e867d330b815), cat(0xbe20c530d42a5415, 0x8237d01a59d52b46) }, // 4434
+ { cat(0x52b566526d179041, 0xe44d86b975c09344), cat(0x981a375a43551011, 0x34f9734847ddbc38) }, // 4435
+ { cat(0xb788a3b714f28069, 0x6d48d78f22cdb86c), cat(0xf35d255d388819b5, 0x218f1eda0c95f9f3) }, // 4436
+ { cat(0x5fa082f8dd8ecd21, 0x243a460c1bd7c6bd), cat(0xc2b0eab0fa067af7, 0x4e0c18ae7077fb29) }, // 4437
+ { cat(0x194d3593e4723db4, 0x1cfb6b3ce3130564), cat(0x9bc0bbc0c8052f2c, 0x3e7013bec05ffc21) }, // 4438
+ { cat(0x5baebc1fd3e9fc53, 0x6192452e381e6f06), cat(0xf9345f9ad9a1e513, 0x9719b93133ccc69b) }, // 4439
+ { cat(0x7c8bc9b30fee6375, 0xe7a837582ce5259f), cat(0xc75d1948ae1b1da9, 0x45ae2dc0f63d6baf) }, // 4440
+ { cat(0xfd3ca15c0cbeb5f7, 0xec8692acf0b7514c), cat(0x9f7dadd3be7c17ba, 0x9e24f1672b645625) }, // 4441
+ { cat(0x952dcef9adfdeff3, 0x140a8447e78bb546), cat(0xff2f7c85fd93592a, 0x96a1823eabd3bd09) }, // 4442
+ { cat(0xddbe3f2e24cb265c, 0x100869d31fa2f76b), cat(0xcc25fd37fe0f7a88, 0x788134feefdc973a) }, // 4443
+ { cat(0xe498328b50a28516, 0x7339ee427fb592bc), cat(0xa351975ffe72c86d, 0x2d342a658cb078fb) }, // 4444
+ { cat(0xea135ba2a6e86a78, 0x5c2e583532f7a897), cat(0x82a7ac4ccb8f06bd, 0xbdc3551e0a26c72f) }, // 4445
+ { cat(0xdcebc5d10b0d7726, 0xf9e3c0551e590dbe), cat(0xd10c46e145b1a462, 0xc9388830103e0b7f) }, // 4446
+ { cat(0x7d896b0da2712c1f, 0x2e4fcd10e5140afe), cat(0xa73d0581048e1d1b, 0xd42d39c00cfe6f99) }, // 4447
+ { cat(0x646def3e1b8dbce5, 0xbea63da71da9a265), cat(0x85ca6acd9d3e7daf, 0xdcf0fb000a652614) }, // 4448
+ { cat(0xa0afe5302c15fb09, 0x3109fc3e95dc3708), cat(0xd610aae29530c919, 0x61819199aa3b7020) }, // 4449
+ { cat(0x4d59842689ab2f3a, 0x8da1969877e35f3a), cat(0xab4088b544270747, 0x8134747aee95f34d) }, // 4450
+ { cat(0xa4479ceba155bf62, 0x0ae7abad2cb5e5c8), cat(0x89006d5dd01f3906, 0x00f6c3958bab290a) }, // 4451
+ { cat(0x3a0c2e45ceef989c, 0xde3f791514563c73), cat(0xdb33e22fb3652809, 0x9b246c227911db44) }, // 4452
+ { cat(0x2e702504a58c7a17, 0x1832c7441044fd29), cat(0xaf5cb4f2f5ea866e, 0x15b6bce860db15d0) }, // 4453
+ { cat(0x5859b736ead6c812, 0x79c23903403730ed), cat(0x8c4a2a5bf7eed1f1, 0xaaf897204d7c1173) }, // 4454
+ { cat(0x26f5f1f177be0cea, 0x5c69f4d200584e48), cat(0xe076aa2cbfe4831c, 0x44c0f1cd48c68252) }, // 4455
+ { cat(0xb8c4c18df964d721, 0xe387f70e66ad0b6d), cat(0xb39221bd665068e3, 0x6a33f4a43a386841) }, // 4456
+ { cat(0xfa37013e611d78e7, 0xe9399271ebbda2be), cat(0x8fa81afdeb73871c, 0x54f65d502e93869a) }, // 4457
+ { cat(0xc38b35309b625b0c, 0xa85c1d8312c90463), cat(0xe5d9c4c978b8d82d, 0x54bd6219e41f3dc4) }, // 4458
+ { cat(0x9c6f5dc07c4eaf3d, 0x537ce468dbd40382), cat(0xb7e16a3ac6fa468a, 0xaa311b47e9b297d0) }, // 4459
+ { cat(0x7d25e499fd0bbf64, 0x42ca5053e31002cf), cat(0x931abb6238c8386e, 0xee8daf6cbaf54640) }, // 4460
+ { cat(0xfb6fd42994df98a0, 0x6add4d5304e66ae4), cat(0xeb5df89d27a6c0b1, 0x7daf7f145e553d33) }, // 4461
+ { cat(0xc9264354771946e6, 0xbbe43ddc03eb88b6), cat(0xbc4b2d4a861f008d, 0xfe25ff437eaa975c) }, // 4462
+ { cat(0xa0eb69105f476beb, 0xc98364b00322d3c5), cat(0x96a28aa204e59a0b, 0x31b7ff69322212b0) }, // 4463
+ { cat(0x0178a81a320bdfdf, 0xa8d23ab33837b93b), cat(0xf10411033b08f678, 0x4f8ccbdb8369b781) }, // 4464
+ { cat(0x9ac6ece1c1a3197f, 0xba41c88f602c942f), cat(0xc0d00d9c2f3a5ec6, 0xa60a3caf9c5492cd) }, // 4465
+ { cat(0xe238bd8167b5adff, 0xc834a072b356dcf3), cat(0x9a400ae358fb7f05, 0x51a1ca2616aa0f0a) }, // 4466
+ { cat(0x69f46268a5ef7ccc, 0x7387671debbe2e51), cat(0xf6ccde388e5f31a2, 0x1c36103cf1101811) }, // 4467
+ { cat(0xee5d1b86eb25fd70, 0x5c6c527e5631bea7), cat(0xc570b1c6d84c27b4, 0xe35e7363f40ce00d) }, // 4468
+ { cat(0x25174938bc1e6459, 0xe389db9844f49886), cat(0x9df3c16be03cec90, 0xb5e5291cc33d800b) }, // 4469
+ { cat(0x082541f46030a08f, 0xd2762c26d4ba8da3), cat(0xfcb9357966c7e0e7, 0x896ea82e052f3345) }, // 4470
+ { cat(0x068434c38026e6d9, 0x752b568576fba482), cat(0xca2dc4611f064d86, 0x078bb9be6a8c2904) }, // 4471
+ { cat(0x0536909c6685857a, 0xc422ab9df8c95068), cat(0xa1be36b418d1d79e, 0x6c6fc7cb887020d0) }, // 4472
+ { cat(0x042ba6e385379dfb, 0xd01bbc7e60a10d20), cat(0x8164f89013db12e5, 0x238c9fd606c01a40) }, // 4473
+ { cat(0x39df716c0858fcc6, 0x19c5fa63cdce7b67), cat(0xcf07f419b95e84a1, 0xd27a995671335d33) }, // 4474
+ { cat(0x617f8df006ad9704, 0xe16b2eb63e3ec91f), cat(0xa59ff67afab203b4, 0xa8621445275c4a8f) }, // 4475
+ { cat(0x1acc718cd22478d0, 0xb455bef831cbd419), cat(0x847ff862622802f6, 0xed1b436a85e36ed9) }, // 4476
+ { cat(0x2ae0b5ae1d0727b4, 0x53bc64c04fac868e), cat(0xd3fff3d09d0cd18b, 0x14f86bdda3057e28) }, // 4477
+ { cat(0x558091581738ec90, 0x42fd1d66a6239ed8), cat(0xa9998fda173d746f, 0x43f9efe4826acb53) }, // 4478
+ { cat(0x779a0de01293f073, 0x68ca7debb81c7f13), cat(0x87ae0cae78fdf6bf, 0x6994bfea01ef090f) }, // 4479
+ { cat(0xf290163350ecb3eb, 0xdadd9645f360cb52), cat(0xd9167ab0c1965798, 0xa8edffdccfe4db4b) }, // 4480
+ { cat(0x287344f5da56f656, 0x48b14504c2b3d5db), cat(0xadab955a34784613, 0xba57ffe3d983e2a3) }, // 4481
+ { cat(0xed2903f7e1df2b78, 0x3a276a6a355cab16), cat(0x8aefaaae9060380f, 0xc846664fe1364ee8) }, // 4482
+ { cat(0xaea8065969651259, 0xf6a57710556111bc), cat(0xde4c444a8099f34c, 0x73a3d6e63523b174) }, // 4483
+ { cat(0xf22005145450db7b, 0x2bb792737780dafd), cat(0xb1d69d0866e18f70, 0x5c831251c41c8df6) }, // 4484
+ { cat(0x8e8004104373e2c8, 0xefc60ec2c600af31), cat(0x8e454a6d1f1ad926, 0xb068db749ce3a4c5) }, // 4485
+ { cat(0xe40006806bec9e0e, 0x4c70179e099ab1e8), cat(0xe3a210ae982af50a, 0xb3daf8ba949f6e08) }, // 4486
+ { cat(0xe9999ecd2323b1a5, 0x09f3461807aef4ba), cat(0xb61b408bacef2a6e, 0xf648c6fbaa1924d3) }, // 4487
+ { cat(0xee147f0a8282f484, 0x07f5d1acd2f25d61), cat(0x91af66d623f28858, 0xc507059621adb70f) }, // 4488
+ { cat(0x7ced9810d0d18739, 0xa6561c47b7ea2f02), cat(0xe918a489d31da6f4, 0x6e71a289cf7c5819) }, // 4489
+ { cat(0x972479a70d746c2e, 0x1eab49d2f988259b), cat(0xba7a1d3b0f4aebf6, 0xbec14ed4a5fd1347) }, // 4490
+ { cat(0x12839485a45d2358, 0x188907dbfad35149), cat(0x952e7dc8d908bcc5, 0x65677243b7fda906) }, // 4491
+ { cat(0xb738eda2a0950559, 0xc0db3fc65e1ee875), cat(0xeeb0c9415b412e08, 0xa23f1d392662a809) }, // 4492
+ { cat(0xc5c724821a10d114, 0x9a48ffd1e4e586c4), cat(0xbef3d4344900f1a0, 0x81cc1760eb822007) }, // 4493
+ { cat(0x37d2839b480d7410, 0x7b6d9974b71e056a), cat(0x98c31029d400c14d, 0x34a345e722ce8006) }, // 4494
+ { cat(0x5950d2920ce2534d, 0x9248f5878b633bdc), cat(0xf46b4d0fb99acee1, 0xedd20971d14a6670) }, // 4495
+ { cat(0x7aa70edb3d81dc3e, 0x0ea0c46c6f82964a), cat(0xc3890a72fae23f1b, 0x24a8078e410851f3) }, // 4496
+ { cat(0xfbb8d8af6467e364, 0xd8809d238c68783b), cat(0x9c6da1f59581cc15, 0xb6ecd2d83406a7f5) }, // 4497
+ { cat(0x5f8e277f070c9f07, 0xc0cdc838e0a726c4), cat(0xfa49032288cfacef, 0x8b14848d200aa656) }, // 4498
+ { cat(0x4c71b9326c0a18d3, 0x00a4a02d8085b89d), cat(0xc83a68e86d72f0bf, 0xa276d070e66eeb78) }, // 4499
+ { cat(0xa38e2dc1f00813dc, 0x0083b3579a0493b1), cat(0xa02eba538ac25a32, 0xe85f0d271ebf22c6) }, // 4500
+ { cat(0xb60b57ce59a00fe3, 0x339c8f794803a95b), cat(0x802561dc6f01e1c2, 0x537f3db8e565b56b) }, // 4501
+ { cat(0xbcdef2e3c299b305, 0x1f60e58ed99f755d), cat(0xcd089c93e4cfcf9d, 0x52652f8e3bd5ef12) }, // 4502
+ { cat(0x63e58f1c9bae28d0, 0xe5e71e0be14c5de4), cat(0xa406e3a983d972e4, 0x41ea8c71c977f275) }, // 4503
+ { cat(0xe984727d495820a7, 0x1e527e6fe7704b1d), cat(0x8338b62136478f1d, 0x0188705b0793285d) }, // 4504
+ { cat(0x0f3a50c87559cdd8, 0x3083fd7fd8b3ab62), cat(0xd1f4569b8a0c182e, 0x68da4d5e72850d63) }, // 4505
+ { cat(0xd8fb73d39114a4ac, 0xf39ccaccad5c891b), cat(0xa7f6abafa1a3468b, 0x87150ab1f5373de8) }, // 4506
+ { cat(0x13fc5ca940dd508a, 0x5c7d6f0a244a0749), cat(0x865eefbfb4829ed6, 0x05aa6ef4c42c3187) }, // 4507
+ { cat(0xecc6faa867c880dd, 0x60c8b1a9d3a9a541), cat(0xd6fe4c65ed9dcaf0, 0x0910b187a046b5a4) }, // 4508
+ { cat(0x23d262205306cd7d, 0xe706f487dc87b767), cat(0xabfea384be17d58c, 0xd40d5ad2e69ef7b7) }, // 4509
+ { cat(0x4fdb81b3759f0acb, 0x1f38c39fe39fc5ec), cat(0x899882d09813113d, 0x76711575854bf95f) }, // 4510
+ { cat(0xb2f8cf8588fe77ab, 0x65279f6638ffa314), cat(0xdc2737b42684e862, 0x571b5588d5465bcb) }, // 4511
+ { cat(0x5bfa3f9e0731f955, 0xea86191e93ffb5a9), cat(0xb01f5fc35203ed1b, 0x78e2aad3ddd1e309) }, // 4512
+ { cat(0x7cc832e4d28e6111, 0x886b474ba9995e21), cat(0x8ce5e635db365749, 0x2d82224317db1c07) }, // 4513
+ { cat(0x947384a150e3ce82, 0x73ded8790f5bc9ce), cat(0xe16fd6bc91f08ba8, 0x48d036d1bfc4f9a5) }, // 4514
+ { cat(0xa9f603b440b63ece, 0xc318ad2da5e307d8), cat(0xb4597896db26d620, 0x3a402bdaffd0c7b7) }, // 4515
+ { cat(0x87f802f69a2b6572, 0x35ad5757b7e8d314), cat(0x904793abe2857819, 0xc8335648cca7062c) }, // 4516
+ { cat(0x0cc004bdc378a250, 0x55e22559264151b9), cat(0xe6d8ec46373bf35c, 0x738556dae10b3d14) }, // 4517
+ { cat(0x0a3336fe35fa1b73, 0x77e81de0eb677494), cat(0xb8ad89d1c5c98f7d, 0x293778af1a6f6410) }, // 4518
+ { cat(0x6e8f5f31c4c815f5, 0xf9867e4d891f9076), cat(0x93be07db04a13f97, 0x542c608c1525e9a6) }, // 4519
+ { cat(0x7db231e93ad9bcbc, 0xc270ca15a83280bd), cat(0xec633fc4d435328b, 0xb9e09a79bb6fdc3d) }, // 4520
+ { cat(0x315b5b20fbe163ca, 0x35270811535b9a31), cat(0xbd1c3303dcf75ba2, 0xfb1a152e2f8cb031) }, // 4521
+ { cat(0xc115e280c9811ca1, 0xc41f39a775e2e1c1), cat(0x9749c2697d92afb5, 0x95ae7758260a268d) }, // 4522
+ { cat(0x6823040142682dcf, 0xa031f5d8bc9e3601), cat(0xf20f9d7595b77f88, 0xef7d8bc03cdd0a7c) }, // 4523
+ { cat(0x201c0334352024a6, 0x19c1917a307e919b), cat(0xc1a617914492cc6d, 0x8c646fccfd7da1fd) }, // 4524
+ { cat(0xe67ccf5cf74cea1e, 0x7b01412e8d320e15), cat(0x9aeb460dd0757057, 0xa3838ca3fdfe1b30) }, // 4525
+ { cat(0x70c7b22e587b1030, 0xc4ceceb0e1e9b022), cat(0xf7ded67c80bbe6f2, 0x9f38e10663302b81) }, // 4526
+ { cat(0x8d6c8e8b79fc0cf3, 0xd0a572271b2159b5), cat(0xc64bdeca0096525b, 0xb293e7384f59bc67) }, // 4527
+ { cat(0x3df072092e633d8f, 0xda1df4ec15b447c4), cat(0x9ea318a19a11db7c, 0x8edcb8f9d91496b9) }, // 4528
+ { cat(0x964d8341e3d1fc19, 0x5cfcbb1355ed3fa0), cat(0xfdd1c102901c9260, 0xe4945b295b54245b) }, // 4529
+ { cat(0x450acf67e974c9ad, 0xe3fd6275de576619), cat(0xcb0e34020ce3a84d, 0x83a9e2877c435049) }, // 4530
+ { cat(0x373bd91fedf707be, 0x4ffde85e4b791e7b), cat(0xa271c334d71c86a4, 0x6954b5393035d9d4) }, // 4531
+ { cat(0x2c2fe0e657f8d2fe, 0xa664b9e5092db1fc), cat(0x81f49c2a45b06bb6, 0xbaaa2a9426917b10) }, // 4532
+ { cat(0x137fce3d598e1e64, 0x3d6df63b41e2b660), cat(0xcfedc6aa091a45f1, 0x2aa9ddb9d74f2b4d) }, // 4533
+ { cat(0x75ffd8311471b1e9, 0xcabe5e95ce4ef84d), cat(0xa657d221a0e1d18d, 0xbbbb17c7df72890a) }, // 4534
+ { cat(0x2b33135a76c15b21, 0x6efeb21171d8c6a4), cat(0x85130e814d817471, 0x62fc13064c5ba0d5) }, // 4535
+ { cat(0x451e855d8acef835, 0x7e64501be95ad76c), cat(0xd4eb4a687c0253e8, 0x9e601e707a2c3488) }, // 4536
+ { cat(0x04186ab13bd8c691, 0x31e9d9afede245f0), cat(0xaa55d52063350fed, 0x4b801859fb56906d) }, // 4537
+ { cat(0x0346bbc0fcad6ba7, 0x5b217af324b504c0), cat(0x8844aa804f5da657, 0x6f99ad14c9120d24) }, // 4538
+ { cat(0x38712c67faaf12a5, 0x5e9bf7eb6dee6e00), cat(0xda077733b22f708b, 0xe5c2ae87a81ce1d3) }, // 4539
+ { cat(0x2d2756b99558dbb7, 0x7ee32cbc57f1f19a), cat(0xae6c5f5c8e8c5a09, 0x849bbed2ece3e7dc) }, // 4540
+ { cat(0xf0ec45614447162c, 0x65828a30465b27ae), cat(0x8b89e5e3a53d14d4, 0x6a163242571cb97c) }, // 4541
+ { cat(0x4e46d5686d3e89e0, 0xa26a76b3a3c50c4a), cat(0xdf43096c3b94ee20, 0xa9bd1d36f1c78f2e) }, // 4542
+ { cat(0x71d244538a986e4d, 0x4ebb92294fd0d6a2), cat(0xb29c0789c943f1b3, 0xbafdb0f8c16c728b) }, // 4543
+ { cat(0xc17503760879f1d7, 0x722fa8210ca7121b), cat(0x8ee3393b07698e29, 0x62648d93cdf05ba2) }, // 4544
+ { cat(0x9bee6bf00d8fe958, 0xb6b2a69b4771b691), cat(0xe49ec1f80bdc16a8, 0x9d6daf52e31a2c37) }, // 4545
+ { cat(0xe3252326713fede0, 0x9228854905f4920e), cat(0xb6e567f9a3167886, 0xe457bf75827b5692) }, // 4546
+ { cat(0xb5b74f51f43324b3, 0xa8206aa0d19074d8), cat(0x92511ffae8dec6d2, 0x504632c46862aba8) }, // 4547
+ { cat(0x55f218832051d452, 0xa69a44348280baf3), cat(0xea1b665e41647150, 0x8070513a409ddf74) }, // 4548
+ { cat(0x77f4e068e6a7dd0e, 0xebae9cf6cecd625c), cat(0xbb491eb1cde9f440, 0x66c040fb66e4b2c3) }, // 4549
+ { cat(0x5ff719ed8553173f, 0x22f2172bd8a44eb0), cat(0x95d4188e3e54c366, 0xb899cd95ebea289c) }, // 4550
+ { cat(0x3324f648d551becb, 0x6b1cf1dfc106e44d), cat(0xefb9c0e396ee0571, 0x275c7c23131040fa) }, // 4551
+ { cat(0x8f50c507110e323c, 0x55b0c17fcd9f1d0a), cat(0xbfc7cd82df24d127, 0x52b0634f4273672e) }, // 4552
+ { cat(0xd90d6a6c0da4f4fd, 0x115a34663e18e408), cat(0x996ca468b283da85, 0xdbc04f729b8f85be) }, // 4553
+ { cat(0xc1af10ace2a187fb, 0x4ef6ba3d3027d340), cat(0xf57aa0a784062a6f, 0xc6007f1dc5b26f97) }, // 4554
+ { cat(0x67bf408a4ee79ffc, 0x3f2bc830f3530f67), cat(0xc4621a1f9cd1bb8c, 0x9e66cc17d15b8c79) }, // 4555
+ { cat(0x1fcc33a1d8b94cc9, 0xcc23068d8f75a5ec), cat(0x9d1b48194a4162d6, 0xe51f09aca77c7061) }, // 4556
+ { cat(0xffad1f695ac21476, 0x136b3daf4bef6fe0), cat(0xfb5ed9c210689e24, 0xa1cb42add8c71a34) }, // 4557
+ { cat(0x99574c54489b4391, 0xa92297bf6ff2bfe6), cat(0xc918ae34d9ed4b50, 0x816f688b13d27b5d) }, // 4558
+ { cat(0xe112a376a07c360e, 0x20e87965f3289985), cat(0xa0e08b5d7b243c40, 0x678c53a27641fc4a) }, // 4559
+ { cat(0x80dbb5f880635e71, 0xb3ed2deb28ed479e), cat(0x80b3a2b12f503033, 0x8609dc81f834c9d5) }, // 4560
+ { cat(0x9af9232733d230b5, 0xecaeafdea7e20c2f), cat(0xcdec3781e54d19ec, 0x09a960cff387a955) }, // 4561
+ { cat(0x7bfa8285c30e8d5e, 0x56f2264bb981a359), cat(0xa4bcf934b770e189, 0xa1544d7329395444) }, // 4562
+ { cat(0xfcc8686b02720ab1, 0xdf281ea2face1c47), cat(0x83ca60f6f9271ad4, 0x81103df5ba944369) }, // 4563
+ { cat(0x6140a7119d83444f, 0xcb736437f7b02d3f), cat(0xd2dd67f18ea4f7ba, 0x6819fcbc5dba0576) }, // 4564
+ { cat(0x4dcd52747e029d0c, 0xa2c2b6932c8cf0ff), cat(0xa8b11ff4721d92fb, 0x867b3096b1619df8) }, // 4565
+ { cat(0x71710ec39802173d, 0x4f022ba8f070c0cc), cat(0x86f419905b4adbfc, 0x6b95c0788de7b193) }, // 4566
+ { cat(0xe8b4e46c2669bec8, 0x7e69df74b3e79ae0), cat(0xd7ecf5b3c544932d, 0x78ef9a5a7ca5e8eb) }, // 4567
+ { cat(0x86f71d2351ee3239, 0xfebb192a29861580), cat(0xacbd915c9dd075bd, 0xfa59484863b7ed89) }, // 4568
+ { cat(0xd25f4a82a7f1c1c7, 0xfefc1421bad1aacd), cat(0x8a314116e4a6c497, 0xfb7aa039e95ff13a) }, // 4569
+ { cat(0x83cbaa6aa64f9c73, 0x319353692ae91148), cat(0xdd1b9b57d43e0759, 0x925dcd2975664ec4) }, // 4570
+ { cat(0xcfd621eeeb72e38f, 0x5adc42ba88ba7439), cat(0xb0e2e2aca9cb3914, 0x7517d7545deb7236) }, // 4571
+ { cat(0xd9781b258928b60c, 0x48b0356206fb902e), cat(0x8d824ef087d5c743, 0x90dfdf76b189282b) }, // 4572
+ { cat(0x28c02b6f41dabce0, 0x744d223671928049), cat(0xe26a17e73fbc7205, 0xb499658ab5a84046) }, // 4573
+ { cat(0xed668925ce489719, 0xf6a41b5ec142003b), cat(0xb521acb8ffc9f4d1, 0x5d47846ef7b9cd04) }, // 4574
+ { cat(0x8ab86db7d83a127b, 0x2bb67c4bcdce6695), cat(0x90e7bd60cca190a7, 0x7dd2d058c62e3d9d) }, // 4575
+ { cat(0x445a492626c350c5, 0x12bd93ac7c7d70ef), cat(0xe7d92f014768e772, 0x62eae6f47049fc2f) }, // 4576
+ { cat(0x037b6db81f02a704, 0x0efe0fbd30645a59), cat(0xb97a8c0105ed85f5, 0x1bef1f29f36e6359) }, // 4577
+ { cat(0x9c62be2ce59bb8d0, 0x0bfe72fdc0504847), cat(0x9462099a6b246b2a, 0x7cbf4c218f8b82ad) }, // 4578
+ { cat(0xfa3796ae3c2c5ae6, 0x79971e62cd4d4072), cat(0xed69a8f711d3deaa, 0x61321368e5ac0448) }, // 4579
+ { cat(0xfb5fabbe9689e251, 0xfadf4b823dd766c1), cat(0xbdee20c5a7dcb221, 0xe75b42ba515669d3) }, // 4580
+ { cat(0x95e622feded4b50e, 0x624c3c6831791f01), cat(0x97f1b3d15316f4e7, 0xec49022ea77854a9) }, // 4581
+ { cat(0x2309d197caedee7d, 0x6a1393d9e8c1cb35), cat(0xf31c52e884f187d9, 0x7a0e69e43f26eddc) }, // 4582
+ { cat(0xb5a174796f24beca, 0xbb42dcae53ce3c2a), cat(0xc27d0f206a5ad314, 0x61a5218365b8be49) }, // 4583
+ { cat(0x2ae7906125b6ff08, 0x95cf16f1dca4fcef), cat(0x9b973f4d21e24276, 0xb4841acf8493cb6e) }, // 4584
+ { cat(0xde3f4d683c57fe74, 0x22e4f182faa194b1), cat(0xf8f1fee1cfd06a57, 0x8739c47f3a861249) }, // 4585
+ { cat(0xe4ff712030466529, 0xb583f468c88143c1), cat(0xc727ff1b0ca6bb79, 0x38fb0398fb9e7507) }, // 4586
+ { cat(0x83ff8db359d1ea87, 0xc4699053d39a9c9a), cat(0x9f53327c0a1efc60, 0xfa6269472fb1f739) }, // 4587
+ { cat(0x6ccc15ebc2e9773f, 0xa0a8e6ec85c42dc3), cat(0xfeeb83f9a9cb2d67, 0xf703dba5191cbec2) }, // 4588
+ { cat(0x5709ab2302545f66, 0x1a20b8bd37d0249c), cat(0xcbef9cc7bb08f11f, 0xf8cfe2ea7a7d6568) }, // 4589
+ { cat(0x126e228268437f84, 0xe1b3c6fdc6401d4a), cat(0xa32617062f3a5a7f, 0xfa3fe8bb95311ded) }, // 4590
+ { cat(0x7524e868536932d0, 0xb48fd2649e99b108), cat(0x8284df3825c84866, 0x61ccba2faa8db18a) }, // 4591
+ { cat(0xeea173da1f0eb7b4, 0x541950a0fdc2b4da), cat(0xd0d49859d60d40a3, 0xcfadf6b2aa7c4f43) }, // 4592
+ { cat(0xf21ac314e5a55fc3, 0x767aa6e7316890ae), cat(0xa71079e1780a9a1c, 0xa624c55bbb96a5cf) }, // 4593
+ { cat(0xc1af02771e1de635, 0xf8621f1f5aba0d58), cat(0x85a6c7e7933bae7d, 0x51b7044962deeb0c) }, // 4594
+ { cat(0x691803f1c9c97056, 0x5a3698322ac3488d), cat(0xd5d7a63f51f9172e, 0xe924d3a89e317814) }, // 4595
+ { cat(0x20e00327d4a126ab, 0x7b5ee0282235d3a4), cat(0xab12eb65db2dac25, 0x8750a953b1c12cdd) }, // 4596
+ { cat(0x1a4ccf531080ebbc, 0x62b24cece82b0fb6), cat(0x88dbef84af57bcea, 0xd2a6eddc8e3423e4) }, // 4597
+ { cat(0x2a147eeb4d9b12c7, 0x04507b14a6ab4c57), cat(0xdaf97f3ab225fb11, 0x510b162db0536ca0) }, // 4598
+ { cat(0xee76cbef7148dbd2, 0x69d9fc108555d6ac), cat(0xaf2dff62281e6274, 0x40d5ab57c042bd4c) }, // 4599
+ { cat(0xbec56ff2c1071641, 0xee47fcda0444abbd), cat(0x8c24cc4e867eb529, 0xcd77bc4633689770) }, // 4600
+ { cat(0x313be65134d8239c, 0xb0732e29a06ddf94), cat(0xe03ae07da3fdeea9, 0x48bf93a385742581) }, // 4601
+ { cat(0xc0fcb840f7134fb0, 0x8d28f1bae6be4c77), cat(0xb3624d314ffe5887, 0x6d660fb6045ceacd) }, // 4602
+ { cat(0x33fd6033f8dc3fc0, 0x70ed8e2f1efea392), cat(0x8f81d75aa665139f, 0x8ab80c919d17223e) }, // 4603
+ { cat(0x866233865af9ff9a, 0x4e48e37e97fdd283), cat(0xe59c8bc43d6e85cc, 0x11267a8294f1d063) }, // 4604
+ { cat(0x384e8f9eaf2e6615, 0x0b6d82cbaccb0ed0), cat(0xb7b06fd0312537d6, 0x741ec8687727d9e9) }, // 4605
+ { cat(0xf9d872e558f1eb44, 0x092468a2f0a27240), cat(0x92f38ca68db75fde, 0xc34bd386c5b97b20) }, // 4606
+ { cat(0x5c8d84a227e9786c, 0xdb6d7437e76a5066), cat(0xeb1f4770e2beffca, 0xd212ec0ad5f591ce) }, // 4607
+ { cat(0x4a0ad081b987938a, 0x49245cf985eea6b8), cat(0xbc1905f3e898cca2, 0x41a8bcd577f7a7d8) }, // 4608
+ { cat(0x6e6f0d34946c7608, 0x3a837d946b25522d), cat(0x967a6b2986e0a3b5, 0x0153ca445ff95313) }, // 4609
+ { cat(0xe3e4e1edba472340, 0x5d9f2f53dea21d14), cat(0xf0c3dea8d7cdd2bb, 0x3552dd3a332884eb) }, // 4610
+ { cat(0xe983e7f161d28299, 0xe47f590fe54e7daa), cat(0xc09cb220aca4a895, 0xc4424a94f5ba03ef) }, // 4611
+ { cat(0x2136532781753547, 0xe9ff7a731dd86488), cat(0x9a16f4e6f083ba11, 0x69cea210c494cff3) }, // 4612
+ { cat(0x6856eb7268bb8873, 0x0fff2a51c95a3a73), cat(0xf68b217180d2c34f, 0x0fb1034e07547feb) }, // 4613
+ { cat(0x86abef8eba2fa05c, 0x0ccc21db077b61f6), cat(0xc53c1ac133dbcf72, 0x72f402a4d2a9ffef) }, // 4614
+ { cat(0x9eeff2d894f2e6b0, 0x0a3ce7e26c62b4c5), cat(0x9dc9af00f64972c1, 0xf590021d7554ccbf) }, // 4615
+ { cat(0xfe4cb7c0ee517119, 0xa9fb0c9d7a3787a1), cat(0xfc75e4ce56dbeacf, 0xef4cd02f22214798) }, // 4616
+ { cat(0xfea3c633f1dac0e1, 0x54c8d6e461c6061a), cat(0xc9f7ea3eabe3223f, 0xf2a3d9bf4e810613) }, // 4617
+ { cat(0xfee96b5cc17bcd81, 0x10a0abe9e7d19e7b), cat(0xa19321cbbcb5b4ff, 0xf54fe165d867380f) }, // 4618
+ { cat(0x325455e3cdfca467, 0x40808987eca7b1fc), cat(0x8142816fca2af733, 0x2aa64deb1385c673) }, // 4619
+ { cat(0x83ba23061661070b, 0x9a674273143f832d), cat(0xced0cf194377f1eb, 0x77707cab526fa3eb) }, // 4620
+ { cat(0x6961b59e784d9f3c, 0x7b85cec2769935be), cat(0xa573d8e102c65b22, 0xc5f396ef75261cbc) }, // 4621
+ { cat(0x211af7b1f9d7b296, 0xc937d89b92142afe), cat(0x845cad80cf0515b5, 0x6b29458c5db816fd) }, // 4622
+ { cat(0x01c4bf8329591dbe, 0x0ebfc0f8e9b9de64), cat(0xd3c77c014b3b55ef, 0x11dba27a2f8cf195) }, // 4623
+ { cat(0x016a32cf54474afe, 0x723300c721617eb6), cat(0xa96c63343c2f77f2, 0x74afb52e8c70c144) }, // 4624
+ { cat(0x9abb5bd9103908cb, 0x8e8f33d2811acbc5), cat(0x8789e8f6968c5ff5, 0x2a262a8ba38d6769) }, // 4625
+ { cat(0xc45ef95b4d280e12, 0x7db1ec8401c4793b), cat(0xd8dca7f0f0e09988, 0x437044129f48a575) }, // 4626
+ { cat(0xd04bfaaf70ecd80e, 0xcaf4bd3667d060fc), cat(0xad7d5327271a146d, 0x02c036754c3a1df7) }, // 4627
+ { cat(0xd9d66225f3f0acd8, 0xa25d642b86404d97), cat(0x8acaa8ec1f481057, 0x356691f7702e7e5f) }, // 4628
+ { cat(0xf623d03cb981148d, 0xd0956d127066e28a), cat(0xde110e4698734d58, 0x5570e98be6b0ca32) }, // 4629
+ { cat(0x5e830cfd61341071, 0x73aabda859ebe86f), cat(0xb1a73e9ee05c3de0, 0x445a546febc0a1c2) }, // 4630
+ { cat(0x4b9c0a644dc3405a, 0xc2eefe2047efed25), cat(0x8e1f654be6b03180, 0x36aea9f323008168) }, // 4631
+ { cat(0x78f9aa3a160533c4, 0x6b17fd0073197b6f), cat(0xe3656edfd7804f33, 0x8ab10feb6b340240) }, // 4632
+ { cat(0x93faee94de6a8fd0, 0x55acca66c27ac926), cat(0xb5eabf197933728f, 0xa2273fef88f66833) }, // 4633
+ { cat(0x7662587718553fd9, 0xde23d51f01fbd41e), cat(0x918898e12dc2c20c, 0x81b8fff2d3f8535c) }, // 4634
+ { cat(0xf09d5a5826eecc8f, 0xc9d2ee98032c8696), cat(0xe8da8e35160469ad, 0x9c5b331e1ff3b893) }, // 4635
+ { cat(0x5a177b79b8bf0a0c, 0xa1758baccf56d212), cat(0xba4871c4119d2157, 0xb048f5b1b3296076) }, // 4636
+ { cat(0x4812c92e2d65a1a3, 0xb45e09570c4574db), cat(0x9506c169a7b0e779, 0x59d3f7c15c2119f8) }, // 4637
+ { cat(0x0ceadb7d156f6905, 0xed634224e06f215f), cat(0xee713575d91b0bf5, 0x5c8659356034f65a) }, // 4638
+ { cat(0x70bbe2ca778c5404, 0xbde901b719f28119), cat(0xbec0f7917a7c0991, 0x16d1e0f7802a5eae) }, // 4639
+ { cat(0x8d631bd52c704336, 0xfe54015f47f53414), cat(0x989a5fa7953007a7, 0x4574b3f93355188b) }, // 4640
+ { cat(0x7bd1c621e0b39ebe, 0x63b99bcba655201f), cat(0xf42a32a5bb800c3e, 0xd587865b8554f412) }, // 4641
+ { cat(0xfca7d1b4b3c2e565, 0x1c947ca2eb774ce6), cat(0xc354f55162ccd698, 0xaad2d1e2d110c341) }, // 4642
+ { cat(0x3086415d5c9beab7, 0x4a1063b5892c3d85), cat(0x9c43f7744f0a4546, 0xef0f0e4f0da7029b) }, // 4643
+ { cat(0x1a70689560f9778b, 0xa9b3d2bc0ead2f3b), cat(0xfa0658ba18106ed7, 0xe4e4e3b1af719dc5) }, // 4644
+ { cat(0xaec053aab3fac609, 0x548fdbc9a55758fc), cat(0xc80513c8134058ac, 0xb71d82f48c5ae49d) }, // 4645
+ { cat(0xf233762229956b3a, 0xaa0cafd48445e0ca), cat(0xa0040fd34299e08a, 0x2c179bf6d6af1d4a) }, // 4646
+ { cat(0x8e8f91b4ee112295, 0x54d6f31069d180a1), cat(0x80033fdc3547e6d4, 0xf012e32bdef27dd5) }, // 4647
+ { cat(0xe418e9217ce83755, 0x548b1e80a94f3435), cat(0xccd1ffc6bba63e21, 0x801e38463183fc88) }, // 4648
+ { cat(0x834720e797202c44, 0x43a27ecd543f5cf7), cat(0xa3db330562eb64e7, 0x99b1c69e8e03306d) }, // 4649
+ { cat(0x6905b3ec78e689d0, 0x361b98a44365e3f9), cat(0x8315c26ab5891d86, 0x148e387ed8028d24) }, // 4650
+ { cat(0xdb3c5313f4a40fb3, 0x89c5c106d23c9ff5), cat(0xd1bc6a4455a82f3c, 0xedb05a648cd0e1d3) }, // 4651
+ { cat(0x15c9dc0ff6e9a629, 0x3b049a6bdb63b32a), cat(0xa7c9ee9d115358fd, 0x8af37b83a3da4e43) }, // 4652
+ { cat(0x116e49a65f2151ba, 0x959d4856491c8f55), cat(0x863b254a7442ad97, 0xa25c62cfb6483e9c) }, // 4653
+ { cat(0xb57d42a3cb6882c4, 0x2295408a0e941888), cat(0xd6c50877206aaf59, 0x03c7047f8a0d30f9) }, // 4654
+ { cat(0x5dfdcee96f86cf03, 0x4eddcd3b3edce06d), cat(0xabd0d39280555914, 0x03059d32d4d75a61) }, // 4655
+ { cat(0xe4cb0bedf2d23f35, 0xd8b170fc324a4d24), cat(0x8973dc7533777a76, 0x68d14a8f10ac484d) }, // 4656
+ { cat(0x07ab464984839856, 0x27824e605076e1d3), cat(0xdbec93eeb8bf2a57, 0x0e1baa7e8113a6e3) }, // 4657
+ { cat(0x9fbc383ad06946ab, 0x52cea519d9f8b4a9), cat(0xaff0765893cc21df, 0x3e7c8865340fb8b5) }, // 4658
+ { cat(0xe6302cfbd9edd222, 0xa8a550e17b2d5d54), cat(0x8cc05ead4309b4b2, 0x9863a050f672fa2a) }, // 4659
+ { cat(0x09e6ae5fc3161d04, 0x41088168c5156220), cat(0xe133caaed1a9211d, 0xc09f66e7f0b7f6ab) }, // 4660
+ { cat(0xd4b88b7fcf44e403, 0x673a01209daab4e6), cat(0xb4296ef241541a7e, 0x33b2b8b98d5ff888) }, // 4661
+ { cat(0x43c6d5ffd903e99c, 0x5294cdb3b1555d85), cat(0x9021258e9aa9aecb, 0x5c8efa2e0ab32d3a) }, // 4662
+ { cat(0x393e2332f4d30f60, 0x8421491f82222f3b), cat(0xe69b6f4a910f7e12, 0x2db19049aab8485d) }, // 4663
+ { cat(0xc764e8f590a8d91a, 0x034dd41934e825c9), cat(0xb87c5908740c64db, 0x57c1403aeef9d37d) }, // 4664
+ { cat(0x391d872ada20adae, 0x690b10142a53516e), cat(0x9396ada05cd6b715, 0xdfcdccfbf26175fe) }, // 4665
+ { cat(0x282f3eaaf69aaf7d, 0x74de802043b88249), cat(0xec244900948abe89, 0x661614c6509beffd) }, // 4666
+ { cat(0xb9bf655592155931, 0x2a4b99b36960683a), cat(0xbce9d40076d5653a, 0xb811aa38407cbffd) }, // 4667
+ { cat(0x2e32b777a8111427, 0x550947c2bab38695), cat(0x97217666c577842e, 0xf9a7bb603396fffe) }, // 4668
+ { cat(0x7d1df2590ce8203e, 0xee753f9df785a421), cat(0xf1cf23d7a258d37e, 0x5c3f923385be6663) }, // 4669
+ { cat(0x30e4c1e0d72019cb, 0xf1f76617f937b681), cat(0xc1728312e8470f98, 0x49cc74f6049851e9) }, // 4670
+ { cat(0x271d67e7128014a3, 0x27f91e79942c9201), cat(0x9ac20275869f3fad, 0x07d6c3f803ad0e54) }, // 4671
+ { cat(0xa4fbd971b7335438, 0x3ff4fd8f537a8335), cat(0xf79cd0bc0a9865e1, 0xa6246cc005e1b086) }, // 4672
+ { cat(0xb72fe127c5c2a9c6, 0x9990cad90f9535c4), cat(0xc6170d633bad1e4e, 0x1e838a3337e7c06b) }, // 4673
+ { cat(0xf8f31a8637ceee38, 0x7ada3be0d9442b03), cat(0x9e78d7829624183e, 0x7ecfa1c2931fcd22) }, // 4674
+ { cat(0x8e51c409f2e4b05a, 0x5e29f967c206ab38), cat(0xfd8e259dbd068d30, 0xcae5cf9db832e1d1) }, // 4675
+ { cat(0x3ea7d007f583c048, 0x4b54c78634d22293), cat(0xcad81e17ca6ba427, 0x08b7d94af9c24e41) }, // 4676
+ { cat(0xfeeca66cc46966a0, 0x3c43d2d1c3db4edc), cat(0xa2467e796ebc8352, 0x6d5fe108c7cea500) }, // 4677
+ { cat(0x658a1ebd69edebb3, 0x636975749caf724a), cat(0x81d1fec78bca02a8, 0x577fe73a39721d9a) }, // 4678
+ { cat(0x08dcfdfbdcafdf85, 0x6bdbef20fab25076), cat(0xcfb6647279433773, 0xbf330b905be9c8f7) }, // 4679
+ { cat(0x3a4a64c97d597f9d, 0xefe325b3fbc1d9f8), cat(0xa62b838ec768f929, 0x65c26fa6afee3a5f) }, // 4680
+ { cat(0x950850a131146617, 0xf31c1e299634ae60), cat(0x84ef9c723920c754, 0x5168595226582eb2) }, // 4681
+ { cat(0x54da1a9b81ba3cf3, 0x1e936375bd211700), cat(0xd4b293e9f5013eed, 0x4f0d5bb6a3c04ab7) }, // 4682
+ { cat(0xdd7b487c67c830c2, 0x7edc4f91641a78cd), cat(0xaa287654c400ff24, 0x3f3de2f883003bc5) }, // 4683
+ { cat(0xe462a0638639c09b, 0x98b03fa7834860a4), cat(0x88205eaa36673283, 0x65cb1bfa02669637) }, // 4684
+ { cat(0x6d6a9a38d6c2cdc5, 0xc119ff726ba70106), cat(0xd9cd64438a3eb738, 0xa2de93299d70f059) }, // 4685
+ { cat(0xbdeee1c71235716b, 0x00e19928561f3405), cat(0xae3de9cfa1cbc5c6, 0xe8b20f547df3f37a) }, // 4686
+ { cat(0x64bf1b05a82ac122, 0x671ae0ed11b29004), cat(0x8b64bb0c816fd16b, 0xed5b3f76cb298f95) }, // 4687
+ { cat(0x07982b3c40446837, 0x0b5e34ae82b74cd3), cat(0xdf0791ad9be61bdf, 0xe22b98be11dc18ef) }, // 4688
+ { cat(0x394688fd0036b9c5, 0xa2b1c3becef90a43), cat(0xb26c748ae31e7cb3, 0x1b5613cb417ce0bf) }, // 4689
+ { cat(0x61053a64002bc7d1, 0x4ef49c98a5940835), cat(0x8ebd2a08b5b1fd5c, 0x15de763c3463e6ff) }, // 4690
+ { cat(0x34d52a3999dfa61b, 0xb18760f43c200d22), cat(0xe461dcdabc4ffbc6, 0x8963f06053d30b32) }, // 4691
+ { cat(0xf710ee947b1951af, 0xc1391a5cfce670e8), cat(0xb6b4b0aefd0cc96b, 0xa11cc04d0fdc08f4) }, // 4692
+ { cat(0xc5a7254395addaf3, 0x00fa7b7d971ec0ba), cat(0x922a26f2640a3abc, 0x80e3cd0a73166d90) }, // 4693
+ { cat(0xa2a5086c22afc4b8, 0x0190c595be979ac2), cat(0xe9dd0b1d6cdd2ac7, 0x349fae771e8a48e7) }, // 4694
+ { cat(0xb550d389b5596a2c, 0xce0d6ade3212e235), cat(0xbb173c178a4a889f, 0x5d4c8b927ed5071f) }, // 4695
+ { cat(0x5dda42d4911454f0, 0xa4d788b1c1a8b4f7), cat(0x95ac3012d5086d4c, 0x4aa3a2db98aa6c19) }, // 4696
+ { cat(0x2fc39e20e82087e7, 0x6e25a782cf7454bf), cat(0xef79e684880d7bad, 0x443904928ddd79c2) }, // 4697
+ { cat(0x59694b4d86806cb9, 0x24eaec68a5f6aa32), cat(0xbf94b86a06712fbd, 0xd02d9d420b17949b) }, // 4698
+ { cat(0xe121090ad20056fa, 0x83ef2386eb2bbb5c), cat(0x9943c6bb385a8c97, 0xd9be176808dfaa15) }, // 4699
+ { cat(0x3501a81150008b2a, 0x6cb1d2717845f892), cat(0xf5393df85a2a7a8c, 0x8f968bd9a7cc4356) }, // 4700
+ { cat(0x90ce200dd99a08ee, 0xbd5b0ec12d04c6db), cat(0xc42dcb2d14eec870, 0x72ded647b97035de) }, // 4701
+ { cat(0x0d71b33e47ae6d8b, 0xcaaf3f00f0d09f16), cat(0x9cf16f5743f239f3, 0x8f18ab6c9459c4b2) }, // 4702
+ { cat(0xaf1c51fd3f7d7c12, 0xdde5319b1ae764f0), cat(0xfb1be5586cb6c31f, 0x4b5aabe0ed5c6de9) }, // 4703
+ { cat(0x25b0419765fdfcdb, 0xe4b75ae27bec50c0), cat(0xc8e31de056f89c19, 0x0915564d8ab057ee) }, // 4704
+ { cat(0xb7c034791e64ca49, 0x83c5e24ec989da33), cat(0xa0b5b1804593b014, 0x0744450ad559dff1) }, // 4705
+ { cat(0xf9669060e51d6ea1, 0x3637e83f07a17b5c), cat(0x80915acd04762676, 0x6c369da24447e65a) }, // 4706
+ { cat(0x28a41a34a1c8b101, 0xf05973980c35922d), cat(0xcdb55e14d3f03d8a, 0x46bdc903a0730a2b) }, // 4707
+ { cat(0xed5014f6e7d3c0ce, 0x59e12946702adb57), cat(0xa4911810a98cfe08, 0x3897d402e6c26e88) }, // 4708
+ { cat(0x8aa6772beca9670b, 0x7b1a876b8cef15e0), cat(0x83a74673bad731a0, 0x2d4643358568586d) }, // 4709
+ { cat(0x110a5846477571ab, 0xf82a7245ae4b5632), cat(0xd2a53d85f7beb5cd, 0x153d3855a2408d7c) }, // 4710
+ { cat(0xda6ead0505f78e23, 0x2ceec1d1583c44f5), cat(0xa8843137f9655e3d, 0xaa97604481cd3dfc) }, // 4711
+ { cat(0x7b8bbd9d9e5fa4e8, 0xf0bf017446969d91), cat(0x86d0275ffab77e97, 0xbbac4d039b0a97fd) }, // 4712
+ { cat(0x2c12c8fc309907db, 0x1acb3586d7576281), cat(0xd7b372332abf30f2, 0xc5e07b38f810f32f) }, // 4713
+ { cat(0xf00f073026e0d315, 0xaf08f79f12ac4ece), cat(0xac8f8e8f5565c0c2, 0x37e6c8fa600d8f58) }, // 4714
+ { cat(0x59a59f59b8b3dc11, 0x58d3f94c0ef03f0b), cat(0x8a0c720c44516701, 0xc6523a61e6713f7a) }, // 4715
+ { cat(0xc2a2988f8dec934e, 0xf4865bace4b39812), cat(0xdce0b67a06e8a4cf, 0xa3b6c3cfd71b98c3) }, // 4716
+ { cat(0x021bad3fa4bd42a5, 0x906b7c8a508facdb), cat(0xb0b3c52e6bed50a6, 0x1c92363fdf494703) }, // 4717
+ { cat(0x34e2f0ffb6fdceea, 0xd9ef96d50d3fbd7c), cat(0x8d5c9dbebcbdda1e, 0x7d41c4ffe5d438cf) }, // 4718
+ { cat(0x549e4e65f19617de, 0x297f57bb4865fbf9), cat(0xe22dc9312dfc9030, 0xc8693b3309538e18) }, // 4719
+ { cat(0xaa183eb7f4781318, 0x2132ac95d384c994), cat(0xb4f16dc0f196d9c0, 0xa0542f5c07760b46) }, // 4720
+ { cat(0x54e0322cc3934279, 0xb4288a117603d477), cat(0x90c1249a5adf149a, 0x19dcf2b005f80905) }, // 4721
+ { cat(0xee33837ad2853729, 0x2040dce8bcd2ed8b), cat(0xe79b6dc3c49820f6, 0x8fc7eab33cc00e6e) }, // 4722
+ { cat(0x582935fbdb9dc5ba, 0x8033e3ed63dbf13c), cat(0xb949249c9d4680c5, 0x3fd32228fd6671f2) }, // 4723
+ { cat(0x46875e631617d162, 0x002983244fe32763), cat(0x943a83b07dd2009d, 0xcca8e820cab85b28) }, // 4724
+ { cat(0x3da563d1bcf2e89c, 0xcd0f383a196b7238), cat(0xed2a6c4d961ccdc9, 0x4774a69addf3c50d) }, // 4725
+ { cat(0x64844fdafd8f207d, 0x70d8f9c81455f4fa), cat(0xbdbb89d7ab4a3e3a, 0x9f908548b18fd0d7) }, // 4726
+ { cat(0x839d0caf313f4d31, 0x2713fb0676ab2a61), cat(0x97c93b12ef6e982e, 0xe60d376d5ad973df) }, // 4727
+ { cat(0x9f61ade51b987b81, 0xd81ff80a577843cf), cat(0xf2db91b7e57dc04b, 0x09aebf155e28b965) }, // 4728
+ { cat(0x7f8157ea7c79fc67, 0xe019933b792d030c), cat(0xc249415feacb003c, 0x07beff444b53c784) }, // 4729
+ { cat(0xcc6779886394c9ec, 0xb347a8fc60f0cf3d), cat(0x9b6dcde6556f3363, 0x396599036f763936) }, // 4730
+ { cat(0xad725c0d6c214314, 0x520c4193ce4e1861), cat(0xf8afafd6ef185238, 0x5bd5c19f18bd2857) }, // 4731
+ { cat(0xbdf51671234dcf43, 0x74d69adca50b46b4), cat(0xc6f2f31258e041c6, 0xafde347f46fdb9df) }, // 4732
+ { cat(0xfe5dab8db5d7d902, 0xc3dee24a1da29ef7), cat(0x9f28c27513e69b05, 0x597e9065d26494b2) }, // 4733
+ { cat(0x96fc45af89595b37, 0x9fcb03a9c904318a), cat(0xfea79d881fd75e6e, 0xf5974d6fb7075451) }, // 4734
+ { cat(0xdf3037bfa11448f9, 0x4ca26954a0d027a2), cat(0xcbb94ad34cac4b8b, 0xf7ac3df2f8d2a9da) }, // 4735
+ { cat(0x4c2692ffb4103a61, 0x0a1b8776e70cec82), cat(0xa2faa242a3bd093c, 0xc62364c260a887e2) }, // 4736
+ { cat(0xa3520f32f67361e7, 0x3b49392bec0a56ce), cat(0x82621b6882fda0fd, 0x6b4f83ceb3ba064e) }, // 4737
+ { cat(0x38834b84bd856971, 0xf87528464676f14a), cat(0xd09cf8a737fc34c8, 0xabb26c7dec5cd6e4) }, // 4738
+ { cat(0x2d35d603cad12127, 0xf9f7536b6b925aa1), cat(0xa6e3fa1f5ffcf706, 0xefc1f064bd171250) }, // 4739
+ { cat(0xf0f7de696f0db41f, 0xfb2c42bc560eaee8), cat(0x85832e7f7ffd926b, 0xf3018d1d6412750c) }, // 4740
+ { cat(0x1b2630a8b1af8699, 0x91e06ac6f0177e3f), cat(0xd59eb0cbfffc1d79, 0x84cf482f0683ee7b) }, // 4741
+ { cat(0x7c1e8d53c159387a, 0xdb19ef058cdf9833), cat(0xaae55a3cccc9b12e, 0x03d9068c05365862) }, // 4742
+ { cat(0xc9b20aa9677a9395, 0x7c14bf37a3e6135c), cat(0x88b77b63d707c0f1, 0x9cad9ed66a91e04e) }, // 4743
+ { cat(0x42b67775725db8ef, 0x2cedfebf6ca3522c), cat(0xdabf2bd2f1a60182, 0x9448fe23ddb633b1) }, // 4744
+ { cat(0x355ec5f78eb160bf, 0x5724cbcc56e90e8a), cat(0xaeff56425aeb3468, 0x76a0cb4fe491c2f4) }, // 4745
+ { cat(0x91189e5fa55ab3cc, 0x45b7097045873ed5), cat(0x8bff78351588f6b9, 0xf880a2a650749bf6) }, // 4746
+ { cat(0x81c0fd65d55dec7a, 0x0924dbe6d5a53154), cat(0xdfff26bb55a7f129, 0x8d9a9dd6e720f98a) }, // 4747
+ { cat(0xce33fdeb1117f061, 0xa0ea498577b75aaa), cat(0xb3328562aaecc0ee, 0x0ae217df1f4d946e) }, // 4748
+ { cat(0xd82997ef40dff381, 0x4d883ad12c92aeee), cat(0x8f5b9de888bd6724, 0xd581acb27f71438b) }, // 4749
+ { cat(0x59dc264b9affec02, 0x15a6c481e0eab17d), cat(0xe55f630da79571d4, 0x88cf7ab7324ed279) }, // 4750
+ { cat(0x7b16850948ccbcce, 0x77b89d34b3eef464), cat(0xb77f827152ddf4aa, 0x070c622c283f0ec7) }, // 4751
+ { cat(0xfc1204076d70970b, 0x92fa175d5cbf29ea), cat(0x92cc685aa8b19088, 0x05a381bcecff3f05) }, // 4752
+ { cat(0x601cd33f1580f1ac, 0x1e5cf22efacb7643), cat(0xeae0a6f7744f4da6, 0x6f6c02c7e19864d6) }, // 4753
+ { cat(0x4ce3dc32779a5af0, 0x184a5b58c8a2c502), cat(0xbbe6ebf929d90aeb, 0x8c56689fe7ad1d78) }, // 4754
+ { cat(0x0a4fe35b92e1e259, 0xad084913d3b56a68), cat(0x96525660ee473bef, 0xa37853b31fbdb12d) }, // 4755
+ { cat(0xdd4c9ef8eb0303c2, 0xae73a81fb92243da), cat(0xf083bd67e3a52cb2, 0x9f26ec51cc62b514) }, // 4756
+ { cat(0xe43d4bfa559c0302, 0x2529534c941b697b), cat(0xc06964531c8423c2, 0x18ebf041704ef743) }, // 4757
+ { cat(0x5031099511499c01, 0xb75442a3a9af8796), cat(0x99ede9dc16d01c9b, 0x4723269ac03f2c36) }, // 4758
+ { cat(0xb381a8ee820f6002, 0xbeed376c42b27289), cat(0xf649762cf14cfa92, 0x0b6b70f799fead23) }, // 4759
+ { cat(0x5c67ba58680c4cce, 0xff242c569bc1f53a), cat(0xc50791bd8dd72edb, 0x3c55f3f947fef0e9) }, // 4760
+ { cat(0x7d1fc846b9a370a5, 0x98e9bd121634c42f), cat(0x9d9fa7cad7df58af, 0x6377f66106658d87) }, // 4761
+ { cat(0xc832da0ac29f1aa2, 0x8e42c81cf0546d17), cat(0xfc32a61159655ab2, 0x38bff09b3d6f48d8) }, // 4762
+ { cat(0xa028ae6f0218e21b, 0xa50239b0c0438a79), cat(0xc9c21e744784488e, 0x93ccc07c3125d3e0) }, // 4763
+ { cat(0x4ced5858ce7a4e7c, 0x8401c7c099cfa1fb), cat(0xa168185d06036d3e, 0xdca3cd302751764d) }, // 4764
+ { cat(0xa3f1137a3ec83eca, 0x03349fcd47d94e62), cat(0x8120137d9e692432, 0x4a1ca42685dac50a) }, // 4765
+ { cat(0x9fe81f29fe0d3143, 0x385432e20c8ee3d0), cat(0xce99b8c8fd7506b6, 0xdcfaa03da2f7a1aa) }, // 4766
+ { cat(0x19867f54cb3dc102, 0x93768f1b3d3f1ca7), cat(0xa547c707312a6bc5, 0x7d954cfe1bf94e22) }, // 4767
+ { cat(0x479ecc43d5cb00ce, 0xdc5ed8e29765b085), cat(0x84396c05c0eebc9d, 0xfe110a64e32dd81b) }, // 4768
+ { cat(0x3f647a0622de67b1, 0x6097c16a8bd5e73b), cat(0xd38f133c67e460fc, 0xc9b4dd6e384959c5) }, // 4769
+ { cat(0x65e9fb381be51fc1, 0x1a1301220977ec30), cat(0xa93f4296b98380ca, 0x3af7178b603aae37) }, // 4770
+ { cat(0x84bb2f601650e634, 0x14dc00e807932359), cat(0x8765cedefacf9a3b, 0x625f460919c88b5f) }, // 4771
+ { cat(0xd45eb23356e7d6b9, 0xbaf99b0cd8eb6bc2), cat(0xd8a2e497f7b2905f, 0x03cba341c2da7898) }, // 4772
+ { cat(0xdd188e8f78b97894, 0x95947c0a4722bc9b), cat(0xad4f1d465fc20d18, 0xcfd61c349be1fa13) }, // 4773
+ { cat(0x4a7a0ba5fa2dfa10, 0x77a9fcd505b563b0), cat(0x8aa5b10519680a7a, 0x3fde7cf6e31b2e76) }, // 4774
+ { cat(0xdd9012a329e329b3, 0xf2a9948809223919), cat(0xddd5e80828a67729, 0xffca618b04f84a56) }, // 4775
+ { cat(0xb1400ee8ee4f548f, 0xf55476d33a81c747), cat(0xb177ecd353b85f54, 0xcca1e7a26a603b78) }, // 4776
+ { cat(0xf4333f20bea5dd3f, 0xf776c575c867d29f), cat(0x8df98a42a9604c43, 0xd6e7ec81eeb362c6) }, // 4777
+ { cat(0x86b86501310961ff, 0xf257a2560d72ea98), cat(0xe328dd377566e06c, 0x8b0cad9cb11f0471) }, // 4778
+ { cat(0x9ef9ea675a6de7ff, 0xf512e844d78f2213), cat(0xb5ba4a92c4524d23, 0xa2708ae3c0e59d27) }, // 4779
+ { cat(0xe594bb85e1f18666, 0x5da8b9d0ac7281a9), cat(0x9161d54236a83db6, 0x1b8d3be9671e1752) }, // 4780
+ { cat(0xd5bac5a3031c0a3d, 0x62a78fb4471d9c42), cat(0xe89c8869f10d2f89, 0xc5aec6423e968bb7) }, // 4781
+ { cat(0x77c89e1c027cd4fd, 0xe8860c9038e47d01), cat(0xba16d387f40a8c6e, 0x37bf0501cbaba2f9) }, // 4782
+ { cat(0x5fd3b1b001fd7731, 0x86d1a3a693e9fd9b), cat(0x94df0f9ff66ed6be, 0x92ff3734a2efb594) }, // 4783
+ { cat(0x661f82b33662584f, 0x3e1c390a86432f5e), cat(0xee31b2998a4af130, 0xeb31f1edd17f88ed) }, // 4784
+ { cat(0x51b2cef5c51b79d8, 0xfe7cfa6ed1cf5918), cat(0xbe8e287ad508c0f3, 0xef5b27f174660724) }, // 4785
+ { cat(0x0e28a5916a7c617a, 0x6530c858a7d91413), cat(0x9871b9fbdda09a5c, 0xbf7c1ff45d1e6c1d) }, // 4786
+ { cat(0xe3743c1bdd93cf2a, 0x3b81408dd95b5352), cat(0xf3e92992fc342a2d, 0xff2cffed61ca4694) }, // 4787
+ { cat(0x4f9030164adca5bb, 0x62cdcd3e477c42a8), cat(0xc320ee0f3029bb57, 0xff5733244e3b6baa) }, // 4788
+ { cat(0x0c7359ab6f16eafc, 0x4f0b0a9839303553), cat(0x9c1a580c2687c913, 0x32ac28e9d82f8955) }, // 4789
+ { cat(0x13ebc2abe4f177fa, 0x1811aa8d284d221e), cat(0xf9c3c01370d941b8, 0x511374a959e5a888) }, // 4790
+ { cat(0x0fefceefea5ac661, 0xacdaeed75370e818), cat(0xc7cfccdc5a4767c6, 0xa742c3baae5153a0) }, // 4791
+ { cat(0x3ff30bf321e2384e, 0x23e258ac42c0b9ad), cat(0x9fd970b048391fd2, 0x1f689c9558410fb3) }, // 4792
+ { cat(0xffeb4651cfd05a16, 0x9fd08de06acdf5e2), cat(0xffc24de6d9f4ffb6, 0x98a760eef39b4c51) }, // 4793
+ { cat(0x6655d1db0ca6ae78, 0x7fda0b19ef0b2b1b), cat(0xcc9b71857b2a662b, 0xad52b3f25c7c3d0e) }, // 4794
+ { cat(0xeb77db15a3b88b93, 0x997b3c14bf3c227c), cat(0xa3af8e04628851bc, 0x8aa88ff516c9ca71) }, // 4795
+ { cat(0xef9315aae9606fa9, 0x4795c9aa329681fd), cat(0x82f2d8038206a7ca, 0x0886d990df07d527) }, // 4796
+ { cat(0x18eb55de4233e5db, 0xa5bc75dd1dbd9cc8), cat(0xd1848cd269a43fa9, 0xa73e28e7cb3fbb73) }, // 4797
+ { cat(0x13ef77e501c31e49, 0x5163917db1647d6d), cat(0xa79d3d75215032ee, 0x1f64ed863c32fc5c) }, // 4798
+ { cat(0x4325f9840168e507, 0x744fa797c11d3124), cat(0x8617645db44028be, 0x7f83f1383028c9e3) }, // 4799
+ { cat(0x6b6ff5a002416e72, 0x53b2a5bf9b61e839), cat(0xd68bd3c92066a797, 0x326cb526b3747638) }, // 4800
+ { cat(0xbc59914cce9abec1, 0xdc8eeaffaf818694), cat(0xaba30fd419ebb945, 0xc1f090ebc2c391c6) }, // 4801
+ { cat(0xc9e1410a3ee23234, 0xb072559959346baa), cat(0x894f3fdce1896104, 0x9b26da563569416b) }, // 4802
+ { cat(0xa9686810649d1d21, 0x1a5088f55b8712a9), cat(0xdbb1ffc7cf4234d4, 0x2b715d56bbdb9bdf) }, // 4803
+ { cat(0x5453867383b0e41a, 0x7b73a0c44938dbbb), cat(0xafc1996ca5ce90a9, 0xbc5ab1122fe2e319) }, // 4804
+ { cat(0x1042d1f602f3e9ae, 0xc9294d69d42d7c95), cat(0x8c9ae123b7d873ba, 0xfd155a74f31be8e1) }, // 4805
+ { cat(0xb39e1cbcd18642b1, 0x41dbaf0fb9e260ef), cat(0xe0f7ce9f8c8d85f7, 0xfb555d87eb5fdb01) }, // 4806
+ { cat(0x5c7e7d63dad1cef4, 0x34afbf3fc7e84d8c), cat(0xb3f972193d3e04c6, 0x62aab13989197c01) }, // 4807
+ { cat(0x16cb97831574a590, 0x2a2632996cb9d7a3), cat(0x8ffac1adca9803d1, 0xe8888dc7a0e13001) }, // 4808
+ { cat(0x57ac259e88baa280, 0x437050f57ac2f29e), cat(0xe65e02afaa8cd2e9, 0x740dafa5ce35199b) }, // 4809
+ { cat(0xdfbceae53a2ee866, 0x9c59da5dfbcf287f), cat(0xb84b3559553d7587, 0x900af2eb0b5dae15) }, // 4810
+ { cat(0xe630bbea94f25385, 0x49e17b7e630c2065), cat(0x936f5de110fdf79f, 0xa66f28bc0917be77) }, // 4811
+ { cat(0xa3812caa87ea1f3b, 0xa968c59704e033d5), cat(0xebe56301b4c98c32, 0xa3e50df9a825fd8c) }, // 4812
+ { cat(0x1c6756eed321b296, 0x21209e126a4cf644), cat(0xbcb78267c3d47028, 0x831da4c7b9b7fe0a) }, // 4813
+ { cat(0x7d1f78bf0f4e2878, 0x1a807e7521d72b6a), cat(0x96f9351fcfdd2686, 0xcf4aea39615ffe6e) }, // 4814
+ { cat(0x61cbf464e549da59, 0xc400ca5502f1df10), cat(0xf18ebb661961d73e, 0x1877dd289bccca4a) }, // 4815
+ { cat(0x4e3cc383eaa17b7b, 0x0333d510cf27e5a6), cat(0xc13efc51ade7df64, 0xe05fe4207ca3d508) }, // 4816
+ { cat(0xd8309c6988812f95, 0x9c297740a5b98485), cat(0x9a98c9daf1864c50, 0xb37fe9b396e97739) }, // 4817
+ { cat(0x26b42d75a73518ef, 0x604258676f8f3a6e), cat(0xf75adc9182707a1a, 0xb8cca91f57dbf1f6) }, // 4818
+ { cat(0x855cf12aec2a7a59, 0x19cead1f8c729525), cat(0xc5e24a0e01f394e2, 0x2d70874c46498e5e) }, // 4819
+ { cat(0x377d8dbbf021fb7a, 0x7b0bbdb2d6c210eb), cat(0x9e4ea1a4ce5c771b, 0x578d3909d1d471e5) }, // 4820
+ { cat(0x8bfc15f980365f2a, 0x5e792f848ad01b11), cat(0xfd4a9c3ae3c724f8, 0x8c15280fb620b63b) }, // 4821
+ { cat(0x099677faccf84c21, 0xe52dbf9d3bd9af41), cat(0xcaa216958305b72d, 0x3cddb9a62b4d5e96) }, // 4822
+ { cat(0x07ab932f0a603ce7, 0xea8affb0fcae25cd), cat(0xa21b454468d15f57, 0x63e49484ef711878) }, // 4823
+ { cat(0x39560f58d519ca53, 0x2208cc8d96f1b7d8), cat(0x81af6a9d20a77f79, 0x1cb6dd3725f41393) }, // 4824
+ { cat(0x8ef0188e21c2dd51, 0xd00e1415be4f8c8c), cat(0xcf7f10fb6772658e, 0x9457c8583cb9b8eb) }, // 4825
+ { cat(0xd8c013a4e7cf1774, 0xa671a9aafea60a0a), cat(0xa5ff40c91f8eb7a5, 0x43796d1363c7c722) }, // 4826
+ { cat(0x13ccdc83eca5ac5d, 0x51f487bbfeeb3b3b), cat(0x84cc33d4193ef951, 0x02c78a75e96c9f4f) }, // 4827
+ { cat(0xb947c7397aa2ad62, 0x1cba72c664ab91f8), cat(0xd479ec868ecb2881, 0x9e0c10bca8adcbb1) }, // 4828
+ { cat(0x2dd305c7954ef11b, 0x4a2ec23850894193), cat(0xa9fb239ed8a286ce, 0x1809a6fd53be3c8e) }, // 4829
+ { cat(0x8b0f37d2ddd8c0e2, 0xa1bf01c6a6d43476), cat(0x87fc1c7f13b538a4, 0xe007b8caa964fd3e) }, // 4830
+ { cat(0xab4b8c8496279b04, 0x35fe693dd7b9ed89), cat(0xd99360cb52bb8dd4, 0x99a5f477756e61fd) }, // 4831
+ { cat(0xef6fa39d44ec7c03, 0x5e6520fe462e57a1), cat(0xae0f80a2a8960b10, 0x7aeb29f92abeb4ca) }, // 4832
+ { cat(0xbf8c82e437239669, 0x1850e731d1beac81), cat(0x8b3f9a1bba11a273, 0x9588ee60eefef708) }, // 4833
+ { cat(0x98e0d16d2505bd74, 0xf3b4a51c82caad9a), cat(0xdecc29c5f6829d85, 0xbc0e4a34b197f1a7) }, // 4834
+ { cat(0xad80a78a84049790, 0xc2f6ea7d356ef148), cat(0xb23cee37f8687e04, 0x9671d4f6f4798e1f) }, // 4835
+ { cat(0x2466ec6ed003ac73, 0xcf2beeca91258dd4), cat(0x8e9724f99386cb36, 0xdec1772bf6c7a4e6) }, // 4836
+ { cat(0x6d717a4ae66c471f, 0xb1dfe4774ea27c86), cat(0xe42507f5b8d7ab8a, 0xfe02584657a5d4a3) }, // 4837
+ { cat(0x245ac83beb89d27f, 0xc17fe9f90bb5306b), cat(0xb684065e2d795608, 0xcb35136b795176e9) }, // 4838
+ { cat(0x5048a02fefa17533, 0x01332194095dc056), cat(0x9203384b579444d3, 0xd5c40f892ddac587) }, // 4839
+ { cat(0x8074337fe5cf21eb, 0x351e9c200efc66ef), cat(0xe99ec0788c206e1f, 0xbc6ce5a8495e08d8) }, // 4840
+ { cat(0x66c35c6651728188, 0xf74bb019a596b8bf), cat(0xbae566c6d6805819, 0x638a51536de4d3e0) }, // 4841
+ { cat(0xb89c49eb745b9ad3, 0xf90959ae1e122d66), cat(0x95845238ab99e014, 0x4fa1daa924b70fe6) }, // 4842
+ { cat(0xf42d431253c5c486, 0x5b42291696837bd6), cat(0xef3a1d2778f63353, 0xb29c910ea124e63d) }, // 4843
+ { cat(0x902435a843049d38, 0x4901ba7878692fdf), cat(0xbf61b0ec60c4f5dc, 0x8ee3a73ee750b831) }, // 4844
+ { cat(0xa6835e20359d4a93, 0x6d9afb939387597f), cat(0x991af3f04d6a5e4a, 0x0be95298b90d6027) }, // 4845
+ { cat(0x70d2303388fbaa85, 0x7c2b2c1f527228cb), cat(0xf4f7ecb3af1096dc, 0xdfdbb75ac1af003f) }, // 4846
+ { cat(0xc0a8268fa0c95537, 0x9688f0190ec1ba3c), cat(0xc3f98a2958da124a, 0x4cafc5e2348c0032) }, // 4847
+ { cat(0x33b9b872e707775f, 0xaba0c0140bce2e97), cat(0x9cc7a1baad7b41d5, 0x0a2637e82a0999c2) }, // 4848
+ { cat(0xb929271e3e725899, 0x129accecdfb04a8a), cat(0xfad902c448c53621, 0xa9d6bfd9dcdc2936) }, // 4849
+ { cat(0x2dba85b1cb8ead47, 0x421570bd7fc03ba2), cat(0xc8ad9bd03a375e81, 0x54abccae4a49ba92) }, // 4850
+ { cat(0x57c86af4a2d88a9f, 0x681126fdffccfc82), cat(0xa08ae30cfb5f7ecd, 0xdd563d583b6e2edb) }, // 4851
+ { cat(0x796d225d4f13a219, 0x200db8cb330a639b), cat(0x806f1c0a62b2cbd7, 0xe444fde02f8b58af) }, // 4852
+ { cat(0x8f1503c87e85d028, 0x334927ab84dd6c2b), cat(0xcd7e9343d11e12f3, 0x06d4c966b2788de5) }, // 4853
+ { cat(0xa5aa696d3204a686, 0x8f6db95603e45689), cat(0xa465429ca74b425c, 0x057707855b93a4b7) }, // 4854
+ { cat(0x515521242803b86b, 0xa5f161119cb6aba1), cat(0x8384354a1f6f6849, 0x9df8d2d1160fb6f9) }, // 4855
+ { cat(0x1bbb6839d99f8d79, 0x098234e8fabddf67), cat(0xd26d2210324bda0f, 0x6327b7b4f01924c2) }, // 4856
+ { cat(0x7c95ecfb147fa460, 0xd4682a53fbcb191f), cat(0xa8574e735b6fe1a5, 0xe8ec92f7267a83ce) }, // 4857
+ { cat(0xca118a6276cc8380, 0xa9eceea9963c1419), cat(0x86ac3ec2af8cb484, 0xba56dbf8eb95363e) }, // 4858
+ { cat(0x101c109d8ae0d267, 0x7647e44289f9b9c2), cat(0xd779fe044c145407, 0x908af98e45bb89fe) }, // 4859
+ { cat(0xd9b00d4ad580a852, 0xc50650353b2e2e35), cat(0xac61980370104339, 0x406f2e0b6afc6e64) }, // 4860
+ { cat(0x7af33dd5779a2042, 0x3738402a95be8b5d), cat(0x89e7accf8cd9cf61, 0x0058f1a2bbfd251d) }, // 4861
+ { cat(0xc4b862ef25c366d0, 0x585a004422ca7895), cat(0xdca5e14c148fb234, 0xcd5b1c37932ea1c8) }, // 4862
+ { cat(0x36f9e8bf51691f0d, 0x137b3369b56ec6de), cat(0xb084b43cdd3fc1c3, 0xd77c1692dc254e3a) }, // 4863
+ { cat(0x2bfb20990dedb270, 0xdc628f87c4589f18), cat(0x8d36f6971766349c, 0xac63454249b771c8) }, // 4864
+ { cat(0x465e9a8e7caf83e7, 0xc70418d93a2764f3), cat(0xe1f18a8b58a38761, 0x13d2086a0f8be940) }, // 4865
+ { cat(0x384baed863bf9cb9, 0x6c0347142e85ea5c), cat(0xb4c13ba2ad4f9f80, 0xdca806bb3fa32100) }, // 4866
+ { cat(0x936fbf1382ffb094, 0x566905a9bed1884a), cat(0x909a961bbdd94c67, 0x16ecd22f661c1a66) }, // 4867
+ { cat(0xb8b2cb526b32b420, 0x8a41a2a9314f4076), cat(0xe75dbcf92fc213d8, 0x24ae1d18a3602a3d) }, // 4868
+ { cat(0x2d5bd5db88f55ce6, 0xd5014eedc10c3391), cat(0xb917ca60f301a979, 0xb6f1b0e082b354fe) }, // 4869
+ { cat(0x244977e2d3f77d85, 0x77343f249a702941), cat(0x9413084d8f348794, 0x925af3e6cef5dd98) }, // 4870
+ { cat(0x06dbf3048658c8d5, 0x8b86cb6dc3e6a868), cat(0xeceb407c18540c20, 0xea2b1fd7b189628d) }, // 4871
+ { cat(0x9f165c039ead6d77, 0xa2d23c57cfebb9ed), cat(0xbd89006346a9a34d, 0x88227fdfc13ab53d) }, // 4872
+ { cat(0x18deb002e5578ac6, 0x1bdb63797322fb24), cat(0x97a0cd1c3887b5d7, 0xa01b997fcdc890fe) }, // 4873
+ { cat(0xc1644cd16ef277a3, 0x5fc56bf58504c506), cat(0xf29ae1c6c0d922f2, 0x99c5c266160db4c9) }, // 4874
+ { cat(0x678370a78bf52c82, 0xb304565e0403d0d2), cat(0xc215816bcd7a825b, 0xae37ceb811a490a1) }, // 4875
+ { cat(0x8602c0860990f068, 0x8f36ab7e699ca70e), cat(0x9b446789712eceaf, 0xbe930bc67483a6e7) }, // 4876
+ { cat(0xa3379a700f4e4d74, 0x185778ca42943e7d), cat(0xf86d727581e47de5, 0xfdb812d720d2a4a5) }, // 4877
+ { cat(0x8292e1f33f71d790, 0x13792d6e9ba9cb97), cat(0xc6bdf52ace5064b7, 0xfe2cdbdf4d755084) }, // 4878
+ { cat(0x9ba8b4c29927dfa6, 0x75fa8abee2ee3c79), cat(0x9efe5dbbd8405093, 0x31bd7cb2a45dda03) }, // 4879
+ { cat(0x2c4121375b72ff70, 0xbcc411316b16c728), cat(0xfe63c92c8d33b41e, 0xb5fbfab76d62f66c) }, // 4880
+ { cat(0xf0341a92af8f32c0, 0x970340f455abd287), cat(0xcb830756d75c9018, 0x9196622c57825ebc) }, // 4881
+ { cat(0x26901542260c289a, 0x126900c377bca86c), cat(0xa2cf391245e3a67a, 0x0e11e82379351897) }, // 4882
+ { cat(0x1ed9aa9b51a353ae, 0x7520cd692c96ed23), cat(0x823f60db6b1c852e, 0x71a7ece92dc413ac) }, // 4883
+ { cat(0xfe2910f8829eec4a, 0x550148a84757e1d1), cat(0xd06567c5782da1e3, 0xe90cae41e2d352ac) }, // 4884
+ { cat(0x64eda72d354bf03b, 0x77343a2039131b0e), cat(0xa6b786379357b4b6, 0x540a25018242a88a) }, // 4885
+ { cat(0xb72485bdc43cc02f, 0x92902e802da8e272), cat(0x855f9e92dc462a2b, 0x766e84013502206e) }, // 4886
+ { cat(0x25073c62d39466b2, 0x8419e400490e371c), cat(0xd565ca8493a376ab, 0xf0b0d335219d00b1) }, // 4887
+ { cat(0x50d296b576105228, 0x69ae50003a71c5b0), cat(0xaab7d536dc82c556, 0x5a270f5db47d9a27) }, // 4888
+ { cat(0xa70edef791a6a820, 0x548b733361f49e27), cat(0x889310f8b0689dde, 0xae85a5e490647b52) }, // 4889
+ { cat(0x0b4afe58e90aa69a, 0x20df1eb89cba96a4), cat(0xda84e7f44d742fca, 0xb0d5d63a80a0c551) }, // 4890
+ { cat(0x3c3bfead873bb87b, 0x4d7f4bc6e3c87883), cat(0xaed0b9903df68ca2, 0x2711782ecd4d6aa7) }, // 4891
+ { cat(0xc9c9988ad2962d2f, 0x7132a3058306c6cf), cat(0x8bda2e0cfe5ed6e8, 0x1f412cf23dd78885) }, // 4892
+ { cat(0xdc75c0de1dbd1518, 0xb51dd1a26b3e0ae5), cat(0xdfc37ce196fe24a6, 0x986847e9fc8c0da2) }, // 4893
+ { cat(0xb05e33e4e4974413, 0xc417dae855cb3beb), cat(0xb302ca4e1264ea1e, 0xe0536cbb30700ae8) }, // 4894
+ { cat(0x26b1c31d83ac3676, 0x36797bed116f6322), cat(0x8f356ea4db83ee7f, 0x19dc56fc26c008ba) }, // 4895
+ { cat(0x711c6b626c46bd89, 0xf0c25fe1b57f0503), cat(0xe5224aa15f397d98, 0x29608b2d0accdac3) }, // 4896
+ { cat(0x5a7d22b5236bcad4, 0xc09b7fe7c4659d9c), cat(0xb74ea21ab2946479, 0xbab3a28a6f0a489c) }, // 4897
+ { cat(0x48641bc41c563bdd, 0x66e2ccb969eae47d), cat(0x92a54e7bc2105061, 0x62294ed525a1d3b0) }, // 4898
+ { cat(0xda39c60693bd2c95, 0x716ae128a977d3fb), cat(0xeaa2172c69b3b3cf, 0x03754aeea29c85e6) }, // 4899
+ { cat(0x7b616b387630f077, 0x8def1a86edf97663), cat(0xbbb4df56baf62972, 0x692aa2588216d185) }, // 4900
+ { cat(0x95e788f9f82726c6, 0x0b25aed257fac51c), cat(0x962a4c45625e878e, 0xba8881e068124137) }, // 4901
+ { cat(0xbca5a7f659d83e09, 0xab6f7e1d59913b5f), cat(0xf043ad3bd0973f4a, 0xc40d9c9a401d3525) }, // 4902
+ { cat(0x3084865eae469807, 0xbc5931b114742f80), cat(0xc036242fda129908, 0x9cd7b07b667dc41e) }, // 4903
+ { cat(0x5a039eb22505466c, 0x96adc15a76c35933), cat(0x99c4e9bfe1a87a6d, 0x4a4626c91ecb034b) }, // 4904
+ { cat(0x299f64503b3ba3e0, 0xf116022a579ef51e), cat(0xf607dc6635da5d7b, 0xaa09d7a83144d212) }, // 4905
+ { cat(0x547f837362961cb3, 0xf4119b5512e590e5), cat(0xc4d316b82b151796, 0x21a179535a9d74db) }, // 4906
+ { cat(0x439935f5e87816f6, 0x5cdae2aa758473eb), cat(0x9d75abc688ddac78, 0x1ae79442aee45d7c) }, // 4907
+ { cat(0x9f5b898973f357f0, 0x94916aaa55a0b977), cat(0xfbef793da7c913f3, 0x5e3f539de4a09593) }, // 4908
+ { cat(0xe5e2d46df65c465a, 0x10745555114d612c), cat(0xc98c60fe1fd40ff5, 0xe4ff7617ea1a1142) }, // 4909
+ { cat(0x84b576be5eb03848, 0x0d29dddda7711a8a), cat(0xa13d1a64e6433ff7, 0xea65f81321ae7435) }, // 4910
+ { cat(0xd0912bcb7ef36039, 0xa4217e4aec5a7ba1), cat(0x80fdaeb71e9c332c, 0xbb84c675b48b902a) }, // 4911
+ { cat(0x1a81dfabfe52338f, 0x6d0263ab13c3f902), cat(0xce62b124fdc6b847, 0x926e0a55edac19de) }, // 4912
+ { cat(0x1534b2effea8293f, 0x8a684fbc0fcffa68), cat(0xa51bc0ea649ef9d2, 0xdb8b3b77f1567b18) }, // 4913
+ };
+
+ protected:
+
+ // _is_multiple_of_pow5[f](m) == (m % 5^f == 0).
+ // Note: here ^ denotes exponentiation (not bitwise xor).
+ static minverse_check<uint128_t> constexpr _is_multiple_of_pow5[] =
+ {
+ { cat(0x0000000000000000, 0x0000000000000001), cat(0xffffffffffffffff, 0xffffffffffffffff) }, // 0
+ { cat(0xcccccccccccccccc, 0xcccccccccccccccd), cat(0x3333333333333333, 0x3333333333333333) }, // 1
+ { cat(0x28f5c28f5c28f5c2, 0x8f5c28f5c28f5c29), cat(0x0a3d70a3d70a3d70, 0xa3d70a3d70a3d70a) }, // 2
+ { cat(0x6e978d4fdf3b645a, 0x1cac083126e978d5), cat(0x020c49ba5e353f7c, 0xed916872b020c49b) }, // 3
+ { cat(0x495182a9930be0de, 0xd288ce703afb7e91), cat(0x0068db8bac710cb2, 0x95e9e1b089a02752) }, // 4
+ { cat(0xdb76b3bb83cf2cf9, 0x5d4e8fb00bcbe61d), cat(0x0014f8b588e368f0, 0x8461f9f01b866e43) }, // 5
+ { cat(0xc57e23f24d8fd5cb, 0x790fb65668c26139), cat(0x000431bde82d7b63, 0x4dad31fcd24e160d) }, // 6
+ { cat(0xc1193a63a91cc45b, 0xe5032477ae8d46a5), cat(0x0000d6bf94d5e57a, 0x42bc3d3290760469) }, // 7
+ { cat(0xf36b7213ee9f5a78, 0xc767074b22e90e21), cat(0x00002af31dc46118, 0x73bf3f70834acdae) }, // 8
+ { cat(0x97157d372fb9787e, 0x8e47ce423a2e9c6d), cat(0x0000089705f4136b, 0x4a59731680a88f89) }, // 9
+ { cat(0x516ab2a4a3251819, 0x4fa7f60d3ed61f49), cat(0x000001b7cdfd9d7b, 0xdbab7d6ae6881cb5) }, // 10
+ { cat(0x76aef08753d43805, 0x0fee64690c913975), cat(0x00000057f5ff85e5, 0x92557f7bc7b4d28a) }, // 11
+ { cat(0xb156301b10c40b34, 0x3662e0e1cf503eb1), cat(0x000000119799812d, 0xea11197f27f0f6e8) }, // 12
+ { cat(0x2377a3389cf4023d, 0xa47a2cf9f6433fbd), cat(0x0000000384b84d09, 0x2ed0384ca19697c8) }, // 13
+ { cat(0x0717ed71b8fd9a0c, 0x54186f653140a659), cat(0x00000000b424dc35, 0x095cd80f538484c1) }, // 14
+ { cat(0xce37fc49f1cc5202, 0x7738164770402145), cat(0x0000000024075f3d, 0xceac2b3643e74dc0) }, // 15
+ { cat(0xf60b3275305c1066, 0xe4a4d1417cd9a041), cat(0x000000000734aca5, 0xf6226f0ada6175f3) }, // 16
+ { cat(0x6468a3b109ac0347, 0xc75429d9e5c5200d), cat(0x000000000170ef54, 0x646d496892137dfd) }, // 17
+ { cat(0xe0e1ba569b88cd74, 0xc1773b91fac10669), cat(0x000000000049c977, 0x47490eae839d7f99) }, // 18
+ { cat(0x93605877b8b4f5e4, 0x26b172506559ce15), cat(0x00000000000ec1e4, 0xa7db69561a52b31e) }, // 19
+ { cat(0x83e011b18b576460, 0xd489e3a9addec2d1), cat(0x000000000002f394, 0x219248446baa23d2) }, // 20
+ { cat(0x4d9336bd1bde4746, 0x90e860bb892c8d5d), cat(0x000000000000971d, 0xa05074da7beed3f6) }, // 21
+ { cat(0xdc50a48c38c60e41, 0x502e79bf1b6f4f79), cat(0x0000000000001e39, 0x2010175ee5962a64) }, // 22
+ { cat(0x9276874f3e8e02d9, 0xdcd618596be30fe5), cat(0x000000000000060b, 0x6cd004ac94513bad) }, // 23
+ { cat(0xea17b4a972e933c5, 0x2c2ad1ab7bfa3661), cat(0x0000000000000135, 0x7c299a88ea76a589) }, // 24
+ { cat(0xfb9e575516fb70c1, 0x08d55d224bfed7ad), cat(0x000000000000003d, 0xe5a1ebb4fbb1544e) }, // 25
+ { cat(0x658611776aff168d, 0x01c445d3a8cc9189), cat(0x000000000000000c, 0x612062576589dda9) }, // 26
+ { cat(0xe11ad04b156637b5, 0xcd27412a54f5b6b5), cat(0x0000000000000002, 0x79d346de4781f921) }, // 27
+ { cat(0xf9d229a89de13e57, 0x8f6e403baa978af1), cat(0x0000000000000000, 0x7ec3daf941806506) }, // 28
+ { cat(0x31f6d521b92d0c77, 0xe97c733f221e4efd), cat(0x0000000000000000, 0x195a5efea6b34767) }, // 29
+ { cat(0xa397c439f1d5cf4b, 0x2eb27d7306d2dc99), cat(0x0000000000000000, 0x051212ffbaf0a7e1) }, // 30
+ { cat(0xed84c0d863912975, 0x6fbd4c4a34909285), cat(0x0000000000000000, 0x01039d66589687f9) }, // 31
+ { cat(0x62b42691ad836eb1, 0x16590f420a835081), cat(0x0000000000000000, 0x0033ec47ab514e65) }, // 32
+ { cat(0x46f0d483891a4956, 0x9e11cfda021a434d), cat(0x0000000000000000, 0x000a6274bbdd0fad) }, // 33
+ { cat(0xa7c9c41a4e9edb77, 0xb936c32b9a0540a9), cat(0x0000000000000000, 0x000213b0f25f6989) }, // 34
+ { cat(0x87f52738761fc57e, 0x583e2708b8677355), cat(0x0000000000000000, 0x00006a5696dfe1e8) }, // 35
+ { cat(0xe7fdd4a4e46cc119, 0x44d93b01be7b1711), cat(0x0000000000000000, 0x0000154484932d2e) }, // 36
+ { cat(0xc7ff90edc748f36b, 0x742b72338c7f049d), cat(0x0000000000000000, 0x00000440e750a2a2) }, // 37
+ { cat(0x8e66502f8e41ca48, 0xb0d57d3d827fcdb9), cat(0x0000000000000000, 0x000000d9c7dced53) }, // 38
+ { cat(0x4fae100982d9f541, 0xbcf77f72b3b32925), cat(0x0000000000000000, 0x0000002b8e5f62aa) }, // 39
+ { cat(0xa98936684d5ecaa6, 0xbf64b316f0bd6ea1), cat(0x0000000000000000, 0x00000008b61313bb) }, // 40
+ { cat(0x21e83e14dc462887, 0xbfe0f09e3025e2ed), cat(0x0000000000000000, 0x00000001be03d0bf) }, // 41
+ { cat(0x6d2e72d0f8dad4e7, 0xf32cfcec700793c9), cat(0x0000000000000000, 0x000000005933f68c) }, // 42
+ { cat(0x7c3c7d5cfe922a94, 0xca3c3295b00183f5), cat(0x0000000000000000, 0x0000000011d7314f) }, // 43
+ { cat(0x18d8e5df661d3bb7, 0x5ba5a3b78999e731), cat(0x0000000000000000, 0x0000000003917043) }, // 44
+ { cat(0x9e91c793146c3f24, 0xabeded8b1b852e3d), cat(0x0000000000000000, 0x0000000000b6b00d) }, // 45
+ { cat(0xb9505b1d6a7c0ca0, 0xef2f95e89f1aa2d9), cat(0x0000000000000000, 0x000000000024899c) }, // 46
+ { cat(0x8b76789f7bb268ec, 0xfca31dfb530553c5), cat(0x0000000000000000, 0x0000000000074eb8) }, // 47
+ { cat(0x1be47e864bf07b62, 0x98ed6c65770110c1), cat(0x0000000000000000, 0x0000000000017624) }, // 48
+ { cat(0x6bfa7fb475967f13, 0xb82f7c144b00368d), cat(0x0000000000000000, 0x0000000000004ad4) }, // 49
+ { cat(0xaf32198a7deae637, 0x24d64c040f000ae9), cat(0x0000000000000000, 0x0000000000000ef7) }, // 50
+ { cat(0x230a051bb2c89471, 0x6dc4759a69666895), cat(0x0000000000000000, 0x00000000000002fe) }, // 51
+ { cat(0xa09b9a9f23c1b749, 0xe2c0e45215147b51), cat(0x0000000000000000, 0x0000000000000099) }, // 52
+ };
+ };
+ } // namespace teju_jagua
+#endif
+
+#endif // TEJU_JAGUA_TABLE128_H
new file mode 100644
@@ -0,0 +1,158 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/table16.h
+ *
+ * 16-bits mantissa conversion table.
+ */
+
+#ifndef TEJU_JAGUA_TABLE16_H
+#define TEJU_JAGUA_TABLE16_H
+
+#include "table.h"
+#include "types.h"
+
+#if !defined(TEJU_JAGUA_USE_TABLE32)
+ #include "table32.h"
+#endif
+
+#include <bits/c++config.h>
+#include <cstdint>
+#include <iterator>
+
+namespace teju_jagua
+{
+ /**
+ * @brief 16-bits tables of mantissa conversion factors and modular inverses.
+ */
+ template <>
+ struct table_base<uint16_t>
+ {
+ /**
+ * @brief Gets the mantissa conversion factor for a given exponent.
+ *
+ * @param The given exponent.
+ *
+ * @returns The factor.
+ */
+ [[nodiscard]] static constexpr
+ parts<uint16_t>
+ factor(int32_t const f)
+ {
+ #if defined(TEJU_JAGUA_USE_TABLE16)
+ int32_t constexpr offset = -41;
+ int32_t const i = f - offset;
+ __glibcxx_assert(0 <= i && uint32_t(i) < std::size(_factors));
+ return _factors[i];
+ #else
+ return table<uint16_t>::factor_from_larger_table(f);
+ #endif
+ }
+
+ private:
+
+ #if defined(TEJU_JAGUA_USE_TABLE16)
+ static parts<uint16_t> constexpr _factors[] =
+ {
+ { 0xd1b9, 0x92ef }, // -41
+ { 0x4f8f, 0xeb19 }, // -40
+ { 0x3fa5, 0xbc14 }, // -39
+ { 0x9951, 0x9676 }, // -38
+ { 0xc21b, 0xf0bd }, // -37
+ { 0xce7c, 0xc097 }, // -36
+ { 0x0b97, 0x9a13 }, // -35
+ { 0xdf57, 0xf684 }, // -34
+ { 0x1913, 0xc537 }, // -33
+ { 0xada9, 0x9dc5 }, // -32
+ { 0x7c41, 0xfc6f }, // -31
+ { 0xc9ce, 0xc9f2 }, // -30
+ { 0x07d8, 0xa18f }, // -29
+ { 0x3979, 0x813f }, // -28
+ { 0x8f28, 0xcecb }, // -27
+ { 0xa5ba, 0xa56f }, // -26
+ { 0x5162, 0x8459 }, // -25
+ { 0x1bcf, 0xd3c2 }, // -24
+ { 0x1640, 0xa968 }, // -23
+ { 0x7833, 0x8786 }, // -22
+ { 0x26b8, 0xd8d7 }, // -21
+ { 0xebc6, 0xad78 }, // -20
+ { 0x2305, 0x8ac7 }, // -19
+ { 0x6b3b, 0xde0b }, // -18
+ { 0xbc2f, 0xb1a2 }, // -17
+ { 0xc9c0, 0x8e1b }, // -16
+ { 0xa932, 0xe35f }, // -15
+ { 0x20f5, 0xb5e6 }, // -14
+ { 0xe72b, 0x9184 }, // -13
+ { 0xa511, 0xe8d4 }, // -12
+ { 0xb741, 0xba43 }, // -11
+ { 0xf901, 0x9502 }, // -10
+ { 0x2801, 0xee6b }, // -9
+ { 0x2001, 0xbebc }, // -8
+ { 0x8001, 0x9896 }, // -7
+ { 0x0001, 0xf424 }, // -6
+ { 0x0001, 0xc350 }, // -5
+ { 0x0001, 0x9c40 }, // -4
+ { 0x0001, 0xfa00 }, // -3
+ { 0x0001, 0xc800 }, // -2
+ { 0x0001, 0xa000 }, // -1
+ { 0x0001, 0x8000 }, // 0
+ { 0xcccd, 0xcccc }, // 1
+ { 0x0a3e, 0xa3d7 }, // 2
+ { 0x6e98, 0x8312 }, // 3
+ { 0x1759, 0xd1b7 }, // 4
+ { 0xac48, 0xa7c5 }, // 5
+ { 0xbd06, 0x8637 }, // 6
+ { 0x94d6, 0xd6bf }, // 7
+ { 0x7712, 0xabcc }, // 8
+ { 0x5f42, 0x8970 }, // 9
+ { 0xfecf, 0xdbe6 }, // 10
+ { 0xff0c, 0xafeb }, // 11
+ { 0xcc0a, 0x8cbc }, // 12
+ { 0x1343, 0xe12e }, // 13
+ { 0xdc36, 0xb424 }, // 14
+ { 0x7cf8, 0x901d }, // 15
+ { 0x94bf, 0xe695 }, // 16
+ { 0xaa33, 0xb877 }, // 17
+ { 0xee8f, 0x9392 }, // 18
+ { 0x4a7e, 0xec1e }, // 19
+ { 0x0865, 0xbce5 }, // 20
+ { 0xa051, 0x971d }, // 21
+ { 0x0081, 0xf1c9 }, // 22
+ { 0x9a01, 0xc16d }, // 23
+ { 0x14ce, 0x9abe }, // 24
+ { 0x87af, 0xf796 }, // 25
+ { 0x0626, 0xc612 }, // 26
+ { 0xd1b8, 0x9e74 }, // 27
+ { 0xb5f3, 0xfd87 }, // 28
+ { 0xf7f6, 0xcad2 }, // 29
+ { 0x5ff8, 0xa242 }, // 30
+ { 0xb32d, 0x81ce }, // 31
+ { 0x1eae, 0xcfb1 }, // 32
+ { 0x4bbe, 0xa627 }, // 33
+ { 0x3c98, 0x84ec }, // 34
+ { 0x2dc0, 0xd4ad }, // 35
+ { 0x249a, 0xaa24 }, // 36
+ };
+ #endif
+
+ protected:
+
+ // _is_multiple_of_pow5[f](m) == (m % 5^f == 0).
+ // Note: here ^ denotes exponentiation (not bitwise xor).
+ static minverse_check<uint16_t> constexpr _is_multiple_of_pow5[] =
+ {
+ { 0x0001, 0xffff }, // 0
+ { 0xcccd, 0x3333 }, // 1
+ { 0x5c29, 0x0a3d }, // 2
+ { 0x78d5, 0x020c }, // 3
+ { 0x7e91, 0x0068 }, // 4
+ { 0xe61d, 0x0014 }, // 5
+ { 0x6139, 0x0004 }, // 6
+ { 0x46a5, 0x0000 }, // 7
+ };
+ };
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TABLE16_H
new file mode 100644
@@ -0,0 +1,164 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/table32.h
+ *
+ * 32-bits mantissa conversion table.
+ */
+
+#ifndef TEJU_JAGUA_TABLE32_H
+#define TEJU_JAGUA_TABLE32_H
+
+#include "table.h"
+#include "types.h"
+
+#if !defined(TEJU_JAGUA_USE_TABLE32)
+ #include "table64.h"
+#endif
+
+#include <bits/c++config.h>
+#include <cstdint>
+#include <iterator>
+
+namespace teju_jagua
+{
+ /**
+ * @brief 32-bits tables of mantissa conversion factors and modular inverses.
+ */
+ template <>
+ struct table_base<uint32_t>
+ {
+ /**
+ * @brief Gets the mantissa conversion factor for a given exponent.
+ *
+ * @param The given exponent.
+ *
+ * @returns The factor.
+ */
+ [[nodiscard]] static constexpr
+ parts<uint32_t>
+ factor(int32_t const f)
+ {
+ #if defined(TEJU_JAGUA_USE_TABLE32)
+ int32_t constexpr offset = -45;
+ int32_t const i = f - offset;
+ __glibcxx_assert(0 <= i && uint32_t(i) < std::size(_factors));
+ return _factors[i];
+ #else
+ return table<uint32_t>::factor_from_larger_table(f);
+ #endif
+ }
+
+ private:
+
+ #if defined(TEJU_JAGUA_USE_TABLE32)
+ static parts<uint32_t> constexpr _factors[] =
+ {
+ { 0x1ae4f38c, 0xb35dbf82 }, // -45
+ { 0x7bea5c70, 0x8f7e32ce }, // -44
+ { 0xc643c71a, 0xe596b7b0 }, // -43
+ { 0x050305ae, 0xb7abc627 }, // -42
+ { 0xd0cf37bf, 0x92efd1b8 }, // -41
+ { 0x1ae525fe, 0xeb194f8e }, // -40
+ { 0xe250eb32, 0xbc143fa4 }, // -39
+ { 0xb50d88f5, 0x96769950 }, // -38
+ { 0xbb48db21, 0xf0bdc21a }, // -37
+ { 0xc90715b4, 0xc097ce7b }, // -36
+ { 0x3a6c115d, 0x9a130b96 }, // -35
+ { 0xc3e01bc7, 0xf684df56 }, // -34
+ { 0x364ce306, 0xc5371912 }, // -33
+ { 0x2b70b59e, 0x9dc5ada8 }, // -32
+ { 0x45812297, 0xfc6f7c40 }, // -31
+ { 0x04674edf, 0xc9f2c9cd }, // -30
+ { 0x36b90be6, 0xa18f07d7 }, // -29
+ { 0xf8940985, 0x813f3978 }, // -28
+ { 0xf4200f3b, 0xcecb8f27 }, // -27
+ { 0x9019a5c9, 0xa56fa5b9 }, // -26
+ { 0x401484a1, 0x84595161 }, // -25
+ { 0xcceda101, 0xd3c21bce }, // -24
+ { 0x0a57b401, 0xa968163f }, // -23
+ { 0x6eac9001, 0x87867832 }, // -22
+ { 0x177a8001, 0xd8d726b7 }, // -21
+ { 0xac620001, 0xad78ebc5 }, // -20
+ { 0x89e80001, 0x8ac72304 }, // -19
+ { 0x76400001, 0xde0b6b3a }, // -18
+ { 0xc5000001, 0xb1a2bc2e }, // -17
+ { 0x04000001, 0x8e1bc9bf }, // -16
+ { 0xa0000001, 0xe35fa931 }, // -15
+ { 0x80000001, 0xb5e620f4 }, // -14
+ { 0x00000001, 0x9184e72a }, // -13
+ { 0x00000001, 0xe8d4a510 }, // -12
+ { 0x00000001, 0xba43b740 }, // -11
+ { 0x00000001, 0x9502f900 }, // -10
+ { 0x00000001, 0xee6b2800 }, // -9
+ { 0x00000001, 0xbebc2000 }, // -8
+ { 0x00000001, 0x98968000 }, // -7
+ { 0x00000001, 0xf4240000 }, // -6
+ { 0x00000001, 0xc3500000 }, // -5
+ { 0x00000001, 0x9c400000 }, // -4
+ { 0x00000001, 0xfa000000 }, // -3
+ { 0x00000001, 0xc8000000 }, // -2
+ { 0x00000001, 0xa0000000 }, // -1
+ { 0x00000001, 0x80000000 }, // 0
+ { 0xcccccccd, 0xcccccccc }, // 1
+ { 0x70a3d70b, 0xa3d70a3d }, // 2
+ { 0x8d4fdf3c, 0x83126e97 }, // 3
+ { 0xe219652c, 0xd1b71758 }, // 4
+ { 0x1b478424, 0xa7c5ac47 }, // 5
+ { 0xaf6c69b6, 0x8637bd05 }, // 6
+ { 0xe57a42bd, 0xd6bf94d5 }, // 7
+ { 0x8461cefd, 0xabcc7711 }, // 8
+ { 0x36b4a598, 0x89705f41 }, // 9
+ { 0xbdedd5bf, 0xdbe6fece }, // 10
+ { 0xcb24aaff, 0xafebff0b }, // 11
+ { 0x6f5088cc, 0x8cbccc09 }, // 12
+ { 0x4bb40e14, 0xe12e1342 }, // 13
+ { 0x095cd810, 0xb424dc35 }, // 14
+ { 0x3ab0acda, 0x901d7cf7 }, // 15
+ { 0xc44de15c, 0xe69594be }, // 16
+ { 0x36a4b44a, 0xb877aa32 }, // 17
+ { 0x921d5d08, 0x9392ee8e }, // 18
+ { 0xb69561a6, 0xec1e4a7d }, // 19
+ { 0x92111aeb, 0xbce50864 }, // 20
+ { 0x74da7bef, 0x971da050 }, // 21
+ { 0xbaf72cb2, 0xf1c90080 }, // 22
+ { 0x95928a28, 0xc16d9a00 }, // 23
+ { 0x44753b53, 0x9abe14cd }, // 24
+ { 0xd3eec552, 0xf79687ae }, // 25
+ { 0x76589ddb, 0xc6120625 }, // 26
+ { 0x91e07e49, 0x9e74d1b7 }, // 27
+ { 0x8300ca0e, 0xfd87b5f2 }, // 28
+ { 0x359a3b3f, 0xcad2f7f5 }, // 29
+ { 0x5e14fc32, 0xa2425ff7 }, // 30
+ { 0x4b43fcf5, 0x81ceb32c }, // 31
+
+ };
+ #endif
+
+ protected:
+
+ // _is_multiple_of_pow5[f](m) == (m % 5^f == 0).
+ // Note: here ^ denotes exponentiation (not bitwise xor).
+ static minverse_check<uint32_t> constexpr _is_multiple_of_pow5[] =
+ {
+ { 0x00000001, 0xffffffff }, // 0
+ { 0xcccccccd, 0x33333333 }, // 1
+ { 0xc28f5c29, 0x0a3d70a3 }, // 2
+ { 0x26e978d5, 0x020c49ba }, // 3
+ { 0x3afb7e91, 0x0068db8b }, // 4
+ { 0x0bcbe61d, 0x0014f8b5 }, // 5
+ { 0x68c26139, 0x000431bd }, // 6
+ { 0xae8d46a5, 0x0000d6bf }, // 7
+ { 0x22e90e21, 0x00002af3 }, // 8
+ { 0x3a2e9c6d, 0x00000897 }, // 9
+ { 0x3ed61f49, 0x000001b7 }, // 10
+ { 0x0c913975, 0x00000057 }, // 11
+ { 0xcf503eb1, 0x00000011 }, // 12
+ { 0xf6433fbd, 0x00000003 }, // 13
+ };
+ };
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TABLE32_H
new file mode 100644
@@ -0,0 +1,720 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/table64.h
+ *
+ * 64-bits mantissa conversion table.
+ */
+
+#ifndef TEJU_JAGUA_TABLE64_H
+#define TEJU_JAGUA_TABLE64_H
+
+#include "table.h"
+#include "types.h"
+
+#if !TEJU_JAGUA_SUPPORTS_UINT128 && !defined(TEJU_JAGUA_USE_TABLE64)
+ #define TEJU_JAGUA_USE_TABLE64
+#endif
+
+#if !defined(TEJU_JAGUA_USE_TABLE64)
+ #include "table128.h"
+#endif
+
+#include <bits/c++config.h>
+#include <cstdint>
+#include <iterator>
+
+namespace teju_jagua
+{
+ /**
+ * @brief 64-bits tables of mantissa conversion factors and modular inverses.
+ */
+ template <>
+ struct table_base<uint64_t>
+ {
+ /**
+ * @brief Gets the mantissa conversion factor for a given exponent.
+ *
+ * @param The given exponent.
+ *
+ * @returns The factor.
+ */
+ [[nodiscard]] static constexpr
+ parts<uint64_t>
+ factor(int32_t const f)
+ {
+ #if defined(TEJU_JAGUA_USE_TABLE64)
+ int32_t constexpr offset = -324;
+ int32_t const i = f - offset;
+ __glibcxx_assert(0 <= i && uint32_t(i) < std::size(_factors));
+ return _factors[i];
+ #else
+ return table<uint64_t>::factor_from_larger_table(f);
+ #endif
+ }
+
+ private:
+
+ #if defined(TEJU_JAGUA_USE_TABLE64)
+ static parts<uint64_t> constexpr _factors[] =
+ {
+ { 0x6c07a2c26a8346d2, 0x9e19db92b4e31ba9 }, // -324
+ { 0x46729e03dd9ed7b6, 0xfcf62c1dee382c42 }, // -323
+ { 0x385bb19cb14bdfc5, 0xca5e89b18b602368 }, // -322
+ { 0x60495ae3c1097fd1, 0xa1e53af46f801c53 }, // -321
+ { 0xe6a1158300d46641, 0x81842f29f2cce375 }, // -320
+ { 0xd768226b34870a01, 0xcf39e50feae16bef }, // -319
+ { 0x12b9b522906c0801, 0xa5c7ea73224deff3 }, // -318
+ { 0xdbc7c41ba6bcd334, 0x849feec281d7f328 }, // -317
+ { 0x5fa60692a46151ec, 0xd433179d9c8cb841 }, // -316
+ { 0xb2eb3875504ddb23, 0xa9c2794ae3a3c69a }, // -315
+ { 0x8f2293910d0b15b6, 0x87cec76f1c830548 }, // -314
+ { 0x18375281ae7822bd, 0xd94ad8b1c7380874 }, // -313
+ { 0x79c5db9af1f9b564, 0xadd57a27d29339f6 }, // -312
+ { 0xfb04afaf27faf783, 0x8b112e86420f6191 }, // -311
+ { 0xf8077f7ea65e58d2, 0xde81e40a034bcf4f }, // -310
+ { 0x2cd2cc6551e513db, 0xb201833b35d63f73 }, // -309
+ { 0x570f09eaa7ea7649, 0x8e679c2f5e44ff8f }, // -308
+ { 0x58180fddd97723a7, 0xe3d8f9e563a198e5 }, // -307
+ { 0xe0133fe4adf8e953, 0xb6472e511c81471d }, // -306
+ { 0x4cdc331d57fa5442, 0x91d28b7416cdd27e }, // -305
+ { 0x47c6b82ef32a206a, 0xe950df20247c83fd }, // -304
+ { 0xd30560258f54e6bb, 0xbaa718e68396cffd }, // -303
+ { 0x0f37801e0c43ebc9, 0x95527a5202df0ccb }, // -302
+ { 0x1858ccfce06cac75, 0xeeea5d5004981478 }, // -301
+ { 0xe0470a63e6bd56c4, 0xbf21e44003acdd2c }, // -300
+ { 0x8038d51cb897789d, 0x98e7e9cccfbd7dbd }, // -299
+ { 0xcd27bb612758c0fb, 0xf4a642e14c6262c8 }, // -298
+ { 0x0a862f80ec4700c9, 0xc3b8358109e84f07 }, // -297
+ { 0x6ed1bf9a569f33d4, 0x9c935e00d4b9d8d2 }, // -296
+ { 0xb14f98f6f0feb952, 0xfa856334878fc150 }, // -295
+ { 0x8dd9472bf3fefaa8, 0xc86ab5c39fa63440 }, // -294
+ { 0xd7e105bcc3326220, 0xa0555e361951c366 }, // -293
+ { 0x7980d163cf5b81b4, 0x80444b5e7aa7cf85 }, // -292
+ { 0x28ce1bd2e55f35ec, 0xcd3a1230c43fb26f }, // -291
+ { 0xba3e7ca8b77f5e56, 0xa42e74f3d032f525 }, // -290
+ { 0xc831fd53c5ff7eac, 0x83585d8fd9c25db7 }, // -289
+ { 0x73832eec6fff3112, 0xd226fc195c6a2f8c }, // -288
+ { 0x5c68f256bfff5a75, 0xa81f301449ee8c70 }, // -287
+ { 0x49ed8eabcccc485e, 0x867f59a9d4bed6c0 }, // -286
+ { 0xa97c177947ad4096, 0xd732290fbacaf133 }, // -285
+ { 0x546345fa9fbdcd45, 0xac2820d9623bf429 }, // -284
+ { 0xa9e904c87fcb0a9e, 0x89b9b3e11b6329ba }, // -283
+ { 0x7641a140cc7810fc, 0xdc5c5301c56b75f7 }, // -282
+ { 0x91ce1a9a3d2cda63, 0xb049dc016abc5e5f }, // -281
+ { 0xdb0b487b6423e1e9, 0x8d07e33455637eb2 }, // -280
+ { 0x5e7873f8a0396974, 0xe1a63853bbd26451 }, // -279
+ { 0xb1f9f660802dedf7, 0xb484f9dc9641e9da }, // -278
+ { 0x27fb2b80668b24c6, 0x906a617d450187e2 }, // -277
+ { 0x0cc512670a783ad5, 0xe7109bfba19c0c9d }, // -276
+ { 0x3d6a751f3b936244, 0xb8da1662e7b00a17 }, // -275
+ { 0xcabb90e5c942b504, 0x93e1ab8252f33b45 }, // -274
+ { 0xddf8e7d60ed1219f, 0xec9c459d51852ba2 }, // -273
+ { 0x4b2d8644d8a74e19, 0xbd49d14aa79dbc82 }, // -272
+ { 0xd5be0503e085d814, 0x976e41088617ca01 }, // -271
+ { 0xbc633b39673c8ced, 0xf24a01a73cf2dccf }, // -270
+ { 0xfd1c2f611f63a3f1, 0xc1d4ce1f63f57d72 }, // -269
+ { 0xca7cf2b4191c8327, 0x9b10a4e5e9913128 }, // -268
+ { 0xdd94b7868e94050b, 0xf81aa16fdc1b81da }, // -267
+ { 0xb143c6053edcd0d6, 0xc67bb4597ce2ce48 }, // -266
+ { 0xf4363804324a40ab, 0x9ec95d1463e8a506 }, // -265
+ { 0xed238cd383aa0111, 0xfe0efb53d30dd4d7 }, // -264
+ { 0x241c70a936219a74, 0xcb3f2f7642717713 }, // -263
+ { 0x8349f3ba91b47b90, 0xa298f2c501f45f42 }, // -262
+ { 0x9c3b29620e29fc74, 0x8213f56a67f6b29b }, // -261
+ { 0x2d2b7569b0432d86, 0xd01fef10a657842c }, // -260
+ { 0x8a892abaf368f138, 0xa67ff273b8460356 }, // -259
+ { 0xd53a88958f872760, 0x8533285c936b35de }, // -258
+ { 0x552a74227f3ea566, 0xd51ea6fa85785631 }, // -257
+ { 0xddbb901b98feeab8, 0xaa7eebfb9df9de8d }, // -256
+ { 0x7e2fa67c7a658893, 0x8865899617fb1871 }, // -255
+ { 0xc9e5d72d90a2741f, 0xda3c0f568cc4f3e8 }, // -254
+ { 0xa184ac2473b529b2, 0xae9672aba3d0c320 }, // -253
+ { 0x1ad089b6c2f7548f, 0x8bab8eefb6409c1a }, // -252
+ { 0x914da9246b255417, 0xdf78e4b2bd342cf6 }, // -251
+ { 0x743e20e9ef511013, 0xb2c71d5bca9023f8 }, // -250
+ { 0x29cb4d87f2a7400f, 0x8f05b1163ba6832d }, // -249
+ { 0x0fabaf3feaa5334b, 0xe4d5e82392a40515 }, // -248
+ { 0x3fbc8c33221dc2a2, 0xb7118682dbb66a77 }, // -247
+ { 0x32fd3cf5b4e49bb5, 0x92746b9be2f8552c }, // -246
+ { 0x84c86189216dc5ee, 0xea53df5fd18d5513 }, // -245
+ { 0x9d6d1ad41abe37f2, 0xbb764c4ca7a4440f }, // -244
+ { 0x4abdaf101564f98f, 0x95f83d0a1fb69cd9 }, // -243
+ { 0xddfc4b4cef07f5b1, 0xeff394dcff8a948e }, // -242
+ { 0x17fd090a58d32af4, 0xbff610b0cc6edd3f }, // -241
+ { 0xacca6da1e0a8ef2a, 0x9991a6f3d6bf1765 }, // -240
+ { 0xae10af696774b1dc, 0xf5b5d7ec8acb58a2 }, // -239
+ { 0xf1a6f2bab92a27e3, 0xc491798a08a2ad4e }, // -238
+ { 0x8e1f289560ee864f, 0x9d412e0806e88aa5 }, // -237
+ { 0x169840ef017da3b2, 0xfb9b7cd9a4a7443c }, // -236
+ { 0xdee033f26797b628, 0xc94930ae1d529cfc }, // -235
+ { 0xb24cf65b8612f820, 0xa1075a24e4421730 }, // -234
+ { 0xc1d72b7c6b42601a, 0x80d2ae83e9ce78f3 }, // -233
+ { 0x36251260ab9d668f, 0xce1de40642e3f4b9 }, // -232
+ { 0xf81da84d56178540, 0xa4e4b66b68b65d60 }, // -231
+ { 0x934aed0aab460433, 0x83ea2b892091e44d }, // -230
+ { 0x1ede48111209a051, 0xd31045a8341ca07c }, // -229
+ { 0x7f1839a741a14d0e, 0xa8d9d1535ce3b396 }, // -228
+ { 0x65acfaec34810a72, 0x8714a775e3e95c78 }, // -227
+ { 0x3c47f7e05401aa4f, 0xd8210befd30efa5a }, // -226
+ { 0x636cc64d1001550c, 0xace73cbfdc0bfb7b }, // -225
+ { 0x82bd6b70d99aaa70, 0x8a5296ffe33cc92f }, // -224
+ { 0xd12f124e28f7771a, 0xdd50f1996b947518 }, // -223
+ { 0x7425a83e872c5f48, 0xb10d8e1456105dad }, // -222
+ { 0x5ceaecfed289e5d3, 0x8da471a9de737e24 }, // -221
+ { 0x2e44ae64840fd61e, 0xe2a0b5dc971f303a }, // -220
+ { 0x2503beb6d00cab4c, 0xb54d5e4a127f59c8 }, // -219
+ { 0x1d9c9892400a22a3, 0x910ab1d4db9914a0 }, // -218
+ { 0xc8fa8db6ccdd0438, 0xe8111c87c5c1ba99 }, // -217
+ { 0x6d953e2bd7173693, 0xb9a74a0637ce2ee1 }, // -216
+ { 0x8addcb5645ac2ba9, 0x9485d4d1c63e8be7 }, // -215
+ { 0x1162def06f79df74, 0xeda2ee1c7064130c }, // -214
+ { 0x744f18c0592e4c5d, 0xbe1bf1b059e9a8d6 }, // -213
+ { 0xc3727a337a8b704b, 0x98165af37b2153de }, // -212
+ { 0x0583f6b8c4124d44, 0xf356f7ebf83552fe }, // -211
+ { 0x6acff893d00ea436, 0xc2abf989935ddbfe }, // -210
+ { 0x88a66076400bb692, 0x9bbcc7a142b17ccb }, // -209
+ { 0xa7709a56ccdf8a83, 0xf92e0c3537826145 }, // -208
+ { 0x52c07b78a3e60869, 0xc75809c42c684dd1 }, // -207
+ { 0x0f0062c6e984d387, 0x9f79a169bd203e41 }, // -206
+ { 0x7e67047175a15272, 0xff290242c83396ce }, // -205
+ { 0x31ec038df7b441f5, 0xcc20ce9bd35c78a5 }, // -204
+ { 0x27f002d7f95d0191, 0xa34d721642b06084 }, // -203
+ { 0xecc0024661173474, 0x82a45b450226b39c }, // -202
+ { 0xe13336d701beba53, 0xd106f86e69d785c7 }, // -201
+ { 0xb428f8ac016561dc, 0xa738c6bebb12d16c }, // -200
+ { 0xf6872d5667844e4a, 0x85c7056562757456 }, // -199
+ { 0x8a71e223d8d3b075, 0xd60b3bd56a5586f1 }, // -198
+ { 0xd527e81cad7626c4, 0xab3c2fddeeaad25a }, // -197
+ { 0x441fece3bdf81f04, 0x88fcf317f22241e2 }, // -196
+ { 0x06997b05fcc0319f, 0xdb2e51bfe9d0696a }, // -195
+ { 0x387ac8d1970027b3, 0xaf58416654a6babb }, // -194
+ { 0x93956d7478ccec8f, 0x8c469ab843b89562 }, // -193
+ { 0x85bbe253f47b1418, 0xe070f78d3927556a }, // -192
+ { 0x37c981dcc395a9ad, 0xb38d92d760ec4455 }, // -191
+ { 0xf96e017d694487bd, 0x8fa475791a569d10 }, // -190
+ { 0x8f1668c8a86da5fb, 0xe5d3ef282a242e81 }, // -189
+ { 0x0c11ed6d538aeb30, 0xb7dcbf5354e9bece }, // -188
+ { 0x09a7f12442d588f3, 0x9316ff75dd87cbd8 }, // -187
+ { 0xa90cb506d155a7eb, 0xeb57ff22fc0c7959 }, // -186
+ { 0x873d5d9f0dde1fef, 0xbc4665b596706114 }, // -185
+ { 0x9f644ae5a4b1b326, 0x969eb7c47859e743 }, // -184
+ { 0x656d44a2a11c51d6, 0xf0fdf2d3f3c30b9f }, // -183
+ { 0x84576a1bb416a7de, 0xc0cb28a98fcf3c7f }, // -182
+ { 0x36ac54e2f678864c, 0x9a3c2087a63f6399 }, // -181
+ { 0x8aad549e57273d46, 0xf6c69a72a3989f5b }, // -180
+ { 0x088aaa1845b8fdd1, 0xc56baec21c7a1916 }, // -179
+ { 0x3a0888136afa64a8, 0x9defbf01b061adab }, // -178
+ { 0x5cda735244c3d43f, 0xfcb2cb35e702af78 }, // -177
+ { 0x7d7b8f7503cfdcff, 0xca28a291859bbf93 }, // -176
+ { 0x6462d92a69731733, 0xa1ba1ba79e1632dc }, // -175
+ { 0x1d1be0eebac278f6, 0x8161afb94b44f57d }, // -174
+ { 0x94f967e45e03f4bc, 0xcf02b2c21207ef2e }, // -173
+ { 0x43fab9837e699096, 0xa59bc234db398c25 }, // -172
+ { 0x69956135febada12, 0x847c9b5d7c2e09b7 }, // -171
+ { 0x42889b8997915ce9, 0xd3fa922f2d1675f2 }, // -170
+ { 0x353a1607ac744a54, 0xa99541bf57452b28 }, // -169
+ { 0x90fb44d2f05d0843, 0x87aa9aff79042286 }, // -168
+ { 0x1b2ba1518094da05, 0xd910f7ff28069da4 }, // -167
+ { 0xaf561aa79a10ae6b, 0xada72ccc20054ae9 }, // -166
+ { 0x25de7bb9480d5855, 0x8aec23d680043bee }, // -165
+ { 0x6fca5f8ed9aef3bc, 0xde469fbd99a05fe3 }, // -164
+ { 0x596eb2d8ae258fc9, 0xb1d219647ae6b31c }, // -163
+ { 0x14588f13be847308, 0x8e41ade9fbebc27d }, // -162
+ { 0xed5a7e85fda0b80c, 0xe39c49765fdf9d94 }, // -161
+ { 0x577b986b314d600a, 0xb616a12b7fe617aa }, // -160
+ { 0xac62e055c10ab33b, 0x91abb422ccb812ee }, // -159
+ { 0x7a37cd5601aab85e, 0xe912b9d1478ceb17 }, // -158
+ { 0x94f971119aeef9e5, 0xba756174393d88df }, // -157
+ { 0xdd945a747bf26184, 0x952ab45cfa97a0b2 }, // -156
+ { 0x95ba2a53f983cf39, 0xeeaaba2e5dbf6784 }, // -155
+ { 0xaafb550ffacfd8fb, 0xbeeefb584aff8603 }, // -154
+ { 0xef2f773ffbd97a62, 0x98bf2f79d5993802 }, // -153
+ { 0x7eb258665fc25d6a, 0xf46518c2ef5b8cd1 }, // -152
+ { 0xfef5138519684abb, 0xc38413cf25e2d70d }, // -151
+ { 0xff2a760414536efc, 0x9c69a97284b578d7 }, // -150
+ { 0xcb772339ba1f17fa, 0xfa42a8b73abbf48c }, // -149
+ { 0x6f92829494e5acc8, 0xc83553c5c8965d3d }, // -148
+ { 0xf2db9baa10b7bd6d, 0xa02aa96b06deb0fd }, // -147
+ { 0xc2494954da2c978a, 0x802221226be55a64 }, // -146
+ { 0x36dba887c37a8c10, 0xcd036837130890a1 }, // -145
+ { 0x5f16206c9c6209a7, 0xa402b9c5a8d3a6e7 }, // -144
+ { 0x7f44e6bd49e807b9, 0x8335616aed761f1f }, // -143
+ { 0x3207d795430cd927, 0xd1ef0244af2364ff }, // -142
+ { 0x8e6cac7768d7141f, 0xa7f26836f282b732 }, // -141
+ { 0x0b8a2392ba45a9b3, 0x865b86925b9bc5c2 }, // -140
+ { 0x45a9d2845d3c42b7, 0xd6f8d7509292d603 }, // -139
+ { 0x0487db9d17636893, 0xabfa45da0edbde69 }, // -138
+ { 0x6a06494a791c53a9, 0x899504ae72497eba }, // -137
+ { 0x76707543f4fa1f74, 0xdc21a1171d42645d }, // -136
+ { 0x5ec05dcff72e7f90, 0xb01ae745b101e9e4 }, // -135
+ { 0x1899e4a65f58660d, 0x8ce2529e2734bb1d }, // -134
+ { 0xf4296dd6fef3d67b, 0xe16a1dc9d8545e94 }, // -133
+ { 0x29babe4598c311fc, 0xb454e4a179dd1877 }, // -132
+ { 0x87c89837ad68db30, 0x9043ea1ac7e41392 }, // -131
+ { 0xa60dc059157491e6, 0xe6d3102ad96cec1d }, // -130
+ { 0xb80b0047445d4185, 0xb8a8d9bbe123f017 }, // -129
+ { 0xc66f336c36b10138, 0x93ba47c980e98cdf }, // -128
+ { 0xa3e51f138ab4cebf, 0xec5d3fa8ce427aff }, // -127
+ { 0xb650e5a93bc3d899, 0xbd176620a501fbff }, // -126
+ { 0xf840b7ba963646e1, 0x9745eb4d50ce6332 }, // -125
+ { 0xc0678c5dbd23a49b, 0xf209787bb47d6b84 }, // -124
+ { 0x0052d6b1641c83af, 0xc1a12d2fc3978937 }, // -123
+ { 0x3375788de9b06959, 0x9ae757596946075f }, // -122
+ { 0x1f225a7ca91a4227, 0xf7d88bc24209a565 }, // -121
+ { 0xb281e1fd541501b9, 0xc646d63501a1511d }, // -120
+ { 0x2867e7fddcdd9afb, 0x9e9f11c4014dda7e }, // -119
+ { 0x73d9732fc7c8f7f7, 0xfdcb4fa002162a63 }, // -118
+ { 0x5cadf5bfd3072cc6, 0xcb090c8001ab551c }, // -117
+ { 0xe3be5e330f38f09e, 0xa26da3999aef7749 }, // -116
+ { 0x4fcb7e8f3f60c07f, 0x81f14fae158c5f6e }, // -115
+ { 0xe612641865679a64, 0xcfe87f7cef46ff16 }, // -114
+ { 0x84db8346b786151d, 0xa6539930bf6bff45 }, // -113
+ { 0x03e2cf6bc604ddb1, 0x850fadc09923329e }, // -112
+ { 0x6c9e18ac7007c91b, 0xd4e5e2cdc1d1ea96 }, // -111
+ { 0xbd4b46f0599fd416, 0xaa51823e34a7eede }, // -110
+ { 0x3109058d147fdcde, 0x884134fe908658b2 }, // -109
+ { 0xe80e6f4820cc9496, 0xda01ee641a708de9 }, // -108
+ { 0xecd8590680a3aa12, 0xae67f1e9aec07187 }, // -107
+ { 0xbd79e0d20082ee75, 0x8b865b215899f46c }, // -106
+ { 0x2f2967b66737e3ee, 0xdf3d5e9bc0f653e1 }, // -105
+ { 0x58edec91ec2cb658, 0xb2977ee300c50fe7 }, // -104
+ { 0x4724bd4189bd5ead, 0x8edf98b59a373fec }, // -103
+ { 0x0b6dfb9c0f956448, 0xe498f455c38b997a }, // -102
+ { 0x6f8b2fb00c77836d, 0xb6e0c377cfa2e12e }, // -101
+ { 0x593c2626705f9c57, 0x924d692ca61be758 }, // -100
+ { 0xf52d09d71a3293be, 0xea1575143cf97226 }, // -99
+ { 0x2a8a6e45ae8edc98, 0xbb445da9ca61281f }, // -98
+ { 0xbba1f1d158724a13, 0x95d04aee3b80ece5 }, // -97
+ { 0xc5cfe94ef3ea101f, 0xefb3ab16c59b14a2 }, // -96
+ { 0x9e3fedd8c321a67f, 0xbfc2ef456ae276e8 }, // -95
+ { 0x7e998b13cf4e1ecc, 0x9968bf6abbe85f20 }, // -94
+ { 0xca8f44ec7ee3647a, 0xf5746577930d6500 }, // -93
+ { 0x3ba5d0bd324f8395, 0xc45d1df942711d9a }, // -92
+ { 0x62eb0d64283f9c77, 0x9d174b2dcec0e47b }, // -91
+ { 0x04ab48a04065c724, 0xfb5878494ace3a5f }, // -90
+ { 0x03bc3a19cd1e38ea, 0xc913936dd571c84c }, // -89
+ { 0x696361ae3db1c722, 0xa0dc75f1778e39d6 }, // -88
+ { 0x544f8158315b05b5, 0x80b05e5ac60b6178 }, // -87
+ { 0xed4c0226b55e6f87, 0xcde6fd5e09abcf26 }, // -86
+ { 0x577001b891185939, 0xa4b8cab1a1563f52 }, // -85
+ { 0x792667c6da79e0fb, 0x83c7088e1aab65db }, // -84
+ { 0xf50a3fa490c30191, 0xd2d80db02aabd62b }, // -83
+ { 0xc40832ea0d68ce0d, 0xa8acd7c0222311bc }, // -82
+ { 0x69a028bb3ded71a4, 0x86f0ac99b4e8dafd }, // -81
+ { 0xdc33745ec97be907, 0xd7e77a8f87daf7fb }, // -80
+ { 0x49c2c37f07965405, 0xacb92ed9397bf996 }, // -79
+ { 0x6e3569326c784338, 0x8a2dbf142dfcc7ab }, // -78
+ { 0x49ef0eb713f39ebf, 0xdd15fe86affad912 }, // -77
+ { 0x3b25a55f43294bcc, 0xb0de65388cc8ada8 }, // -76
+ { 0xfc1e1de5cf543ca3, 0x8d7eb76070a08aec }, // -75
+ { 0xc696963c7eed2dd2, 0xe264589a4dcdab14 }, // -74
+ { 0x6babab6398bdbe42, 0xb51d13aea4a488dd }, // -73
+ { 0xbc8955e946fe31ce, 0x90e40fbeea1d3a4a }, // -72
+ { 0x60dbbca87196b617, 0xe7d34c64a9c85d44 }, // -71
+ { 0xb3e2fd538e122b45, 0xb975d6b6ee39e436 }, // -70
+ { 0x8fe8caa93e74ef6b, 0x945e455f24fb1cf8 }, // -69
+ { 0x4ca7aaa863ee4bde, 0xed63a231d4c4fb27 }, // -68
+ { 0x3d52eeed1cbea318, 0xbde94e8e43d0c8ec }, // -67
+ { 0x97758bf0e3cbb5ad, 0x97edd871cfda3a56 }, // -66
+ { 0x8bef464e3945ef7b, 0xf316271c7fc3908a }, // -65
+ { 0x3cbf6b71c76b25fc, 0xc2781f49ffcfa6d5 }, // -64
+ { 0x63cc55f49f88eb30, 0x9b934c3b330c8577 }, // -63
+ { 0xd2e0898765a7deb3, 0xf8ebad2b84e0d58b }, // -62
+ { 0x424d3ad2b7b97ef6, 0xc722f0ef9d80aad6 }, // -61
+ { 0x01d762422c946591, 0x9f4f2726179a2245 }, // -60
+ { 0x02f236d04753d5b5, 0xfee50b7025c36a08 }, // -59
+ { 0x9bf4f8a69f764491, 0xcbea6f8ceb02bb39 }, // -58
+ { 0xaff72d52192b6a0e, 0xa321f2d7226895c7 }, // -57
+ { 0xbff8f10e7a8921a5, 0x82818f1281ed449f }, // -56
+ { 0xfff4b4e3f741cf6e, 0xd0cf4b50cfe20765 }, // -55
+ { 0x999090b65f67d925, 0xa70c3c40a64e6c51 }, // -54
+ { 0x47a6da2b7f864751, 0x85a36366eb71f041 }, // -53
+ { 0x72a4904598d6d881, 0xd5d238a4abe98068 }, // -52
+ { 0x8eea0d047a457a01, 0xab0e93b6efee0053 }, // -51
+ { 0xa5880a69fb6ac801, 0x88d8762bf324cd0f }, // -50
+ { 0x3c0cdd765f114001, 0xdaf3f04651d47b4c }, // -49
+ { 0x9670b12b7f410001, 0xaf298d050e4395d6 }, // -48
+ { 0x4526f422cc340001, 0x8c213d9da502de45 }, // -47
+ { 0xd50b2037ad200001, 0xe0352f62a19e306e }, // -46
+ { 0xdda2802c8a800001, 0xb35dbf821ae4f38b }, // -45
+ { 0xe4820023a2000001, 0x8f7e32ce7bea5c6f }, // -44
+ { 0x6d9ccd05d0000001, 0xe596b7b0c643c719 }, // -43
+ { 0xf14a3d9e40000001, 0xb7abc627050305ad }, // -42
+ { 0x5aa1cae500000001, 0x92efd1b8d0cf37be }, // -41
+ { 0x5dcfab0800000001, 0xeb194f8e1ae525fd }, // -40
+ { 0x17d955a000000001, 0xbc143fa4e250eb31 }, // -39
+ { 0x1314448000000001, 0x96769950b50d88f4 }, // -38
+ { 0x1e86d40000000001, 0xf0bdc21abb48db20 }, // -37
+ { 0x4b9f100000000001, 0xc097ce7bc90715b3 }, // -36
+ { 0x3c7f400000000001, 0x9a130b963a6c115c }, // -35
+ { 0xc732000000000001, 0xf684df56c3e01bc6 }, // -34
+ { 0x6c28000000000001, 0xc5371912364ce305 }, // -33
+ { 0xf020000000000001, 0x9dc5ada82b70b59d }, // -32
+ { 0x4d00000000000001, 0xfc6f7c4045812296 }, // -31
+ { 0xa400000000000001, 0xc9f2c9cd04674ede }, // -30
+ { 0x5000000000000001, 0xa18f07d736b90be5 }, // -29
+ { 0x4000000000000001, 0x813f3978f8940984 }, // -28
+ { 0x0000000000000001, 0xcecb8f27f4200f3a }, // -27
+ { 0x0000000000000001, 0xa56fa5b99019a5c8 }, // -26
+ { 0x0000000000000001, 0x84595161401484a0 }, // -25
+ { 0x0000000000000001, 0xd3c21bcecceda100 }, // -24
+ { 0x0000000000000001, 0xa968163f0a57b400 }, // -23
+ { 0x0000000000000001, 0x878678326eac9000 }, // -22
+ { 0x0000000000000001, 0xd8d726b7177a8000 }, // -21
+ { 0x0000000000000001, 0xad78ebc5ac620000 }, // -20
+ { 0x0000000000000001, 0x8ac7230489e80000 }, // -19
+ { 0x0000000000000001, 0xde0b6b3a76400000 }, // -18
+ { 0x0000000000000001, 0xb1a2bc2ec5000000 }, // -17
+ { 0x0000000000000001, 0x8e1bc9bf04000000 }, // -16
+ { 0x0000000000000001, 0xe35fa931a0000000 }, // -15
+ { 0x0000000000000001, 0xb5e620f480000000 }, // -14
+ { 0x0000000000000001, 0x9184e72a00000000 }, // -13
+ { 0x0000000000000001, 0xe8d4a51000000000 }, // -12
+ { 0x0000000000000001, 0xba43b74000000000 }, // -11
+ { 0x0000000000000001, 0x9502f90000000000 }, // -10
+ { 0x0000000000000001, 0xee6b280000000000 }, // -9
+ { 0x0000000000000001, 0xbebc200000000000 }, // -8
+ { 0x0000000000000001, 0x9896800000000000 }, // -7
+ { 0x0000000000000001, 0xf424000000000000 }, // -6
+ { 0x0000000000000001, 0xc350000000000000 }, // -5
+ { 0x0000000000000001, 0x9c40000000000000 }, // -4
+ { 0x0000000000000001, 0xfa00000000000000 }, // -3
+ { 0x0000000000000001, 0xc800000000000000 }, // -2
+ { 0x0000000000000001, 0xa000000000000000 }, // -1
+ { 0x0000000000000001, 0x8000000000000000 }, // 0
+ { 0xcccccccccccccccd, 0xcccccccccccccccc }, // 1
+ { 0x3d70a3d70a3d70a4, 0xa3d70a3d70a3d70a }, // 2
+ { 0x645a1cac083126ea, 0x83126e978d4fdf3b }, // 3
+ { 0xd3c36113404ea4a9, 0xd1b71758e219652b }, // 4
+ { 0x0fcf80dc33721d54, 0xa7c5ac471b478423 }, // 5
+ { 0xa63f9a49c2c1b110, 0x8637bd05af6c69b5 }, // 6
+ { 0x3d32907604691b4d, 0xd6bf94d5e57a42bc }, // 7
+ { 0xfdc20d2b36ba7c3e, 0xabcc77118461cefc }, // 8
+ { 0x31680a88f8953031, 0x89705f4136b4a597 }, // 9
+ { 0xb573440e5a884d1c, 0xdbe6fecebdedd5be }, // 10
+ { 0xf78f69a51539d749, 0xafebff0bcb24aafe }, // 11
+ { 0xf93f87b7442e45d4, 0x8cbccc096f5088cb }, // 12
+ { 0x2865a5f206b06fba, 0xe12e13424bb40e13 }, // 13
+ { 0x538484c19ef38c95, 0xb424dc35095cd80f }, // 14
+ { 0x0f9d37014bf60a11, 0x901d7cf73ab0acd9 }, // 15
+ { 0x4c2ebe687989a9b4, 0xe69594bec44de15b }, // 16
+ { 0x09befeb9fad487c3, 0xb877aa3236a4b449 }, // 17
+ { 0x3aff322e62439fd0, 0x9392ee8e921d5d07 }, // 18
+ { 0x2b31e9e3d06c32e6, 0xec1e4a7db69561a5 }, // 19
+ { 0x88f4bb1ca6bcf585, 0xbce5086492111aea }, // 20
+ { 0xd3f6fc16ebca5e04, 0x971da05074da7bee }, // 21
+ { 0x5324c68b12dd6339, 0xf1c90080baf72cb1 }, // 22
+ { 0x75b7053c0f178294, 0xc16d9a0095928a27 }, // 23
+ { 0xc4926a9672793543, 0x9abe14cd44753b52 }, // 24
+ { 0x3a83ddbd83f52205, 0xf79687aed3eec551 }, // 25
+ { 0x95364afe032a819e, 0xc612062576589dda }, // 26
+ { 0x775ea264cf55347e, 0x9e74d1b791e07e48 }, // 27
+ { 0x8bca9d6e188853fd, 0xfd87b5f28300ca0d }, // 28
+ { 0x096ee45813a04331, 0xcad2f7f5359a3b3e }, // 29
+ { 0xa1258379a94d028e, 0xa2425ff75e14fc31 }, // 30
+ { 0x80eacf948770ced8, 0x81ceb32c4b43fcf4 }, // 31
+ { 0x67de18eda5814af3, 0xcfb11ead453994ba }, // 32
+ { 0xecb1ad8aeacdd58f, 0xa6274bbdd0fadd61 }, // 33
+ { 0xbd5af13bef0b113f, 0x84ec3c97da624ab4 }, // 34
+ { 0x955e4ec64b44e865, 0xd4ad2dbfc3d07787 }, // 35
+ { 0xdde50bd1d5d0b9ea, 0xaa242499697392d2 }, // 36
+ { 0x7e50d64177da2e55, 0x881cea14545c7575 }, // 37
+ { 0x96e7bd358c904a22, 0xd9c7dced53c72255 }, // 38
+ { 0xabec975e0a0d081b, 0xae397d8aa96c1b77 }, // 39
+ { 0x2323ac4b3b3da016, 0x8b61313bbabce2c6 }, // 40
+ { 0x6b6c46dec52f6689, 0xdf01e85f912e37a3 }, // 41
+ { 0x55f038b237591ed4, 0xb267ed1940f1c61c }, // 42
+ { 0x77f3608e92adb243, 0x8eb98a7a9a5b04e3 }, // 43
+ { 0x8cb89a7db77c506b, 0xe45c10c42a2b3b05 }, // 44
+ { 0x3d607b97c5fd0d23, 0xb6b00d69bb55c8d1 }, // 45
+ { 0xcab3961304ca70e9, 0x9226712162ab070d }, // 46
+ { 0xaab8f01e6e10b4a7, 0xe9d71b689dde71af }, // 47
+ { 0x5560c018580d5d53, 0xbb127c53b17ec159 }, // 48
+ { 0xdde7001379a44aa9, 0x95a8637627989aad }, // 49
+ { 0x963e66858f6d4441, 0xef73d256a5c0f77c }, // 50
+ { 0xde98520472bdd034, 0xbf8fdb78849a5f96 }, // 51
+ { 0xe546a8038efe402a, 0x993fe2c6d07b7fab }, // 52
+ { 0xd53dd99f4b3066a9, 0xf53304714d9265df }, // 53
+ { 0xaa97e14c3c26b887, 0xc428d05aa4751e4c }, // 54
+ { 0x55464dd69685606c, 0x9ced737bb6c4183d }, // 55
+ { 0xeed6e2f0f0d56713, 0xfb158592be068d2e }, // 56
+ { 0xf245825a5a445276, 0xc8de047564d20a8b }, // 57
+ { 0x5b6aceaeae9d0ec5, 0xa0b19d2ab70e6ed6 }, // 58
+ { 0xe2bbd88bbee40bd1, 0x808e17555f3ebf11 }, // 59
+ { 0x3792f412cb06794e, 0xcdb02555653131b6 }, // 60
+ { 0x5fa8c3423c052dd8, 0xa48ceaaab75a8e2b }, // 61
+ { 0x1953cf68300424ad, 0x83a3eeeef9153e89 }, // 62
+ { 0x8eec7f0d19a03aae, 0xd29fe4b18e88640e }, // 63
+ { 0x3f2398d747b36225, 0xa87fea27a539e9a5 }, // 64
+ { 0x98e947129fc2b4ea, 0x86ccbb52ea94baea }, // 65
+ { 0x5b0ed81dcc6abb10, 0xd7adf884aa879177 }, // 66
+ { 0xe272467e3d222f40, 0xac8b2d36eed2dac5 }, // 67
+ { 0x1b8e9ecb641b5900, 0x8a08f0f8bf0f156b }, // 68
+ { 0xf8e431456cf88e66, 0xdcdb1b2798182244 }, // 69
+ { 0x2d835a9df0c6d852, 0xb0af48ec79ace837 }, // 70
+ { 0x579c487e5a38ad0f, 0x8d590723948a535f }, // 71
+ { 0x25c6da63c38de1b1, 0xe2280b6c20dd5232 }, // 72
+ { 0x1e38aeb6360b1af4, 0xb4ecd5f01a4aa828 }, // 73
+ { 0xb1c6f22b5e6f48c3, 0x90bd77f3483bb9b9 }, // 74
+ { 0xb60b1d1230b20e05, 0xe7958cb87392c2c2 }, // 75
+ { 0xf808e40e8d5b3e6a, 0xb94470938fa89bce }, // 76
+ { 0xf9a0b6720aaf6522, 0x9436c0760c86e30b }, // 77
+ { 0x290123e9aab23b69, 0xed246723473e3813 }, // 78
+ { 0x5400e987bbc1c921, 0xbdb6b8e905cb600f }, // 79
+ { 0xdccd879fc967d41b, 0x97c560ba6b0919a5 }, // 80
+ { 0xfae27299423fb9c4, 0xf2d56790ab41c2a2 }, // 81
+ { 0xfbe85badce996169, 0xc24452da229b021b }, // 82
+ { 0xc986afbe3ee11abb, 0x9b69dbe1b548ce7c }, // 83
+ { 0x75a44c6397ce912b, 0xf8a95fcf88747d94 }, // 84
+ { 0x91503d1c79720dbc, 0xc6ede63fa05d3143 }, // 85
+ { 0x0dd9ca7d2df4d7ca, 0x9f24b832e6b0f436 }, // 86
+ { 0xe2f610c84987bfa9, 0xfea126b7d78186bc }, // 87
+ { 0x4f2b40a03ad2ffba, 0xcbb41ef979346bca }, // 88
+ { 0x728900802f0f32fb, 0xa2f67f2dfa90563b }, // 89
+ { 0x8ed400668c0c28c9, 0x825ecc24c873782f }, // 90
+ { 0x7e2000a41346a7a8, 0xd097ad07a71f26b2 }, // 91
+ { 0xcb4ccd500f6bb953, 0xa6dfbd9fb8e5b88e }, // 92
+ { 0x6f70a4400c562ddc, 0x857fcae62d8493a5 }, // 93
+ { 0x4be76d3346f04960, 0xd59944a37c0752a2 }, // 94
+ { 0xd652bdc29f26a11a, 0xaae103b5fcd2a881 }, // 95
+ { 0x11dbcb0218ebb415, 0x88b402f7fd75539b }, // 96
+ { 0xe95fab368e45ecee, 0xdab99e59958885c4 }, // 97
+ { 0xede622920b6b23f2, 0xaefae51477a06b03 }, // 98
+ { 0x57eb4edb3c55b65b, 0x8bfbea76c619ef36 }, // 99
+ { 0x59787e2b93bc56f8, 0xdff9772470297ebd }, // 100
+ { 0x47939822dc96abfa, 0xb32df8e9f3546564 }, // 101
+ { 0x9fa946824a12232e, 0x8f57fa54c2a9eab6 }, // 102
+ { 0xcc420a6a101d0516, 0xe55990879ddcaabd }, // 103
+ { 0x09ce6ebb40173745, 0xb77ada0617e3bbcb }, // 104
+ { 0x3b0b8bc90012929e, 0x92c8ae6b464fc96f }, // 105
+ { 0x2b45ac74ccea842f, 0xeadab0aba3b2dbe5 }, // 106
+ { 0x890489f70a55368c, 0xbbe226efb628afea }, // 107
+ { 0x3a6a07f8d510f870, 0x964e858c91ba2655 }, // 108
+ { 0x5d767327bb4e5a4d, 0xf07da27a82c37088 }, // 109
+ { 0xe45ec2862f71e1d7, 0xc06481fb9bcf8d39 }, // 110
+ { 0x504bced1bf8e4e46, 0x99ea0196163fa42e }, // 111
+ { 0x4d4617b5ff4a16d6, 0xf64335bcf065d37d }, // 112
+ { 0x0a9e795e65d4df12, 0xc5029163f384a931 }, // 113
+ { 0xd54b944b84aa4c0e, 0x9d9ba7832936edc0 }, // 114
+ { 0xbbac2078d443ace3, 0xfc2c3f3841f17c67 }, // 115
+ { 0xfc89b393dd02f0b6, 0xc9bcff6034c13052 }, // 116
+ { 0xca07c2dcb0cf26f8, 0xa163ff802a3426a8 }, // 117
+ { 0x0806357d5a3f5260, 0x811ccc668829b887 }, // 118
+ { 0x733d226229feea33, 0xce947a3da6a9273e }, // 119
+ { 0xc2974eb4ee658829, 0xa54394fe1eedb8fe }, // 120
+ { 0xcedf722a585139bb, 0x843610cb4bf160cb }, // 121
+ { 0x4aff1d108d4ec2c4, 0xd389b47879823479 }, // 122
+ { 0xd598e40d3dd89bd0, 0xa93af6c6c79b5d2d }, // 123
+ { 0x11471cd764ad4973, 0x87625f056c7c4a8b }, // 124
+ { 0xe871c7bf077ba8b8, 0xd89d64d57a607744 }, // 125
+ { 0x86c16c98d2c953c7, 0xad4ab7112eb3929d }, // 126
+ { 0x6bcdf07a423aa96c, 0x8aa22c0dbef60ee4 }, // 127
+ { 0xac7cb3f6d05ddbdf, 0xddd0467c64bce4a0 }, // 128
+ { 0xbd308ff8a6b17cb3, 0xb1736b96b6fd83b3 }, // 129
+ { 0xca8d3ffa1ef463c2, 0x8df5efabc5979c8f }, // 130
+ { 0x10e1fff697ed6c6a, 0xe3231912d5bf60e6 }, // 131
+ { 0x0d819992132456bb, 0xb5b5ada8aaff80b8 }, // 132
+ { 0x0ace1474dc1d122f, 0x915e2486ef32cd60 }, // 133
+ { 0x77b020baf9c81d18, 0xe896a0d7e51e1566 }, // 134
+ { 0x92f34d62616ce414, 0xba121a4650e4ddeb }, // 135
+ { 0xa8c2a44eb4571cdd, 0x94db483840b717ef }, // 136
+ { 0x746aa07ded582e2d, 0xee2ba6c0678b597f }, // 137
+ { 0xf6bbb397f1135824, 0xbe89523386091465 }, // 138
+ { 0xf89629465a75e01d, 0x986ddb5c6b3a76b7 }, // 139
+ { 0x5a89dba3c3efccfb, 0xf3e2f893dec3f126 }, // 140
+ { 0x486e494fcff30a63, 0xc31bfa0fe5698db8 }, // 141
+ { 0x06bea10ca65c084f, 0x9c1661a651213e2d }, // 142
+ { 0x3dfdce7aa3c673b1, 0xf9bd690a1b68637b }, // 143
+ { 0xfe64a52ee96b8fc1, 0xc7caba6e7c5382c8 }, // 144
+ { 0xfeb6ea8bedefa634, 0x9fd561f1fd0f9bd3 }, // 145
+ { 0xfdf17746497f7053, 0xffbbcfe994e5c61f }, // 146
+ { 0x318df905079926a9, 0xcc963fee10b7d1b3 }, // 147
+ { 0xc13e60d0d2e0ebbb, 0xa3ab66580d5fdaf5 }, // 148
+ { 0x9a984d73dbe722fc, 0x82ef85133de648c4 }, // 149
+ { 0xf75a15862ca504c6, 0xd17f3b51fca3a7a0 }, // 150
+ { 0x2c48113823b73705, 0xa798fc4196e952e7 }, // 151
+ { 0xbd06742ce95f5f37, 0x8613fd0145877585 }, // 152
+ { 0xc80a537b0efefebe, 0xd686619ba27255a2 }, // 153
+ { 0x066ea92f3f326565, 0xab9eb47c81f5114f }, // 154
+ { 0x6b8bba8c328eb784, 0x894bc396ce5da772 }, // 155
+ { 0xdf45f746b74abf3a, 0xdbac6c247d62a583 }, // 156
+ { 0xe5d1929ef90898fb, 0xafbd2350644eeacf }, // 157
+ { 0x1e414218c73a13fc, 0x8c974f7383725573 }, // 158
+ { 0x306869c13ec3532d, 0xe0f218b8d25088b8 }, // 159
+ { 0x59ed216765690f57, 0xb3f4e093db73a093 }, // 160
+ { 0x47f0e785eaba72ac, 0x8ff71a0fe2c2e6dc }, // 161
+ { 0x0cb4a5a3112a5113, 0xe65829b3046b0afa }, // 162
+ { 0x3d5d514f40eea743, 0xb84687c269ef3bfb }, // 163
+ { 0xcab10dd900beec35, 0x936b9fcebb25c995 }, // 164
+ { 0x111b495b3464ad22, 0xebdf661791d60f56 }, // 165
+ { 0x7415d448f6b6f0e8, 0xbcb2b812db11a5de }, // 166
+ { 0x29ab103a5ef8c0ba, 0x96f5600f15a7b7e5 }, // 167
+ { 0xdc44e6c3cb279ac2, 0xf18899b1bc3f8ca1 }, // 168
+ { 0xe36a52363c1faf02, 0xc13a148e3032d6e7 }, // 169
+ { 0x82bb74f8301958cf, 0x9a94dd3e8cf578b9 }, // 170
+ { 0xd12bee59e68ef47d, 0xf7549530e188c128 }, // 171
+ { 0x40eff1e1853f29fe, 0xc5dd44271ad3cdba }, // 172
+ { 0x9a598e4e043287ff, 0x9e4a9cec15763e2e }, // 173
+ { 0x908f4a166d1da664, 0xfd442e4688bd304a }, // 174
+ { 0xa6d90811f0e4851d, 0xca9cf1d206fdc03b }, // 175
+ { 0xb8ada00e5a506a7d, 0xa21727db38cb002f }, // 176
+ { 0xc6f14cd848405531, 0x81ac1fe293d599bf }, // 177
+ { 0x7182148d4066eeb5, 0xcf79cc9db955c2cc }, // 178
+ { 0xf468107100525891, 0xa5fb0a17c777cf09 }, // 179
+ { 0x29ecd9f40041e074, 0x84c8d4dfd2c63f3b }, // 180
+ { 0x7647c32000696720, 0xd47487cc8470652b }, // 181
+ { 0x5e9fcf4ccd211f4d, 0xa9f6d30a038d1dbc }, // 182
+ { 0xe54ca5d70a80e5d7, 0x87f8a8d4cfa417c9 }, // 183
+ { 0x3badd624dd9b0958, 0xd98ddaee19068c76 }, // 184
+ { 0x9624ab50b148d446, 0xae0b158b4738705e }, // 185
+ { 0xde83bc408dd3dd05, 0x8b3c113c38f9f37e }, // 186
+ { 0x6405fa00e2ec94d5, 0xdec681f9f4c31f31 }, // 187
+ { 0xe99e619a4f23aa44, 0xb23867fb2a35b28d }, // 188
+ { 0x547eb47b7282ee9d, 0x8e938662882af53e }, // 189
+ { 0x20caba5f1d9e4a94, 0xe41f3d6a7377eeca }, // 190
+ { 0x1a3bc84c17b1d543, 0xb67f6455292cbf08 }, // 191
+ { 0x7b6306a34627ddd0, 0x91ff83775423cc06 }, // 192
+ { 0x2bd1a438703fc94c, 0xe998d258869facd7 }, // 193
+ { 0x8974836059cca10a, 0xbae0a846d2195712 }, // 194
+ { 0xd45d35e6ae3d4da1, 0x9580869f0e7aac0e }, // 195
+ { 0x86fb897116c87c35, 0xef340a98172aace4 }, // 196
+ { 0xd262d45a78a0635e, 0xbf5cd54678eef0b6 }, // 197
+ { 0x751bdd152d4d1c4b, 0x991711052d8bf3c5 }, // 198
+ { 0xee92fb5515482d45, 0xf4f1b4d515acb93b }, // 199
+ { 0xbedbfc4411068a9d, 0xc3f490aa77bd60fc }, // 200
+ { 0xcbe3303674053bb1, 0x9cc3a6eec6311a63 }, // 201
+ { 0x796b805720085f82, 0xfad2a4b13d1b5d6c }, // 202
+ { 0x6122cd128006b2ce, 0xc8a883c0fdaf7df0 }, // 203
+ { 0x80e8a40eccd228a5, 0xa086cfcd97bf97f3 }, // 204
+ { 0x00ba1cd8a3db53b7, 0x806bd9714632dff6 }, // 205
+ { 0x67902e276c921f8c, 0xcd795be870516656 }, // 206
+ { 0x52d9be85f074e609, 0xa46116538d0deb78 }, // 207
+ { 0x4247cb9e59f71e6e, 0x8380dea93da4bc60 }, // 208
+ { 0xd072df63c324fd7c, 0xd267caa862a12d66 }, // 209
+ { 0xd9f57f830283fdfd, 0xa8530886b54dbdeb }, // 210
+ { 0xae5dff9c02033198, 0x86a8d39ef77164bc }, // 211
+ { 0x7d633293366b828c, 0xd77485cb25823ac7 }, // 212
+ { 0x311c2875c522ced6, 0xac5d37d5b79b6239 }, // 213
+ { 0xf41686c49db57245, 0x89e42caaf9491b60 }, // 214
+ { 0xecf0d7a0fc5583a1, 0xdca04777f541c567 }, // 215
+ { 0xbd8d794d96aacfb4, 0xb080392cc4349dec }, // 216
+ { 0x64712dd7abbbd95d, 0x8d3360f09cf6e4bd }, // 217
+ { 0xd3e8495912c62895, 0xe1ebce4dc7f16dfb }, // 218
+ { 0x0fed077a756b53aa, 0xb4bca50b065abe63 }, // 219
+ { 0x3ff0d2c85def7622, 0x9096ea6f3848984f }, // 220
+ { 0x331aeada2fe589d0, 0xe757dd7ec07426e5 }, // 221
+ { 0x28e2557b59846e40, 0xb913179899f68584 }, // 222
+ { 0x871b7795e136be9a, 0x940f4613ae5ed136 }, // 223
+ { 0xa4f8bf5635246429, 0xece53cec4a314ebd }, // 224
+ { 0x50c6ff782a838354, 0xbd8430bd08277231 }, // 225
+ { 0xa705992ceecf9c43, 0x979cf3ca6cec5b5a }, // 226
+ { 0x3e6f5b7b17b2939e, 0xf294b943e17a2bc4 }, // 227
+ { 0x985915fc12f542e5, 0xc21094364dfb5636 }, // 228
+ { 0x79e0de63425dcf1e, 0x9b407691d7fc44f8 }, // 229
+ { 0xc30163d203c94b63, 0xf867241c8cc6d4c0 }, // 230
+ { 0x359ab6419ca1091c, 0xc6b8e9b0709f109a }, // 231
+ { 0xc47bc5014a1a6db0, 0x9efa548d26e5a6e1 }, // 232
+ { 0xd3f93b35435d7c4d, 0xfe5d54150b090b02 }, // 233
+ { 0xa9942f5dcf7dfd0a, 0xcb7ddcdda26da268 }, // 234
+ { 0x54768c4b0c64ca6f, 0xa2cb1717b52481ed }, // 235
+ { 0x76c53d08d6b70859, 0x823c12795db6ce57 }, // 236
+ { 0xf13b94daf124da27, 0xd0601d8efc57b08b }, // 237
+ { 0xf42faa48c0ea481f, 0xa6b34ad8c9dfc06f }, // 238
+ { 0x5cf2eea09a550680, 0x855c3be0a17fcd26 }, // 239
+ { 0xfb1e4a9a90880a65, 0xd5605fcdcf32e1d6 }, // 240
+ { 0xc8e5087ba6d33b84, 0xaab37fd7d8f58178 }, // 241
+ { 0x6d8406c952429604, 0x888f99797a5e012d }, // 242
+ { 0xaf39a475506a899f, 0xda7f5bf590966848 }, // 243
+ { 0x58fae9f773886e19, 0xaecc49914078536d }, // 244
+ { 0xe0c8bb2c5c6d24e1, 0x8bd6a141006042bd }, // 245
+ { 0x67a791e093e1d49b, 0xdfbdcece67006ac9 }, // 246
+ { 0x861fa7e6dcb4aa16, 0xb2fe3f0b8599ef07 }, // 247
+ { 0xd1b2ecb8b0908811, 0x8f31cc0937ae58d2 }, // 248
+ { 0x82b7e12780e7401b, 0xe51c79a85916f484 }, // 249
+ { 0xcef980ec671f667c, 0xb749faed14125d36 }, // 250
+ { 0x0bfacd89ec191eca, 0x92a1958a7675175f }, // 251
+ { 0x465e15a979c1cadd, 0xea9c227723ee8bcb }, // 252
+ { 0x9eb1aaedfb016f17, 0xbbb01b9283253ca2 }, // 253
+ { 0x4bc1558b2f3458df, 0x96267c7535b763b5 }, // 254
+ { 0x793555ab7eba27cb, 0xf03d93eebc589f88 }, // 255
+ { 0xfa911155fefb5309, 0xc0314325637a1939 }, // 256
+ { 0x2eda7444cbfc426e, 0x99c102844f94e0fb }, // 257
+ { 0x7e2a53a146606a49, 0xf6019da07f549b2b }, // 258
+ { 0xcb550fb4384d21d4, 0xc4ce17b399107c22 }, // 259
+ { 0x6f773fc3603db4aa, 0x9d71ac8fada6c9b5 }, // 260
+ { 0x4bf1ff9f0062baa9, 0xfbe9141915d7a922 }, // 261
+ { 0xa327ffb266b56221, 0xc987434744ac874e }, // 262
+ { 0x1c1fffc1ebc44e81, 0xa139029f6a239f72 }, // 263
+ { 0x7ce66634bc9d0b9a, 0x80fa687f881c7f8e }, // 264
+ { 0xfb0a3d212dc81290, 0xce5d73ff402d98e3 }, // 265
+ { 0x626e974dbe39a873, 0xa5178fff668ae0b6 }, // 266
+ { 0xe858790afe9486c3, 0x8412d9991ed58091 }, // 267
+ { 0x0d5a5b44ca873e04, 0xd3515c2831559a83 }, // 268
+ { 0x711515d0a205cb37, 0xa90de3535aaae202 }, // 269
+ { 0x5a7744a6e804a292, 0x873e4f75e2224e68 }, // 270
+ { 0x90bed43e40076a83, 0xd863b256369d4a40 }, // 271
+ { 0xda3243650005eed0, 0xad1c8eab5ee43b66 }, // 272
+ { 0x482835ea666b2573, 0x8a7d3eef7f1cfc52 }, // 273
+ { 0x40405643d711d584, 0xdd95317f31c7fa1d }, // 274
+ { 0x99cd11cfdf41779d, 0xb1442798f49ffb4a }, // 275
+ { 0xae3da7d97f6792e4, 0x8dd01fad907ffc3b }, // 276
+ { 0x16c90c8f323f516d, 0xe2e69915b3fff9f9 }, // 277
+ { 0xabd40a0c2832a78b, 0xb58547448ffffb2d }, // 278
+ { 0x23100809b9c21fa2, 0x91376c36d99995be }, // 279
+ { 0xd1b3400f8f9cff69, 0xe858ad248f5c22c9 }, // 280
+ { 0xdaf5ccd93fb0cc54, 0xb9e08a83a5e34f07 }, // 281
+ { 0x7bf7d71432f3d6aa, 0x94b3a202eb1c3f39 }, // 282
+ { 0x2cbfbe86b7ec8aa9, 0xedec366b11c6cb8f }, // 283
+ { 0x23cc986bc656d554, 0xbe5691ef416bd60c }, // 284
+ { 0x830a13896b78aaaa, 0x9845418c345644d6 }, // 285
+ { 0x6b43527578c11110, 0xf3a20279ed56d48a }, // 286
+ { 0x229c41f793cda740, 0xc2e801fb244576d5 }, // 287
+ { 0x4ee367f9430aec33, 0x9becce62836ac577 }, // 288
+ { 0x4b0573286b44ad1e, 0xf97ae3d0d2446f25 }, // 289
+ { 0xd59df5b9ef6a2418, 0xc795830d75038c1d }, // 290
+ { 0x77b191618c54e9ad, 0x9faacf3df73609b1 }, // 291
+ { 0x25e8e89c13bb0f7b, 0xff77b1fcbebcdc4f }, // 292
+ };
+ #endif
+
+ protected:
+
+ // _is_multiple_of_pow5[f](m) == (m % 5^f == 0).
+ // Note: here ^ denotes exponentiation (not bitwise xor).
+ static minverse_check<uint64_t> constexpr _is_multiple_of_pow5[] =
+ {
+ { 0x0000000000000001, 0xffffffffffffffff }, // 0
+ { 0xcccccccccccccccd, 0x3333333333333333 }, // 1
+ { 0x8f5c28f5c28f5c29, 0x0a3d70a3d70a3d70 }, // 2
+ { 0x1cac083126e978d5, 0x020c49ba5e353f7c }, // 3
+ { 0xd288ce703afb7e91, 0x0068db8bac710cb2 }, // 4
+ { 0x5d4e8fb00bcbe61d, 0x0014f8b588e368f0 }, // 5
+ { 0x790fb65668c26139, 0x000431bde82d7b63 }, // 6
+ { 0xe5032477ae8d46a5, 0x0000d6bf94d5e57a }, // 7
+ { 0xc767074b22e90e21, 0x00002af31dc46118 }, // 8
+ { 0x8e47ce423a2e9c6d, 0x0000089705f4136b }, // 9
+ { 0x4fa7f60d3ed61f49, 0x000001b7cdfd9d7b }, // 10
+ { 0x0fee64690c913975, 0x00000057f5ff85e5 }, // 11
+ { 0x3662e0e1cf503eb1, 0x000000119799812d }, // 12
+ { 0xa47a2cf9f6433fbd, 0x0000000384b84d09 }, // 13
+ { 0x54186f653140a659, 0x00000000b424dc35 }, // 14
+ { 0x7738164770402145, 0x0000000024075f3d }, // 15
+ { 0xe4a4d1417cd9a041, 0x000000000734aca5 }, // 16
+ { 0xc75429d9e5c5200d, 0x000000000170ef54 }, // 17
+ { 0xc1773b91fac10669, 0x000000000049c977 }, // 18
+ { 0x26b172506559ce15, 0x00000000000ec1e4 }, // 19
+ { 0xd489e3a9addec2d1, 0x000000000002f394 }, // 20
+ { 0x90e860bb892c8d5d, 0x000000000000971d }, // 21
+ { 0x502e79bf1b6f4f79, 0x0000000000001e39 }, // 22
+ { 0xdcd618596be30fe5, 0x000000000000060b }, // 23
+ { 0x2c2ad1ab7bfa3661, 0x0000000000000135 }, // 24
+ { 0x08d55d224bfed7ad, 0x000000000000003d }, // 25
+ { 0x01c445d3a8cc9189, 0x000000000000000c }, // 26
+ };
+ };
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TABLE64_H
new file mode 100644
@@ -0,0 +1,372 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/teju_jagua.h
+ *
+ * Tejú Jaguá implementation.
+ */
+
+#ifndef TEJU_JAGUA_TEJU_JAGUA_H
+#define TEJU_JAGUA_TEJU_JAGUA_H
+
+#include "carriers.h"
+#include "div10.h"
+#include "helpers.h"
+#include "mshift.h"
+#include "table.h"
+#include "table16.h"
+#include "table32.h"
+#include "table64.h"
+#include "table128.h"
+#include "types.h"
+
+#include <climits>
+#include <cstdint>
+#include <cstring>
+#include <limits>
+#include <type_traits>
+
+// Reference:
+
+// [Neri] Neri C. "Tejú Jaguá: a simple and fast algorithm for float-to-string
+// conversion." To appear.
+
+namespace teju_jagua
+{
+ /**
+ * @brief Checks whether x = m * 2^e is an integer less than
+ * 2^Carrier::mantissa_width.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Carrier The carrier type.
+ * @param e The exponent e.
+ * @param m The mantissa m.
+ *
+ * @returns true if x is a "small integer" and false, otherwise.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ bool
+ is_small_integer(int32_t const e, typename Carrier::u1_t const m)
+ {
+ return 0 <= -e && uint32_t(-e) < Carrier::mantissa_width &&
+ is_multiple_of_pow2(-e, m);
+ }
+
+ /**
+ * @brief Finds the shortest decimal representation of x = m * 2^e when
+ * is_small_integer(e, m) == true.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @param e The exponent e.
+ * @param m The mantissa m.
+ *
+ * @pre is_small_integer<Carrier>(e, m) == true.
+ *
+ * @returns The shortest decimal representation of x.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ u_decimal<typename Carrier::u1_t>
+ to_decimal_small_integer(int32_t const e, typename Carrier::u1_t const m)
+ {
+ __glibcxx_assert(is_small_integer<Carrier>(e, m));
+ using u1_t = typename Carrier::u1_t;
+ return remove_trailing_zeros(0, u1_t(1u * m >> -e));
+ }
+
+ /**
+ * @brief The mantissa of uncentred floating-point numbers.
+ */
+ template <typename Carrier>
+ static inline auto constexpr mantissa_uncentred =
+ pow2<typename Carrier::u1_t>(Carrier::mantissa_width - 1u);
+
+ /**
+ * @brief Checks whether x = m * 2^e is centred.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Carrier The carrier type.
+ * @param e The exponent e.
+ * @param m The mantissa m.
+ *
+ * @returns true if x is centred and false, otherwise.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ bool
+ is_centred(int32_t const e, typename Carrier::u1_t const m)
+ {
+ return m != mantissa_uncentred<Carrier> || e == Carrier::exponent_min;
+ }
+
+ /**
+ * @brief Checks whether decimal exponent f allows for mantissa ties.
+ *
+ * @tparam Mantissa The mantissa type.
+ * @param f The exponent f.
+ *
+ * @returns true if f allows for ties and false, otherwise.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ bool
+ allows_ties(int32_t const f)
+ {
+ return table<Mantissa>::can_test_divisibility_by_pow5(f);
+ }
+
+ /**
+ * @brief Checks whether m, for m in { m_a, m_b, c_2 }, yields a tie.
+ *
+ * @tparam Mantissa The mantissa type.
+ * @param f The exponent f, when m == m_a and m == m_b, or
+ * its negation -f when m == c_2.
+ * @param m The number m.
+ *
+ * @returns true if m yields a tie and false, otherwise.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ bool
+ is_tie(int32_t const f, Mantissa const m)
+ {
+ return allows_ties<Mantissa>(f) && is_multiple_of_pow5(f, m);
+ }
+
+ /**
+ * @brief Checks whether mantissa m wins the tiebreak against its neighbour.
+ *
+ * Implements the ties-to-even rule, i.e. m wins the tiebreak if it's even.
+ * Contrarily to other tiebreak rules, this one doesn't depend on the
+ * neighbour that m is competing against or the sign of the floating-point
+ * number.
+ *
+ * @tparam Mantissa The type of m.
+ * @param m The mantissa m.
+ *
+ * @returns true if m wins the tiebreak and false, otherwise.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ bool
+ wins_tiebreak(Mantissa const m)
+ {
+ return m % 2u == 0;
+ }
+
+ /**
+ * @brief Assuming m * 2^e in [c * 10^f, (c + 1) * 10^ f], this function
+ * checks whether m * 2^e is closer to 10^f than to (c + 1) * 10^f.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The mantissa type.
+ * @param c_2 The number c_2, where c = c_2 / 2.
+ *
+ * @returns true if m * 2^e is closer to c * 10^f and false, otherwise.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ bool
+ is_closer_to_left(Mantissa const c_2)
+ {
+ return c_2 % 2u == 0u;
+ }
+
+ /**
+ * @brief Tejú Jaguá for x = m * 2^e when x is centred.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Carrier The carrier type.
+ * @param e The exponent e.
+ * @param m The mantissa m.
+ *
+ * @pre is_centred(e, m) == true.
+ *
+ * @returns The shortest decimal representation of x.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ u_decimal<typename Carrier::u1_t>
+ to_decimal_centred(int32_t const e, typename Carrier::u1_t const m)
+ {
+ using u1_t = typename Carrier::u1_t;
+ uint32_t constexpr width = width_v<u1_t>;
+ uint32_t constexpr mantissa_width = Carrier::mantissa_width;
+
+ // Calculations of m_a, m_b and m_c are safe in the centred case if u1_t
+ // can represent 4 * m << r.
+ bool constexpr is_safe = mantissa_width + 5u <= width;
+ static_assert(is_safe, "BUG: Calculation might overflow.");
+
+ __glibcxx_assert(is_centred<Carrier>(e, m));
+
+ auto const f = log10_pow2(e);
+ auto const r = log10_pow2_residual(e);
+ auto const M = table<u1_t>::factor(f);
+ u1_t const m_b = (2u * m + 1u) << r;
+ u1_t const m_a = (2u * m - 1u) << r;
+ u1_t const b = mshift(m_b, M);
+ u1_t const a = mshift(m_a, M);
+ u1_t const q = div10<mantissa_width>(b);
+ u1_t const s = 10u * q;
+
+ // This branch is an optimisation: the code inside the "if" block can also
+ // handle the opposite case. Indeed, if allows_ties(f) == false, then
+ // is_tie(f, m_b) == false and is_tie(f, m_a) == false, in which case, the
+ // code simplifies to shortest = a < s.
+ if (allows_ties<u1_t>(f))
+ {
+ bool const shortest =
+ s == b ? !is_tie(f, m_b) || wins_tiebreak(m) :
+ s == a ? is_tie(f, m_a) && wins_tiebreak(m) :
+ /*else*/ s > a;
+ if (shortest)
+ return remove_trailing_zeros(f + 1, q);
+ }
+ else if (s > a)
+ return remove_trailing_zeros(f + 1, q);
+
+ u1_t const m_c = 4u * m << r;
+ u1_t const c_2 = mshift(m_c, M);
+ u1_t const c = c_2 / 2u;
+ bool const pick_left = (is_tie(-f, c_2) && wins_tiebreak(c)) ||
+ is_closer_to_left(c_2);
+
+ return {f, u1_t(c + !pick_left)};
+ }
+
+ /**
+ * @brief Checks whether m, for m in { m_a, m_b }, yields a tie in the
+ * uncentred case.
+ *
+ * @tparam Mantissa The mantissa type.
+ * @param f The exponent f.
+ * @param m The number m.
+ *
+ * @returns true if m yields a tie and false, otherwise.
+ */
+ template <typename Mantissa>
+ [[nodiscard]] constexpr
+ bool
+ is_tie_uncentred(int32_t const f, Mantissa const m)
+ {
+ return m % 5u == 0 && is_tie(f, m);
+ }
+
+ /**
+ * @brief Tejú Jaguá for x = m * 2^e when x is uncentred, i.e. m =
+ * mantissa_uncentred<Carrier>.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Carrier The carrier type.
+ * @param e The exponent e.
+ *
+ * @returns The shortest decimal representation.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ u_decimal<typename Carrier::u1_t>
+ to_decimal_uncentred(int32_t const e)
+ {
+ using u1_t = typename Carrier::u1_t;
+ uint32_t constexpr width = width_v<u1_t>;
+ uint32_t constexpr mantissa_width = Carrier::mantissa_width;
+
+ // Calculations of m_a and m_b are safe in the uncentred case if u1_t can
+ // represent (4u * m_0 - 1u) << r.
+ bool constexpr is_safe = mantissa_width + 5u <= width;
+ static_assert(is_safe, "BUG: Calculations might overflow.");
+
+ auto constexpr m = mantissa_uncentred<Carrier>;
+ auto const f = log10_pow2(e);
+ auto const r = log10_pow2_residual(e);
+ auto const M = table<u1_t>::factor(f);
+ u1_t const m_a = (4u * m - 1u) << r;
+ u1_t const m_b = (2u * m + 1u) << r;
+ u1_t const b = mshift(m_b, M);
+ u1_t const a = mshift(m_a, M) / 2u;
+ u1_t const q = div10<mantissa_width>(b);
+ u1_t const s = 10u * q;
+
+ if (Carrier::sorted || a < b)
+ {
+ bool const shortest =
+ s == a ? is_tie_uncentred(f, m_a) && wins_tiebreak(m) :
+ s == b ? !is_tie_uncentred(f, m_b) || wins_tiebreak(m) :
+ /*else*/ s > a;
+ if (shortest)
+ return remove_trailing_zeros(f + 1, q);
+
+ // m_c = 4 * m * pow(2, r) = pow(2, mantissa_width + r + 1)
+ // c_2 = mshift(m_c, U);
+ uint32_t const log2_m_c = mantissa_width + r + 1u;
+ u1_t const c_2 = mshift_pow2(log2_m_c, M);
+ u1_t const c = c_2 / 2u;
+
+ if (c == a && !is_tie_uncentred(f, m_a))
+ return {f, u1_t(c + 1u)};
+
+ bool const pick_left = (is_tie(-f, c_2) && wins_tiebreak(c)) ||
+ is_closer_to_left(c_2);
+
+ return {f, u1_t(c + !pick_left)};
+ }
+
+ if (is_tie_uncentred(f, m_a))
+ return remove_trailing_zeros(f, a);
+
+ // Calculation of m_c is safe in the refined uncentred case if the
+ // execution never gets here (Carrier::sorted == true) or u1_t can
+ // represent m_c = 40u * m << r.
+ bool const is_safe_refined = Carrier::sorted ||
+ mantissa_width + 8u <= width;
+ static_assert(is_safe_refined, "BUG: Calculations might overflow.");
+
+ u1_t const m_c = 40u * m << r;
+ u1_t const c_2 = mshift(m_c, M);
+ u1_t const c = c_2 / 2u;
+
+ bool const pick_left = (is_tie(-f, c_2) && wins_tiebreak(c)) ||
+ is_closer_to_left(c_2);
+
+ return {f - 1, u1_t(c + !pick_left)};
+ }
+
+ /**
+ * @brief Finds the shortest decimal representation of x = m * 2^e.
+ * number.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Carrier The carrier type.
+ * @param binary The binary representation of x.
+ *
+ * @returns The shortest decimal representation.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ u_decimal<typename Carrier::u1_t>
+ to_decimal(u_binary<typename Carrier::u1_t> const binary)
+ {
+ auto const [e, m] = binary;
+
+ if (is_small_integer<Carrier>(e, m))
+ return to_decimal_small_integer<Carrier>(e, m);
+
+ if (is_centred<Carrier>(e, m))
+ return to_decimal_centred<Carrier>(e, m);
+
+ return to_decimal_uncentred<Carrier>(e);
+ }
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TEJU_JAGUA_H
new file mode 100644
@@ -0,0 +1,330 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/to_decimal.h
+ *
+ * Conversions from floating-point numbers to their shortest decimal
+ * representation.
+ */
+
+#ifndef TEJU_JAGUA_TO_DECIMAL_H
+#define TEJU_JAGUA_TO_DECIMAL_H
+
+#include "carriers.h"
+#include "helpers.h"
+#include "teju_jagua.h"
+#include "types.h"
+
+namespace teju_jagua
+{
+ /**
+ * @brief Gets the carrier for a given floating-point value.
+ *
+ * @tparam Carrier The carrier type.
+ * @tparam Float The floating-point number type.
+ * @param value The given floating-point value.
+ *
+ * @pre sizeof(typename Carrier::payload_t) == sizeof(Float).
+ *
+ * @returns The carrier.
+ */
+ template <typename Carrier, typename Float>
+ [[nodiscard]] constexpr
+ Carrier
+ to_carrier(Float const value)
+ {
+ using payload_t = typename Carrier::payload_t;
+ static_assert(sizeof(payload_t) == sizeof(Float),
+ "BUG: Invalid sizes.");
+ auto const payload = __builtin_bit_cast(payload_t, value);
+ return {payload};
+ };
+
+
+#if defined(_GLIBCXX_LDOUBLE_IS_X86_EXTENDED)
+ /**
+ * @brief Gets the carrier for a x86 extended long double value.
+ *
+ * This specialisation takes into account that long doubles of x86 extended
+ * format might have 96 bits (-m96bit-long-double) or 128 bits
+ * (-m128bit-long-double).
+ *
+ * @param value The given floating-point value.
+ *
+ * @returns The carrier.
+ */
+ template <>
+ [[nodiscard]] /*non-constexpr*/
+ x86_extended
+ to_carrier<x86_extended, long double>(long double value)
+ {
+ static_assert(sizeof(uint128_t) >= sizeof(long double),
+ "BUG: Invalid sizes.");
+ static_assert(__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__,
+ "BUG: Invalid endianness.");
+ uint128_t payload{}; // zero out padding bits.
+ // __builtin_bit_cast has undefined behaviour if source and target don't
+ // have the same size. Therefore, we use memcpy instead. Consequently,
+ // this function can't be constexpr.
+ std::memcpy(&payload, &value, sizeof(value));
+ return {payload};
+ };
+#endif
+
+ /**
+ * @brief Gets the binary representation of a given IEEE-754-like
+ * floating-point number.
+ *
+ * @tparam Carrier The carrier type.
+ * @param carrier The carrier.
+ *
+ * @returns The binary representation of the given number.
+ */
+ template <typename Carrier>
+ [[nodiscard]] constexpr
+ s_binary<typename Carrier::u1_t>
+ to_binary(Carrier const carrier, typename Carrier::is_ieee754* = nullptr)
+ {
+ using payload_t = typename Carrier::payload_t;
+ using u1_t = typename Carrier::u1_t;
+
+ uint32_t constexpr mantissa_width = Carrier::mantissa_width;
+ uint32_t constexpr exponent_width = width_v<payload_t> - mantissa_width;
+ int32_t constexpr exponent_min = Carrier::exponent_min;
+
+ static_assert(exponent_width <= 32, "BUG: Invalid widths.");
+
+ payload_t payload = carrier.payload;
+
+ u1_t mantissa = lsb(payload, mantissa_width - 1u);
+ payload >>= (mantissa_width - 1u);
+
+ int32_t exponent = static_cast<int32_t>(lsb(payload, exponent_width));
+ payload >>= exponent_width;
+
+ bool const is_negative = payload != 0;
+
+ if (exponent != 0u)
+ {
+ exponent -= 1;
+ mantissa |= pow2<u1_t>(mantissa_width - 1u);
+ }
+
+ exponent += exponent_min;
+ return {{exponent, mantissa}, is_negative};
+ }
+
+ /**
+ * @brief Gets the binary representation of a given x86-extended precision
+ * floating-point number.
+ *
+ * @param carrier The carrier.
+ *
+ * @returns The binary representation of the given number.
+ */
+ [[nodiscard]] constexpr
+ s_binary<typename x86_extended::u1_t>
+ to_binary(x86_extended const carrier)
+ {
+ using carrier_t = x86_extended;
+ using payload_t = typename carrier_t::payload_t;
+ using u1_t = typename carrier_t::u1_t;
+
+ uint32_t constexpr mantissa_width = carrier_t::mantissa_width;
+ uint32_t constexpr exponent_width = 15u;
+ int32_t constexpr exponent_min = carrier_t::exponent_min;
+
+ payload_t payload = carrier.payload;
+
+ u1_t mantissa = lsb(payload, mantissa_width);
+ payload >>= mantissa_width;
+
+ int32_t exponent = static_cast<int32_t>(lsb(payload, exponent_width));
+ payload >>= exponent_width;
+
+ bool const is_negative = payload != 0;
+
+ exponent += exponent_min;
+ return {{exponent, mantissa}, is_negative};
+ }
+
+ /**
+ * @brief Gets the binary representation of a given IBM128 floating-point
+ * number.
+ *
+ * @param carrier The carrier.
+ *
+ * @returns The binary representation of the given number.
+ */
+ [[nodiscard]] constexpr
+ s_binary<uint128_t>
+ to_binary(ibm128 const carrier)
+ {
+ using carrier_for_part = ieee754_binary64;
+ auto high = to_binary(carrier_for_part{carrier.high()});
+ auto low = to_binary(carrier_for_part{carrier.low ()});
+
+ auto [high_exponent, high_mantissa] = high.absolute;
+ auto [low_exponent , low_mantissa ] = low .absolute;
+
+ __glibcxx_assert(high_exponent >= low_exponent);
+
+ auto const is_negative = high.is_negative;
+ auto exponent = high_exponent - 54;
+ auto mantissa = uint128_t{high_mantissa} << 54;
+
+ int const exponent_diff = exponent - low_exponent;
+
+ if (exponent_diff > 63)
+ low_mantissa = 0;
+ else if (exponent_diff >= 0)
+ low_mantissa >>= exponent_diff;
+ else
+ low_mantissa <<= -exponent_diff;
+
+ int adjustment = 1;
+ if (high.is_negative == low.is_negative)
+ {
+ mantissa += low_mantissa + 1;
+ adjustment += mantissa >= (uint128_t{1} << 107);
+ }
+ else
+ {
+ mantissa -= low_mantissa;
+ adjustment -= mantissa < (uint128_t{1} << 106);
+ }
+ mantissa >>= adjustment;
+ exponent += adjustment;
+
+ return {{exponent, mantissa}, is_negative};
+ }
+
+ /**
+ * @brief Gets the shortest decimal representation of a floating-point number.
+ *
+ * @tparam Carrier The carrier type.
+ * @tparam Float The floating-point type.
+ * @param value The floating-point value.
+ *
+ * @returns The shortest decimal representation of a floating-point number.
+ */
+ template <typename Carrier, typename Float>
+ [[nodiscard]] constexpr
+ s_decimal<typename Carrier::u1_t>
+ to_decimal(Float const value)
+ {
+ auto const carrier = to_carrier<Carrier>(value);
+ auto const s_binary = to_binary(carrier);
+ auto const u_decimal = to_decimal<Carrier>(s_binary.absolute);
+ return { u_decimal, s_binary.is_negative };
+ }
+
+ /**
+ * @brief Gets the shortest decimal representation of a given float value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint32_t>
+ to_decimal(float const value)
+ {
+ static_assert(_GLIBCXX_FLOAT_IS_IEEE_BINARY32,
+ "Bug: std::to_chars can't support float.");
+ return to_decimal<ieee754_binary32>(value);
+ }
+
+ /**
+ * @brief Gets the shortest decimal representation of a given double value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint64_t>
+ to_decimal(double const value)
+ {
+ static_assert(_GLIBCXX_DOUBLE_IS_IEEE_BINARY64,
+ "Bug: std::to_chars can't support double.");
+ return to_decimal<ieee754_binary64>(value);
+ }
+
+ /**
+ * @brief Gets the shortest decimal representation of a given long double
+ * value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint128_t>
+ to_decimal(long double const value)
+ {
+#if _GLIBCXX_LDOUBLE_IS_X86_EXTENDED
+ using carrier = x86_extended;
+#elif _GLIBCXX_LDOUBLE_IS_IBM128
+ using carrier = ibm128;
+#elif _GLIBCXX_LDOUBLE_IS_IEEE_BINARY128
+ using carrier = ieee754_binary128;
+#else
+#error "Uknown long double format."
+#endif
+ return to_decimal<carrier>(value);
+ }
+
+#if defined(__FLT16_DIG__)
+
+ /**
+ * @brief Gets the shortest decimal representation of a given _Float16 value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint16_t>
+ to_decimal(_Float16 const value)
+ { return to_decimal<ieee754_binary16>(value); }
+
+#endif
+
+#if defined(__FLT128_DIG__)
+
+ /**
+ * @brief Gets the shortest decimal representation of a given _Float128 value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint128_t>
+ to_decimal(const _Float128 value)
+ { return to_decimal<ieee754_binary128>(value); }
+
+#endif
+
+#if defined(__BFLT16_DIG__)
+
+ /**
+ * @brief Gets the shortest decimal representation of a given brain-float
+ * value.
+ *
+ * @param value The given value.
+ *
+ * @returns The shortest decimal representation of the given value.
+ */
+ [[nodiscard]] constexpr
+ s_decimal<uint16_t>
+ to_decimal(__gnu_cxx::__bfloat16_t const value)
+ { return to_decimal<bfloat16>(value); }
+
+#endif
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TO_DECIMAL_H
new file mode 100644
@@ -0,0 +1,177 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+/**
+ * @file teju_jagua/types.h
+ *
+ * Types and type traits.
+ */
+
+#ifndef TEJU_JAGUA_TYPES_H
+#define TEJU_JAGUA_TYPES_H
+
+#include <cstdint>
+#include <climits>
+#include <iterator>
+
+namespace teju_jagua
+{
+ // In general, we should have:
+ //
+ // #if defined(__SIZEOF_INT128__)
+ // #define TEJU_JAGUA_SUPPORTS_UINT128 1
+ // using uint128_t = unsigned __int128;
+ // #else
+ // #define TEJU_JAGUA_SUPPORTS_UINT128 0
+ // using uint128_t = void;
+ // #endif
+ //
+ // However, for libstdc++ Tejú Jaguá assumes that uint128_t is defined, either
+ // as an alias for unsigned __int128 or it's the class implemented in
+ // uint128_t.h.
+ #define TEJU_JAGUA_SUPPORTS_UINT128 1
+
+ /**
+ * @brief Gets the width (number of bits) of a given type.
+ *
+ * @tparam T The given type.
+ *
+ * @returns The width.
+ */
+ template <typename T>
+ uint32_t constexpr width_v = sizeof(T) * CHAR_BIT;
+
+ /**
+ * @brief Checks whether a given type is uint8_t, uint16_t, uint32_t, uint64_t
+ * or, if TEJU_JAGUA_SUPPORTS_UINT128 == 1, uint128_t.
+ *
+ * @tparam UInt The given type.
+ */
+ template <typename UInt>
+ bool constexpr is_uint_v = std::is_same_v<UInt, uint8_t> ||
+ std::is_same_v<UInt, uint16_t> || std::is_same_v<UInt, uint32_t> ||
+ std::is_same_v<UInt, uint64_t> ||
+ (TEJU_JAGUA_SUPPORTS_UINT128 == 1 && std::is_same_v<UInt, uint128_t>);
+
+ /**
+ * @brief The unsigned integer type that is 2x the width of a given type.
+ *
+ * @tparam T The given type.
+ *
+ * @pre width_v<UInt> is one of 8, 16, 32 or 64 and, when it is 64, then
+ * TEJU_JAGUA_SUPPORTS_UINT128 must be set to 1.
+ */
+ template <typename T>
+ using u2_t =
+ std::conditional_t<width_v<T> == 8, uint16_t,
+ std::conditional_t<width_v<T> == 16, uint32_t,
+ std::conditional_t<width_v<T> == 32, uint64_t,
+ std::conditional_t<width_v<T> == 64 && TEJU_JAGUA_SUPPORTS_UINT128,
+ uint128_t, void>>>>;
+
+ /**
+ * @brief The unsigned integer type that is 4x the width of a given type.
+ *
+ * @tparam T The given type.
+ *
+ * @pre width_v<UInt> is one of 8, 16 or 32 and, when it is 32, then
+ * TEJU_JAGUA_SUPPORTS_UINT128 must be set to 1.
+ */
+ template <typename T>
+ using u4_t =
+ std::conditional_t<width_v<T> == 8, uint32_t,
+ std::conditional_t<width_v<T> == 16, uint64_t,
+ std::conditional_t<width_v<T> == 32 && TEJU_JAGUA_SUPPORTS_UINT128,
+ uint128_t, void>>>;
+
+ //----------------------------------------------------------------------------
+ // Field representations
+ //----------------------------------------------------------------------------
+
+ /**
+ * @brief Field representation of numbers of the form m * b^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ * @tparam base The value of b.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa, uint32_t base>
+ struct u_fields
+ {
+ static_assert(is_uint_v<Mantissa>, "BUG: Invalid type.");
+ int32_t exponent;
+ Mantissa mantissa;
+ };
+
+ /**
+ * @brief Field representation of numbers of the form m * 2^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa>
+ using u_binary = u_fields<Mantissa, 2>;
+
+ /**
+ * @brief Field representation of numbers of the form m * 10^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa>
+ using u_decimal = u_fields<Mantissa, 10>;
+
+ /**
+ * @brief Field representation of numbers of the form ± m * b^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ * @tparam base The value of b.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa, uint32_t base>
+ struct s_fields
+ {
+ static_assert(is_uint_v<Mantissa>, "BUG: Invalid type.");
+ u_fields<Mantissa, base> absolute;
+ bool is_negative;
+ };
+
+ /**
+ * @brief Field representation of numbers of the form ± m * 2^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa>
+ using s_binary = s_fields<Mantissa, 2>;
+
+ /**
+ * @brief Field representation of numbers of the form ± m * 10^e.
+ *
+ * @note Here ^ denotes exponentiation (not bitwise xor).
+ *
+ * @tparam Mantissa The type of m.
+ *
+ * @pre is_uint_v<Mantissa> == true.
+ */
+ template <typename Mantissa>
+ using s_decimal = s_fields<Mantissa, 10>;
+
+} // namespace teju_jagua
+
+#endif // TEJU_JAGUA_TYPES_H
@@ -160,10 +160,18 @@ struct uint128_t
friend constexpr uint128_t
operator/(const uint128_t x, const uint128_t y)
{
- // Ryu performs 128-bit division only by 5 and 10, so that's what we
- // implement. The strategy here is to relate division of x with that of
- // x.hi and x.lo separately.
+ // Tejú Jaguá and Ryu perform 128-bit division only by 5, 10 and powers of
+ // 2, so that's what we implement. The strategy here is to relate division
+ // of x with that of x.hi and x.lo separately.
+
+ __glibcxx_assert(y != 0);
+
+ const uint128_t ym1 = y - 1;
+ if ((y & ym1) == 0) // y is a power of two.
+ return x >> (__builtin_popcountg(ym1.lo) + __builtin_popcountg(ym1.hi));
+
__glibcxx_assert(y == 5 || y == 10);
+
// The following implements division by 5 and 10. In either case, we
// first compute division by 5:
// x/5 = (x.hi*2^64 + x.lo)/5
@@ -185,12 +193,19 @@ struct uint128_t
friend constexpr uint128_t
operator%(const uint128_t x, const uint128_t y)
{
- // Ryu performs 128-bit modulus only by 2, 5 and 10, so that's what we
- // implement. The strategy here is to relate modulus of x with that of
- // x.hi and x.lo separately.
- if (y == 2)
- return x & 1;
+ // Tejú Jaguá and Ryu perform 128-bit modulus only by 5, 10 and powers of
+ // 2, so that's what we implement. The strategy here is to relate modulus
+ // of x with that of x.hi and x.lo separately.
+
+ __glibcxx_assert(y != 0);
+
+ const uint128_t ym1 = y - 1;
+ if ((y & ym1) == 0)
+ // y is a power of two.
+ return x & ym1;
+
__glibcxx_assert(y == 5 || y == 10);
+
// The following implements modulus by 5 and 10. In either case,
// we first compute modulus by 5:
// x (mod 5) = x.hi*2^64 + x.lo (mod 5)
@@ -220,6 +235,10 @@ struct uint128_t
operator<(const uint128_t x, const uint128_t y)
{ return x.hi < y.hi || (x.hi == y.hi && x.lo < y.lo); }
+ friend constexpr bool
+ operator<=(const uint128_t x, const uint128_t y)
+ { return !(y < x); }
+
friend constexpr auto
__bit_width(const uint128_t x)
{
new file mode 100644
@@ -0,0 +1,155 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+// { dg-options "-std=gnu++23" }
+// { dg-do run { target c++23_only } }
+
+// Benchmark to_chars.
+
+#include <charconv>
+#include <chrono>
+#include <cstdint>
+#include <limits>
+#include <print>
+#include <random>
+#include <stdfloat>
+#include <vector>
+
+using nanoseconds = std::chrono::duration<double,
+ std::chrono::nanoseconds::period>;
+
+#if defined(__SIZEOF_INT128__)
+ using uint128_t = unsigned __int128;
+#endif
+
+template <typename Float>
+ using uint_t =
+ std::conditional_t<sizeof(Float) == sizeof( uint8_t), uint8_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint16_t), uint16_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint32_t), uint32_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint64_t), uint64_t,
+#if defined(__SIZEOF_INT128__)
+ std::conditional_t<sizeof(Float) == sizeof(uint128_t), uint128_t, void>>>>>;
+#else
+ void>>>>;
+#endif
+
+template <typename Float>
+ struct random_float_generator
+ {
+ using uint_t = ::uint_t<Float>;
+ using dist_t = std::uniform_int_distribution<uint_t>;
+
+ random_float_generator()
+ {
+ auto constexpr min = std::numeric_limits<Float>::denorm_min();
+ auto constexpr max = std::numeric_limits<Float>::max();
+ dist_ = dist_t(std::bit_cast<uint_t>(min), std::bit_cast<uint_t>(max));
+ }
+
+ [[nodiscard]]
+ Float
+ get_value()
+ {
+ return std::bit_cast<Float>(dist_(device_));
+ }
+
+ private:
+ dist_t dist_;
+ std::mt19937_64 device_{};
+ };
+
+#if __LDBL_MANT_DIG__ == 106
+// Not all bit 128-bits patterns from denorm_min to max are valid ibm128 values.
+// Hence, the primary template doesn't work and we need an specialisation.
+template <>
+ struct random_float_generator<long double>
+ {
+ [[nodiscard]]
+ long double
+ get_value()
+ {
+ auto constexpr factor_up = 1.0l + 1.0l / (uint64_t{1} << 53);
+ auto constexpr factor_down = 1.0l - 1.0l / (uint64_t{1} << 53);
+
+ long double const high = double_generator_.get_value();
+ long double const other = double_generator_.get_value();
+ if (high < other) // randomly pick the factor (up or down).
+ return high * factor_up;
+ return high * factor_down;
+ }
+
+ private:
+ random_float_generator<double> double_generator_;
+ };
+#endif
+
+template <typename Float>
+ [[nodiscard]]
+ std::vector<Float> get_values()
+ {
+ auto constexpr n_values = 1u << 20;
+
+ std::vector<Float> values;
+ values.reserve(n_values);
+
+ random_float_generator<Float> generator_;
+
+ for (unsigned n = 0; n < n_values; ++n)
+ values.push_back(generator_.get_value());
+
+ return values;
+ }
+
+template <typename Float, typename F>
+ [[nodiscard]]
+ nanoseconds
+ benchmark(std::vector<Float> const& values, F f)
+ {
+ auto const t0 = std::chrono::time_point_cast<nanoseconds>(
+ std::chrono::steady_clock::now());
+ for (Float const value : values)
+ f(value);
+ auto const t1 = std::chrono::time_point_cast<nanoseconds>(
+ std::chrono::steady_clock::now());
+ auto const mean_time = (t1 - t0) / values.size();
+ return mean_time;
+ }
+
+template <typename Float>
+ void
+ benchmark(char const* const type)
+ {
+ auto const values = get_values<Float>();
+
+ char buffer[128] = {};
+
+ auto time = benchmark(values, [&](Float const value)
+ {
+ auto r = std::to_chars(std::begin(buffer), std::end(buffer), value,
+ std::chars_format::scientific);
+ });
+
+ std::println("{: >11} | {: >11} |", type, time);
+ }
+
+int
+main()
+{
+ std::println("{: >11} | {: >11} |", "", "teju jagua");
+
+ benchmark<float > ("float" );
+ benchmark<double > ("double" );
+#if defined(__SIZEOF_INT128__)
+ benchmark<long double> ("long double");
+#endif
+#if defined(__STDCPP_FLOAT16_T__)
+ benchmark<std::float16_t>("float16_t" );
+#endif
+#if defined(__STDCPP_FLOAT128_T__) && defined(__SIZEOF_INT128__)
+ benchmark<std::float128_t>("float128_t" );
+#endif
+#if defined(__STDCPP_BFLOAT16_T__)
+ benchmark<std::bfloat16_t>("bfloat16_t" );
+#endif
+}
new file mode 100644
@@ -0,0 +1,167 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+// { dg-options "-std=gnu++23" }
+// { dg-do run { target c++23_only } }
+
+// Benchmark to_chars.
+
+#include <charconv>
+#include <chrono>
+#include <cstdint>
+#include <limits>
+#include <print>
+#include <random>
+#include <stdfloat>
+#include <vector>
+
+using nanoseconds = std::chrono::duration<double,
+ std::chrono::nanoseconds::period>;
+
+#if defined(__SIZEOF_INT128__)
+ using uint128_t = unsigned __int128;
+#endif
+
+template <typename Float>
+ using uint_t =
+ std::conditional_t<sizeof(Float) == sizeof( uint8_t), uint8_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint16_t), uint16_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint32_t), uint32_t,
+ std::conditional_t<sizeof(Float) == sizeof( uint64_t), uint64_t,
+#if defined(__SIZEOF_INT128__)
+ std::conditional_t<sizeof(Float) == sizeof(uint128_t), uint128_t, void>>>>>;
+#else
+ void>>>>;
+#endif
+
+template <typename Float>
+ struct random_float_generator
+ {
+ using uint_t = ::uint_t<Float>;
+ using dist_t = std::uniform_int_distribution<uint_t>;
+
+ random_float_generator()
+ {
+ auto constexpr min = std::numeric_limits<Float>::denorm_min();
+ auto constexpr max = std::numeric_limits<Float>::max();
+ dist_ = dist_t(std::bit_cast<uint_t>(min), std::bit_cast<uint_t>(max));
+ }
+
+ [[nodiscard]]
+ Float
+ get_value()
+ {
+ return std::bit_cast<Float>(dist_(device_));
+ }
+
+ private:
+ dist_t dist_;
+ std::mt19937_64 device_{};
+ };
+
+#if __LDBL_MANT_DIG__ == 106
+// Not all bit 128-bits patterns from denorm_min to max are valid ibm128 values.
+// Hence, the primary template doesn't work and we need an specialisation.
+template <>
+ struct random_float_generator<long double>
+ {
+ [[nodiscard]]
+ long double
+ get_value()
+ {
+ auto constexpr factor_up = 1.0l + 1.0l / (uint64_t{1} << 53);
+ auto constexpr factor_down = 1.0l - 1.0l / (uint64_t{1} << 53);
+
+ long double const high = double_generator_.get_value();
+ long double const other = double_generator_.get_value();
+ if (high < other) // randomly pick the factor (up or down).
+ return high * factor_up;
+ return high * factor_down;
+ }
+
+ private:
+ random_float_generator<double> double_generator_;
+ };
+#endif
+
+template <typename Float>
+ [[nodiscard]]
+ std::vector<Float>
+ get_values()
+ {
+ auto constexpr n_values = 1u << 15;
+
+ std::vector<Float> values;
+ values.reserve(n_values);
+
+ random_float_generator<Float> generator_;
+
+ for (unsigned n = 0; n < n_values; ++n)
+ values.push_back(generator_.get_value());
+
+ return values;
+ }
+
+template <typename Float, typename F>
+ [[nodiscard]]
+ nanoseconds
+ benchmark(std::vector<Float> const& values, F f)
+ {
+ nanoseconds total_time{0.0};
+ for (Float const value : values)
+ {
+ // warm-up
+ uint32_t constexpr n_trials = 64;
+ for (uint32_t n = 0; n < n_trials; ++n)
+ f(value);
+
+ auto const t0 = std::chrono::time_point_cast<nanoseconds>(
+ std::chrono::steady_clock::now());
+ for (uint32_t n = 0; n < n_trials; ++n)
+ f(value);
+ auto const t1 = std::chrono::time_point_cast<nanoseconds>(
+ std::chrono::steady_clock::now());
+
+ total_time += (t1 - t0) / n_trials;
+ }
+ auto const mean_time = total_time / values.size();
+ return mean_time;
+ }
+
+template <typename Float>
+ void
+ benchmark(char const* const type)
+ {
+ auto const values = get_values<Float>();
+
+ char buffer[128] = {};
+
+ auto time = benchmark(values, [&](Float const value)
+ {
+ auto r = std::to_chars(std::begin(buffer), std::end(buffer), value,
+ std::chars_format::scientific);
+ });
+
+ std::println("{: >11} | {: >11} |", type, time);
+ }
+
+int
+main()
+{
+ std::println("{: >11} | {: >11} |", "", "teju jagua");
+
+ benchmark<float > ("float" );
+ benchmark<double > ("double" );
+#if defined(__SIZEOF_INT128__)
+ benchmark<long double> ("long double");
+#endif
+#if defined(__STDCPP_FLOAT16_T__)
+ benchmark<std::float16_t>("float16_t" );
+#endif
+#if defined(__STDCPP_FLOAT128_T__) && defined(__SIZEOF_INT128__)
+ benchmark<std::float128_t>("float128_t" );
+#endif
+#if defined(__STDCPP_BFLOAT16_T__)
+ benchmark<std::bfloat16_t>("bfloat16_t" );
+#endif
+}
new file mode 100644
@@ -0,0 +1,183 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+// { dg-do run { target c++17 } }
+
+#include <cstdint>
+#include <iterator>
+#include <string_view>
+
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+// Tests a set of values that exercise all code paths that Tejú Jaguá can take
+// for float inputs.
+void
+test01()
+{
+ struct item_t {
+ float value;
+ std::string_view expected;
+ };
+
+#define item(value) { value##f, #value },
+
+ item_t const data[] = {
+ // is_small_integer.
+ item(1e+00)
+ // is_centred, allows_ties, s == b, !is_tie(b).
+ item(1.34218e+08)
+ // is_centred, allows_ties, s == b, is_tie(b), wins_tiebreak(b).
+ item(3.355445e+07)
+ // is_centred, allows_ties, s == b, is_tie(b), !wins_tiebreak(b),
+ // is_tie(c), wins_tiebreak(c).
+ item(3.3554468e+07)
+ // is_centred, allows_ties, s == b, is_tie(b), !wins_tiebreak(b),
+ // is_tie(c), !wins_tiebreak(c).
+ // N.A.
+ // is_centred, allows_ties, s == b, is_tie(b), !wins_tiebreak(b),
+ // !is_tie(c), is_closer_to_left.
+ item(1.3421819e+08)
+ // is_centred, allows_ties, s == b, is_tie(b), !wins_tiebreak(b),
+ // !is_tie(c), !is_closer_to_left.
+ item(5.3687277e+08)
+ // is_centred, allows_ties, s == a, is_tie(a), wins_tiebreak(a).
+ item(3.355447e+07)
+ // is_centred, allows_ties, s == a, is_tie(a), !wins_tiebreak(a),
+ // is_tie(c), wins_tiebreak(c).
+ item(3.3554452e+07)
+ // is_centred, allows_ties, s == a, is_tie(a), !wins_tiebreak(a),
+ // !is_tie(c), is_closer_to_left.
+ item(5.3687123e+08)
+ // is_centred, allows_ties, s == a, !is_tie(a), !wins_tiebreak(a),
+ // !is_tie(c), !is_closer_to_left.
+ item(1.3421781e+08)
+ // is_centred, allows_ties, s == a, !is_tie(a),
+ // is_tie(c) ...
+ // N.A.
+ // is_centred, allows_ties, s == a, !is_tie(a),
+ // !is_tie(c), is_closer_to_left.
+ item(1.3421811e+08)
+ // is_centred, allows_ties, s == a, !is_tie(a),
+ // !is_tie(c), !is_closer_to_left.
+ item(1.3421802e+08)
+ // is_centred, allows_ties, s > a.
+ item(1.677722e+07)
+ // is_centred, allows_ties, s < a,
+ // is_tie(c), wins_tiebreak(c).
+ item(1.6777218e+07)
+ // is_centred, allows_ties, s < a,
+ // !is_tie(c), is_closer_to_left.
+ item(1.3421774e+08)
+ // is_centred, allows_ties, s < a,
+ // !is_tie(c), !is_closer_to_left.
+ item(1.3421778e+08)
+ // is_centred, !allows_ties, s > a.
+ item(1.0485759e+06)
+ // is_centred, !allows_ties, s <= a,
+ // is_tie(c), wins_tiebreak(c).
+ item(4.1943032e+06)
+ // is_centred, !allows_ties, s <= a,
+ // is_tie(c), !wins_tiebreak(c), is_closer_to_left.
+ item(8.3886075e+06)
+ // is_centred, !allows_ties, s <= a,
+ // is_tie(c), !wins_tiebreak(c), !is_closer_to_left.
+ item(4.1943038e+06)
+ // is_centred, !allows_ties, s <= a,
+ // !is_tie(c), is_closer_to_left.
+ item(2.0971516e+06)
+ // is_centred, !allows_ties, s <= a,
+ // !is_tie(c), !is_closer_to_left.
+ item(2.0971519e+06)
+ // is_uncentred, a < b, allows_ties, s == b, !is_tie(b).
+ item(1.717987e+10)
+ // is_uncentred, a < b, allows_ties, s == b, is_tie(b) ...
+ // N/A.
+ // is_uncentred, a < b, allows_ties, s == a ...
+ // N/A.
+ // is_uncentred, a < b, allows_ties, s > a.
+ item(5.368709e+08)
+ // is_uncentred, a < b, allows_ties, s < a,
+ // c == a, !is_tie(a).
+ item(1.3421773e+08)
+ // is_uncentred, a < b, allows_ties, s < a,
+ // c == a, is_tie(a).
+ // N.A.
+ // is_uncentred, a < b, allows_ties, s < a,
+ // c > a, is_tie(c), wins_tiebreak
+ item(1.6777216e+07)
+ // is_uncentred, a < b, allows_ties, s < a,
+ // c > a, !is_tie(c), is_closer_to_left.
+ item(1.0737418e+09)
+ // is_uncentred, a < b, allows_ties, s < a,
+ // c > a, !is_tie(c), !is_closer_to_left.
+ item(2.6843546e+08)
+ // is_uncentred, a < b, !allows_ties, s > a.
+ item(5e-01)
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c == a, !is_tie(a).
+ item(2.3841858e-07)
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c > a, is_tie(c), wins_tiebreak.
+ item(2.4414062e-04)
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c > a, is_tie(c), !wins_tiebreak, is_closer_to_left.
+ item(9.765625e-04)
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c > a, is_tie(c), !wins_tiebreak, !is_closer_to_left.
+ // N.A.
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c > a, !is_tie(c), is_closer_to_left.
+ item(1.2207031e-04)
+ // is_uncentred, a < b, !allows_ties, s <= a,
+ // c > a, !is_tie(c), !is_closer_to_left.
+ item(3.8146973e-06)
+ // is_uncentred, a == b, is_tie(a) ...
+ // N.A.
+ // is_uncentred, a == b, !is_tie(a), is_tie(c) ...
+ // N.A.
+ // is_uncentred, a == b, !is_tie(a), !is_tie(c), is_closer_to_left.
+ item(9.8607613e-32)
+ // is_uncentred, a == b, !is_tie(a), !is_tie(c), !is_closer_to_left.
+ item(8.6736174e-19)
+ };
+
+#undef item
+
+ char chars[13];
+
+ for (auto const& [value, expected] : data) {
+
+ VERIFY( expected.size() <= sizeof(chars) );
+
+ {
+ char* const first = chars;
+ char* const last = chars + expected.size();
+ to_chars_result const result = to_chars(first, last, value,
+ chars_format::scientific);
+
+ VERIFY( result.ec == errc{} );
+ VERIFY( result.ptr == first + expected.size());
+
+ string_view const actual{chars, expected.size()};
+
+ VERIFY( actual == expected );
+ }
+ {
+ char* const first = chars;
+ char* const last = chars + expected.size() - 1; // smaller than needed.
+ to_chars_result const result = to_chars(first, last, value,
+ chars_format::scientific);
+
+ VERIFY( result.ec == errc::value_too_large );
+ VERIFY( result.ptr == last );
+ }
+ }
+}
+
+int
+main()
+{
+ test01();
+}
new file mode 100644
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: APACHE-2.0
+// SPDX-FileCopyrightText: 2021-2026 Cassio Neri <cassio.neri@gmail.com>
+
+// { dg-do run { target c++17 } }
+
+#include <cstdint>
+#include <iterator>
+#include <string_view>
+
+#include <testsuite_hooks.h>
+
+using namespace std;
+
+void
+test01()
+{
+#if defined(_GLIBCXX_LDOUBLE_IS_IBM128)
+
+ struct item_t {
+ long double value;
+ std::string_view expected;
+ };
+
+ auto constexpr p53 = 1.0l / (uint64_t{1} << 53);
+ auto constexpr p106 = p53 * p53;
+ auto constexpr before1 = std::nextafter(1.0, 0.0);
+
+ item_t const data[] = {
+
+ // All bits of the lower part are relevant.
+ { 1.0l + 1.0l * p53, "1.00000000000000011102230246251565e+00"},
+ { 1.0l - 1.0l * p53, "9.9999999999999988897769753748435e-01"},
+
+ // One bit of the lower part is relevant (for rounding).
+ { 1.0l + 1.0l * p106, "1.00000000000000000000000000000002e+00"},
+ { 1.0l - 1.0l * p106, "9.9999999999999999999999999999999e-01"},
+
+ // No bit of the lower part is relevant.
+ { 1.0l + before1 * p106, "1e+00"},
+ { 1.0l - before1 * p106, "1e+00"},
+ { 1.0l + __DBL_MIN__, "1e+00"},
+ { 1.0l - __DBL_MIN__, "1e+00"},
+
+#define item(value) { value##l, #value },
+
+ // Maximum small integer = 2^106 - 1
+ item(8.1129638414606681695789005144063e+31)
+
+ // Smallest uncentred integer = 2^106
+ item(8.1129638414606681695789005144064e+31)
+
+ // Smallest centred integer = 2^106 + 2
+ item(8.1129638414606681695789005144066e+31)
+
+ // is_small_integer.
+ item(1e+00)
+
+#undef item
+ };
+
+ char chars[39];
+
+ for (auto const& [value, expected] : data) {
+
+ VERIFY( expected.size() <= sizeof(chars) );
+
+ {
+ char* const first = chars;
+ char* const last = chars + expected.size();
+ to_chars_result const result = to_chars(first, last, value,
+ chars_format::scientific);
+
+ VERIFY( result.ec == errc{} );
+ VERIFY( result.ptr == first + expected.size());
+
+ string_view const actual{chars, expected.size()};
+
+ VERIFY( actual == expected );
+ }
+ {
+ char* const first = chars;
+ char* const last = chars + expected.size() - 1; // smaller than needed.
+ to_chars_result const result = to_chars(first, last, value,
+ chars_format::scientific);
+
+ VERIFY( result.ec == errc::value_too_large );
+ VERIFY( result.ptr == last );
+ }
+ }
+#endif
+}
+
+int
+main()
+{
+ test01();
+}