aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-08-27 16:01:27 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-08-27 16:02:07 +0000
commitaf92131a8eb7c2661a5bb0e31dc4cb028c85e0c6 (patch)
tree314e393e8358ea722cc43c6a6ac8660fa5e71e6b /stdlib
parentd6e70f4368533224e66d10b7f2126b899a3fd5e4 (diff)
downloadglibc-af92131a8eb7c2661a5bb0e31dc4cb028c85e0c6.tar
glibc-af92131a8eb7c2661a5bb0e31dc4cb028c85e0c6.tar.gz
glibc-af92131a8eb7c2661a5bb0e31dc4cb028c85e0c6.tar.bz2
glibc-af92131a8eb7c2661a5bb0e31dc4cb028c85e0c6.zip
Fix strtod rounding (bug 3479).
Diffstat (limited to 'stdlib')
-rw-r--r--stdlib/Makefile2
-rw-r--r--stdlib/fpioconst.c910
-rw-r--r--stdlib/fpioconst.h12
-rw-r--r--stdlib/gen-fpioconst.c107
-rw-r--r--stdlib/gen-tst-strtod-round.c131
-rw-r--r--stdlib/strtod_l.c66
-rw-r--r--stdlib/tst-strtod-round-data107
-rw-r--r--stdlib/tst-strtod-round.c6298
8 files changed, 7594 insertions, 39 deletions
diff --git a/stdlib/Makefile b/stdlib/Makefile
index e6804c9304..dfc5eaf97b 100644
--- a/stdlib/Makefile
+++ b/stdlib/Makefile
@@ -69,7 +69,7 @@ tests := tst-strtol tst-strtod testmb testrand testsort testdiv \
tst-makecontext tst-strtod4 tst-strtod5 tst-qsort2 \
tst-makecontext2 tst-strtod6 tst-unsetenv1 \
tst-makecontext3 bug-getcontext bug-fmtmsg1 \
- tst-secure-getenv tst-strtod-overflow
+ tst-secure-getenv tst-strtod-overflow tst-strtod-round
tests-static := tst-secure-getenv
include ../Makeconfig
diff --git a/stdlib/fpioconst.c b/stdlib/fpioconst.c
index 4dd54a940b..6a0ef8b0ae 100644
--- a/stdlib/fpioconst.c
+++ b/stdlib/fpioconst.c
@@ -1,6 +1,5 @@
/* Table of MP integer constants 10^(2^i), used for floating point <-> decimal.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2002, 2003
- Free Software Foundation, Inc.
+ Copyright (C) 1995-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -23,6 +22,9 @@
/* First page : 32-bit limbs
Second page : 64-bit limbs
Last page : table of pointers
+
+ The tables (apart from internal #if conditions) may be generated
+ with gen-fpioconst.c.
*/
#if BITS_PER_MP_LIMB == 32
@@ -75,9 +77,8 @@ const mp_limb_t __tens[] =
0x26b2716e, 0xadc666b0, 0x1d153624, 0x3c42d35a, 0x63ff540e, 0xcc5573c0,
0x65f9ef17, 0x55bc28f2, 0x80dcc7f7, 0xf46eeddc, 0x5fdcefce, 0x000553f7,
-#ifndef __NO_LONG_DOUBLE_MATH
-# define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE)
-# define TENS_P9_SIZE 56
+#define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE)
+#define TENS_P9_SIZE 56
[TENS_P9_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -89,8 +90,8 @@ const mp_limb_t __tens[] =
0xb099bc81, 0x45a71d46, 0xa2699748, 0x8cb07303, 0x8a0b1f13, 0x8cab8a97,
0xc1d238d9, 0x633415d4, 0x0000001c,
-# define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE)
-# define TENS_P10_SIZE 109
+#define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE)
+#define TENS_P10_SIZE 109
[TENS_P10_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -111,6 +112,7 @@ const mp_limb_t __tens[] =
0xd2db49ef, 0x926c3f5b, 0xae6209d4, 0x2d433949, 0x34f4a3c6, 0xd4305d94,
0xd9d61a05, 0x00000325,
+#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
# define TENS_P11_IDX (TENS_P10_IDX + TENS_P10_SIZE)
# define TENS_P11_SIZE 215
[TENS_P11_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
@@ -223,7 +225,440 @@ const mp_limb_t __tens[] =
0x35fcb457, 0x1bb6c6e4, 0xf74eb928, 0x3d5d0b54, 0x87cc1d21, 0x4964046f,
0x18ae4240, 0xd868b275, 0x8bd2b496, 0x1c5563f4, 0xc234d8f5, 0xf868e970,
0xf9151fff, 0xae7be4a2, 0x271133ee, 0xbb0fd922, 0x25254932, 0xa60a9fc0,
- 0x104bcd64, 0x30290145, 0x00000062
+ 0x104bcd64, 0x30290145, 0x00000062,
+
+# define TENS_P13_IDX (TENS_P12_IDX + TENS_P12_SIZE)
+# define TENS_P13_SIZE 853
+ [TENS_P13_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x64cf8001, 0x9f345226, 0x644963e5, 0x7b8d5053, 0x49f0aa29,
+ 0xb945c82f, 0x430ff478, 0x933b6bb8, 0x5ff82d0a, 0x64c501d4, 0x73bbf174,
+ 0x9ec1e1b3, 0x3bfbe803, 0xe9010689, 0xf7390d8e, 0x3fef8d80, 0xf31d1325,
+ 0x2c73446b, 0xf5ca7a92, 0x1c19e379, 0x270af2be, 0xf52d9d9c, 0xeb2bed48,
+ 0x3abf72e1, 0x4ac4ffc2, 0x7ecf3508, 0x22019a82, 0x38597a5a, 0xbe6a7b3c,
+ 0x9a51ff6e, 0xa2d28437, 0x0c0abe9d, 0x7c9ec6ea, 0xc79887ff, 0x5851c899,
+ 0x436420d0, 0xefead581, 0x72b5547f, 0x99b1d2b5, 0x077ad8f8, 0x5cddbf5b,
+ 0x3b4305ed, 0xe3861ac7, 0x2d88f3fd, 0x3d6b43be, 0x393220aa, 0xe5382405,
+ 0x1cd62095, 0x61a10c96, 0x87a0d1e1, 0xca95a55d, 0x68c933e6, 0x9ee082e2,
+ 0x778089bb, 0x41429ee9, 0xfbb6d8d4, 0xc529500d, 0x26cf5471, 0x68b9be29,
+ 0xd6c9b140, 0x07be635a, 0x84151852, 0xb5572182, 0x83730335, 0xeb2300b4,
+ 0xdd312d31, 0x05d6dd9b, 0x488da59c, 0x37784d25, 0xda2c2e40, 0x6a8d92fa,
+ 0x6a57d720, 0x950b41ac, 0xf07a8632, 0xcd55f062, 0x2ecad06a, 0xe6a3dfe7,
+ 0x34c98bb0, 0x9c767d8f, 0xb60521b1, 0x752aafd1, 0xe87d16be, 0x9de1d728,
+ 0xe58a8b0c, 0xc6013830, 0x2fa2c119, 0x3c4f9156, 0x519b40c8, 0x5058fc8f,
+ 0xab78701b, 0xadc59c47, 0xc502a554, 0x0fb3286f, 0x6647f04c, 0x9db4076e,
+ 0x5ea495c8, 0x9c74fab1, 0xb4f00f8b, 0x897c7a3c, 0xd092b4c6, 0x283e0340,
+ 0x32f31fa8, 0xeeb708cc, 0x67b63de2, 0x4f7b3c8b, 0xef2bc02b, 0xda14bfe3,
+ 0xc49344c0, 0xaabc85be, 0xb6c4e69e, 0x2ece8aa6, 0x63a11016, 0x19cfba4d,
+ 0x726ae4d9, 0x0fc90b42, 0xee6ae707, 0x4290b04a, 0x4d9aabc5, 0xfb2b070e,
+ 0xf34906cd, 0x1ff54b0a, 0x52ca9709, 0x0b42bfe1, 0x16431570, 0x980f3076,
+ 0x6b5565bb, 0xeb8c4c4a, 0x9ce63c76, 0xb9e4c771, 0x3da24c53, 0x6f0266fa,
+ 0xb50e3c66, 0x76e34f79, 0x01bb4b96, 0x9948cf3e, 0x0fbea124, 0x86bead12,
+ 0xa1fa4edc, 0xd11e901c, 0xc3b97bf9, 0x71730e03, 0x370ca58e, 0x48b19715,
+ 0x886467e2, 0xdb237497, 0x3c727e24, 0x2116ccd2, 0x8e67d76e, 0xf973aecf,
+ 0x34bdedd3, 0x31d680ec, 0xb042ab05, 0x770e96a0, 0xfc5c3c17, 0xab6f1874,
+ 0xb8204ece, 0x5843f3a5, 0x416c0ced, 0x11dd112f, 0x95780183, 0xb1c74bd8,
+ 0x7e0e8613, 0x96c6453b, 0xa79ffc10, 0xb2157651, 0xfcd6da0a, 0x836a34a7,
+ 0x3dd0ccac, 0x316e5a36, 0x496049ed, 0x0322bcb2, 0xdea1a97d, 0xcdf2aa5a,
+ 0x39578d53, 0x1d1aa931, 0x030565c9, 0xd198cbed, 0x324e0a27, 0x5db83e8a,
+ 0x28432534, 0x90bf23e8, 0x5cb134c0, 0xdd0adab6, 0x009e5051, 0xf8ad61da,
+ 0x7e36a6d7, 0x84c75e57, 0xbdffe6aa, 0xb5d5532e, 0x138d680e, 0xbd84ddac,
+ 0x4a5f74a1, 0xccff00d1, 0x55538cfa, 0xb0948b8c, 0x48528011, 0xe345f82e,
+ 0x9e047ad7, 0x6ee770ff, 0xea77bef0, 0x0fc13669, 0x2f162567, 0x869426ac,
+ 0x0614686c, 0x3a3ff464, 0x4263ed82, 0xb3589b47, 0x57205a7a, 0x213f24ad,
+ 0xae6fc46b, 0x3de03e4e, 0xd92b133f, 0x315a589b, 0x1b49c24a, 0x73381bcb,
+ 0x1641c138, 0x7bc99425, 0xbc680ada, 0xa5cfbc9a, 0x962e9884, 0x0a960d70,
+ 0xfc8d12f6, 0xed18ef4c, 0x60acc868, 0x9aea5d14, 0x13113036, 0xc747c87e,
+ 0x2d99a5b0, 0x3a369bb3, 0x006b3658, 0x118a5135, 0xe43fa6e6, 0xb4947190,
+ 0xa13dc05e, 0xd7733db8, 0x0dbd7170, 0xc3fb67d1, 0x117ed7e7, 0xe2d72a49,
+ 0xc05fe99e, 0x9638db40, 0xd971a25b, 0x4239d468, 0x1a159559, 0x850a223c,
+ 0xc1117392, 0x22d2dbd8, 0x567b5fc0, 0x92c5b4eb, 0xc051007a, 0x11cc0099,
+ 0xfb355720, 0x6907810d, 0x39848161, 0x5e8534f4, 0x61d19ef2, 0x2ee8c466,
+ 0x8a0ab03c, 0xc234af76, 0x879aa514, 0x9774a235, 0x59e5da57, 0x9bc466b3,
+ 0xf339bd5a, 0x44ab026d, 0xbbb5fd67, 0x2b977202, 0x3685c9f2, 0x03e5dc00,
+ 0x7054359e, 0x5239cfb0, 0x9ba11f08, 0xf8237562, 0x9c258687, 0xa3b510dd,
+ 0x52c7bf8f, 0xb31ed0cf, 0x3245e079, 0xff9ff8d3, 0xbaee38c7, 0xf17d5562,
+ 0xf702b3b9, 0xcc4c8563, 0xcbca275d, 0xe005d9d1, 0xe817dbac, 0x05c6920a,
+ 0x62cee350, 0x0f1deac0, 0x19e049b9, 0x59599f74, 0xb2a27a16, 0xf0911d5a,
+ 0x7dcef00d, 0x3603dd66, 0x37552251, 0x97813735, 0x5fa022da, 0x0d849416,
+ 0xefbe57c2, 0x30a0e592, 0x57619296, 0xc953cc47, 0x11735043, 0xa83526ad,
+ 0xc0444be0, 0xb5f8463c, 0x16ff5136, 0x2a0a6631, 0xf037572c, 0xd30464da,
+ 0xb1bf8daa, 0x7f5718f7, 0x0f3e9e7e, 0xe5a4cfe7, 0xc26f2624, 0x8c9b5ae4,
+ 0xdfe8f485, 0xf6fa82e3, 0xc64a1509, 0xacb24aea, 0x3024b220, 0xddb02ac0,
+ 0xddcdfedd, 0xd834c574, 0x384c86c3, 0xd904e099, 0xdd48a571, 0x4550a05f,
+ 0x77b35c74, 0x81e85f71, 0xaaebdc6d, 0x0f9bb0b1, 0xd4cdc054, 0x7af4df85,
+ 0x845786af, 0xe5e53887, 0xdf2a91ca, 0xf6a58211, 0x5689a3c4, 0x8cf6aa15,
+ 0xa705983a, 0x9fbf2f52, 0x2ce7fef0, 0x48e84a62, 0x4a3b5365, 0xf8281a47,
+ 0xd48a0872, 0x8423dcf6, 0xf0929c3e, 0x044a5049, 0xe9ec071b, 0x17decc36,
+ 0x20e30c1b, 0x45fc2813, 0x3342196a, 0x46afb7f9, 0x6601e337, 0x30754439,
+ 0xf18094d1, 0xd38b4112, 0x61410dd1, 0xd8796b36, 0xd97d4dd8, 0x47e9bc0b,
+ 0x80805191, 0x1584e2da, 0xcde438c1, 0x955d24f1, 0x409659a1, 0x1b0950b1,
+ 0x5a09635f, 0x65b1febe, 0x615472b9, 0x525dc00a, 0x6308e067, 0x4089e2d4,
+ 0xd4e705a4, 0x43fc9209, 0x32c18b26, 0x4447a5fa, 0xaf271153, 0x3617cadc,
+ 0x4dc4f0d2, 0x692eb386, 0x6aa116ef, 0x655991bc, 0x0641dc0b, 0x54469597,
+ 0xc6559664, 0x749c0fe8, 0x4bdc0d1a, 0xa7d3381e, 0xc5292a61, 0x4eb65fdc,
+ 0x42474cc2, 0xf2c6b173, 0x19dfc9ee, 0x0a19a199, 0xbece2ee3, 0xc68b778d,
+ 0xaa03aa7c, 0xc8db86f0, 0xae54d2be, 0xb92a01e0, 0xdee3f48f, 0x6023c0a9,
+ 0xf6ae2852, 0xa233763b, 0xa441cb9e, 0x3246dddd, 0x3a8bb4b7, 0x44faa3c3,
+ 0x308ef2c8, 0xfd1c8516, 0xd2862534, 0x3b25ebe7, 0x62336f6f, 0x0c336a45,
+ 0x0b8e2ce6, 0xe867f171, 0x11eea1f2, 0x523972ec, 0x68df4903, 0x50c05824,
+ 0x51ef4cb7, 0xcb4df2a8, 0x3ffae115, 0xb51aca2f, 0x3ed1635f, 0xd6ff1cc6,
+ 0x0a5ac09f, 0xde8ed9d6, 0x0a3dc76f, 0x5dc2d8dd, 0x37991dde, 0xf95bacb2,
+ 0x80ad6e13, 0x163005ee, 0xd4f8c7a6, 0x3225d180, 0xa4760f08, 0x5fff004d,
+ 0x9b2b1a87, 0xe7ea8576, 0x5cd00b66, 0xec478452, 0x285dd80d, 0x20112439,
+ 0x4301b3a1, 0xff879fc8, 0xfacbb68c, 0xaf6af6b8, 0xb17fdf84, 0xc208d9f1,
+ 0xf4489576, 0x8794a6e9, 0xadcc862c, 0x0e83e54c, 0x931685a4, 0xab01c580,
+ 0x1e40293b, 0xcad784fa, 0x1f1ddf7f, 0x6b856084, 0xcee722b2, 0x1c39938b,
+ 0x74254eb4, 0xc7ccebf4, 0xb9c26d9a, 0x6b08dfb9, 0x2e3ece24, 0x981455ec,
+ 0xdff60410, 0xbc804e2b, 0xe06fa38b, 0xb534540c, 0x72e53c52, 0x02dfb2ef,
+ 0xb2a5c05a, 0x5002a2a5, 0x97313338, 0x597c53ff, 0xd61df455, 0x34e5261a,
+ 0x39ac2ec5, 0xc6bc0cab, 0x388b7539, 0x3f732fc0, 0x00eac704, 0x92fb21d9,
+ 0xc089971e, 0xb4ffa503, 0x7af93f8f, 0x72e353b6, 0xa8311b23, 0x8266c9af,
+ 0x1de496ca, 0xdbdb16b0, 0xd6fa0b51, 0x9991a5ef, 0xbd563089, 0x168cbe0f,
+ 0x0954a1e3, 0x537b9245, 0x53d09723, 0x2867272d, 0x86558cb9, 0x0b83f026,
+ 0xfac85d10, 0xf8562951, 0x1e5ddb95, 0xad3668c8, 0x48d27b92, 0xc930b7e6,
+ 0x19b58a99, 0xa3de74e3, 0xa9cda917, 0xcb6e35ee, 0x7a4dd16e, 0x4c80e9d5,
+ 0x4d84073f, 0x74a95ba8, 0x9cffcfc0, 0xd28485eb, 0x15796372, 0x5717e9cd,
+ 0x77eda8df, 0xab473c4e, 0xadb965e1, 0xffad6959, 0x5bc05659, 0x6ed63880,
+ 0xfb240227, 0x2014850b, 0xd15fdddf, 0xfdd74592, 0xb538f37d, 0x3a8e2e82,
+ 0x1473396f, 0xf6a5edf8, 0x3ce41a21, 0x0cc4351a, 0x754e8264, 0xaab95e73,
+ 0xc7821b96, 0xf42ff463, 0xc242faaa, 0xdd00ac65, 0x087e260e, 0x17d193f5,
+ 0x0dbe0328, 0x844a63c9, 0xf9d10f96, 0x85aa91dd, 0xbaf127ec, 0x0ab6dabb,
+ 0xce85e6a5, 0x1af5d24f, 0xe7b56a16, 0xcd6c5a19, 0x57d1d79f, 0x5dfc2b28,
+ 0xec4dd2f0, 0x18fe64a1, 0x8d72216a, 0x5f222077, 0x72f14a08, 0xd8b09b11,
+ 0x3bf038ab, 0xc6cf1f44, 0xc4265d7c, 0xdab1b0e7, 0x46398d2c, 0x7dcfdc68,
+ 0xb6e705d3, 0x4aafd1e6, 0x362c1183, 0xd8701107, 0xf6ac98b7, 0xad114d7e,
+ 0xd6649424, 0xc40ab551, 0xddd1c6e4, 0xa132030f, 0xc9d284c8, 0xdb1f662a,
+ 0x824069ee, 0x4157904b, 0xc846b3ad, 0xd38481ca, 0x0a248c17, 0xc846831f,
+ 0xe8745feb, 0x000025a8,
+
+# define TENS_P14_IDX (TENS_P13_IDX + TENS_P13_SIZE)
+# define TENS_P14_SIZE 1703
+ [TENS_P14_IDX] = 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x099f0001,
+ 0x41b5687d, 0xcbfd1b6e, 0x8c75ee63, 0x4b191cea, 0xd75296ad, 0x2394d80a,
+ 0x1eb5da9b, 0x18a004ed, 0x5c79fed9, 0x37e3b01c, 0xed67a1b8, 0x78d9a714,
+ 0x2a1a34d5, 0x8fbe7f0d, 0x6b1d3516, 0xe57c43ea, 0xa7825681, 0xc81d32e8,
+ 0xd3e716e1, 0x58860b00, 0xa6d93d65, 0x83159c97, 0x0113232f, 0xd6122269,
+ 0x7321c3a0, 0xbe6a92f3, 0xca4ca9d3, 0xd1e276a5, 0xc0e55163, 0xb05915d6,
+ 0x7b7a78c1, 0x0fae0ca4, 0x62a3df4b, 0x08abec6f, 0x13030d11, 0xd446338a,
+ 0x60dcc8f2, 0x5f05d1d5, 0x25e1f9f6, 0x04a40bee, 0x7f8c7113, 0x88f47ec0,
+ 0x589ff59a, 0x308c3661, 0xea5068a1, 0x95fb108f, 0x06e87dff, 0x1559e741,
+ 0xd4d4abdc, 0x01e092e4, 0xee16907c, 0x5a7b78e6, 0xe73aabcb, 0x146bb7e0,
+ 0xad372889, 0x4f6b43c5, 0xfd49fc1d, 0x0f29f589, 0xd3739253, 0xc4745a56,
+ 0xe2acfcc2, 0xd75ccbc7, 0xedd016cd, 0xac5a63e0, 0xef82ccd3, 0xb352496e,
+ 0x2bdabfc4, 0x5b3d0401, 0x01b0197f, 0xade96d3c, 0x29d9253d, 0x19bebdba,
+ 0x73c56b1b, 0x255e7b25, 0x1f2b7f1e, 0xa56a457e, 0x6299c836, 0x5c63cc78,
+ 0xa2ca74c6, 0x5c85fe93, 0xee571bea, 0x508e2561, 0x2db5f1d0, 0xb1fde6a9,
+ 0xa9b87b99, 0x4fb90a37, 0xf7260f07, 0xff58c5fd, 0x56ee7e97, 0xbab9fa46,
+ 0x42e6f9ce, 0x78816f73, 0x1b76d267, 0xfdb2c728, 0x4566519c, 0xae17dd8d,
+ 0xb9f6a95f, 0x1cd533a1, 0x67160dea, 0x14534bac, 0xfcd8f8f9, 0xf3f2901d,
+ 0x708b1f0a, 0x8829063b, 0x9457a1df, 0x8f872aa1, 0x36bb9335, 0xb5672c0e,
+ 0xd889d109, 0x7ec63a6a, 0x93306672, 0x39b6d457, 0x8239ab68, 0xef2e2506,
+ 0xbe0d7a1f, 0x4251b635, 0x05f65522, 0x0ef0bd55, 0x03286891, 0x2c42b664,
+ 0x9815fbac, 0x471fd611, 0x814e379c, 0x7dd8349d, 0xa4a25bda, 0x9886b84c,
+ 0x01b9e39d, 0x5a7ce1a2, 0xae31cbc9, 0x86d07f32, 0x83ef8faf, 0xb66b5b76,
+ 0x58470fdf, 0x96d59b73, 0x51618889, 0xdc400cf7, 0xfc8e0fc6, 0xaf693670,
+ 0x09a08e56, 0x91737de6, 0x74f682e1, 0x0e03923f, 0x7f8ac56d, 0x7400cfd4,
+ 0x8e05e49a, 0x4cebea3c, 0x384e1164, 0xb2e43d8c, 0xb50ae05e, 0x0f0b3ed9,
+ 0xa4006123, 0x64137137, 0x4e9a1934, 0x05404100, 0xd9621be6, 0x9329a255,
+ 0x5c347ebb, 0x75cbeb1b, 0xe684346b, 0x840fee55, 0xba6a9753, 0xf43836f6,
+ 0x60505b7b, 0x334a9278, 0xfd6d475d, 0x5db94761, 0x267375aa, 0xc110e160,
+ 0x024f6d63, 0x2ec96610, 0xa99b4c19, 0xb915c9f4, 0x338cfd90, 0xf02ea846,
+ 0xb9e51a09, 0xae928fb1, 0xfae31d88, 0x1a3db721, 0x8475dd26, 0x5769489d,
+ 0x7ad4c407, 0x0a49e9f0, 0x34e275c8, 0x3d075d83, 0x1d63114a, 0x72a96415,
+ 0x6b98e947, 0x1d500b5f, 0xd50fdc36, 0x141e5085, 0x87751275, 0xe7843834,
+ 0x2278809e, 0xb15c52ee, 0x947aead2, 0xfedb7b02, 0x5197b744, 0x64e09ba8,
+ 0x8849d0a6, 0x23beaa85, 0x11ecb913, 0x0f7ed667, 0x5d984848, 0x9f6331ea,
+ 0x588290e9, 0xa24d64d1, 0x7e09e9e5, 0x32592033, 0x03a501df, 0x27c270a6,
+ 0xbb3df738, 0x3c7c5a70, 0x4190833c, 0x7d4bf9f4, 0x80e5d89b, 0xa7fc6194,
+ 0xfaefb663, 0x62e52b49, 0xd3b6adcd, 0x809646fc, 0x1f2cf73a, 0xb765ed4f,
+ 0x531e4bfb, 0x92cd05f2, 0xaf12d1a6, 0x22ee30f3, 0x38da1074, 0xed6447bb,
+ 0x1a725608, 0xaff222d3, 0x7a3c6f54, 0xbca79a56, 0x7b0e8d12, 0x1c4660c5,
+ 0x6e34d6fb, 0x6f481a9f, 0xfe9dc99c, 0xf888db82, 0xd8489ea0, 0x84b4c0fa,
+ 0xc0dea281, 0x977a8583, 0xae30e887, 0x8c1cbcec, 0x1d4848cb, 0x0ee0d137,
+ 0xd011b0fc, 0x94b5fd49, 0x478d7dd4, 0x3d67f2e7, 0xacab62ad, 0x0ab4e62a,
+ 0x1dfc7df5, 0xd22e4553, 0x870b0e75, 0x49b7b001, 0x1b73bf6d, 0x12807ffd,
+ 0xdc9f0737, 0x6f3e5852, 0xc0e2f250, 0x93e62e4a, 0x4d96a55a, 0xc1d0e185,
+ 0x83a126db, 0x190b917b, 0xefbfd043, 0xc7df1669, 0x8f25b6dd, 0x2062eac9,
+ 0x476c17a6, 0xcb60f278, 0x25460383, 0x0e85e996, 0xda8c05be, 0x6f678a34,
+ 0x69206234, 0xf59be929, 0x1947b69a, 0x0ebfa11b, 0x90fd8322, 0x15c1e9bf,
+ 0xd699b1ec, 0xb2f0343f, 0x7001d002, 0xcf76eaaa, 0xc0778ab5, 0x5173eda8,
+ 0xb7b008e2, 0x4e00e4c6, 0x505d3f4d, 0x99dd341a, 0x1c9d4e12, 0x4ffb6978,
+ 0x474c5e95, 0x6e9ca6dd, 0xda19f938, 0xe2dda6e0, 0x98dc318e, 0xda455e54,
+ 0x3f67b836, 0x21e4181c, 0xa97e9a64, 0x1e17f655, 0x527a08bb, 0x1712dc21,
+ 0x682972ad, 0x0042d256, 0xccbeadf1, 0xca497b96, 0x861e99e0, 0x0d8aa585,
+ 0xeeb0f650, 0xdcc3c3da, 0x506af77e, 0x5deb9768, 0x7c9d60be, 0xe9d978b7,
+ 0x37b37e95, 0x77ad0b94, 0x42747f75, 0x07be42c4, 0x6d5fd2fe, 0x4c8c5da9,
+ 0x0d8fc27d, 0x0f2fd50f, 0x0ccf6023, 0x5b56053f, 0x3b1101bd, 0x56d34906,
+ 0xc0feca27, 0x7602a150, 0xc4888da4, 0x419abe54, 0x56d10633, 0xc76120ed,
+ 0x8db14123, 0xb656e675, 0x741e8f76, 0xd297b94e, 0x96be6f21, 0x3662439d,
+ 0x9b409e27, 0x6626574d, 0x35fff92a, 0xbf558205, 0x69e02439, 0xbe6838b7,
+ 0x6400fd4c, 0xa00f64ca, 0x1f4b158a, 0x9e2052ae, 0x04cca558, 0xfb5ee69e,
+ 0x58da644c, 0x96f26e1f, 0x8ab19401, 0xbee1e16b, 0xed8bf908, 0x2f2809a4,
+ 0xd50babab, 0x6e57f7e6, 0x6b0a8929, 0xf7356431, 0xb54a4cfc, 0x9a1d0ac4,
+ 0x6f9fd6cb, 0x836bfbf8, 0x3b42f469, 0x8bd32129, 0x40111b6b, 0x7c278fb1,
+ 0xb345d955, 0xff1fd188, 0xd32cd13c, 0xf7ec3aa0, 0x3789f792, 0xab707fa4,
+ 0x4d79a4bf, 0xb3a28ceb, 0xd9c24d8e, 0x7134dadc, 0x06e2eb3e, 0xd7c04f76,
+ 0xb379d811, 0x2b3b0ebc, 0x8c94fc33, 0xa28b53ab, 0xc06c5d01, 0xd900432a,
+ 0x7fea91ca, 0x6d30b008, 0x64845f08, 0x796f5349, 0xfde4687d, 0xf888fe67,
+ 0xe0046c56, 0xae482177, 0xce98cb11, 0x84590c46, 0x1feb4400, 0x6e1ba29b,
+ 0xff2f1611, 0xf73f3e9c, 0x3159ca8c, 0x34845918, 0x56f0ed46, 0xb7d10c32,
+ 0xd9a16a01, 0x405b9e91, 0x3cee3e24, 0x8739e4a6, 0x2ab396b4, 0x3f1b7871,
+ 0x09835dfd, 0x8c7a489f, 0x1592b74a, 0x05df7c81, 0x0e8d3f37, 0xa61ff273,
+ 0x68b29622, 0x259cd337, 0x43ff84a6, 0x81cf8fe9, 0x566ed883, 0x48427fc6,
+ 0x35c79428, 0xcfd2fb59, 0xa97e8c8b, 0x750aaed8, 0x32ddca23, 0xaa8108ef,
+ 0x96fbfff9, 0xa1d039aa, 0xe3cdf588, 0x47e77e00, 0xcd6b3fdb, 0xe72a9a80,
+ 0x9a522152, 0xeda06283, 0xef175610, 0xa670cfa1, 0x339fe6c4, 0x2dfbf3ee,
+ 0xc2d7f53b, 0x92a44e27, 0xcc47e4b0, 0xdfa212bc, 0xd64f83c9, 0x997e5475,
+ 0xb51319bf, 0x9fffe599, 0x1fc2c7b6, 0xef5605e7, 0x832169dd, 0xfeb6be4e,
+ 0xbf921dc8, 0x60bdfb1d, 0x72759f8d, 0x3546efa0, 0x020eebed, 0xcaab3d64,
+ 0xdb20a2fe, 0xba1218f6, 0xb2b62bdd, 0x3101eff0, 0x8fde5cfa, 0x2e319213,
+ 0xa52114d2, 0x87eead3f, 0xdf08b1dd, 0xa5387642, 0x746f34d0, 0xd76c4844,
+ 0x4cc40317, 0xe4f689c9, 0xb7d76071, 0x5fe0b4a2, 0x6e1c7915, 0xc7d43f53,
+ 0x3efb7d71, 0x068dd906, 0x35a75f5f, 0x652d7770, 0x750f4607, 0x64a1656c,
+ 0x36c2cf8e, 0x214d758b, 0x9348ef93, 0xe4058978, 0x9674b7f3, 0x10570b0b,
+ 0xbdfaba8f, 0xcef09dd7, 0xa92b261f, 0x071c21b6, 0xcbebb81f, 0xf427ed6c,
+ 0x44228cd6, 0x65e56fcf, 0x5036c460, 0xad919def, 0xccfd848b, 0x61d158a6,
+ 0x7527dca3, 0x4cf30459, 0x50855075, 0xa70dfd09, 0x3540f5aa, 0x35577adb,
+ 0xb5ba3d4e, 0x35736c4f, 0xcdfb689f, 0xefe8fa82, 0x97ab0dca, 0x51bd2ff3,
+ 0x77a7fe9c, 0x3107846c, 0x3d618b81, 0xbca797a4, 0xfc5e9651, 0xe2e08fbc,
+ 0xf7e8791f, 0x772f1cc0, 0x7c426f9d, 0x08d56f88, 0x0080c3ab, 0x0deea663,
+ 0xe6d46ec6, 0x7dca4eb7, 0x6b681d9d, 0xda06730b, 0x4af0e0f2, 0x038bf468,
+ 0x52097463, 0xca19d302, 0xbc09bb9a, 0xaa55aeb1, 0x3ded4433, 0xf27938ba,
+ 0x3e4b7865, 0x28296be7, 0x7ef96314, 0x7a1d55cc, 0xdf0b6b47, 0xcde11852,
+ 0xcedda5bd, 0xf00a0eb3, 0x72ca1a8b, 0x5241b572, 0xb002fdcc, 0xff8898b3,
+ 0xc4878862, 0xb3e85372, 0xbf4bca29, 0x7e1fef45, 0xf2d83189, 0x0f5427af,
+ 0x3cdf9e05, 0x75bae885, 0xf65c06ac, 0x9c71a700, 0xa3145eac, 0xde63bab2,
+ 0x76255bbf, 0x6e817be6, 0x4c6ad3d0, 0x25ab9935, 0xe95ef2f8, 0x11cd095a,
+ 0xd54f78de, 0xa001ae7e, 0xb3829dcb, 0x5abd18bd, 0x18eb9c9e, 0xada3c504,
+ 0xe3e3556c, 0xd35479aa, 0x5191ac5f, 0x221821ac, 0xc8d1d9d3, 0x313a8c51,
+ 0x088c3fc8, 0xc146a264, 0xb154abed, 0x92755bc5, 0x349ec093, 0xf94aba57,
+ 0x41d5886c, 0x0a5ad8b2, 0x36aba94b, 0x883a6758, 0xa9ad229f, 0x5d64069a,
+ 0x0546172f, 0x0366da16, 0xc3808ea4, 0x0b172403, 0x70f0a235, 0xfa816e66,
+ 0x4fceb827, 0xa65fcfea, 0x167b56d5, 0xfe2b9fb2, 0xfec36bcd, 0xa84c4cc9,
+ 0xcd96320f, 0x3e128584, 0x09eda8b8, 0x91eca525, 0x7ec7e17b, 0xbc45bedc,
+ 0xc14032f4, 0x9be689a7, 0x2eb20bc0, 0xffdf1efc, 0x14ef835f, 0xc6966c59,
+ 0xcd778dd8, 0x5feb0f3b, 0x23d47715, 0xd64b87c8, 0x5722a550, 0x62883198,
+ 0x315a1a8b, 0x648e17e6, 0x4b7e9d7a, 0x2ba43d28, 0x67caca84, 0x741f0398,
+ 0x6e660159, 0x3e16e1a9, 0x3dde3c45, 0xa53e56ae, 0xc7eb0aef, 0x3f39f33e,
+ 0x78751d73, 0x45816df8, 0x626770f7, 0xcb17d28d, 0x909e87f4, 0x93a86aba,
+ 0xc1dcf328, 0x1a1e4ce2, 0xd895d042, 0xb9f6dd69, 0xbb00eaf5, 0xacc37687,
+ 0xca609578, 0x5b490d39, 0xf8b86d4c, 0xf2737ef0, 0x39419f6d, 0x69267bc0,
+ 0x72524a03, 0x6eb060c4, 0xdbc01e93, 0x291035b1, 0x83984d54, 0xf673ad85,
+ 0xe08cbc20, 0x1fb24915, 0x584803a6, 0xe15bbcd7, 0x4088ddb5, 0xd4c22542,
+ 0x2c18041a, 0xa51372d1, 0xb2ba69b4, 0x2299283f, 0xcd11c296, 0x25dcd6f3,
+ 0xac54df23, 0x24a3a55e, 0x77e16e1d, 0xb3cd415b, 0xb99d85c0, 0x497befc7,
+ 0xe91154e3, 0x7365cd8b, 0xb55100aa, 0x0ee699eb, 0xfc0927a6, 0xefb374de,
+ 0x8acaa910, 0x83b40e3d, 0xda3f0006, 0x8590a089, 0xc6ce1b75, 0x54f6ff20,
+ 0xfda2f7f3, 0xd2ab58f6, 0xd0763b6d, 0x6caf2515, 0x2519622d, 0xc3714057,
+ 0x9863638f, 0xea00bb4f, 0x09ea4a4d, 0xe69de96d, 0x6b01fe5f, 0x960161a5,
+ 0x529e32ec, 0xf8260ae9, 0x01a37eea, 0x69710577, 0x5aa0716f, 0xcb3fb1da,
+ 0x4260feda, 0xa33fb790, 0x76012f75, 0x24c0e5be, 0x130f09ae, 0x2e8323dc,
+ 0x5c8ecb76, 0x17cb8f12, 0x401b5f5c, 0x5f0a63e0, 0x47e1560a, 0xdc57a786,
+ 0xee1377d4, 0x228e7ee5, 0x0aa294b9, 0xaea6c534, 0x55b0fe2f, 0x922d318a,
+ 0xf108b772, 0xf15bddf6, 0xdfb69702, 0xcd438a4e, 0x90e1db66, 0x584ce4a1,
+ 0x568ef6cb, 0x69e55f9d, 0x6da376ba, 0x5ca6c109, 0x45c7e294, 0xc977b3e9,
+ 0xcf5b6c0c, 0x1d694499, 0x11b487ae, 0xcf8339ac, 0xbcb3cc6e, 0x50b828e0,
+ 0x046b1071, 0x5703ed0d, 0x2c615946, 0x720d1610, 0xa908dbd0, 0x742bbe33,
+ 0x22c076e2, 0x48966a66, 0x1d0cefa4, 0x1dde819f, 0x601352bf, 0xb9370c39,
+ 0xa585cc4a, 0xeb857f94, 0x5a2f7206, 0x3fae6b58, 0x49cd0f1f, 0x78e5fb3d,
+ 0x1b89d476, 0x74e9e65b, 0xed82945b, 0xb74e6483, 0x2941c4d9, 0x7e087acc,
+ 0x565c18dc, 0x1a09f2e5, 0xbf4ccd3d, 0xd304e977, 0xa522631d, 0x6123378e,
+ 0x4517109b, 0xb7e4285a, 0x4bf1a506, 0x625803c2, 0x683172f8, 0xc84e7354,
+ 0x3f8a2b11, 0x7dd12b89, 0xed420491, 0x8c698b0b, 0x9853fb97, 0x9631777b,
+ 0xb697e1c9, 0x5f028f05, 0x51038110, 0x9055f055, 0x30e255e3, 0xe2d0c1b6,
+ 0xb990321e, 0xa8fdf4d1, 0xff4dc144, 0x521a3056, 0x148999e0, 0xa8111c66,
+ 0xa9c96852, 0x8157f508, 0x4b394a94, 0xa0dc4df1, 0x94ec2e93, 0x6e6afa56,
+ 0x8fc28377, 0xf72ffa04, 0xc435186f, 0xf91488b7, 0x8d037f6f, 0xa899ec1e,
+ 0x48757727, 0x4101b612, 0xb8cf377d, 0xa5a54e68, 0xb4570569, 0x2ac5a0a0,
+ 0x063d9cfd, 0x7c504c74, 0xf1a5884c, 0x0a9b1955, 0x8d0b91bf, 0xe5f6862f,
+ 0x79ff5361, 0x0ed3d38f, 0xc6fd31fb, 0x9fe131c7, 0x85b9c648, 0x8febf2b4,
+ 0x8e77e86b, 0x992ba80e, 0x56429986, 0x6848879a, 0x608cdda5, 0x3e0d106e,
+ 0x754b300e, 0x25200576, 0xafd5195b, 0x5d37aad9, 0xe81f0939, 0xe00a390e,
+ 0xdeeea20a, 0xf5fef0be, 0xb5d51155, 0x6e27d173, 0x9e72ebcf, 0xb776e978,
+ 0xb966f7ba, 0x09520238, 0x726c8408, 0x3347ebc5, 0x65dce5a2, 0x3ec78337,
+ 0x8c92d740, 0x3cdde3fe, 0x32caec93, 0xd20379ae, 0x411be811, 0x41756580,
+ 0x72fa1bbd, 0xa92125b3, 0x84c42f04, 0xdd4ee5fe, 0x3a25922c, 0x96446853,
+ 0x49ad3be0, 0x2880366d, 0x1c841afe, 0xf1e09019, 0xfb905fe1, 0xa451ad59,
+ 0x3ba9d0c9, 0x56db2e9c, 0xa42419f2, 0xe921e7a0, 0x3c9a3ca5, 0xad8ea375,
+ 0xcec7d091, 0x99bdb940, 0x477ef58f, 0x8a4933c7, 0xb2598b8d, 0xf5659df7,
+ 0xcfac1e1c, 0x339f8748, 0xe2a04aab, 0xe122b03f, 0x45bc6f37, 0xc9feeb30,
+ 0x9c75aaa0, 0xc13c174e, 0x0ea0585d, 0xdc58bbb4, 0x3a96bd5a, 0x20251482,
+ 0x3c7a714d, 0x696897eb, 0x6cb83b6b, 0xa37de406, 0x3b496b5f, 0x37e75d6a,
+ 0x380dd382, 0x0e1a513c, 0xda26fac9, 0xf2458364, 0x12b5c6ea, 0x79ce9e47,
+ 0x1ff1fcbf, 0xbe7c6e86, 0x59a6a7ba, 0x8d70f515, 0x94761453, 0x6b04e425,
+ 0x8768ffb2, 0x1ca5f425, 0x3f9e8407, 0x3b641184, 0x5f8f6756, 0x62b1a5a5,
+ 0x56bc2120, 0xd1e5da68, 0x17f2fa18, 0x8cce5e2d, 0xa1bc9c06, 0x8e290fb1,
+ 0x892df1af, 0xad10b8c8, 0xb43e5517, 0xd0597409, 0x4407c38f, 0x4a020d81,
+ 0xfea9c9b6, 0xd8e0e7d6, 0xd5b2aaf9, 0xde5e9b40, 0xda44ed4a, 0x45d6bf41,
+ 0x87aa3ca0, 0xc62d12fc, 0x4708acc8, 0x10212e26, 0x0d1227ff, 0xfeeb5742,
+ 0x5da02550, 0xd66668e7, 0x1d56e5e1, 0x32c215ec, 0xae1e0bef, 0x7f048b7e,
+ 0x58c0e922, 0x2aea8619, 0x58251aac, 0xbbe10425, 0xa1fea536, 0x2e1d9667,
+ 0xd233eb7d, 0xcf435c0b, 0xb0693c67, 0x61d918ea, 0x903ec9f0, 0xd6c4e8ac,
+ 0x0efb1788, 0xb0098f5b, 0x1709d878, 0x3c12b35e, 0x3f6ce1b7, 0xa1b3ff54,
+ 0x8a8f7dbb, 0x37608d6a, 0x73e8563e, 0xa3330540, 0x64e00749, 0xebbfcab9,
+ 0x8d5caaf9, 0x3bc87c7e, 0xedb2bd94, 0x22f8f62d, 0xe656dec3, 0xc5683222,
+ 0x670c1626, 0x94089e7f, 0x4237542f, 0x47d29440, 0x2fc4e530, 0x8419441e,
+ 0x8b288dac, 0x7f9245f9, 0xa7afb4e9, 0x8a15650d, 0x082adef7, 0x3104ef19,
+ 0x043c62de, 0x0aff3dc5, 0x7ecd0635, 0xe7e80a8b, 0xe0600fad, 0x4d8e81cc,
+ 0x81ebf4e0, 0xf587e30f, 0x7b372af7, 0x2d8f8ca0, 0xdee11c6f, 0xd3624b1c,
+ 0xf8adc426, 0xca9debed, 0x5c22de4f, 0x3634f778, 0xfae3186b, 0xacf8b595,
+ 0xd7bfa75f, 0x003cd316, 0xbbfe3cf6, 0xb023cb50, 0xc51055a1, 0x0063cffd,
+ 0x93869a77, 0x51e022d4, 0xfbceeb10, 0x5187457e, 0x109defc9, 0x673892d8,
+ 0xe13cfde2, 0xd4aa3272, 0xc09c8134, 0xbf89ad5b, 0x0327181b, 0x09511ec7,
+ 0xaa21b632, 0xd7e72186, 0xe41885b5, 0x46713f9c, 0x493d2789, 0x1386c526,
+ 0xd5d22a5c, 0xcefddfc4, 0xcf59281c, 0x92973ea6, 0x4ebe43f6, 0xeac5c6ad,
+ 0x6cf4897d, 0xd95082a0, 0x82ce562a, 0x28e5e9bd, 0x28d8f0db, 0xddf06e81,
+ 0x707b0166, 0x7dae3f00, 0xfbf5756a, 0x035a4680, 0x4f114102, 0xe7ba4b33,
+ 0x5190fedf, 0x106a7594, 0xe5f1bc49, 0xaae3ad67, 0xd7a1a766, 0x040ee971,
+ 0x9120a214, 0xf415b374, 0x1edc87ea, 0x17aab43c, 0xc6ad637d, 0x885858c1,
+ 0xd90303c7, 0xbfd4b70b, 0x3ff4eb0e, 0x344a9a88, 0xd81eea30, 0x95925446,
+ 0x5adef0ec, 0xabb5f5e7, 0x20bbd8c3, 0xc1c22cce, 0xe6944262, 0xc5acdb23,
+ 0x80024021, 0x2232c635, 0x94b30c81, 0x55f07648, 0x78569acd, 0x9696ea39,
+ 0x4dd6b528, 0x1c3e1b40, 0xde5853b3, 0x8a2c3679, 0x6eb5a7d8, 0x56bda89a,
+ 0x8f9cf096, 0xfda86d5b, 0x6481c7e7, 0x50a6a7d5, 0x15bfb45d, 0x4f9a5381,
+ 0xc057d45d, 0x4fb10024, 0xa0009f00, 0x5e1ca0dd, 0xac420f74, 0xcfbb38bd,
+ 0xf0d4a615, 0x19bf0318, 0x0e3aef84, 0xcb3d7b20, 0x166c1e3e, 0x58272fdd,
+ 0x3bfacf9f, 0xc0f5ce46, 0x63a13528, 0xea59e333, 0xa020ca8c, 0xaadd116b,
+ 0x3dbb5a3d, 0xe5523f47, 0x747f55ea, 0x0922171e, 0x64d520fb, 0x6c709e84,
+ 0x07ce951b, 0x35fdc402, 0x7508eb6d, 0xc495a8fa, 0xb0d11c39, 0x81313d65,
+ 0x57447ef0, 0xa7b61e26, 0xf72301f3, 0xbb096315, 0x45a3a7c5, 0xa903a44b,
+ 0x00432f88, 0x19081987, 0xeb4e1b66, 0xbb7b66bd, 0x6d245171, 0xde4182f5,
+ 0x0d89bd0b, 0x87f4de6c, 0xf70d8a60, 0x9a87855b, 0x08a27449, 0x4ac7720a,
+ 0xd4964017, 0xb0d9ddac, 0x4db3488c, 0xfe397d44, 0xd07b745b, 0x197dcb7b,
+ 0x6e9d567d, 0xe3b90812, 0x9143fef1, 0xb9e002ac, 0x115ff96d, 0xf60a2201,
+ 0x5b61c9c8, 0x09abab2f, 0xb14a44a7, 0x0ca19c73, 0x843c7997, 0xe3a9bbe6,
+ 0x5e3fc18c, 0x0c0404ee, 0x764df59d, 0x990ec2c2, 0x4ad0ba3c, 0x05e8be0f,
+ 0xe599647d, 0xc19d365d, 0x4d0c2990, 0xe5a9d9ac, 0xb680a72d, 0x4ce2e5dd,
+ 0x6d6c0267, 0x06f9c25b, 0xbd6078e0, 0xb5fcdc81, 0xd742fa41, 0xcccc2399,
+ 0xc691adc0, 0x215ad82c, 0xea73b0c3, 0xa511e5b0, 0xf499e0a6, 0x53e27ab0,
+ 0xd94440a2, 0x47752521, 0x9a6e3644, 0xab113708, 0x8f8b301d, 0x058a42a3,
#endif /* !__NO_LONG_DOUBLE_MATH */
};
@@ -277,9 +712,9 @@ const mp_limb_t __tens[] =
0x26b2716ed595d80full, 0x1d153624adc666b0ull, 0x63ff540e3c42d35aull,
0x65f9ef17cc5573c0ull, 0x80dcc7f755bc28f2ull, 0x5fdcefcef46eeddcull,
0x00000000000553f7ull,
-#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
-# define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE)
-# define TENS_P9_SIZE 28
+
+#define TENS_P9_IDX (TENS_P8_IDX + TENS_P8_SIZE)
+#define TENS_P9_SIZE 28
[TENS_P9_IDX] = 0x0000000000000000ull, 0x0000000000000000ull,
0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
@@ -291,8 +726,8 @@ const mp_limb_t __tens[] =
0xb099bc817343afacull, 0xa269974845a71d46ull, 0x8a0b1f138cb07303ull,
0xc1d238d98cab8a97ull, 0x0000001c633415d4ull,
-# define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE)
-# define TENS_P10_SIZE 55
+#define TENS_P10_IDX (TENS_P9_IDX + TENS_P9_SIZE)
+#define TENS_P10_SIZE 55
[TENS_P10_IDX] = 0x0000000000000000ull, 0x0000000000000000ull,
0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
@@ -313,6 +748,7 @@ const mp_limb_t __tens[] =
0xd2db49ef47187094ull, 0xae6209d4926c3f5bull, 0x34f4a3c62d433949ull,
0xd9d61a05d4305d94ull, 0x0000000000000325ull,
+#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
# define TENS_P11_IDX (TENS_P10_IDX + TENS_P10_SIZE)
# define TENS_P11_SIZE 108
[TENS_P11_IDX] = 0x0000000000000000ull, 0x0000000000000000ull,
@@ -426,7 +862,441 @@ const mp_limb_t __tens[] =
0x35fcb457200c03a5ull, 0xf74eb9281bb6c6e4ull, 0x87cc1d213d5d0b54ull,
0x18ae42404964046full, 0x8bd2b496d868b275ull, 0xc234d8f51c5563f4ull,
0xf9151ffff868e970ull, 0x271133eeae7be4a2ull, 0x25254932bb0fd922ull,
- 0x104bcd64a60a9fc0ull, 0x0000006230290145ull
+ 0x104bcd64a60a9fc0ull, 0x0000006230290145ull,
+
+# define TENS_P13_IDX (TENS_P12_IDX + TENS_P12_SIZE)
+# define TENS_P13_SIZE 427
+ [TENS_P13_IDX] = 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x9f34522664cf8001ull, 0x7b8d5053644963e5ull,
+ 0xb945c82f49f0aa29ull, 0x933b6bb8430ff478ull, 0x64c501d45ff82d0aull,
+ 0x9ec1e1b373bbf174ull, 0xe90106893bfbe803ull, 0x3fef8d80f7390d8eull,
+ 0x2c73446bf31d1325ull, 0x1c19e379f5ca7a92ull, 0xf52d9d9c270af2beull,
+ 0x3abf72e1eb2bed48ull, 0x7ecf35084ac4ffc2ull, 0x38597a5a22019a82ull,
+ 0x9a51ff6ebe6a7b3cull, 0x0c0abe9da2d28437ull, 0xc79887ff7c9ec6eaull,
+ 0x436420d05851c899ull, 0x72b5547fefead581ull, 0x077ad8f899b1d2b5ull,
+ 0x3b4305ed5cddbf5bull, 0x2d88f3fde3861ac7ull, 0x393220aa3d6b43beull,
+ 0x1cd62095e5382405ull, 0x87a0d1e161a10c96ull, 0x68c933e6ca95a55dull,
+ 0x778089bb9ee082e2ull, 0xfbb6d8d441429ee9ull, 0x26cf5471c529500dull,
+ 0xd6c9b14068b9be29ull, 0x8415185207be635aull, 0x83730335b5572182ull,
+ 0xdd312d31eb2300b4ull, 0x488da59c05d6dd9bull, 0xda2c2e4037784d25ull,
+ 0x6a57d7206a8d92faull, 0xf07a8632950b41acull, 0x2ecad06acd55f062ull,
+ 0x34c98bb0e6a3dfe7ull, 0xb60521b19c767d8full, 0xe87d16be752aafd1ull,
+ 0xe58a8b0c9de1d728ull, 0x2fa2c119c6013830ull, 0x519b40c83c4f9156ull,
+ 0xab78701b5058fc8full, 0xc502a554adc59c47ull, 0x6647f04c0fb3286full,
+ 0x5ea495c89db4076eull, 0xb4f00f8b9c74fab1ull, 0xd092b4c6897c7a3cull,
+ 0x32f31fa8283e0340ull, 0x67b63de2eeb708ccull, 0xef2bc02b4f7b3c8bull,
+ 0xc49344c0da14bfe3ull, 0xb6c4e69eaabc85beull, 0x63a110162ece8aa6ull,
+ 0x726ae4d919cfba4dull, 0xee6ae7070fc90b42ull, 0x4d9aabc54290b04aull,
+ 0xf34906cdfb2b070eull, 0x52ca97091ff54b0aull, 0x164315700b42bfe1ull,
+ 0x6b5565bb980f3076ull, 0x9ce63c76eb8c4c4aull, 0x3da24c53b9e4c771ull,
+ 0xb50e3c666f0266faull, 0x01bb4b9676e34f79ull, 0x0fbea1249948cf3eull,
+ 0xa1fa4edc86bead12ull, 0xc3b97bf9d11e901cull, 0x370ca58e71730e03ull,
+ 0x886467e248b19715ull, 0x3c727e24db237497ull, 0x8e67d76e2116ccd2ull,
+ 0x34bdedd3f973aecfull, 0xb042ab0531d680ecull, 0xfc5c3c17770e96a0ull,
+ 0xb8204eceab6f1874ull, 0x416c0ced5843f3a5ull, 0x9578018311dd112full,
+ 0x7e0e8613b1c74bd8ull, 0xa79ffc1096c6453bull, 0xfcd6da0ab2157651ull,
+ 0x3dd0ccac836a34a7ull, 0x496049ed316e5a36ull, 0xdea1a97d0322bcb2ull,
+ 0x39578d53cdf2aa5aull, 0x030565c91d1aa931ull, 0x324e0a27d198cbedull,
+ 0x284325345db83e8aull, 0x5cb134c090bf23e8ull, 0x009e5051dd0adab6ull,
+ 0x7e36a6d7f8ad61daull, 0xbdffe6aa84c75e57ull, 0x138d680eb5d5532eull,
+ 0x4a5f74a1bd84ddacull, 0x55538cfaccff00d1ull, 0x48528011b0948b8cull,
+ 0x9e047ad7e345f82eull, 0xea77bef06ee770ffull, 0x2f1625670fc13669ull,
+ 0x0614686c869426acull, 0x4263ed823a3ff464ull, 0x57205a7ab3589b47ull,
+ 0xae6fc46b213f24adull, 0xd92b133f3de03e4eull, 0x1b49c24a315a589bull,
+ 0x1641c13873381bcbull, 0xbc680ada7bc99425ull, 0x962e9884a5cfbc9aull,
+ 0xfc8d12f60a960d70ull, 0x60acc868ed18ef4cull, 0x131130369aea5d14ull,
+ 0x2d99a5b0c747c87eull, 0x006b36583a369bb3ull, 0xe43fa6e6118a5135ull,
+ 0xa13dc05eb4947190ull, 0x0dbd7170d7733db8ull, 0x117ed7e7c3fb67d1ull,
+ 0xc05fe99ee2d72a49ull, 0xd971a25b9638db40ull, 0x1a1595594239d468ull,
+ 0xc1117392850a223cull, 0x567b5fc022d2dbd8ull, 0xc051007a92c5b4ebull,
+ 0xfb35572011cc0099ull, 0x398481616907810dull, 0x61d19ef25e8534f4ull,
+ 0x8a0ab03c2ee8c466ull, 0x879aa514c234af76ull, 0x59e5da579774a235ull,
+ 0xf339bd5a9bc466b3ull, 0xbbb5fd6744ab026dull, 0x3685c9f22b977202ull,
+ 0x7054359e03e5dc00ull, 0x9ba11f085239cfb0ull, 0x9c258687f8237562ull,
+ 0x52c7bf8fa3b510ddull, 0x3245e079b31ed0cfull, 0xbaee38c7ff9ff8d3ull,
+ 0xf702b3b9f17d5562ull, 0xcbca275dcc4c8563ull, 0xe817dbace005d9d1ull,
+ 0x62cee35005c6920aull, 0x19e049b90f1deac0ull, 0xb2a27a1659599f74ull,
+ 0x7dcef00df0911d5aull, 0x375522513603dd66ull, 0x5fa022da97813735ull,
+ 0xefbe57c20d849416ull, 0x5761929630a0e592ull, 0x11735043c953cc47ull,
+ 0xc0444be0a83526adull, 0x16ff5136b5f8463cull, 0xf037572c2a0a6631ull,
+ 0xb1bf8daad30464daull, 0x0f3e9e7e7f5718f7ull, 0xc26f2624e5a4cfe7ull,
+ 0xdfe8f4858c9b5ae4ull, 0xc64a1509f6fa82e3ull, 0x3024b220acb24aeaull,
+ 0xddcdfeddddb02ac0ull, 0x384c86c3d834c574ull, 0xdd48a571d904e099ull,
+ 0x77b35c744550a05full, 0xaaebdc6d81e85f71ull, 0xd4cdc0540f9bb0b1ull,
+ 0x845786af7af4df85ull, 0xdf2a91cae5e53887ull, 0x5689a3c4f6a58211ull,
+ 0xa705983a8cf6aa15ull, 0x2ce7fef09fbf2f52ull, 0x4a3b536548e84a62ull,
+ 0xd48a0872f8281a47ull, 0xf0929c3e8423dcf6ull, 0xe9ec071b044a5049ull,
+ 0x20e30c1b17decc36ull, 0x3342196a45fc2813ull, 0x6601e33746afb7f9ull,
+ 0xf18094d130754439ull, 0x61410dd1d38b4112ull, 0xd97d4dd8d8796b36ull,
+ 0x8080519147e9bc0bull, 0xcde438c11584e2daull, 0x409659a1955d24f1ull,
+ 0x5a09635f1b0950b1ull, 0x615472b965b1febeull, 0x6308e067525dc00aull,
+ 0xd4e705a44089e2d4ull, 0x32c18b2643fc9209ull, 0xaf2711534447a5faull,
+ 0x4dc4f0d23617cadcull, 0x6aa116ef692eb386ull, 0x0641dc0b655991bcull,
+ 0xc655966454469597ull, 0x4bdc0d1a749c0fe8ull, 0xc5292a61a7d3381eull,
+ 0x42474cc24eb65fdcull, 0x19dfc9eef2c6b173ull, 0xbece2ee30a19a199ull,
+ 0xaa03aa7cc68b778dull, 0xae54d2bec8db86f0ull, 0xdee3f48fb92a01e0ull,
+ 0xf6ae28526023c0a9ull, 0xa441cb9ea233763bull, 0x3a8bb4b73246ddddull,
+ 0x308ef2c844faa3c3ull, 0xd2862534fd1c8516ull, 0x62336f6f3b25ebe7ull,
+ 0x0b8e2ce60c336a45ull, 0x11eea1f2e867f171ull, 0x68df4903523972ecull,
+ 0x51ef4cb750c05824ull, 0x3ffae115cb4df2a8ull, 0x3ed1635fb51aca2full,
+ 0x0a5ac09fd6ff1cc6ull, 0x0a3dc76fde8ed9d6ull, 0x37991dde5dc2d8ddull,
+ 0x80ad6e13f95bacb2ull, 0xd4f8c7a6163005eeull, 0xa4760f083225d180ull,
+ 0x9b2b1a875fff004dull, 0x5cd00b66e7ea8576ull, 0x285dd80dec478452ull,
+ 0x4301b3a120112439ull, 0xfacbb68cff879fc8ull, 0xb17fdf84af6af6b8ull,
+ 0xf4489576c208d9f1ull, 0xadcc862c8794a6e9ull, 0x931685a40e83e54cull,
+ 0x1e40293bab01c580ull, 0x1f1ddf7fcad784faull, 0xcee722b26b856084ull,
+ 0x74254eb41c39938bull, 0xb9c26d9ac7ccebf4ull, 0x2e3ece246b08dfb9ull,
+ 0xdff60410981455ecull, 0xe06fa38bbc804e2bull, 0x72e53c52b534540cull,
+ 0xb2a5c05a02dfb2efull, 0x973133385002a2a5ull, 0xd61df455597c53ffull,
+ 0x39ac2ec534e5261aull, 0x388b7539c6bc0cabull, 0x00eac7043f732fc0ull,
+ 0xc089971e92fb21d9ull, 0x7af93f8fb4ffa503ull, 0xa8311b2372e353b6ull,
+ 0x1de496ca8266c9afull, 0xd6fa0b51dbdb16b0ull, 0xbd5630899991a5efull,
+ 0x0954a1e3168cbe0full, 0x53d09723537b9245ull, 0x86558cb92867272dull,
+ 0xfac85d100b83f026ull, 0x1e5ddb95f8562951ull, 0x48d27b92ad3668c8ull,
+ 0x19b58a99c930b7e6ull, 0xa9cda917a3de74e3ull, 0x7a4dd16ecb6e35eeull,
+ 0x4d84073f4c80e9d5ull, 0x9cffcfc074a95ba8ull, 0x15796372d28485ebull,
+ 0x77eda8df5717e9cdull, 0xadb965e1ab473c4eull, 0x5bc05659ffad6959ull,
+ 0xfb2402276ed63880ull, 0xd15fdddf2014850bull, 0xb538f37dfdd74592ull,
+ 0x1473396f3a8e2e82ull, 0x3ce41a21f6a5edf8ull, 0x754e82640cc4351aull,
+ 0xc7821b96aab95e73ull, 0xc242faaaf42ff463ull, 0x087e260edd00ac65ull,
+ 0x0dbe032817d193f5ull, 0xf9d10f96844a63c9ull, 0xbaf127ec85aa91ddull,
+ 0xce85e6a50ab6dabbull, 0xe7b56a161af5d24full, 0x57d1d79fcd6c5a19ull,
+ 0xec4dd2f05dfc2b28ull, 0x8d72216a18fe64a1ull, 0x72f14a085f222077ull,
+ 0x3bf038abd8b09b11ull, 0xc4265d7cc6cf1f44ull, 0x46398d2cdab1b0e7ull,
+ 0xb6e705d37dcfdc68ull, 0x362c11834aafd1e6ull, 0xf6ac98b7d8701107ull,
+ 0xd6649424ad114d7eull, 0xddd1c6e4c40ab551ull, 0xc9d284c8a132030full,
+ 0x824069eedb1f662aull, 0xc846b3ad4157904bull, 0x0a248c17d38481caull,
+ 0xe8745febc846831full, 0x00000000000025a8ull,
+
+# define TENS_P14_IDX (TENS_P13_IDX + TENS_P13_SIZE)
+# define TENS_P14_SIZE 852
+ [TENS_P14_IDX] = 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x0000000000000000ull, 0x0000000000000000ull, 0x0000000000000000ull,
+ 0x41b5687d099f0001ull, 0x8c75ee63cbfd1b6eull, 0xd75296ad4b191ceaull,
+ 0x1eb5da9b2394d80aull, 0x5c79fed918a004edull, 0xed67a1b837e3b01cull,
+ 0x2a1a34d578d9a714ull, 0x6b1d35168fbe7f0dull, 0xa7825681e57c43eaull,
+ 0xd3e716e1c81d32e8ull, 0xa6d93d6558860b00ull, 0x0113232f83159c97ull,
+ 0x7321c3a0d6122269ull, 0xca4ca9d3be6a92f3ull, 0xc0e55163d1e276a5ull,
+ 0x7b7a78c1b05915d6ull, 0x62a3df4b0fae0ca4ull, 0x13030d1108abec6full,
+ 0x60dcc8f2d446338aull, 0x25e1f9f65f05d1d5ull, 0x7f8c711304a40beeull,
+ 0x589ff59a88f47ec0ull, 0xea5068a1308c3661ull, 0x06e87dff95fb108full,
+ 0xd4d4abdc1559e741ull, 0xee16907c01e092e4ull, 0xe73aabcb5a7b78e6ull,
+ 0xad372889146bb7e0ull, 0xfd49fc1d4f6b43c5ull, 0xd37392530f29f589ull,
+ 0xe2acfcc2c4745a56ull, 0xedd016cdd75ccbc7ull, 0xef82ccd3ac5a63e0ull,
+ 0x2bdabfc4b352496eull, 0x01b0197f5b3d0401ull, 0x29d9253dade96d3cull,
+ 0x73c56b1b19bebdbaull, 0x1f2b7f1e255e7b25ull, 0x6299c836a56a457eull,
+ 0xa2ca74c65c63cc78ull, 0xee571bea5c85fe93ull, 0x2db5f1d0508e2561ull,
+ 0xa9b87b99b1fde6a9ull, 0xf7260f074fb90a37ull, 0x56ee7e97ff58c5fdull,
+ 0x42e6f9cebab9fa46ull, 0x1b76d26778816f73ull, 0x4566519cfdb2c728ull,
+ 0xb9f6a95fae17dd8dull, 0x67160dea1cd533a1ull, 0xfcd8f8f914534bacull,
+ 0x708b1f0af3f2901dull, 0x9457a1df8829063bull, 0x36bb93358f872aa1ull,
+ 0xd889d109b5672c0eull, 0x933066727ec63a6aull, 0x8239ab6839b6d457ull,
+ 0xbe0d7a1fef2e2506ull, 0x05f655224251b635ull, 0x032868910ef0bd55ull,
+ 0x9815fbac2c42b664ull, 0x814e379c471fd611ull, 0xa4a25bda7dd8349dull,
+ 0x01b9e39d9886b84cull, 0xae31cbc95a7ce1a2ull, 0x83ef8faf86d07f32ull,
+ 0x58470fdfb66b5b76ull, 0x5161888996d59b73ull, 0xfc8e0fc6dc400cf7ull,
+ 0x09a08e56af693670ull, 0x74f682e191737de6ull, 0x7f8ac56d0e03923full,
+ 0x8e05e49a7400cfd4ull, 0x384e11644cebea3cull, 0xb50ae05eb2e43d8cull,
+ 0xa40061230f0b3ed9ull, 0x4e9a193464137137ull, 0xd9621be605404100ull,
+ 0x5c347ebb9329a255ull, 0xe684346b75cbeb1bull, 0xba6a9753840fee55ull,
+ 0x60505b7bf43836f6ull, 0xfd6d475d334a9278ull, 0x267375aa5db94761ull,
+ 0x024f6d63c110e160ull, 0xa99b4c192ec96610ull, 0x338cfd90b915c9f4ull,
+ 0xb9e51a09f02ea846ull, 0xfae31d88ae928fb1ull, 0x8475dd261a3db721ull,
+ 0x7ad4c4075769489dull, 0x34e275c80a49e9f0ull, 0x1d63114a3d075d83ull,
+ 0x6b98e94772a96415ull, 0xd50fdc361d500b5full, 0x87751275141e5085ull,
+ 0x2278809ee7843834ull, 0x947aead2b15c52eeull, 0x5197b744fedb7b02ull,
+ 0x8849d0a664e09ba8ull, 0x11ecb91323beaa85ull, 0x5d9848480f7ed667ull,
+ 0x588290e99f6331eaull, 0x7e09e9e5a24d64d1ull, 0x03a501df32592033ull,
+ 0xbb3df73827c270a6ull, 0x4190833c3c7c5a70ull, 0x80e5d89b7d4bf9f4ull,
+ 0xfaefb663a7fc6194ull, 0xd3b6adcd62e52b49ull, 0x1f2cf73a809646fcull,
+ 0x531e4bfbb765ed4full, 0xaf12d1a692cd05f2ull, 0x38da107422ee30f3ull,
+ 0x1a725608ed6447bbull, 0x7a3c6f54aff222d3ull, 0x7b0e8d12bca79a56ull,
+ 0x6e34d6fb1c4660c5ull, 0xfe9dc99c6f481a9full, 0xd8489ea0f888db82ull,
+ 0xc0dea28184b4c0faull, 0xae30e887977a8583ull, 0x1d4848cb8c1cbcecull,
+ 0xd011b0fc0ee0d137ull, 0x478d7dd494b5fd49ull, 0xacab62ad3d67f2e7ull,
+ 0x1dfc7df50ab4e62aull, 0x870b0e75d22e4553ull, 0x1b73bf6d49b7b001ull,
+ 0xdc9f073712807ffdull, 0xc0e2f2506f3e5852ull, 0x4d96a55a93e62e4aull,
+ 0x83a126dbc1d0e185ull, 0xefbfd043190b917bull, 0x8f25b6ddc7df1669ull,
+ 0x476c17a62062eac9ull, 0x25460383cb60f278ull, 0xda8c05be0e85e996ull,
+ 0x692062346f678a34ull, 0x1947b69af59be929ull, 0x90fd83220ebfa11bull,
+ 0xd699b1ec15c1e9bfull, 0x7001d002b2f0343full, 0xc0778ab5cf76eaaaull,
+ 0xb7b008e25173eda8ull, 0x505d3f4d4e00e4c6ull, 0x1c9d4e1299dd341aull,
+ 0x474c5e954ffb6978ull, 0xda19f9386e9ca6ddull, 0x98dc318ee2dda6e0ull,
+ 0x3f67b836da455e54ull, 0xa97e9a6421e4181cull, 0x527a08bb1e17f655ull,
+ 0x682972ad1712dc21ull, 0xccbeadf10042d256ull, 0x861e99e0ca497b96ull,
+ 0xeeb0f6500d8aa585ull, 0x506af77edcc3c3daull, 0x7c9d60be5deb9768ull,
+ 0x37b37e95e9d978b7ull, 0x42747f7577ad0b94ull, 0x6d5fd2fe07be42c4ull,
+ 0x0d8fc27d4c8c5da9ull, 0x0ccf60230f2fd50full, 0x3b1101bd5b56053full,
+ 0xc0feca2756d34906ull, 0xc4888da47602a150ull, 0x56d10633419abe54ull,
+ 0x8db14123c76120edull, 0x741e8f76b656e675ull, 0x96be6f21d297b94eull,
+ 0x9b409e273662439dull, 0x35fff92a6626574dull, 0x69e02439bf558205ull,
+ 0x6400fd4cbe6838b7ull, 0x1f4b158aa00f64caull, 0x04cca5589e2052aeull,
+ 0x58da644cfb5ee69eull, 0x8ab1940196f26e1full, 0xed8bf908bee1e16bull,
+ 0xd50babab2f2809a4ull, 0x6b0a89296e57f7e6ull, 0xb54a4cfcf7356431ull,
+ 0x6f9fd6cb9a1d0ac4ull, 0x3b42f469836bfbf8ull, 0x40111b6b8bd32129ull,
+ 0xb345d9557c278fb1ull, 0xd32cd13cff1fd188ull, 0x3789f792f7ec3aa0ull,
+ 0x4d79a4bfab707fa4ull, 0xd9c24d8eb3a28cebull, 0x06e2eb3e7134dadcull,
+ 0xb379d811d7c04f76ull, 0x8c94fc332b3b0ebcull, 0xc06c5d01a28b53abull,
+ 0x7fea91cad900432aull, 0x64845f086d30b008ull, 0xfde4687d796f5349ull,
+ 0xe0046c56f888fe67ull, 0xce98cb11ae482177ull, 0x1feb440084590c46ull,
+ 0xff2f16116e1ba29bull, 0x3159ca8cf73f3e9cull, 0x56f0ed4634845918ull,
+ 0xd9a16a01b7d10c32ull, 0x3cee3e24405b9e91ull, 0x2ab396b48739e4a6ull,
+ 0x09835dfd3f1b7871ull, 0x1592b74a8c7a489full, 0x0e8d3f3705df7c81ull,
+ 0x68b29622a61ff273ull, 0x43ff84a6259cd337ull, 0x566ed88381cf8fe9ull,
+ 0x35c7942848427fc6ull, 0xa97e8c8bcfd2fb59ull, 0x32ddca23750aaed8ull,
+ 0x96fbfff9aa8108efull, 0xe3cdf588a1d039aaull, 0xcd6b3fdb47e77e00ull,
+ 0x9a522152e72a9a80ull, 0xef175610eda06283ull, 0x339fe6c4a670cfa1ull,
+ 0xc2d7f53b2dfbf3eeull, 0xcc47e4b092a44e27ull, 0xd64f83c9dfa212bcull,
+ 0xb51319bf997e5475ull, 0x1fc2c7b69fffe599ull, 0x832169ddef5605e7ull,
+ 0xbf921dc8feb6be4eull, 0x72759f8d60bdfb1dull, 0x020eebed3546efa0ull,
+ 0xdb20a2fecaab3d64ull, 0xb2b62bddba1218f6ull, 0x8fde5cfa3101eff0ull,
+ 0xa52114d22e319213ull, 0xdf08b1dd87eead3full, 0x746f34d0a5387642ull,
+ 0x4cc40317d76c4844ull, 0xb7d76071e4f689c9ull, 0x6e1c79155fe0b4a2ull,
+ 0x3efb7d71c7d43f53ull, 0x35a75f5f068dd906ull, 0x750f4607652d7770ull,
+ 0x36c2cf8e64a1656cull, 0x9348ef93214d758bull, 0x9674b7f3e4058978ull,
+ 0xbdfaba8f10570b0bull, 0xa92b261fcef09dd7ull, 0xcbebb81f071c21b6ull,
+ 0x44228cd6f427ed6cull, 0x5036c46065e56fcfull, 0xccfd848bad919defull,
+ 0x7527dca361d158a6ull, 0x508550754cf30459ull, 0x3540f5aaa70dfd09ull,
+ 0xb5ba3d4e35577adbull, 0xcdfb689f35736c4full, 0x97ab0dcaefe8fa82ull,
+ 0x77a7fe9c51bd2ff3ull, 0x3d618b813107846cull, 0xfc5e9651bca797a4ull,
+ 0xf7e8791fe2e08fbcull, 0x7c426f9d772f1cc0ull, 0x0080c3ab08d56f88ull,
+ 0xe6d46ec60deea663ull, 0x6b681d9d7dca4eb7ull, 0x4af0e0f2da06730bull,
+ 0x52097463038bf468ull, 0xbc09bb9aca19d302ull, 0x3ded4433aa55aeb1ull,
+ 0x3e4b7865f27938baull, 0x7ef9631428296be7ull, 0xdf0b6b477a1d55ccull,
+ 0xcedda5bdcde11852ull, 0x72ca1a8bf00a0eb3ull, 0xb002fdcc5241b572ull,
+ 0xc4878862ff8898b3ull, 0xbf4bca29b3e85372ull, 0xf2d831897e1fef45ull,
+ 0x3cdf9e050f5427afull, 0xf65c06ac75bae885ull, 0xa3145eac9c71a700ull,
+ 0x76255bbfde63bab2ull, 0x4c6ad3d06e817be6ull, 0xe95ef2f825ab9935ull,
+ 0xd54f78de11cd095aull, 0xb3829dcba001ae7eull, 0x18eb9c9e5abd18bdull,
+ 0xe3e3556cada3c504ull, 0x5191ac5fd35479aaull, 0xc8d1d9d3221821acull,
+ 0x088c3fc8313a8c51ull, 0xb154abedc146a264ull, 0x349ec09392755bc5ull,
+ 0x41d5886cf94aba57ull, 0x36aba94b0a5ad8b2ull, 0xa9ad229f883a6758ull,
+ 0x0546172f5d64069aull, 0xc3808ea40366da16ull, 0x70f0a2350b172403ull,
+ 0x4fceb827fa816e66ull, 0x167b56d5a65fcfeaull, 0xfec36bcdfe2b9fb2ull,
+ 0xcd96320fa84c4cc9ull, 0x09eda8b83e128584ull, 0x7ec7e17b91eca525ull,
+ 0xc14032f4bc45bedcull, 0x2eb20bc09be689a7ull, 0x14ef835fffdf1efcull,
+ 0xcd778dd8c6966c59ull, 0x23d477155feb0f3bull, 0x5722a550d64b87c8ull,
+ 0x315a1a8b62883198ull, 0x4b7e9d7a648e17e6ull, 0x67caca842ba43d28ull,
+ 0x6e660159741f0398ull, 0x3dde3c453e16e1a9ull, 0xc7eb0aefa53e56aeull,
+ 0x78751d733f39f33eull, 0x626770f745816df8ull, 0x909e87f4cb17d28dull,
+ 0xc1dcf32893a86abaull, 0xd895d0421a1e4ce2ull, 0xbb00eaf5b9f6dd69ull,
+ 0xca609578acc37687ull, 0xf8b86d4c5b490d39ull, 0x39419f6df2737ef0ull,
+ 0x72524a0369267bc0ull, 0xdbc01e936eb060c4ull, 0x83984d54291035b1ull,
+ 0xe08cbc20f673ad85ull, 0x584803a61fb24915ull, 0x4088ddb5e15bbcd7ull,
+ 0x2c18041ad4c22542ull, 0xb2ba69b4a51372d1ull, 0xcd11c2962299283full,
+ 0xac54df2325dcd6f3ull, 0x77e16e1d24a3a55eull, 0xb99d85c0b3cd415bull,
+ 0xe91154e3497befc7ull, 0xb55100aa7365cd8bull, 0xfc0927a60ee699ebull,
+ 0x8acaa910efb374deull, 0xda3f000683b40e3dull, 0xc6ce1b758590a089ull,
+ 0xfda2f7f354f6ff20ull, 0xd0763b6dd2ab58f6ull, 0x2519622d6caf2515ull,
+ 0x9863638fc3714057ull, 0x09ea4a4dea00bb4full, 0x6b01fe5fe69de96dull,
+ 0x529e32ec960161a5ull, 0x01a37eeaf8260ae9ull, 0x5aa0716f69710577ull,
+ 0x4260fedacb3fb1daull, 0x76012f75a33fb790ull, 0x130f09ae24c0e5beull,
+ 0x5c8ecb762e8323dcull, 0x401b5f5c17cb8f12ull, 0x47e1560a5f0a63e0ull,
+ 0xee1377d4dc57a786ull, 0x0aa294b9228e7ee5ull, 0x55b0fe2faea6c534ull,
+ 0xf108b772922d318aull, 0xdfb69702f15bddf6ull, 0x90e1db66cd438a4eull,
+ 0x568ef6cb584ce4a1ull, 0x6da376ba69e55f9dull, 0x45c7e2945ca6c109ull,
+ 0xcf5b6c0cc977b3e9ull, 0x11b487ae1d694499ull, 0xbcb3cc6ecf8339acull,
+ 0x046b107150b828e0ull, 0x2c6159465703ed0dull, 0xa908dbd0720d1610ull,
+ 0x22c076e2742bbe33ull, 0x1d0cefa448966a66ull, 0x601352bf1dde819full,
+ 0xa585cc4ab9370c39ull, 0x5a2f7206eb857f94ull, 0x49cd0f1f3fae6b58ull,
+ 0x1b89d47678e5fb3dull, 0xed82945b74e9e65bull, 0x2941c4d9b74e6483ull,
+ 0x565c18dc7e087accull, 0xbf4ccd3d1a09f2e5ull, 0xa522631dd304e977ull,
+ 0x4517109b6123378eull, 0x4bf1a506b7e4285aull, 0x683172f8625803c2ull,
+ 0x3f8a2b11c84e7354ull, 0xed4204917dd12b89ull, 0x9853fb978c698b0bull,
+ 0xb697e1c99631777bull, 0x510381105f028f05ull, 0x30e255e39055f055ull,
+ 0xb990321ee2d0c1b6ull, 0xff4dc144a8fdf4d1ull, 0x148999e0521a3056ull,
+ 0xa9c96852a8111c66ull, 0x4b394a948157f508ull, 0x94ec2e93a0dc4df1ull,
+ 0x8fc283776e6afa56ull, 0xc435186ff72ffa04ull, 0x8d037f6ff91488b7ull,
+ 0x48757727a899ec1eull, 0xb8cf377d4101b612ull, 0xb4570569a5a54e68ull,
+ 0x063d9cfd2ac5a0a0ull, 0xf1a5884c7c504c74ull, 0x8d0b91bf0a9b1955ull,
+ 0x79ff5361e5f6862full, 0xc6fd31fb0ed3d38full, 0x85b9c6489fe131c7ull,
+ 0x8e77e86b8febf2b4ull, 0x56429986992ba80eull, 0x608cdda56848879aull,
+ 0x754b300e3e0d106eull, 0xafd5195b25200576ull, 0xe81f09395d37aad9ull,
+ 0xdeeea20ae00a390eull, 0xb5d51155f5fef0beull, 0x9e72ebcf6e27d173ull,
+ 0xb966f7bab776e978ull, 0x726c840809520238ull, 0x65dce5a23347ebc5ull,
+ 0x8c92d7403ec78337ull, 0x32caec933cdde3feull, 0x411be811d20379aeull,
+ 0x72fa1bbd41756580ull, 0x84c42f04a92125b3ull, 0x3a25922cdd4ee5feull,
+ 0x49ad3be096446853ull, 0x1c841afe2880366dull, 0xfb905fe1f1e09019ull,
+ 0x3ba9d0c9a451ad59ull, 0xa42419f256db2e9cull, 0x3c9a3ca5e921e7a0ull,
+ 0xcec7d091ad8ea375ull, 0x477ef58f99bdb940ull, 0xb2598b8d8a4933c7ull,
+ 0xcfac1e1cf5659df7ull, 0xe2a04aab339f8748ull, 0x45bc6f37e122b03full,
+ 0x9c75aaa0c9feeb30ull, 0x0ea0585dc13c174eull, 0x3a96bd5adc58bbb4ull,
+ 0x3c7a714d20251482ull, 0x6cb83b6b696897ebull, 0x3b496b5fa37de406ull,
+ 0x380dd38237e75d6aull, 0xda26fac90e1a513cull, 0x12b5c6eaf2458364ull,
+ 0x1ff1fcbf79ce9e47ull, 0x59a6a7babe7c6e86ull, 0x947614538d70f515ull,
+ 0x8768ffb26b04e425ull, 0x3f9e84071ca5f425ull, 0x5f8f67563b641184ull,
+ 0x56bc212062b1a5a5ull, 0x17f2fa18d1e5da68ull, 0xa1bc9c068cce5e2dull,
+ 0x892df1af8e290fb1ull, 0xb43e5517ad10b8c8ull, 0x4407c38fd0597409ull,
+ 0xfea9c9b64a020d81ull, 0xd5b2aaf9d8e0e7d6ull, 0xda44ed4ade5e9b40ull,
+ 0x87aa3ca045d6bf41ull, 0x4708acc8c62d12fcull, 0x0d1227ff10212e26ull,
+ 0x5da02550feeb5742ull, 0x1d56e5e1d66668e7ull, 0xae1e0bef32c215ecull,
+ 0x58c0e9227f048b7eull, 0x58251aac2aea8619ull, 0xa1fea536bbe10425ull,
+ 0xd233eb7d2e1d9667ull, 0xb0693c67cf435c0bull, 0x903ec9f061d918eaull,
+ 0x0efb1788d6c4e8acull, 0x1709d878b0098f5bull, 0x3f6ce1b73c12b35eull,
+ 0x8a8f7dbba1b3ff54ull, 0x73e8563e37608d6aull, 0x64e00749a3330540ull,
+ 0x8d5caaf9ebbfcab9ull, 0xedb2bd943bc87c7eull, 0xe656dec322f8f62dull,
+ 0x670c1626c5683222ull, 0x4237542f94089e7full, 0x2fc4e53047d29440ull,
+ 0x8b288dac8419441eull, 0xa7afb4e97f9245f9ull, 0x082adef78a15650dull,
+ 0x043c62de3104ef19ull, 0x7ecd06350aff3dc5ull, 0xe0600fade7e80a8bull,
+ 0x81ebf4e04d8e81ccull, 0x7b372af7f587e30full, 0xdee11c6f2d8f8ca0ull,
+ 0xf8adc426d3624b1cull, 0x5c22de4fca9debedull, 0xfae3186b3634f778ull,
+ 0xd7bfa75facf8b595ull, 0xbbfe3cf6003cd316ull, 0xc51055a1b023cb50ull,
+ 0x93869a770063cffdull, 0xfbceeb1051e022d4ull, 0x109defc95187457eull,
+ 0xe13cfde2673892d8ull, 0xc09c8134d4aa3272ull, 0x0327181bbf89ad5bull,
+ 0xaa21b63209511ec7ull, 0xe41885b5d7e72186ull, 0x493d278946713f9cull,
+ 0xd5d22a5c1386c526ull, 0xcf59281ccefddfc4ull, 0x4ebe43f692973ea6ull,
+ 0x6cf4897deac5c6adull, 0x82ce562ad95082a0ull, 0x28d8f0db28e5e9bdull,
+ 0x707b0166ddf06e81ull, 0xfbf5756a7dae3f00ull, 0x4f114102035a4680ull,
+ 0x5190fedfe7ba4b33ull, 0xe5f1bc49106a7594ull, 0xd7a1a766aae3ad67ull,
+ 0x9120a214040ee971ull, 0x1edc87eaf415b374ull, 0xc6ad637d17aab43cull,
+ 0xd90303c7885858c1ull, 0x3ff4eb0ebfd4b70bull, 0xd81eea30344a9a88ull,
+ 0x5adef0ec95925446ull, 0x20bbd8c3abb5f5e7ull, 0xe6944262c1c22cceull,
+ 0x80024021c5acdb23ull, 0x94b30c812232c635ull, 0x78569acd55f07648ull,
+ 0x4dd6b5289696ea39ull, 0xde5853b31c3e1b40ull, 0x6eb5a7d88a2c3679ull,
+ 0x8f9cf09656bda89aull, 0x6481c7e7fda86d5bull, 0x15bfb45d50a6a7d5ull,
+ 0xc057d45d4f9a5381ull, 0xa0009f004fb10024ull, 0xac420f745e1ca0ddull,
+ 0xf0d4a615cfbb38bdull, 0x0e3aef8419bf0318ull, 0x166c1e3ecb3d7b20ull,
+ 0x3bfacf9f58272fddull, 0x63a13528c0f5ce46ull, 0xa020ca8cea59e333ull,
+ 0x3dbb5a3daadd116bull, 0x747f55eae5523f47ull, 0x64d520fb0922171eull,
+ 0x07ce951b6c709e84ull, 0x7508eb6d35fdc402ull, 0xb0d11c39c495a8faull,
+ 0x57447ef081313d65ull, 0xf72301f3a7b61e26ull, 0x45a3a7c5bb096315ull,
+ 0x00432f88a903a44bull, 0xeb4e1b6619081987ull, 0x6d245171bb7b66bdull,
+ 0x0d89bd0bde4182f5ull, 0xf70d8a6087f4de6cull, 0x08a274499a87855bull,
+ 0xd49640174ac7720aull, 0x4db3488cb0d9ddacull, 0xd07b745bfe397d44ull,
+ 0x6e9d567d197dcb7bull, 0x9143fef1e3b90812ull, 0x115ff96db9e002acull,
+ 0x5b61c9c8f60a2201ull, 0xb14a44a709abab2full, 0x843c79970ca19c73ull,
+ 0x5e3fc18ce3a9bbe6ull, 0x764df59d0c0404eeull, 0x4ad0ba3c990ec2c2ull,
+ 0xe599647d05e8be0full, 0x4d0c2990c19d365dull, 0xb680a72de5a9d9acull,
+ 0x6d6c02674ce2e5ddull, 0xbd6078e006f9c25bull, 0xd742fa41b5fcdc81ull,
+ 0xc691adc0cccc2399ull, 0xea73b0c3215ad82cull, 0xf499e0a6a511e5b0ull,
+ 0xd94440a253e27ab0ull, 0x9a6e364447752521ull, 0x8f8b301dab113708ull,
+ 0x00000000058a42a3ull,
#endif
};
@@ -437,7 +1307,7 @@ const mp_limb_t __tens[] =
/* Each of array variable above defines one mpn integer which is a power of 10.
This table points to those variables, indexed by the exponent. */
-const struct mp_power _fpioconst_pow10[LDBL_MAX_10_EXP_LOG + 1] =
+const struct mp_power _fpioconst_pow10[FPIOCONST_POW10_ARRAY_SIZE] =
{
{ TENS_P0_IDX, TENS_P0_SIZE, 4, },
{ TENS_P1_IDX, TENS_P1_SIZE, 7, 4 },
@@ -448,14 +1318,12 @@ const struct mp_power _fpioconst_pow10[LDBL_MAX_10_EXP_LOG + 1] =
{ TENS_P6_IDX, TENS_P6_SIZE, 213, 210 },
{ TENS_P7_IDX, TENS_P7_SIZE, 426, 422 },
{ TENS_P8_IDX, TENS_P8_SIZE, 851, 848 },
-#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
{ TENS_P9_IDX, TENS_P9_SIZE, 1701, 1698 },
{ TENS_P10_IDX, TENS_P10_SIZE, 3402, 3399 },
+#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
{ TENS_P11_IDX, TENS_P11_SIZE, 6804, 6800 },
- { TENS_P12_IDX, TENS_P12_SIZE, 13607, 13604 }
+ { TENS_P12_IDX, TENS_P12_SIZE, 13607, 13604 },
+ { TENS_P13_IDX, TENS_P13_SIZE, 27214, 27210 },
+ { TENS_P14_IDX, TENS_P14_SIZE, 54427, 54424 },
#endif
};
-
-#if LAST_POW10 > _LAST_POW10
-# error "Need to expand 10^(2^i) table for i up to" LAST_POW10
-#endif
diff --git a/stdlib/fpioconst.h b/stdlib/fpioconst.h
index 5ab19f5bf1..34478b71cf 100644
--- a/stdlib/fpioconst.h
+++ b/stdlib/fpioconst.h
@@ -1,6 +1,5 @@
/* Header file for constants used in floating point <-> decimal conversions.
- Copyright (C) 1995, 1996, 1997, 1998, 1999, 2002, 2003
- Free Software Foundation, Inc.
+ Copyright (C) 1995-2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -41,6 +40,13 @@
#define DBL_MAX_10_EXP_LOG 8 /* = floor(log_2(DBL_MAX_10_EXP)) */
#define FLT_MAX_10_EXP_LOG 5 /* = floor(log_2(FLT_MAX_10_EXP)) */
+/* For strtold, we need powers of 10 up to floor (log_2 (LDBL_MANT_DIG
+ - LDBL_MIN_EXP + 2)). */
+#if !defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024
+# define FPIOCONST_POW10_ARRAY_SIZE 15
+#else
+# define FPIOCONST_POW10_ARRAY_SIZE 11
+#endif
/* The array with the number representation. */
extern const mp_limb_t __tens[] attribute_hidden;
@@ -54,7 +60,7 @@ struct mp_power
int p_expo; /* Exponent of the number 10^(2^i). */
int m_expo; /* Exponent of the number 10^-(2^i-1). */
};
-extern const struct mp_power _fpioconst_pow10[LDBL_MAX_10_EXP_LOG + 1]
+extern const struct mp_power _fpioconst_pow10[FPIOCONST_POW10_ARRAY_SIZE]
attribute_hidden;
/* The constants in the array `_fpioconst_pow10' have an offset. */
diff --git a/stdlib/gen-fpioconst.c b/stdlib/gen-fpioconst.c
new file mode 100644
index 0000000000..0d26d8ef11
--- /dev/null
+++ b/stdlib/gen-fpioconst.c
@@ -0,0 +1,107 @@
+/* Generate data for fpioconst.c.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <inttypes.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <gmp.h>
+
+int
+main (void)
+{
+ FILE *out32 = fopen ("fpioconst-32", "w");
+ if (out32 == NULL)
+ abort ();
+ FILE *out64 = fopen ("fpioconst-64", "w");
+ if (out64 == NULL)
+ abort ();
+ FILE *outtable = fopen ("fpioconst-table", "w");
+ if (outtable == NULL)
+ abort ();
+ mpz_t p;
+ mpz_init (p);
+ for (int i = 0; i <= 14; i++)
+ {
+ int j = 1 << i;
+ mpz_ui_pow_ui (p, 10, j - 1);
+ int exp_m = mpz_sizeinbase (p, 2);
+ mpz_ui_pow_ui (p, 10, j);
+ int exp_p = mpz_sizeinbase (p, 2);
+ int size32 = 2 + (exp_p + 31) / 32;
+ int size64 = 1 + (exp_p + 63) / 64;
+ uint32_t data32[size32];
+ uint64_t data64[size64];
+ memset (data32, 0, sizeof data32);
+ memset (data64, 0, sizeof data64);
+ mpz_export (data32 + 2, NULL, -1, 4, 0, 0, p);
+ mpz_export (data64 + 1, NULL, -1, 8, 0, 0, p);
+ if (i == 0)
+ {
+ fprintf (out32, "#define TENS_P%d_IDX\t0\n", i);
+ fprintf (out64, "#define TENS_P%d_IDX\t0\n", i);
+ }
+ else
+ {
+ fprintf (out32, "#define TENS_P%d_IDX\t"
+ "(TENS_P%d_IDX + TENS_P%d_SIZE)\n",
+ i, i - 1, i - 1);
+ fprintf (out64, "#define TENS_P%d_IDX\t"
+ "(TENS_P%d_IDX + TENS_P%d_SIZE)\n",
+ i, i - 1, i - 1);
+ }
+ fprintf (out32, "#define TENS_P%d_SIZE\t%d\n", i, size32);
+ fprintf (out64, "#define TENS_P%d_SIZE\t%d\n", i, size64);
+ for (int k = 0; k < size32; k++)
+ {
+ if (k == 0)
+ fprintf (out32, " [TENS_P%d_IDX] = ", i);
+ else if (k % 6 == 5)
+ fprintf (out32, "\n ");
+ else
+ fprintf (out32, " ");
+ fprintf (out32, "0x%08"PRIx32",", data32[k]);
+ }
+ for (int k = 0; k < size64; k++)
+ {
+ if (k == 0)
+ fprintf (out64, " [TENS_P%d_IDX] = ", i);
+ else if (k % 3 == 2)
+ fprintf (out64, "\n ");
+ else
+ fprintf (out64, " ");
+ fprintf (out64, "0x%016"PRIx64"ull,", data64[k]);
+ }
+ fprintf (out32, "\n\n");
+ fprintf (out64, "\n\n");
+ const char *t = (i >= 10 ? "\t" : "\t\t");
+ if (i == 0)
+ fprintf (outtable, " { TENS_P%d_IDX, TENS_P%d_SIZE,%s%d,\t },\n",
+ i, i, t, exp_p);
+ else
+ fprintf (outtable, " { TENS_P%d_IDX, TENS_P%d_SIZE,%s%d,\t%5d },\n",
+ i, i, t, exp_p, exp_m);
+ }
+ if (fclose (out32) != 0)
+ abort ();
+ if (fclose (out64) != 0)
+ abort ();
+ if (fclose (outtable) != 0)
+ abort ();
+ return 0;
+}
diff --git a/stdlib/gen-tst-strtod-round.c b/stdlib/gen-tst-strtod-round.c
new file mode 100644
index 0000000000..0a89ff71af
--- /dev/null
+++ b/stdlib/gen-tst-strtod-round.c
@@ -0,0 +1,131 @@
+/* Generate table of tests in tst-strtod-round.c from
+ tst-strtod-round-data.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#define _GNU_SOURCE
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <mpfr.h>
+
+/* Work around incorrect ternary value from mpfr_strtofr
+ <https://sympa.inria.fr/sympa/arc/mpfr/2012-08/msg00005.html>. */
+#define WORKAROUND
+
+static int
+string_to_fp (mpfr_t f, const char *s, mpfr_rnd_t rnd)
+{
+#ifdef WORKAROUND
+ mpfr_t f2;
+ mpfr_init2 (f2, 100000);
+ int r0 = mpfr_strtofr (f2, s, NULL, 0, rnd);
+ int r = mpfr_set (f, f2, rnd);
+ mpfr_subnormalize (f, r, rnd);
+ mpfr_clear (f2);
+ return r0 | r;
+#else
+ int r = mpfr_strtofr (f, s, NULL, 0, rnd);
+ mpfr_subnormalize (f, r, rnd);
+ return r;
+#endif
+}
+
+static void
+print_fp (mpfr_t f, const char *suffix, const char *suffix2)
+{
+ if (mpfr_inf_p (f))
+ mpfr_printf ("\t%sINFINITY%s", mpfr_signbit (f) ? "-" : "", suffix2);
+ else
+ mpfr_printf ("\t%Ra%s%s", f, suffix, suffix2);
+}
+
+static void
+round_str (const char *s, const char *suffix,
+ int prec, int emin, int emax, bool need_exact)
+{
+ mpfr_t f;
+ mpfr_set_default_prec (prec);
+ mpfr_set_emin (emin);
+ mpfr_set_emax (emax);
+ mpfr_init (f);
+ int r = string_to_fp (f, s, MPFR_RNDD);
+ if (need_exact)
+ mpfr_printf ("\t%s,\n", r ? "false" : "true");
+ print_fp (f, suffix, ",\n");
+ string_to_fp (f, s, MPFR_RNDN);
+ print_fp (f, suffix, ",\n");
+ string_to_fp (f, s, MPFR_RNDZ);
+ print_fp (f, suffix, ",\n");
+ string_to_fp (f, s, MPFR_RNDU);
+ print_fp (f, suffix, "");
+ mpfr_clear (f);
+}
+
+static void
+round_for_all (const char *s)
+{
+ static const struct fmt {
+ const char *suffix;
+ int prec;
+ int emin;
+ int emax;
+ bool need_exact;
+ } formats[6] = {
+ { "f", 24, -148, 128, false },
+ { "", 53, -1073, 1024, false },
+ { "L", 53, -1073, 1024, false },
+ { "L", 64, -16444, 16384, false },
+ { "L", 106, -1073, 1024, true },
+ { "L", 113, -16493, 16384, false },
+ };
+ mpfr_printf (" TEST (\"");
+ const char *p;
+ for (p = s; *p; p++)
+ {
+ putchar (*p);
+ if ((p - s) % 60 == 59 && p[1])
+ mpfr_printf ("\"\n\t\"");
+ }
+ mpfr_printf ("\",\n");
+ int i;
+ for (i = 0; i < 6; i++)
+ {
+ round_str (s, formats[i].suffix, formats[i].prec,
+ formats[i].emin, formats[i].emax, formats[i].need_exact);
+ if (i < 5)
+ mpfr_printf (",\n");
+ }
+ mpfr_printf ("),\n");
+}
+
+int
+main (void)
+{
+ char *p = NULL;
+ size_t len;
+ ssize_t nbytes;
+ while ((nbytes = getline (&p, &len, stdin)) != -1)
+ {
+ if (p[nbytes - 1] == '\n')
+ p[nbytes - 1] = 0;
+ round_for_all (p);
+ free (p);
+ p = NULL;
+ }
+ return 0;
+}
diff --git a/stdlib/strtod_l.c b/stdlib/strtod_l.c
index a8a7ea8f23..a0cd4f1afe 100644
--- a/stdlib/strtod_l.c
+++ b/stdlib/strtod_l.c
@@ -153,17 +153,18 @@ extern const mp_limb_t _tens_in_limb[MAX_DIG_PER_LIMB + 1];
#endif
#define SWAP(x, y) ({ typeof(x) _tmp = x; x = y; y = _tmp; })
-#define NDIG (MAX_10_EXP - MIN_10_EXP + 2 * MANT_DIG)
-#define HEXNDIG ((MAX_EXP - MIN_EXP + 7) / 8 + 2 * MANT_DIG)
#define RETURN_LIMB_SIZE howmany (MANT_DIG, BITS_PER_MP_LIMB)
#define RETURN(val,end) \
do { if (endptr != NULL) *endptr = (STRING_TYPE *) (end); \
return val; } while (0)
-/* Maximum size necessary for mpn integers to hold floating point numbers. */
-#define MPNSIZE (howmany (MAX_EXP + 2 * MANT_DIG, BITS_PER_MP_LIMB) \
- + 2)
+/* Maximum size necessary for mpn integers to hold floating point
+ numbers. The largest number we need to hold is 10^n where 2^-n is
+ 1/4 ulp of the smallest representable value (that is, n = MANT_DIG
+ - MIN_EXP + 2). Approximate using 10^3 < 2^10. */
+#define MPNSIZE (howmany (1 + ((MANT_DIG - MIN_EXP + 2) * 10) / 3, \
+ BITS_PER_MP_LIMB) + 2)
/* Declare an mpn integer variable that big. */
#define MPN_VAR(name) mp_limb_t name[MPNSIZE]; mp_size_t name##size
/* Copy an mpn integer value. */
@@ -1281,23 +1282,60 @@ ____STRTOF_INTERNAL (nptr, endptr, group, loc)
int expbit;
int neg_exp;
int more_bits;
+ int need_frac_digits;
mp_limb_t cy;
mp_limb_t *psrc = den;
mp_limb_t *pdest = num;
const struct mp_power *ttab = &_fpioconst_pow10[0];
- assert (dig_no > int_no && exponent <= 0);
+ assert (dig_no > int_no
+ && exponent <= 0
+ && exponent >= MIN_10_EXP - (DIG + 1));
+ /* We need to compute MANT_DIG - BITS fractional bits that lie
+ within the mantissa of the result, the following bit for
+ rounding, and to know whether any subsequent bit is 0.
+ Computing a bit with value 2^-n means looking at n digits after
+ the decimal point. */
+ if (bits > 0)
+ {
+ /* The bits required are those immediately after the point. */
+ assert (int_no > 0 && exponent == 0);
+ need_frac_digits = 1 + MANT_DIG - bits;
+ }
+ else
+ {
+ /* The number is in the form .123eEXPONENT. */
+ assert (int_no == 0 && *startp != L_('0'));
+ /* The number is at least 10^(EXPONENT-1), and 10^3 <
+ 2^10. */
+ int neg_exp_2 = ((1 - exponent) * 10) / 3 + 1;
+ /* The number is at least 2^-NEG_EXP_2. We need up to
+ MANT_DIG bits following that bit. */
+ need_frac_digits = neg_exp_2 + MANT_DIG;
+ /* However, we never need bits beyond 1/4 ulp of the smallest
+ representable value. (That 1/4 ulp bit is only needed to
+ determine tinyness on machines where tinyness is determined
+ after rounding.) */
+ if (need_frac_digits > MANT_DIG - MIN_EXP + 2)
+ need_frac_digits = MANT_DIG - MIN_EXP + 2;
+ /* At this point, NEED_FRAC_DIGITS is the total number of
+ digits needed after the point, but some of those may be
+ leading 0s. */
+ need_frac_digits += exponent;
+ /* Any cases underflowing enough that none of the fractional
+ digits are needed should have been caught earlier (such
+ cases are on the order of 10^-n or smaller where 2^-n is
+ the least subnormal). */
+ assert (need_frac_digits > 0);
+ }
+
+ if (need_frac_digits > (intmax_t) dig_no - (intmax_t) int_no)
+ need_frac_digits = (intmax_t) dig_no - (intmax_t) int_no;
- /* For the fractional part we need not process too many digits. One
- decimal digits gives us log_2(10) ~ 3.32 bits. If we now compute
- ceil(BITS / 3) =: N
- digits we should have enough bits for the result. The remaining
- decimal digits give us the information that more bits are following.
- This can be used while rounding. (Two added as a safety margin.) */
- if ((intmax_t) dig_no > (intmax_t) int_no + (MANT_DIG - bits + 2) / 3 + 2)
+ if ((intmax_t) dig_no > (intmax_t) int_no + need_frac_digits)
{
- dig_no = int_no + (MANT_DIG - bits + 2) / 3 + 2;
+ dig_no = int_no + need_frac_digits;
more_bits = 1;
}
else
diff --git a/stdlib/tst-strtod-round-data b/stdlib/tst-strtod-round-data
new file mode 100644
index 0000000000..043341cba7
--- /dev/null
+++ b/stdlib/tst-strtod-round-data
@@ -0,0 +1,107 @@
+3.518437208883201171875E+013
+1.00000005960464477550
+1.0000000596046447755
+1.000000059604644776
+1.000000059604644775
+1.00000005960464478
+1.0000000596046448
+1.000000059604645
+1.00000005960464
+1.0000000596046
+1.000000059605
+1.00000005960
+1.0000000596
+1.000000060
+1.00000006
+1.0000001
+1.000000
+1.00000000000000011113
+1.00000000000000011103
+1.00000000000000011102
+1.00000000000000011101
+1.0000000000000001111
+1.000000000000000111
+1.00000000000000011
+1.0000000000000001
+3929201589819414e-25
+0.000000000000000000000000000000000000000000002101947696487225606385594374934874196920392912814773657635602425834686624028790902229957282543182373046875
+1.00000005960464477539062499
+1.000000059604644775390625
+1.00000005960464477539062501
+1.00000011920928955078125
+1.00000017881393432617187499
+1.000000178813934326171875
+1.00000017881393432617187501
+1.0000002384185791015625
+1.08420217248550443400745280086994171142578125e-19
+1.0842022371089897897127399001987457793916291848290711641311645507812499e-19
+1.08420223710898978971273990019874577939162918482907116413116455078125e-19
+1.0842022371089897897127399001987457793916291848290711641311645507812501e-19
+1.0842023017324751454180269995275498473574771196581423282623291015625e-19
+1.0842023663559605011233140988563539153233250544872134923934936523437499e-19
+1.08420236635596050112331409885635391532332505448721349239349365234375e-19
+1.0842023663559605011233140988563539153233250544872134923934936523437501e-19
+1.084202430979445856828601198185157983289172989316284656524658203125e-19
+7.52316384526264005099991383822237233803945956334136013765601092018187046051025390625e-37
+7.5231642936781486349413765338158389908126215730251815381410578824437213052434003657253924757242202758789062499e-37
+7.52316429367814863494137653381583899081262157302518153814105788244372130524340036572539247572422027587890625e-37
+7.5231642936781486349413765338158389908126215730251815381410578824437213052434003657253924757242202758789062501e-37
+7.5231647420936572188828392294093056435857835827090029386261048447055721499765468252007849514484405517578125e-37
+7.5231651905091658028243019250027722963589455923928243391111518069674229947096932846761774271726608276367187499e-37
+7.52316519050916580282430192500277229635894559239282433911115180696742299470969328467617742717266082763671875e-37
+7.5231651905091658028243019250027722963589455923928243391111518069674229947096932846761774271726608276367187501e-37
+7.523165638924674386765764620596238949132107602076645739596198769229273839442839744151569902896881103515625e-37
+340282356779733661637539395458142568447.999
+340282356779733661637539395458142568448
+340282356779733661637539395458142568448.001
+-340282356779733661637539395458142568447.999
+-340282356779733661637539395458142568448
+-340282356779733661637539395458142568448.001
+179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791.999
+179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792
+179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.001
+-179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497791.999
+-179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792
+-179769313486231580793728971405303415079934132710037826936173778980444968292764750946649017977587207096330286416692887910946555547851940402630657488671505820681908902000708383676273854845817711531764475730270069855571366959622842914819860834936475292719074168444365510704342711559699508093042880177904174497792.001
+1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918527.999
+1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918528
+1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918528.001
+-1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918527.999
+-1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918528
+-1189731495357231765053511589829488667966254004695567218956499277562499181851727204760449442904570461384330567646167443286662555267489487930236325136097654342377232417536489080362029584951246485605740928178136611230674219048500381811805207877203107268812398885808170517032687767579195512604426112969939697309064970421357373593737548189791064578075396520278041564919877710332117871859964923206311175434753221226253534337199304629504137668677812103359730222935610071343425325633562626092674600633358193879055413937592435479934747155496913520748914500847834599706604816899916747713074435514585511372746030946789075371775796999312354227866587803370992862072730331502951338476357350089453460696354521572546926077765383044577075982892200047380230605947983926605074559374288887635146614087580689065065271437207231562037396763728185780908406142166217047877746112568232134313256340568095056911759884246066540728231159508276273778086735741815471986687141421432344475502062691975457742639931301197788106590436213127071090684338861628772228444915189303418963135612389885203608036075349871783050435209372998381734440835020273404521625820382960095748088096587424348978607559613437524195438026532392163371033702927429354975024746264545597290170945602348672367013792302348098432637396409095613884932277251719835310031547998505803752546406866843706502753183166325399209709698038388729144247605351114448647488475730429635692916794001788966968620265007002798266353024717022066273037990476329714600171995445673732316103762568799871343179341500144434361457105461379244904895252415230182712399067436456639767780598951274425173976825259444309519076481099524794546856555816525710213317614010389620491220471110091857573837438278112540147709446027133781874510952001326117006323864207925852079541370644269957126564493435341201207708574988136737425864785839645124060309307041974867276363338370018636105162869283008917743830711050229193144085029688094638483773246680141155923835213247853616763725824680857167751837090780487900840228387283614547346509044804890143691849792564977383927445249156165014494875205013001248617782698812613355440377357151258089863597284198597765215866830359241005748505543689358738031324284465243629136488333487686637331181039189590604124992017972343852392605049057443576119873279945400832860199527936922650062116335246759763699388664096895732875994904427617012292176896143437273923395471742216159840248646356256801083915667206811346470984128630513747606135060039717590702096972930814428759032404269759101709671790756463178143949787623821836792662477247624052842849718333550449622140658955581054081751312471819712726722479962465958577056952080928160441258225609897705262614494607339126216928069521406520619119688243287473394538225119027875465220992256233111477265049726174251028452120761620567236506258269287781320020740354052506311094266116406810709272834304862320539294205143454357131313879679493260017348668942730474494178249137387898297328336833589009038180169681270850774180709517707029996636939683240047817287633101083794404428541740415811916696232677498555197744273877942786661835044988438574758774422356087368185157228627335879058660154558309535912070401295584736621504268847267595223765835863174255756697267818931047523414328918687705134068360361363742640382966108545994545911705825697417989043286767551310728319742954355856116731710961138337957358885918445698641669559694166808074917226884181158917536699176609687522288426691820400183361523559409155799556283862329497478912575261457830579497761228960488413082611130636745385531466634515743840239035698486403517044157039226831085528805370810274043977756176084122952933117637894899009906118591255725255303492783199432613047841255537488113392259699564654048366964907825009036946741350368993216860237824660346368178183476516236016631293185747612693520285606412666148401080833153012602745585750872969103848152851344605317151546396041150523486651715472516090757848631964035419441554251667764234034722117421393132102998968842527073068624998951156916755512381404671428195378673434142765187038589280087599553911407299582781759652177398265112189244631130776935980062283655148992367895151475032666162688096176262281649169171506024644941424855074678761732513983988468070793092275675388024763356241941156378024394000502219343689759498466840264622527907455975633934878799543518206521383037618795439338086429200645002065120039545639315698201147683480515936292743251499063438531296922453863968872815997353125881179686462705170051219974666064694475306164653842558263043808428507798331085671416437696164008096171739721381877119714312306163210350382599226246553966125970240408129674442076735944784179006667645805896851048093638137596670696937010699212957919299380937222250509562807981779341384684146547286314982564181910419531236194060603634063907761401557097370591258981203660079555061603095538604465962028762337280258716255780315038694244061790279947528902264433516193654532433289688740976918528.001
+1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715391.999
+1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715392
+1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715392.001
+-1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715391.999
+-1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715392
+-1189731495357231765085759326628007073479956869869102141501186852722712468967898039614731304160537056720508735524794218059326466407441245944473611725143413248467166796545513080184004525512467970210316955903084154210995219628561620502745688412979158287475743437748747529021767100495257876251386789060100486382120270573746835428422826338960972409135720437886908785614210084478384078153933033666173528598766851519250363351426064628258395419088471393111667700918729834985086320676654241316634560118019882210119337445330955835919527132875094715720056355846555701747536986251959671182002652387533752686564043006387189322467736998297209841197138514624008092952665297074506030396759964773170346856327642777902149445005909504598179054586496247232351389508014081573398665168934777318775791837135956795815584276253258339396528978452820191499230693717636210145879266988271829694083738038077122921912824291024453524934340394022902439339419069066610906029009607658742583030029946393156561520787087964747197937630779342237465827257153805466210260228188924675519409775662832664987585685048138307557155853256492278248578919164433813909200793462409840728598763947896501274688614908225267667177701366807438669326623433058218213443062408099675370787076912329373870411405571681619566725953239506667420107865842757661716617919733022513948046643510651078865572997073260056512303946747105979292110003450407489924836142530065624248678935670746065899317880622000638073367400369402302158314033221251653687424468051520786824115060818437539740055831113916055471483034808874617739843143938172333284262271469979254217432808855959164876994617775909494325360213896498452140653220161981435472501438614603134083005358006470142761755484855437912983836446436796696188799077203473615780300012474195744483595979884254878292198513051622049258764225807542304782444925923341494613428285320468971377328625604051015673705708956626631746891317417396029708456942140863834024650370695696409569123851257481398138888752582030034869787470552028103940729085803240085987569938856671422005581372166650497556769407574429118602955596567887598719046627586511067969787887833869882951233268645804198215954308918671793783729688211286988794688142675294614947234254538088223560934361145676358046211831627683890340178210365154617001635372653348370422726598857026002477929177288289123739070353691365311645518715750245510770260801141976525982246774038853785442558514521428892111522375063439093517487315386834431958429128019507409290585031131279294212910898440219254009319059392162713475019891930586543895163777707714398600339409818266699397506309660607491889862314049922386749339985169589508248405389966372279472368480994566101598780613797426213113809272341186010030687520020604372850246235750477820866306072249009107891882044221153421572454947459745218327822086016027106392614825047067937041894741980478402880643992102437022027245971074555342753214011193822631471157489050501952568860820401920833804902096485703539056563038766617104309221550246208420803236102663918198532911605896456149452566847699113209434574026975730941194301255893892984954283771852399164279918441721650800291777296251806440774844416950920058440264116651186795378697819243783770608877693892976259074109340205317427395771831523271197915676367134269045536541349377669517895718456625645303642348316558188118515730182101737730372539888936801532474040601312554322979825347707786172180885839980406705981955978435796108903153166067253815216088254644383863063765964591075911345075411534030241991912223282597135304726831878735179556423807036390298160370960490420948364372810759652439684318393869597369898890279242300069046830503059657125858043553373113729594871087942860315948055593344147677932119321424028600190292509664619336217631490498027916950777163752425164438252351468600785554531423979834791445600150108890772427261831495874930509509679414887523661977405914784645916502014777727175798319834059621717421648892845862179131151362279648610789587662840109016397812560123410281881558369684764808427158589621053418154441646967665840185085136102607775409115734963155803833286789583501481573372226195484679719674349562964338708154613401347218002057551149833995233231065737207320566592164688912051242035274499618147339269167576074688060033124924140616954310412384530235227956908301847998406574780144353357884105883387959218296741020722854954100887277304947480547152700263711114665576920925961724019512061174430771918685854961160518537953685957360038825116204970615989239857746870933341859397441672382036764530524729808239765622931171203720639459438906663253650619610229282159290703571350858167568164860431176138378765549296218562697437528856056494473388171789278961444737763604387979003662127798027475934505640301147524790717395857232708656327584954348395562117135230986025734451614751913114005140624270977801178582308406486958461409022442175446835595658183592121309722334474915831657286355138025915434411459395393534709704525536550715392.001
+2.10194769648722560638559437493487419692039291281477365763560242583468662402879090222995728254318237304687499e-45
+2.101947696487225606385594374934874196920392912814773657635602425834686624028790902229957282543182373046875e-45
+2.10194769648722560638559437493487419692039291281477365763560242583468662402879090222995728254318237304687501e-45
+-2.10194769648722560638559437493487419692039291281477365763560242583468662402879090222995728254318237304687499e-45
+-2.101947696487225606385594374934874196920392912814773657635602425834686624028790902229957282543182373046875e-45
+-2.10194769648722560638559437493487419692039291281477365763560242583468662402879090222995728254318237304687501e-45
+3.50324616081204267730932395822479032820065485469128942939267070972447770671465150371659547090530395507812499e-45
+3.503246160812042677309323958224790328200654854691289429392670709724477706714651503716595470905303955078125e-45
+3.50324616081204267730932395822479032820065485469128942939267070972447770671465150371659547090530395507812501e-45
+-3.50324616081204267730932395822479032820065485469128942939267070972447770671465150371659547090530395507812499e-45
+-3.503246160812042677309323958224790328200654854691289429392670709724477706714651503716595470905303955078125e-45
+-3.50324616081204267730932395822479032820065485469128942939267070972447770671465150371659547090530395507812501e-45
+7.410984687618698162648531893023320585475897039214871466383785237510132609053131277979497545424539885696948470431685765963899850655339096945981621940161728171894510697854671067917687257517734731555330779540854980960845750095811137303474765809687100959097544227100475730780971111893578483867565399878350301522805593404659373979179073872386829939581848166016912201945649993128979841136206248449867871357218035220901702390328579173252022052897402080290685402160661237554998340267130003581248647904138574340187552090159017259254714629617513415977493871857473787096164563890871811984127167305601704549300470526959016576377688490826798697257336652176556794107250876433756084600398490497214911746308553955635418864151316847843631308023759629577398300170898437499e-324
+7.4109846876186981626485318930233205854758970392148714663837852375101326090531312779794975454245398856969484704316857659638998506553390969459816219401617281718945106978546710679176872575177347315553307795408549809608457500958111373034747658096871009590975442271004757307809711118935784838675653998783503015228055934046593739791790738723868299395818481660169122019456499931289798411362062484498678713572180352209017023903285791732520220528974020802906854021606612375549983402671300035812486479041385743401875520901590172592547146296175134159774938718574737870961645638908718119841271673056017045493004705269590165763776884908267986972573366521765567941072508764337560846003984904972149117463085539556354188641513168478436313080237596295773983001708984375e-324
+7.410984687618698162648531893023320585475897039214871466383785237510132609053131277979497545424539885696948470431685765963899850655339096945981621940161728171894510697854671067917687257517734731555330779540854980960845750095811137303474765809687100959097544227100475730780971111893578483867565399878350301522805593404659373979179073872386829939581848166016912201945649993128979841136206248449867871357218035220901702390328579173252022052897402080290685402160661237554998340267130003581248647904138574340187552090159017259254714629617513415977493871857473787096164563890871811984127167305601704549300470526959016576377688490826798697257336652176556794107250876433756084600398490497214911746308553955635418864151316847843631308023759629577398300170898437501e-324
+-7.410984687618698162648531893023320585475897039214871466383785237510132609053131277979497545424539885696948470431685765963899850655339096945981621940161728171894510697854671067917687257517734731555330779540854980960845750095811137303474765809687100959097544227100475730780971111893578483867565399878350301522805593404659373979179073872386829939581848166016912201945649993128979841136206248449867871357218035220901702390328579173252022052897402080290685402160661237554998340267130003581248647904138574340187552090159017259254714629617513415977493871857473787096164563890871811984127167305601704549300470526959016576377688490826798697257336652176556794107250876433756084600398490497214911746308553955635418864151316847843631308023759629577398300170898437499e-324
+-7.4109846876186981626485318930233205854758970392148714663837852375101326090531312779794975454245398856969484704316857659638998506553390969459816219401617281718945106978546710679176872575177347315553307795408549809608457500958111373034747658096871009590975442271004757307809711118935784838675653998783503015228055934046593739791790738723868299395818481660169122019456499931289798411362062484498678713572180352209017023903285791732520220528974020802906854021606612375549983402671300035812486479041385743401875520901590172592547146296175134159774938718574737870961645638908718119841271673056017045493004705269590165763776884908267986972573366521765567941072508764337560846003984904972149117463085539556354188641513168478436313080237596295773983001708984375e-324
+-7.410984687618698162648531893023320585475897039214871466383785237510132609053131277979497545424539885696948470431685765963899850655339096945981621940161728171894510697854671067917687257517734731555330779540854980960845750095811137303474765809687100959097544227100475730780971111893578483867565399878350301522805593404659373979179073872386829939581848166016912201945649993128979841136206248449867871357218035220901702390328579173252022052897402080290685402160661237554998340267130003581248647904138574340187552090159017259254714629617513415977493871857473787096164563890871811984127167305601704549300470526959016576377688490826798697257336652176556794107250876433756084600398490497214911746308553955635418864151316847843631308023759629577398300170898437501e-324
+5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687499e-4951
+5.46779929782371190379260890042912972459857622354034501558147073054255753295009660521434106293874080779587102102080529665295047844893304825496026211338471350822573387176689751785383789570845033963493234384897511609341047969033029090288686119993125921652327780757456908215307313367394295878957740232139393310129853319126610211888963060953233950845785422003199631793594071800032514400843804841615045854626840829469327828294881838298175674523144370769439505327077912524046992686788101985028712502357968555779098305597496288175991948375220290368919956488030568463545206536359579198829053635210070171697414632960443922662694334080526864190176997186277619487638560405926908417212393004914459916660510317558023267203296664540665686303143487355117536394182579842533190638252470657276648523287454223056426260916178239688724389624700924406883725156778322327128669248001067971134780240835161999919912749368941130062333775184713893949842620045030584554856591000906652415254548036281829022414017017836373531792968500569736393059459388134289532878925936202911959860111289900618887987637185487890257175376747802810055833471650478460459250779148245153313351312860635744071818212363779076932092244234906632899168786207255077931639313903720118757997293301622787489850525574323330053349895193815663640653261384657614561732314168448072640907418419722475454249088439281362536533088134879943284462483896082614443915736191774429072907311631885819175882194201070472653674851414139198108859096891122440647971063242952915458929379913214790617434914900609409461282745336576821301251695869305718994035511225062977631807957323251343409893311558937242893589182127073929977680322999972072084511129714257799395078371652632557642689712118195363229932217741231347266655794602658713781865895628587618356133445842690980622757869697298305457864854014077743134149549581616770960047019414114115927554858644718705151733262444646312957015720874401831783399876629267632412206980788226617090546010735234775446535427950204682560784093064091008748868287818605298248793439879457512520813143459903135506837923488146278624413240301557305921665812510099227873245904315487345753286636286503807226030243834125646514462721175610422077384131141310997310167289350231522394313116195338483765836875091084530867301962551116953524641866782219275647577303198252230493416188536313334782412272272680845833966884362299362668540114271927670393635174916595231338524725341041244411123466156968910970701214636522586812703780765383816975942646584796378630871592938388807529281755454082628134037935686954169983885723045287488247562656656838905184226961694223388061375323047846826624482079286817404761883437391178335259163868151357930349068061174131050087191978828376147382620503202915394941049520564716066454820461766340754590215525559595903549562621278099530136795125074514242718392219467940568610559805583630337329057723569860511809664741164231921947415724386492152042297812796203704453738513487869185273997856308082426571227053818066616162711321820177977936612440784457475475356233845487698185296555392790365032340724558109915880751818176959751731101364826598545575062030580805510188732031382604511098551005267200735661262096661256044824137056119967967779273328271035688633522914992613122903551437420180422544707071078472935932052340497748391917547810304969780910060995596752409667301101676249036106564732671055561556337835940895462611076531105318082794457577243991861203875486751486321760491907016803052102243880722619748067919226364128975269527936779466226741495770848035680512429340764509429270927056845470429154903231124579718536587607255881903776664771069031066938472788476460322012930233295033487307239472187974104523339108479138928271958145518583355195189390314460933853291828207141736579466617460059018668855897329226526045739728421972311873652633819589252279700383580649872482332717064626876511433504720180433213145347598195242033084909143585968861500534066295124347881553551091005403198578135356959232734262569115529775393942099186306684666328819296619712127724446251513719534288754911396839196870087240104752172553479156988209602152172573903085602353234630969464420805480187541663697061615897052158736871663656287877965014700568701277294647143621722168024410452769115970094432811353897291302226031856656464346619476276280777232193768927273861205192875774054105101149361515027529971227502627819113726259972234152835169954792656314857994567825617347666484628496410640971818182042794985528278253841862020655169993625733881361630774771266021694104359050140770498084974090253693257957652720666502780042003578789909113749828579771084884825283544063138938642114971057650305046009822534888054745317987421433744650802400305823700866991679376510383079097061393271193254188545464782857356545416354777903469647826173542650507678783352302721948966801419867450746302258931065735595588435458411860251695316041515884813891649489148235939442871333362636803581913695403219306498244714254851377779848235254021151511710933136132513506853438248590522201268915519660183559208727757248071287690032431294868087337963504976682551164851571910118588306438983236282234720992802435831644343483470149103980044398219705082804408727593958279432709850087691435623519380914762150835481641373335418838088700191162340990134529298079501516522974364360061496849397757812346609541561544786426941760385242778104838331497986813457080891521791939794631694023406117934862723018080732675346126855938595967878668842110313414179033917498253204546635083703852518317784773110170897293611521619288153898185799835444909828917340811313123097443309606660312914517408855034585438849563676549437992646003145318154279326911078747823286547592935758034819293619617810739585020754384990706331937996993116942871832994234753398176556080587247232218670875630645576361123808295145013820732577370224728666082441643103852052135237029107871824725171250301064910318448715931417597297739077195100440493528574265929367637279694961039405916019750786028596604786141194054282128301344907317062205837882653447288187668851269775881511119842904443216489319071880803360647138732888340962292032766761198105218517261333777006163413042578229757889674721527422550419125841970454230312985062190118002401201824458385906966474162853345156310197990075156820042500608570209040122153751704798004826805544998060107661096550615074217477224611806173614025750822946789256052710835878978453907682264056485085181035257786386181957751285160739592729901482394153462634869665739345774507872436670632443783818831158272076058561748763500450868853206266693313118805937759162696436463954232205499407904769897092430274201583908061356909751493847146842199649381827199629139314649794586391855195314900094376198383063623654537548076548847041634904692964444271447785937256873584370873901519906946675162792020243324948282106576182619520385972302637994125842758516674039106573708797071810533658185026800374315600912099826417389956527932358515693723141301076471660852356156972570942691331009141357831788562803921393250013528417186104846166274481895569136218377916506998203230597087664208101335848418267186316816833817435119742641262509842148123971199782739179038898658917188367922633778880524581892387460749864560166810987228694195882740201814306527328178587284738493695393674639171713173248820998049990430544672477855920384647234422762398960664315801237564285400749454724277525689811714006217058533748758859430726006925769147904672059052723725947401879880819003174931850051429136071633807200697867867820953318408936940737783251194718335284929170810085473034145093815636178641952577515465395754614358036259938883256478835410391923683669874002630496812188314777763451185185037095888408590233797624565610306839281153499423939631856771230553247716937842149249317370437936795460514548456241502709554506083187473957557289508327546112770413596023012051385091755433135227727865041410075526919022495723751757317409236187691973046528983526943866654482600334585753232528142338680982794761667642582849114342880722431789416983473659854276969831295794960590320328412811499235180870848768851143690332277365212457405547117714234927198999823577119102255454804246883221953362404922531362818578378084917959937881991252055552221165810711344767874684305393079096174421066851595190710538449873436664524942803177201535670543641172447751413365584060985488039245094960522618251980431402726553036253156053265695302528858549918222892192012183135907454120104466422471117039019915913380626933201571806187365694399692832452794303126511926687883400336268251942602962629598842585977035848887708019612096528229823223761223035861698616851060438205104442934328562512103956932612648678239801726833527961417722103017259976523738041525250371628522914038044559973313673784636324377732429055180750654147242958574602882254000616086649616491964000793596226737706078983952690750565966271161482894910424917641709240148851061582354827747784181341232939744368770519956736186837511153538087714349842044477361747583160630962450473112798415799955781866094028642440427514431285362784534306334231186628526883742296008944189588248424594505408261764521458293892861035227741011955560296507532542444335659379385268289908931497662989977383599138871788886071907657098670524708807859379351100914247434499663534978656817538413802460756120940336174886746762968225700770270762668795579136738393410120995580438064423487980539512392749133346315224095644617704348757904022300228726475684361770186580686970717318793991803745609634927267145287292242089385899402725157478883791184616177022716940750874196341472980767647757457070269344429082366644005572655279514534821916845976742736919782536786909511787772395739254104386790993747006099739201282014223813291082365753694036759607652383337781270170965742961483210755669592850422218371597998001335632399639696386108726803932103001801520206130516134145471637137725126177572779559798958663675717764562685641910924770276501358322003764402397837265405526948517172695984892888515296609750277756395652297345967262058326684349793545419433450629778911871465610501181181082233237352108436811286154136010912220079123505369597771143065415145113323689360785609297881437988143912215075223706486467673642091321473124070149531135323798381957284911285369782859180669910409931530643561799038859520279527137496536045020535123554499166808872342387738555816361724795948668717650945139401032841679141101967202611108127167764242601545073950503805754528504207308184129947310793073435383768802801240193210401980387235587845444085843444660909828020673265290009315620489328754690798749565951805953953470932851402791654679655963183657497015358123843332409682836407213440034420026916137720567620990980257393327159139701862251764595634841341397466479401705379002753504804904688514393007719499151947030805766110225906703998449318676097774175289034547319222063789321414647554026294200742938163492700383513394191467684738513531716291539122387971419059201430360641317052304217623052328615038567995111559365651690059167118453891355809281625119124385312041561384477751207895486661436002934120657671671068885091725680035306685394605882483165133926525678562246026972962033289200733544259940449566248313469794588468375979500641518671645837492034339425921785288689813115753318489415974924704367823875026875326490930964983153474039774360013999821020308467636989947850546175232414631869808983945042114307636178253068950656615360454314979037591180079348391228818858630917694698835398768405435212957063159198557844932356038662689259817026902702028295957943508009182579139917444559226833433740466716699302196502685546875e-4951
+5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687501e-4951
+-5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687499e-4951
+-5.46779929782371190379260890042912972459857622354034501558147073054255753295009660521434106293874080779587102102080529665295047844893304825496026211338471350822573387176689751785383789570845033963493234384897511609341047969033029090288686119993125921652327780757456908215307313367394295878957740232139393310129853319126610211888963060953233950845785422003199631793594071800032514400843804841615045854626840829469327828294881838298175674523144370769439505327077912524046992686788101985028712502357968555779098305597496288175991948375220290368919956488030568463545206536359579198829053635210070171697414632960443922662694334080526864190176997186277619487638560405926908417212393004914459916660510317558023267203296664540665686303143487355117536394182579842533190638252470657276648523287454223056426260916178239688724389624700924406883725156778322327128669248001067971134780240835161999919912749368941130062333775184713893949842620045030584554856591000906652415254548036281829022414017017836373531792968500569736393059459388134289532878925936202911959860111289900618887987637185487890257175376747802810055833471650478460459250779148245153313351312860635744071818212363779076932092244234906632899168786207255077931639313903720118757997293301622787489850525574323330053349895193815663640653261384657614561732314168448072640907418419722475454249088439281362536533088134879943284462483896082614443915736191774429072907311631885819175882194201070472653674851414139198108859096891122440647971063242952915458929379913214790617434914900609409461282745336576821301251695869305718994035511225062977631807957323251343409893311558937242893589182127073929977680322999972072084511129714257799395078371652632557642689712118195363229932217741231347266655794602658713781865895628587618356133445842690980622757869697298305457864854014077743134149549581616770960047019414114115927554858644718705151733262444646312957015720874401831783399876629267632412206980788226617090546010735234775446535427950204682560784093064091008748868287818605298248793439879457512520813143459903135506837923488146278624413240301557305921665812510099227873245904315487345753286636286503807226030243834125646514462721175610422077384131141310997310167289350231522394313116195338483765836875091084530867301962551116953524641866782219275647577303198252230493416188536313334782412272272680845833966884362299362668540114271927670393635174916595231338524725341041244411123466156968910970701214636522586812703780765383816975942646584796378630871592938388807529281755454082628134037935686954169983885723045287488247562656656838905184226961694223388061375323047846826624482079286817404761883437391178335259163868151357930349068061174131050087191978828376147382620503202915394941049520564716066454820461766340754590215525559595903549562621278099530136795125074514242718392219467940568610559805583630337329057723569860511809664741164231921947415724386492152042297812796203704453738513487869185273997856308082426571227053818066616162711321820177977936612440784457475475356233845487698185296555392790365032340724558109915880751818176959751731101364826598545575062030580805510188732031382604511098551005267200735661262096661256044824137056119967967779273328271035688633522914992613122903551437420180422544707071078472935932052340497748391917547810304969780910060995596752409667301101676249036106564732671055561556337835940895462611076531105318082794457577243991861203875486751486321760491907016803052102243880722619748067919226364128975269527936779466226741495770848035680512429340764509429270927056845470429154903231124579718536587607255881903776664771069031066938472788476460322012930233295033487307239472187974104523339108479138928271958145518583355195189390314460933853291828207141736579466617460059018668855897329226526045739728421972311873652633819589252279700383580649872482332717064626876511433504720180433213145347598195242033084909143585968861500534066295124347881553551091005403198578135356959232734262569115529775393942099186306684666328819296619712127724446251513719534288754911396839196870087240104752172553479156988209602152172573903085602353234630969464420805480187541663697061615897052158736871663656287877965014700568701277294647143621722168024410452769115970094432811353897291302226031856656464346619476276280777232193768927273861205192875774054105101149361515027529971227502627819113726259972234152835169954792656314857994567825617347666484628496410640971818182042794985528278253841862020655169993625733881361630774771266021694104359050140770498084974090253693257957652720666502780042003578789909113749828579771084884825283544063138938642114971057650305046009822534888054745317987421433744650802400305823700866991679376510383079097061393271193254188545464782857356545416354777903469647826173542650507678783352302721948966801419867450746302258931065735595588435458411860251695316041515884813891649489148235939442871333362636803581913695403219306498244714254851377779848235254021151511710933136132513506853438248590522201268915519660183559208727757248071287690032431294868087337963504976682551164851571910118588306438983236282234720992802435831644343483470149103980044398219705082804408727593958279432709850087691435623519380914762150835481641373335418838088700191162340990134529298079501516522974364360061496849397757812346609541561544786426941760385242778104838331497986813457080891521791939794631694023406117934862723018080732675346126855938595967878668842110313414179033917498253204546635083703852518317784773110170897293611521619288153898185799835444909828917340811313123097443309606660312914517408855034585438849563676549437992646003145318154279326911078747823286547592935758034819293619617810739585020754384990706331937996993116942871832994234753398176556080587247232218670875630645576361123808295145013820732577370224728666082441643103852052135237029107871824725171250301064910318448715931417597297739077195100440493528574265929367637279694961039405916019750786028596604786141194054282128301344907317062205837882653447288187668851269775881511119842904443216489319071880803360647138732888340962292032766761198105218517261333777006163413042578229757889674721527422550419125841970454230312985062190118002401201824458385906966474162853345156310197990075156820042500608570209040122153751704798004826805544998060107661096550615074217477224611806173614025750822946789256052710835878978453907682264056485085181035257786386181957751285160739592729901482394153462634869665739345774507872436670632443783818831158272076058561748763500450868853206266693313118805937759162696436463954232205499407904769897092430274201583908061356909751493847146842199649381827199629139314649794586391855195314900094376198383063623654537548076548847041634904692964444271447785937256873584370873901519906946675162792020243324948282106576182619520385972302637994125842758516674039106573708797071810533658185026800374315600912099826417389956527932358515693723141301076471660852356156972570942691331009141357831788562803921393250013528417186104846166274481895569136218377916506998203230597087664208101335848418267186316816833817435119742641262509842148123971199782739179038898658917188367922633778880524581892387460749864560166810987228694195882740201814306527328178587284738493695393674639171713173248820998049990430544672477855920384647234422762398960664315801237564285400749454724277525689811714006217058533748758859430726006925769147904672059052723725947401879880819003174931850051429136071633807200697867867820953318408936940737783251194718335284929170810085473034145093815636178641952577515465395754614358036259938883256478835410391923683669874002630496812188314777763451185185037095888408590233797624565610306839281153499423939631856771230553247716937842149249317370437936795460514548456241502709554506083187473957557289508327546112770413596023012051385091755433135227727865041410075526919022495723751757317409236187691973046528983526943866654482600334585753232528142338680982794761667642582849114342880722431789416983473659854276969831295794960590320328412811499235180870848768851143690332277365212457405547117714234927198999823577119102255454804246883221953362404922531362818578378084917959937881991252055552221165810711344767874684305393079096174421066851595190710538449873436664524942803177201535670543641172447751413365584060985488039245094960522618251980431402726553036253156053265695302528858549918222892192012183135907454120104466422471117039019915913380626933201571806187365694399692832452794303126511926687883400336268251942602962629598842585977035848887708019612096528229823223761223035861698616851060438205104442934328562512103956932612648678239801726833527961417722103017259976523738041525250371628522914038044559973313673784636324377732429055180750654147242958574602882254000616086649616491964000793596226737706078983952690750565966271161482894910424917641709240148851061582354827747784181341232939744368770519956736186837511153538087714349842044477361747583160630962450473112798415799955781866094028642440427514431285362784534306334231186628526883742296008944189588248424594505408261764521458293892861035227741011955560296507532542444335659379385268289908931497662989977383599138871788886071907657098670524708807859379351100914247434499663534978656817538413802460756120940336174886746762968225700770270762668795579136738393410120995580438064423487980539512392749133346315224095644617704348757904022300228726475684361770186580686970717318793991803745609634927267145287292242089385899402725157478883791184616177022716940750874196341472980767647757457070269344429082366644005572655279514534821916845976742736919782536786909511787772395739254104386790993747006099739201282014223813291082365753694036759607652383337781270170965742961483210755669592850422218371597998001335632399639696386108726803932103001801520206130516134145471637137725126177572779559798958663675717764562685641910924770276501358322003764402397837265405526948517172695984892888515296609750277756395652297345967262058326684349793545419433450629778911871465610501181181082233237352108436811286154136010912220079123505369597771143065415145113323689360785609297881437988143912215075223706486467673642091321473124070149531135323798381957284911285369782859180669910409931530643561799038859520279527137496536045020535123554499166808872342387738555816361724795948668717650945139401032841679141101967202611108127167764242601545073950503805754528504207308184129947310793073435383768802801240193210401980387235587845444085843444660909828020673265290009315620489328754690798749565951805953953470932851402791654679655963183657497015358123843332409682836407213440034420026916137720567620990980257393327159139701862251764595634841341397466479401705379002753504804904688514393007719499151947030805766110225906703998449318676097774175289034547319222063789321414647554026294200742938163492700383513394191467684738513531716291539122387971419059201430360641317052304217623052328615038567995111559365651690059167118453891355809281625119124385312041561384477751207895486661436002934120657671671068885091725680035306685394605882483165133926525678562246026972962033289200733544259940449566248313469794588468375979500641518671645837492034339425921785288689813115753318489415974924704367823875026875326490930964983153474039774360013999821020308467636989947850546175232414631869808983945042114307636178253068950656615360454314979037591180079348391228818858630917694698835398768405435212957063159198557844932356038662689259817026902702028295957943508009182579139917444559226833433740466716699302196502685546875e-4951
+-5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687501e-4951
+5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687499e-4951
+5.46779929782371190379260890042912972459857622354034501558147073054255753295009660521434106293874080779587102102080529665295047844893304825496026211338471350822573387176689751785383789570845033963493234384897511609341047969033029090288686119993125921652327780757456908215307313367394295878957740232139393310129853319126610211888963060953233950845785422003199631793594071800032514400843804841615045854626840829469327828294881838298175674523144370769439505327077912524046992686788101985028712502357968555779098305597496288175991948375220290368919956488030568463545206536359579198829053635210070171697414632960443922662694334080526864190176997186277619487638560405926908417212393004914459916660510317558023267203296664540665686303143487355117536394182579842533190638252470657276648523287454223056426260916178239688724389624700924406883725156778322327128669248001067971134780240835161999919912749368941130062333775184713893949842620045030584554856591000906652415254548036281829022414017017836373531792968500569736393059459388134289532878925936202911959860111289900618887987637185487890257175376747802810055833471650478460459250779148245153313351312860635744071818212363779076932092244234906632899168786207255077931639313903720118757997293301622787489850525574323330053349895193815663640653261384657614561732314168448072640907418419722475454249088439281362536533088134879943284462483896082614443915736191774429072907311631885819175882194201070472653674851414139198108859096891122440647971063242952915458929379913214790617434914900609409461282745336576821301251695869305718994035511225062977631807957323251343409893311558937242893589182127073929977680322999972072084511129714257799395078371652632557642689712118195363229932217741231347266655794602658713781865895628587618356133445842690980622757869697298305457864854014077743134149549581616770960047019414114115927554858644718705151733262444646312957015720874401831783399876629267632412206980788226617090546010735234775446535427950204682560784093064091008748868287818605298248793439879457512520813143459903135506837923488146278624413240301557305921665812510099227873245904315487345753286636286503807226030243834125646514462721175610422077384131141310997310167289350231522394313116195338483765836875091084530867301962551116953524641866782219275647577303198252230493416188536313334782412272272680845833966884362299362668540114271927670393635174916595231338524725341041244411123466156968910970701214636522586812703780765383816975942646584796378630871592938388807529281755454082628134037935686954169983885723045287488247562656656838905184226961694223388061375323047846826624482079286817404761883437391178335259163868151357930349068061174131050087191978828376147382620503202915394941049520564716066454820461766340754590215525559595903549562621278099530136795125074514242718392219467940568610559805583630337329057723569860511809664741164231921947415724386492152042297812796203704453738513487869185273997856308082426571227053818066616162711321820177977936612440784457475475356233845487698185296555392790365032340724558109915880751818176959751731101364826598545575062030580805510188732031382604511098551005267200735661262096661256044824137056119967967779273328271035688633522914992613122903551437420180422544707071078472935932052340497748391917547810304969780910060995596752409667301101676249036106564732671055561556337835940895462611076531105318082794457577243991861203875486751486321760491907016803052102243880722619748067919226364128975269527936779466226741495770848035680512429340764509429270927056845470429154903231124579718536587607255881903776664771069031066938472788476460322012930233295033487307239472187974104523339108479138928271958145518583355195189390314460933853291828207141736579466617460059018668855897329226526045739728421972311873652633819589252279700383580649872482332717064626876511433504720180433213145347598195242033084909143585968861500534066295124347881553551091005403198578135356959232734262569115529775393942099186306684666328819296619712127724446251513719534288754911396839196870087240104752172553479156988209602152172573903085602353234630969464420805480187541663697061615897052158736871663656287877965014700568701277294647143621722168024410452769115970094432811353897291302226031856656464346619476276280777232193768927273861205192875774054105101149361515027529971227502627819113726259972234152835169954792656314857994567825617347666484628496410640971818182042794985528278253841862020655169993625733881361630774771266021694104359050140770498084974090253693257957652720666502780042003578789909113749828579771084884825283544063138938642114971057650305046009822534888054745317987421433744650802400305823700866991679376510383079097061393271193254188545464782857356545416354777903469647826173542650507678783352302721948966801419867450746302258931065735595588435458411860251695316041515884813891649489148235939442871333362636803581913695403219306498244714254851377779848235254021151511710933136132513506853438248590522201268915519660183559208727757248071287690032431294868087337963504976682551164851571910118588306438983236282234720992802435831644343483470149103980044398219705082804408727593958279432709850087691435623519380914762150835481641373335418838088700191162340990134529298079501516522974364360061496849397757812346609541561544786426941760385242778104838331497986813457080891521791939794631694023406117934862723018080732675346126855938595967878668842110313414179033917498253204546635083703852518317784773110170897293611521619288153898185799835444909828917340811313123097443309606660312914517408855034585438849563676549437992646003145318154279326911078747823286547592935758034819293619617810739585020754384990706331937996993116942871832994234753398176556080587247232218670875630645576361123808295145013820732577370224728666082441643103852052135237029107871824725171250301064910318448715931417597297739077195100440493528574265929367637279694961039405916019750786028596604786141194054282128301344907317062205837882653447288187668851269775881511119842904443216489319071880803360647138732888340962292032766761198105218517261333777006163413042578229757889674721527422550419125841970454230312985062190118002401201824458385906966474162853345156310197990075156820042500608570209040122153751704798004826805544998060107661096550615074217477224611806173614025750822946789256052710835878978453907682264056485085181035257786386181957751285160739592729901482394153462634869665739345774507872436670632443783818831158272076058561748763500450868853206266693313118805937759162696436463954232205499407904769897092430274201583908061356909751493847146842199649381827199629139314649794586391855195314900094376198383063623654537548076548847041634904692964444271447785937256873584370873901519906946675162792020243324948282106576182619520385972302637994125842758516674039106573708797071810533658185026800374315600912099826417389956527932358515693723141301076471660852356156972570942691331009141357831788562803921393250013528417186104846166274481895569136218377916506998203230597087664208101335848418267186316816833817435119742641262509842148123971199782739179038898658917188367922633778880524581892387460749864560166810987228694195882740201814306527328178587284738493695393674639171713173248820998049990430544672477855920384647234422762398960664315801237564285400749454724277525689811714006217058533748758859430726006925769147904672059052723725947401879880819003174931850051429136071633807200697867867820953318408936940737783251194718335284929170810085473034145093815636178641952577515465395754614358036259938883256478835410391923683669874002630496812188314777763451185185037095888408590233797624565610306839281153499423939631856771230553247716937842149249317370437936795460514548456241502709554506083187473957557289508327546112770413596023012051385091755433135227727865041410075526919022495723751757317409236187691973046528983526943866654482600334585753232528142338680982794761667642582849114342880722431789416983473659854276969831295794960590320328412811499235180870848768851143690332277365212457405547117714234927198999823577119102255454804246883221953362404922531362818578378084917959937881991252055552221165810711344767874684305393079096174421066851595190710538449873436664524942803177201535670543641172447751413365584060985488039245094960522618251980431402726553036253156053265695302528858549918222892192012183135907454120104466422471117039019915913380626933201571806187365694399692832452794303126511926687883400336268251942602962629598842585977035848887708019612096528229823223761223035861698616851060438205104442934328562512103956932612648678239801726833527961417722103017259976523738041525250371628522914038044559973313673784636324377732429055180750654147242958574602882254000616086649616491964000793596226737706078983952690750565966271161482894910424917641709240148851061582354827747784181341232939744368770519956736186837511153538087714349842044477361747583160630962450473112798415799955781866094028642440427514431285362784534306334231186628526883742296008944189588248424594505408261764521458293892861035227741011955560296507532542444335659379385268289908931497662989977383599138871788886071907657098670524708807859379351100914247434499663534978656817538413802460756120940336174886746762968225700770270762668795579136738393410120995580438064423487980539512392749133346315224095644617704348757904022300228726475684361770186580686970717318793991803745609634927267145287292242089385899402725157478883791184616177022716940750874196341472980767647757457070269344429082366644005572655279514534821916845976742736919782536786909511787772395739254104386790993747006099739201282014223813291082365753694036759607652383337781270170965742961483210755669592850422218371597998001335632399639696386108726803932103001801520206130516134145471637137725126177572779559798958663675717764562685641910924770276501358322003764402397837265405526948517172695984892888515296609750277756395652297345967262058326684349793545419433450629778911871465610501181181082233237352108436811286154136010912220079123505369597771143065415145113323689360785609297881437988143912215075223706486467673642091321473124070149531135323798381957284911285369782859180669910409931530643561799038859520279527137496536045020535123554499166808872342387738555816361724795948668717650945139401032841679141101967202611108127167764242601545073950503805754528504207308184129947310793073435383768802801240193210401980387235587845444085843444660909828020673265290009315620489328754690798749565951805953953470932851402791654679655963183657497015358123843332409682836407213440034420026916137720567620990980257393327159139701862251764595634841341397466479401705379002753504804904688514393007719499151947030805766110225906703998449318676097774175289034547319222063789321414647554026294200742938163492700383513394191467684738513531716291539122387971419059201430360641317052304217623052328615038567995111559365651690059167118453891355809281625119124385312041561384477751207895486661436002934120657671671068885091725680035306685394605882483165133926525678562246026972962033289200733544259940449566248313469794588468375979500641518671645837492034339425921785288689813115753318489415974924704367823875026875326490930964983153474039774360013999821020308467636989947850546175232414631869808983945042114307636178253068950656615360454314979037591180079348391228818858630917694698835398768405435212957063159198557844932356038662689259817026902702028295957943508009182579139917444559226833433740466716699302196502685546875e-4951
+5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687501e-4951
+-5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687499e-4951
+-5.46779929782371190379260890042912972459857622354034501558147073054255753295009660521434106293874080779587102102080529665295047844893304825496026211338471350822573387176689751785383789570845033963493234384897511609341047969033029090288686119993125921652327780757456908215307313367394295878957740232139393310129853319126610211888963060953233950845785422003199631793594071800032514400843804841615045854626840829469327828294881838298175674523144370769439505327077912524046992686788101985028712502357968555779098305597496288175991948375220290368919956488030568463545206536359579198829053635210070171697414632960443922662694334080526864190176997186277619487638560405926908417212393004914459916660510317558023267203296664540665686303143487355117536394182579842533190638252470657276648523287454223056426260916178239688724389624700924406883725156778322327128669248001067971134780240835161999919912749368941130062333775184713893949842620045030584554856591000906652415254548036281829022414017017836373531792968500569736393059459388134289532878925936202911959860111289900618887987637185487890257175376747802810055833471650478460459250779148245153313351312860635744071818212363779076932092244234906632899168786207255077931639313903720118757997293301622787489850525574323330053349895193815663640653261384657614561732314168448072640907418419722475454249088439281362536533088134879943284462483896082614443915736191774429072907311631885819175882194201070472653674851414139198108859096891122440647971063242952915458929379913214790617434914900609409461282745336576821301251695869305718994035511225062977631807957323251343409893311558937242893589182127073929977680322999972072084511129714257799395078371652632557642689712118195363229932217741231347266655794602658713781865895628587618356133445842690980622757869697298305457864854014077743134149549581616770960047019414114115927554858644718705151733262444646312957015720874401831783399876629267632412206980788226617090546010735234775446535427950204682560784093064091008748868287818605298248793439879457512520813143459903135506837923488146278624413240301557305921665812510099227873245904315487345753286636286503807226030243834125646514462721175610422077384131141310997310167289350231522394313116195338483765836875091084530867301962551116953524641866782219275647577303198252230493416188536313334782412272272680845833966884362299362668540114271927670393635174916595231338524725341041244411123466156968910970701214636522586812703780765383816975942646584796378630871592938388807529281755454082628134037935686954169983885723045287488247562656656838905184226961694223388061375323047846826624482079286817404761883437391178335259163868151357930349068061174131050087191978828376147382620503202915394941049520564716066454820461766340754590215525559595903549562621278099530136795125074514242718392219467940568610559805583630337329057723569860511809664741164231921947415724386492152042297812796203704453738513487869185273997856308082426571227053818066616162711321820177977936612440784457475475356233845487698185296555392790365032340724558109915880751818176959751731101364826598545575062030580805510188732031382604511098551005267200735661262096661256044824137056119967967779273328271035688633522914992613122903551437420180422544707071078472935932052340497748391917547810304969780910060995596752409667301101676249036106564732671055561556337835940895462611076531105318082794457577243991861203875486751486321760491907016803052102243880722619748067919226364128975269527936779466226741495770848035680512429340764509429270927056845470429154903231124579718536587607255881903776664771069031066938472788476460322012930233295033487307239472187974104523339108479138928271958145518583355195189390314460933853291828207141736579466617460059018668855897329226526045739728421972311873652633819589252279700383580649872482332717064626876511433504720180433213145347598195242033084909143585968861500534066295124347881553551091005403198578135356959232734262569115529775393942099186306684666328819296619712127724446251513719534288754911396839196870087240104752172553479156988209602152172573903085602353234630969464420805480187541663697061615897052158736871663656287877965014700568701277294647143621722168024410452769115970094432811353897291302226031856656464346619476276280777232193768927273861205192875774054105101149361515027529971227502627819113726259972234152835169954792656314857994567825617347666484628496410640971818182042794985528278253841862020655169993625733881361630774771266021694104359050140770498084974090253693257957652720666502780042003578789909113749828579771084884825283544063138938642114971057650305046009822534888054745317987421433744650802400305823700866991679376510383079097061393271193254188545464782857356545416354777903469647826173542650507678783352302721948966801419867450746302258931065735595588435458411860251695316041515884813891649489148235939442871333362636803581913695403219306498244714254851377779848235254021151511710933136132513506853438248590522201268915519660183559208727757248071287690032431294868087337963504976682551164851571910118588306438983236282234720992802435831644343483470149103980044398219705082804408727593958279432709850087691435623519380914762150835481641373335418838088700191162340990134529298079501516522974364360061496849397757812346609541561544786426941760385242778104838331497986813457080891521791939794631694023406117934862723018080732675346126855938595967878668842110313414179033917498253204546635083703852518317784773110170897293611521619288153898185799835444909828917340811313123097443309606660312914517408855034585438849563676549437992646003145318154279326911078747823286547592935758034819293619617810739585020754384990706331937996993116942871832994234753398176556080587247232218670875630645576361123808295145013820732577370224728666082441643103852052135237029107871824725171250301064910318448715931417597297739077195100440493528574265929367637279694961039405916019750786028596604786141194054282128301344907317062205837882653447288187668851269775881511119842904443216489319071880803360647138732888340962292032766761198105218517261333777006163413042578229757889674721527422550419125841970454230312985062190118002401201824458385906966474162853345156310197990075156820042500608570209040122153751704798004826805544998060107661096550615074217477224611806173614025750822946789256052710835878978453907682264056485085181035257786386181957751285160739592729901482394153462634869665739345774507872436670632443783818831158272076058561748763500450868853206266693313118805937759162696436463954232205499407904769897092430274201583908061356909751493847146842199649381827199629139314649794586391855195314900094376198383063623654537548076548847041634904692964444271447785937256873584370873901519906946675162792020243324948282106576182619520385972302637994125842758516674039106573708797071810533658185026800374315600912099826417389956527932358515693723141301076471660852356156972570942691331009141357831788562803921393250013528417186104846166274481895569136218377916506998203230597087664208101335848418267186316816833817435119742641262509842148123971199782739179038898658917188367922633778880524581892387460749864560166810987228694195882740201814306527328178587284738493695393674639171713173248820998049990430544672477855920384647234422762398960664315801237564285400749454724277525689811714006217058533748758859430726006925769147904672059052723725947401879880819003174931850051429136071633807200697867867820953318408936940737783251194718335284929170810085473034145093815636178641952577515465395754614358036259938883256478835410391923683669874002630496812188314777763451185185037095888408590233797624565610306839281153499423939631856771230553247716937842149249317370437936795460514548456241502709554506083187473957557289508327546112770413596023012051385091755433135227727865041410075526919022495723751757317409236187691973046528983526943866654482600334585753232528142338680982794761667642582849114342880722431789416983473659854276969831295794960590320328412811499235180870848768851143690332277365212457405547117714234927198999823577119102255454804246883221953362404922531362818578378084917959937881991252055552221165810711344767874684305393079096174421066851595190710538449873436664524942803177201535670543641172447751413365584060985488039245094960522618251980431402726553036253156053265695302528858549918222892192012183135907454120104466422471117039019915913380626933201571806187365694399692832452794303126511926687883400336268251942602962629598842585977035848887708019612096528229823223761223035861698616851060438205104442934328562512103956932612648678239801726833527961417722103017259976523738041525250371628522914038044559973313673784636324377732429055180750654147242958574602882254000616086649616491964000793596226737706078983952690750565966271161482894910424917641709240148851061582354827747784181341232939744368770519956736186837511153538087714349842044477361747583160630962450473112798415799955781866094028642440427514431285362784534306334231186628526883742296008944189588248424594505408261764521458293892861035227741011955560296507532542444335659379385268289908931497662989977383599138871788886071907657098670524708807859379351100914247434499663534978656817538413802460756120940336174886746762968225700770270762668795579136738393410120995580438064423487980539512392749133346315224095644617704348757904022300228726475684361770186580686970717318793991803745609634927267145287292242089385899402725157478883791184616177022716940750874196341472980767647757457070269344429082366644005572655279514534821916845976742736919782536786909511787772395739254104386790993747006099739201282014223813291082365753694036759607652383337781270170965742961483210755669592850422218371597998001335632399639696386108726803932103001801520206130516134145471637137725126177572779559798958663675717764562685641910924770276501358322003764402397837265405526948517172695984892888515296609750277756395652297345967262058326684349793545419433450629778911871465610501181181082233237352108436811286154136010912220079123505369597771143065415145113323689360785609297881437988143912215075223706486467673642091321473124070149531135323798381957284911285369782859180669910409931530643561799038859520279527137496536045020535123554499166808872342387738555816361724795948668717650945139401032841679141101967202611108127167764242601545073950503805754528504207308184129947310793073435383768802801240193210401980387235587845444085843444660909828020673265290009315620489328754690798749565951805953953470932851402791654679655963183657497015358123843332409682836407213440034420026916137720567620990980257393327159139701862251764595634841341397466479401705379002753504804904688514393007719499151947030805766110225906703998449318676097774175289034547319222063789321414647554026294200742938163492700383513394191467684738513531716291539122387971419059201430360641317052304217623052328615038567995111559365651690059167118453891355809281625119124385312041561384477751207895486661436002934120657671671068885091725680035306685394605882483165133926525678562246026972962033289200733544259940449566248313469794588468375979500641518671645837492034339425921785288689813115753318489415974924704367823875026875326490930964983153474039774360013999821020308467636989947850546175232414631869808983945042114307636178253068950656615360454314979037591180079348391228818858630917694698835398768405435212957063159198557844932356038662689259817026902702028295957943508009182579139917444559226833433740466716699302196502685546875e-4951
+-5.4677992978237119037926089004291297245985762235403450155814707305425575329500966052143410629387408077958710210208052966529504784489330482549602621133847135082257338717668975178538378957084503396349323438489751160934104796903302909028868611999312592165232778075745690821530731336739429587895774023213939331012985331912661021188896306095323395084578542200319963179359407180003251440084380484161504585462684082946932782829488183829817567452314437076943950532707791252404699268678810198502871250235796855577909830559749628817599194837522029036891995648803056846354520653635957919882905363521007017169741463296044392266269433408052686419017699718627761948763856040592690841721239300491445991666051031755802326720329666454066568630314348735511753639418257984253319063825247065727664852328745422305642626091617823968872438962470092440688372515677832232712866924800106797113478024083516199991991274936894113006233377518471389394984262004503058455485659100090665241525454803628182902241401701783637353179296850056973639305945938813428953287892593620291195986011128990061888798763718548789025717537674780281005583347165047846045925077914824515331335131286063574407181821236377907693209224423490663289916878620725507793163931390372011875799729330162278748985052557432333005334989519381566364065326138465761456173231416844807264090741841972247545424908843928136253653308813487994328446248389608261444391573619177442907290731163188581917588219420107047265367485141413919810885909689112244064797106324295291545892937991321479061743491490060940946128274533657682130125169586930571899403551122506297763180795732325134340989331155893724289358918212707392997768032299997207208451112971425779939507837165263255764268971211819536322993221774123134726665579460265871378186589562858761835613344584269098062275786969729830545786485401407774313414954958161677096004701941411411592755485864471870515173326244464631295701572087440183178339987662926763241220698078822661709054601073523477544653542795020468256078409306409100874886828781860529824879343987945751252081314345990313550683792348814627862441324030155730592166581251009922787324590431548734575328663628650380722603024383412564651446272117561042207738413114131099731016728935023152239431311619533848376583687509108453086730196255111695352464186678221927564757730319825223049341618853631333478241227227268084583396688436229936266854011427192767039363517491659523133852472534104124441112346615696891097070121463652258681270378076538381697594264658479637863087159293838880752928175545408262813403793568695416998388572304528748824756265665683890518422696169422338806137532304784682662448207928681740476188343739117833525916386815135793034906806117413105008719197882837614738262050320291539494104952056471606645482046176634075459021552555959590354956262127809953013679512507451424271839221946794056861055980558363033732905772356986051180966474116423192194741572438649215204229781279620370445373851348786918527399785630808242657122705381806661616271132182017797793661244078445747547535623384548769818529655539279036503234072455810991588075181817695975173110136482659854557506203058080551018873203138260451109855100526720073566126209666125604482413705611996796777927332827103568863352291499261312290355143742018042254470707107847293593205234049774839191754781030496978091006099559675240966730110167624903610656473267105556155633783594089546261107653110531808279445757724399186120387548675148632176049190701680305210224388072261974806791922636412897526952793677946622674149577084803568051242934076450942927092705684547042915490323112457971853658760725588190377666477106903106693847278847646032201293023329503348730723947218797410452333910847913892827195814551858335519518939031446093385329182820714173657946661746005901866885589732922652604573972842197231187365263381958925227970038358064987248233271706462687651143350472018043321314534759819524203308490914358596886150053406629512434788155355109100540319857813535695923273426256911552977539394209918630668466632881929661971212772444625151371953428875491139683919687008724010475217255347915698820960215217257390308560235323463096946442080548018754166369706161589705215873687166365628787796501470056870127729464714362172216802441045276911597009443281135389729130222603185665646434661947627628077723219376892727386120519287577405410510114936151502752997122750262781911372625997223415283516995479265631485799456782561734766648462849641064097181818204279498552827825384186202065516999362573388136163077477126602169410435905014077049808497409025369325795765272066650278004200357878990911374982857977108488482528354406313893864211497105765030504600982253488805474531798742143374465080240030582370086699167937651038307909706139327119325418854546478285735654541635477790346964782617354265050767878335230272194896680141986745074630225893106573559558843545841186025169531604151588481389164948914823593944287133336263680358191369540321930649824471425485137777984823525402115151171093313613251350685343824859052220126891551966018355920872775724807128769003243129486808733796350497668255116485157191011858830643898323628223472099280243583164434348347014910398004439821970508280440872759395827943270985008769143562351938091476215083548164137333541883808870019116234099013452929807950151652297436436006149684939775781234660954156154478642694176038524277810483833149798681345708089152179193979463169402340611793486272301808073267534612685593859596787866884211031341417903391749825320454663508370385251831778477311017089729361152161928815389818579983544490982891734081131312309744330960666031291451740885503458543884956367654943799264600314531815427932691107874782328654759293575803481929361961781073958502075438499070633193799699311694287183299423475339817655608058724723221867087563064557636112380829514501382073257737022472866608244164310385205213523702910787182472517125030106491031844871593141759729773907719510044049352857426592936763727969496103940591601975078602859660478614119405428212830134490731706220583788265344728818766885126977588151111984290444321648931907188080336064713873288834096229203276676119810521851726133377700616341304257822975788967472152742255041912584197045423031298506219011800240120182445838590696647416285334515631019799007515682004250060857020904012215375170479800482680554499806010766109655061507421747722461180617361402575082294678925605271083587897845390768226405648508518103525778638618195775128516073959272990148239415346263486966573934577450787243667063244378381883115827207605856174876350045086885320626669331311880593775916269643646395423220549940790476989709243027420158390806135690975149384714684219964938182719962913931464979458639185519531490009437619838306362365453754807654884704163490469296444427144778593725687358437087390151990694667516279202024332494828210657618261952038597230263799412584275851667403910657370879707181053365818502680037431560091209982641738995652793235851569372314130107647166085235615697257094269133100914135783178856280392139325001352841718610484616627448189556913621837791650699820323059708766420810133584841826718631681683381743511974264126250984214812397119978273917903889865891718836792263377888052458189238746074986456016681098722869419588274020181430652732817858728473849369539367463917171317324882099804999043054467247785592038464723442276239896066431580123756428540074945472427752568981171400621705853374875885943072600692576914790467205905272372594740187988081900317493185005142913607163380720069786786782095331840893694073778325119471833528492917081008547303414509381563617864195257751546539575461435803625993888325647883541039192368366987400263049681218831477776345118518503709588840859023379762456561030683928115349942393963185677123055324771693784214924931737043793679546051454845624150270955450608318747395755728950832754611277041359602301205138509175543313522772786504141007552691902249572375175731740923618769197304652898352694386665448260033458575323252814233868098279476166764258284911434288072243178941698347365985427696983129579496059032032841281149923518087084876885114369033227736521245740554711771423492719899982357711910225545480424688322195336240492253136281857837808491795993788199125205555222116581071134476787468430539307909617442106685159519071053844987343666452494280317720153567054364117244775141336558406098548803924509496052261825198043140272655303625315605326569530252885854991822289219201218313590745412010446642247111703901991591338062693320157180618736569439969283245279430312651192668788340033626825194260296262959884258597703584888770801961209652822982322376122303586169861685106043820510444293432856251210395693261264867823980172683352796141772210301725997652373804152525037162852291403804455997331367378463632437773242905518075065414724295857460288225400061608664961649196400079359622673770607898395269075056596627116148289491042491764170924014885106158235482774778418134123293974436877051995673618683751115353808771434984204447736174758316063096245047311279841579995578186609402864244042751443128536278453430633423118662852688374229600894418958824842459450540826176452145829389286103522774101195556029650753254244433565937938526828990893149766298997738359913887178888607190765709867052470880785937935110091424743449966353497865681753841380246075612094033617488674676296822570077027076266879557913673839341012099558043806442348798053951239274913334631522409564461770434875790402230022872647568436177018658068697071731879399180374560963492726714528729224208938589940272515747888379118461617702271694075087419634147298076764775745707026934442908236664400557265527951453482191684597674273691978253678690951178777239573925410438679099374700609973920128201422381329108236575369403675960765238333778127017096574296148321075566959285042221837159799800133563239963969638610872680393210300180152020613051613414547163713772512617757277955979895866367571776456268564191092477027650135832200376440239783726540552694851717269598489288851529660975027775639565229734596726205832668434979354541943345062977891187146561050118118108223323735210843681128615413601091222007912350536959777114306541514511332368936078560929788143798814391221507522370648646767364209132147312407014953113532379838195728491128536978285918066991040993153064356179903885952027952713749653604502053512355449916680887234238773855581636172479594866871765094513940103284167914110196720261110812716776424260154507395050380575452850420730818412994731079307343538376880280124019321040198038723558784544408584344466090982802067326529000931562048932875469079874956595180595395347093285140279165467965596318365749701535812384333240968283640721344003442002691613772056762099098025739332715913970186225176459563484134139746647940170537900275350480490468851439300771949915194703080576611022590670399844931867609777417528903454731922206378932141464755402629420074293816349270038351339419146768473851353171629153912238797141905920143036064131705230421762305232861503856799511155936565169005916711845389135580928162511912438531204156138447775120789548666143600293412065767167106888509172568003530668539460588248316513392652567856224602697296203328920073354425994044956624831346979458846837597950064151867164583749203433942592178528868981311575331848941597492470436782387502687532649093096498315347403977436001399982102030846763698994785054617523241463186980898394504211430763617825306895065661536045431497903759118007934839122881885863091769469883539876840543521295706315919855784493235603866268925981702690270202829595794350800918257913991744455922683343374046671669930219650268554687501e-4951
diff --git a/stdlib/tst-strtod-round.c b/stdlib/tst-strtod-round.c
new file mode 100644
index 0000000000..74385000c8
--- /dev/null
+++ b/stdlib/tst-strtod-round.c
@@ -0,0 +1,6298 @@
+/* Test for correct rounding of results of strtod and related
+ functions.
+ Copyright (C) 2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <float.h>
+#include <math.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+struct test {
+ const char *s;
+ float f;
+ double d;
+ bool ld_ok;
+ long double ld;
+};
+
+#if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+ ld64d, ld64n, ld64z, ld64u, ld106exact, \
+ ld106d, ld106n, ld106z, ld106u, \
+ ld113d, ld113n, ld113z, ld113u) \
+ { s, fn, dn, true, ld53n }
+#elif LDBL_MANT_DIG == 64 && LDBL_MAX_EXP == 16384
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+ ld64d, ld64n, ld64z, ld64u, ld106exact, \
+ ld106d, ld106n, ld106z, ld106u, \
+ ld113d, ld113n, ld113z, ld113u) \
+ { s, fn, dn, true, ld64n }
+#elif LDBL_MANT_DIG == 106 && LDBL_MAX_EXP == 1024
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+ ld64d, ld64n, ld64z, ld64u, ld106exact, \
+ ld106d, ld106n, ld106z, ld106u, \
+ ld113d, ld113n, ld113z, ld113u) \
+ { s, fn, dn, ld106exact, ld106n }
+#elif LDBL_MANT_DIG == 113 && LDBL_MAX_EXP == 16384
+# define TEST(s, fd, fn, fz, fu, dd, dn, dz, du, ld53d, ld53n, ld53z, ld53u, \
+ ld64d, ld64n, ld64z, ld64u, ld106exact, \
+ ld106d, ld106n, ld106z, ld106u, \
+ ld113d, ld113n, ld113z, ld113u) \
+ { s, fn, dn, true, ld113n }
+#else
+# error "unknown long double format"
+#endif
+
+/* These tests are generated by gen-tst-strtod-round.c from
+ tst-strtod-round-data. */
+
+static const struct test tests[] = {
+ TEST ("3.518437208883201171875E+013",
+ 0x2p+44f,
+ 0x2p+44f,
+ 0x2p+44f,
+ 0x2.000004p+44f,
+ 0x2.0000000000002p+44,
+ 0x2.0000000000004p+44,
+ 0x2.0000000000002p+44,
+ 0x2.0000000000004p+44,
+ 0x2.0000000000002p+44L,
+ 0x2.0000000000004p+44L,
+ 0x2.0000000000002p+44L,
+ 0x2.0000000000004p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ true,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L,
+ 0x2.0000000000003p+44L),
+ TEST ("1.00000005960464477550",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000004p+0L,
+ false,
+ 0x1.0000010000000002048242f2ffp+0L,
+ 0x1.0000010000000002048242f2ff8p+0L,
+ 0x1.0000010000000002048242f2ffp+0L,
+ 0x1.0000010000000002048242f2ff8p+0L,
+ 0x1.0000010000000002048242f2ff66p+0L,
+ 0x1.0000010000000002048242f2ff67p+0L,
+ 0x1.0000010000000002048242f2ff66p+0L,
+ 0x1.0000010000000002048242f2ff67p+0L),
+ TEST ("1.0000000596046447755",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000002p+0L,
+ 0x1.0000010000000004p+0L,
+ false,
+ 0x1.0000010000000002048242f2ffp+0L,
+ 0x1.0000010000000002048242f2ff8p+0L,
+ 0x1.0000010000000002048242f2ffp+0L,
+ 0x1.0000010000000002048242f2ff8p+0L,
+ 0x1.0000010000000002048242f2ff66p+0L,
+ 0x1.0000010000000002048242f2ff67p+0L,
+ 0x1.0000010000000002048242f2ff66p+0L,
+ 0x1.0000010000000002048242f2ff67p+0L),
+ TEST ("1.000000059604644776",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.000001000000000ap+0L,
+ 0x1.000001000000000cp+0L,
+ 0x1.000001000000000ap+0L,
+ 0x1.000001000000000cp+0L,
+ false,
+ 0x1.000001000000000b3db12bdc21p+0L,
+ 0x1.000001000000000b3db12bdc21p+0L,
+ 0x1.000001000000000b3db12bdc21p+0L,
+ 0x1.000001000000000b3db12bdc218p+0L,
+ 0x1.000001000000000b3db12bdc213cp+0L,
+ 0x1.000001000000000b3db12bdc213dp+0L,
+ 0x1.000001000000000b3db12bdc213cp+0L,
+ 0x1.000001000000000b3db12bdc213dp+0L),
+ TEST ("1.000000059604644775",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffffffp+0,
+ 0x1.000001p+0,
+ 0x1.000000fffffffp+0,
+ 0x1.000001p+0,
+ 0x1.000000fffffffp+0L,
+ 0x1.000001p+0L,
+ 0x1.000000fffffffp+0L,
+ 0x1.000001p+0L,
+ 0x1.000000fffffffff8p+0L,
+ 0x1.000000fffffffff8p+0L,
+ 0x1.000000fffffffff8p+0L,
+ 0x1.000000fffffffffap+0L,
+ false,
+ 0x1.000000fffffffff8cb535a09dd8p+0L,
+ 0x1.000000fffffffff8cb535a09dd8p+0L,
+ 0x1.000000fffffffff8cb535a09dd8p+0L,
+ 0x1.000000fffffffff8cb535a09dep+0L,
+ 0x1.000000fffffffff8cb535a09dd9p+0L,
+ 0x1.000000fffffffff8cb535a09dd91p+0L,
+ 0x1.000000fffffffff8cb535a09dd9p+0L,
+ 0x1.000000fffffffff8cb535a09dd91p+0L),
+ TEST ("1.00000005960464478",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000000054p+0L,
+ 0x1.0000010000000056p+0L,
+ 0x1.0000010000000054p+0L,
+ 0x1.0000010000000056p+0L,
+ false,
+ 0x1.0000010000000055072873252f8p+0L,
+ 0x1.0000010000000055072873253p+0L,
+ 0x1.0000010000000055072873252f8p+0L,
+ 0x1.0000010000000055072873253p+0L,
+ 0x1.0000010000000055072873252febp+0L,
+ 0x1.0000010000000055072873252febp+0L,
+ 0x1.0000010000000055072873252febp+0L,
+ 0x1.0000010000000055072873252fecp+0L),
+ TEST ("1.0000000596046448",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.00000100000001c4p+0L,
+ 0x1.00000100000001c6p+0L,
+ 0x1.00000100000001c4p+0L,
+ 0x1.00000100000001c6p+0L,
+ false,
+ 0x1.00000100000001c5f67cd79279p+0L,
+ 0x1.00000100000001c5f67cd792798p+0L,
+ 0x1.00000100000001c5f67cd79279p+0L,
+ 0x1.00000100000001c5f67cd792798p+0L,
+ 0x1.00000100000001c5f67cd7927953p+0L,
+ 0x1.00000100000001c5f67cd7927954p+0L,
+ 0x1.00000100000001c5f67cd7927953p+0L,
+ 0x1.00000100000001c5f67cd7927954p+0L),
+ TEST ("1.000000059604645",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.0000010000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.0000010000002p+0,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.0000010000002p+0L,
+ 0x1.000001000000102ep+0L,
+ 0x1.000001000000103p+0L,
+ 0x1.000001000000102ep+0L,
+ 0x1.000001000000103p+0L,
+ false,
+ 0x1.000001000000102f4fc8c3d757p+0L,
+ 0x1.000001000000102f4fc8c3d7578p+0L,
+ 0x1.000001000000102f4fc8c3d757p+0L,
+ 0x1.000001000000102f4fc8c3d7578p+0L,
+ 0x1.000001000000102f4fc8c3d75769p+0L,
+ 0x1.000001000000102f4fc8c3d75769p+0L,
+ 0x1.000001000000102f4fc8c3d75769p+0L,
+ 0x1.000001000000102f4fc8c3d7576ap+0L),
+ TEST ("1.00000005960464",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffffeap+0,
+ 0x1.000000fffffeap+0,
+ 0x1.000000fffffeap+0,
+ 0x1.000000fffffebp+0,
+ 0x1.000000fffffeap+0L,
+ 0x1.000000fffffeap+0L,
+ 0x1.000000fffffeap+0L,
+ 0x1.000000fffffebp+0L,
+ 0x1.000000fffffea7e4p+0L,
+ 0x1.000000fffffea7e6p+0L,
+ 0x1.000000fffffea7e4p+0L,
+ 0x1.000000fffffea7e6p+0L,
+ false,
+ 0x1.000000fffffea7e5975eb11da7p+0L,
+ 0x1.000000fffffea7e5975eb11da78p+0L,
+ 0x1.000000fffffea7e5975eb11da7p+0L,
+ 0x1.000000fffffea7e5975eb11da78p+0L,
+ 0x1.000000fffffea7e5975eb11da74ap+0L,
+ 0x1.000000fffffea7e5975eb11da74bp+0L,
+ 0x1.000000fffffea7e5975eb11da74ap+0L,
+ 0x1.000000fffffea7e5975eb11da74bp+0L),
+ TEST ("1.0000000596046",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffff36p+0,
+ 0x1.000000fffff36p+0,
+ 0x1.000000fffff36p+0,
+ 0x1.000000fffff37p+0,
+ 0x1.000000fffff36p+0L,
+ 0x1.000000fffff36p+0L,
+ 0x1.000000fffff36p+0L,
+ 0x1.000000fffff37p+0L,
+ 0x1.000000fffff36596p+0L,
+ 0x1.000000fffff36598p+0L,
+ 0x1.000000fffff36596p+0L,
+ 0x1.000000fffff36598p+0L,
+ false,
+ 0x1.000000fffff36597d40e1b5026p+0L,
+ 0x1.000000fffff36597d40e1b50268p+0L,
+ 0x1.000000fffff36597d40e1b5026p+0L,
+ 0x1.000000fffff36597d40e1b50268p+0L,
+ 0x1.000000fffff36597d40e1b502655p+0L,
+ 0x1.000000fffff36597d40e1b502656p+0L,
+ 0x1.000000fffff36597d40e1b502655p+0L,
+ 0x1.000000fffff36597d40e1b502656p+0L),
+ TEST ("1.000000059605",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001000063fp+0,
+ 0x1.000001000064p+0,
+ 0x1.000001000063fp+0,
+ 0x1.000001000064p+0,
+ 0x1.000001000063fp+0L,
+ 0x1.000001000064p+0L,
+ 0x1.000001000063fp+0L,
+ 0x1.000001000064p+0L,
+ 0x1.000001000063fcap+0L,
+ 0x1.000001000063fca2p+0L,
+ 0x1.000001000063fcap+0L,
+ 0x1.000001000063fca2p+0L,
+ false,
+ 0x1.000001000063fca17533f5572f8p+0L,
+ 0x1.000001000063fca17533f5573p+0L,
+ 0x1.000001000063fca17533f5572f8p+0L,
+ 0x1.000001000063fca17533f5573p+0L,
+ 0x1.000001000063fca17533f5572fe9p+0L,
+ 0x1.000001000063fca17533f5572feap+0L,
+ 0x1.000001000063fca17533f5572fe9p+0L,
+ 0x1.000001000063fca17533f5572feap+0L),
+ TEST ("1.00000005960",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffae49p+0,
+ 0x1.000000fffae4ap+0,
+ 0x1.000000fffae49p+0,
+ 0x1.000000fffae4ap+0,
+ 0x1.000000fffae49p+0L,
+ 0x1.000000fffae4ap+0L,
+ 0x1.000000fffae49p+0L,
+ 0x1.000000fffae4ap+0L,
+ 0x1.000000fffae49ca8p+0L,
+ 0x1.000000fffae49caap+0L,
+ 0x1.000000fffae49ca8p+0L,
+ 0x1.000000fffae49caap+0L,
+ false,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff388p+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382ep+0L),
+ TEST ("1.0000000596",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffae49p+0,
+ 0x1.000000fffae4ap+0,
+ 0x1.000000fffae49p+0,
+ 0x1.000000fffae4ap+0,
+ 0x1.000000fffae49p+0L,
+ 0x1.000000fffae4ap+0L,
+ 0x1.000000fffae49p+0L,
+ 0x1.000000fffae4ap+0L,
+ 0x1.000000fffae49ca8p+0L,
+ 0x1.000000fffae49caap+0L,
+ 0x1.000000fffae49ca8p+0L,
+ 0x1.000000fffae49caap+0L,
+ false,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff38p+0L,
+ 0x1.000000fffae49ca916dacfff388p+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382dp+0L,
+ 0x1.000000fffae49ca916dacfff382ep+0L),
+ TEST ("1.000000060",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.00000101b2b29p+0,
+ 0x1.00000101b2b2ap+0,
+ 0x1.00000101b2b29p+0,
+ 0x1.00000101b2b2ap+0,
+ 0x1.00000101b2b29p+0L,
+ 0x1.00000101b2b2ap+0L,
+ 0x1.00000101b2b29p+0L,
+ 0x1.00000101b2b2ap+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a48p+0L,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca38p+0L,
+ 0x1.00000101b2b29a4692b67b7ca313p+0L,
+ 0x1.00000101b2b29a4692b67b7ca314p+0L,
+ 0x1.00000101b2b29a4692b67b7ca313p+0L,
+ 0x1.00000101b2b29a4692b67b7ca314p+0L),
+ TEST ("1.00000006",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.00000101b2b29p+0,
+ 0x1.00000101b2b2ap+0,
+ 0x1.00000101b2b29p+0,
+ 0x1.00000101b2b2ap+0,
+ 0x1.00000101b2b29p+0L,
+ 0x1.00000101b2b2ap+0L,
+ 0x1.00000101b2b29p+0L,
+ 0x1.00000101b2b2ap+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a46p+0L,
+ 0x1.00000101b2b29a48p+0L,
+ false,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca3p+0L,
+ 0x1.00000101b2b29a4692b67b7ca38p+0L,
+ 0x1.00000101b2b29a4692b67b7ca313p+0L,
+ 0x1.00000101b2b29a4692b67b7ca314p+0L,
+ 0x1.00000101b2b29a4692b67b7ca313p+0L,
+ 0x1.00000101b2b29a4692b67b7ca314p+0L),
+ TEST ("1.0000001",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001ad7f29ap+0,
+ 0x1.000001ad7f29bp+0,
+ 0x1.000001ad7f29ap+0,
+ 0x1.000001ad7f29bp+0,
+ 0x1.000001ad7f29ap+0L,
+ 0x1.000001ad7f29bp+0L,
+ 0x1.000001ad7f29ap+0L,
+ 0x1.000001ad7f29bp+0L,
+ 0x1.000001ad7f29abcap+0L,
+ 0x1.000001ad7f29abcap+0L,
+ 0x1.000001ad7f29abcap+0L,
+ 0x1.000001ad7f29abccp+0L,
+ false,
+ 0x1.000001ad7f29abcaf485787a65p+0L,
+ 0x1.000001ad7f29abcaf485787a65p+0L,
+ 0x1.000001ad7f29abcaf485787a65p+0L,
+ 0x1.000001ad7f29abcaf485787a658p+0L,
+ 0x1.000001ad7f29abcaf485787a652p+0L,
+ 0x1.000001ad7f29abcaf485787a6521p+0L,
+ 0x1.000001ad7f29abcaf485787a652p+0L,
+ 0x1.000001ad7f29abcaf485787a6521p+0L),
+ TEST ("1.000000",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ true,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L),
+ TEST ("1.00000000000000011113",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.0000000000000802p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.0000000000000802p+0L,
+ false,
+ 0x1.0000000000000801fc96557232p+0L,
+ 0x1.0000000000000801fc96557232p+0L,
+ 0x1.0000000000000801fc96557232p+0L,
+ 0x1.0000000000000801fc965572328p+0L,
+ 0x1.0000000000000801fc9655723222p+0L,
+ 0x1.0000000000000801fc9655723222p+0L,
+ 0x1.0000000000000801fc9655723222p+0L,
+ 0x1.0000000000000801fc9655723223p+0L),
+ TEST ("1.00000000000000011103",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.0000000000000802p+0L,
+ false,
+ 0x1.00000000000008002459c076c48p+0L,
+ 0x1.00000000000008002459c076c5p+0L,
+ 0x1.00000000000008002459c076c48p+0L,
+ 0x1.00000000000008002459c076c5p+0L,
+ 0x1.00000000000008002459c076c4f7p+0L,
+ 0x1.00000000000008002459c076c4f8p+0L,
+ 0x1.00000000000008002459c076c4f7p+0L,
+ 0x1.00000000000008002459c076c4f8p+0L),
+ TEST ("1.00000000000000011102",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ false,
+ 0x1.00000000000007fff5207e5dap+0L,
+ 0x1.00000000000007fff5207e5da08p+0L,
+ 0x1.00000000000007fff5207e5dap+0L,
+ 0x1.00000000000007fff5207e5da08p+0L,
+ 0x1.00000000000007fff5207e5da073p+0L,
+ 0x1.00000000000007fff5207e5da073p+0L,
+ 0x1.00000000000007fff5207e5da073p+0L,
+ 0x1.00000000000007fff5207e5da074p+0L),
+ TEST ("1.00000000000000011101",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ false,
+ 0x1.00000000000007ffc5e73c447b8p+0L,
+ 0x1.00000000000007ffc5e73c447cp+0L,
+ 0x1.00000000000007ffc5e73c447b8p+0L,
+ 0x1.00000000000007ffc5e73c447cp+0L,
+ 0x1.00000000000007ffc5e73c447befp+0L,
+ 0x1.00000000000007ffc5e73c447befp+0L,
+ 0x1.00000000000007ffc5e73c447befp+0L,
+ 0x1.00000000000007ffc5e73c447bfp+0L),
+ TEST ("1.0000000000000001111",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.0000000000000802p+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.0000000000000802p+0L,
+ false,
+ 0x1.00000000000008016eea8f26c48p+0L,
+ 0x1.00000000000008016eea8f26c48p+0L,
+ 0x1.00000000000008016eea8f26c48p+0L,
+ 0x1.00000000000008016eea8f26c5p+0L,
+ 0x1.00000000000008016eea8f26c495p+0L,
+ 0x1.00000000000008016eea8f26c496p+0L,
+ 0x1.00000000000008016eea8f26c495p+0L,
+ 0x1.00000000000008016eea8f26c496p+0L),
+ TEST ("1.000000000000000111",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ 0x1.00000000000007fep+0L,
+ 0x1.00000000000008p+0L,
+ false,
+ 0x1.00000000000007ff96adfa2b57p+0L,
+ 0x1.00000000000007ff96adfa2b578p+0L,
+ 0x1.00000000000007ff96adfa2b57p+0L,
+ 0x1.00000000000007ff96adfa2b578p+0L,
+ 0x1.00000000000007ff96adfa2b576ap+0L,
+ 0x1.00000000000007ff96adfa2b576bp+0L,
+ 0x1.00000000000007ff96adfa2b576ap+0L,
+ 0x1.00000000000007ff96adfa2b576bp+0L),
+ TEST ("1.00000000000000011",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.00000000000007ecp+0L,
+ 0x1.00000000000007eep+0L,
+ 0x1.00000000000007ecp+0L,
+ 0x1.00000000000007eep+0L,
+ false,
+ 0x1.00000000000007ed24502859138p+0L,
+ 0x1.00000000000007ed24502859138p+0L,
+ 0x1.00000000000007ed24502859138p+0L,
+ 0x1.00000000000007ed2450285914p+0L,
+ 0x1.00000000000007ed2450285913bfp+0L,
+ 0x1.00000000000007ed2450285913bfp+0L,
+ 0x1.00000000000007ed2450285913bfp+0L,
+ 0x1.00000000000007ed2450285913cp+0L),
+ TEST ("1.0000000000000001",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1p+0,
+ 0x1.0000000000001p+0,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1p+0L,
+ 0x1.0000000000001p+0L,
+ 0x1.0000000000000734p+0L,
+ 0x1.0000000000000734p+0L,
+ 0x1.0000000000000734p+0L,
+ 0x1.0000000000000736p+0L,
+ false,
+ 0x1.0000000000000734aca5f6226fp+0L,
+ 0x1.0000000000000734aca5f6226fp+0L,
+ 0x1.0000000000000734aca5f6226fp+0L,
+ 0x1.0000000000000734aca5f6226f8p+0L,
+ 0x1.0000000000000734aca5f6226f0ap+0L,
+ 0x1.0000000000000734aca5f6226f0bp+0L,
+ 0x1.0000000000000734aca5f6226f0ap+0L,
+ 0x1.0000000000000734aca5f6226f0bp+0L),
+ TEST ("3929201589819414e-25",
+ 0x1.b0053p-32f,
+ 0x1.b00532p-32f,
+ 0x1.b0053p-32f,
+ 0x1.b00532p-32f,
+ 0x1.b005314e2421ep-32,
+ 0x1.b005314e2421ep-32,
+ 0x1.b005314e2421ep-32,
+ 0x1.b005314e2421fp-32,
+ 0x1.b005314e2421ep-32L,
+ 0x1.b005314e2421ep-32L,
+ 0x1.b005314e2421ep-32L,
+ 0x1.b005314e2421fp-32L,
+ 0x1.b005314e2421e7fep-32L,
+ 0x1.b005314e2421e8p-32L,
+ 0x1.b005314e2421e7fep-32L,
+ 0x1.b005314e2421e8p-32L,
+ false,
+ 0x1.b005314e2421e7ffb472840c5ap-32L,
+ 0x1.b005314e2421e7ffb472840c5a8p-32L,
+ 0x1.b005314e2421e7ffb472840c5ap-32L,
+ 0x1.b005314e2421e7ffb472840c5a8p-32L,
+ 0x1.b005314e2421e7ffb472840c5a6ep-32L,
+ 0x1.b005314e2421e7ffb472840c5a6fp-32L,
+ 0x1.b005314e2421e7ffb472840c5a6ep-32L,
+ 0x1.b005314e2421e7ffb472840c5a6fp-32L),
+ TEST ("0.0000000000000000000000000000000000000000000021019476964872"
+ "256063855943749348741969203929128147736576356024258346866240"
+ "28790902229957282543182373046875",
+ 0x8p-152f,
+ 0x1p-148f,
+ 0x8p-152f,
+ 0x1p-148f,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ true,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L),
+ TEST ("1.00000005960464477539062499",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000000fffffffp+0,
+ 0x1.000001p+0,
+ 0x1.000000fffffffp+0,
+ 0x1.000001p+0,
+ 0x1.000000fffffffp+0L,
+ 0x1.000001p+0L,
+ 0x1.000000fffffffp+0L,
+ 0x1.000001p+0L,
+ 0x1.000000fffffffffep+0L,
+ 0x1.000001p+0L,
+ 0x1.000000fffffffffep+0L,
+ 0x1.000001p+0L,
+ false,
+ 0x1.000000fffffffffffffffce7b78p+0L,
+ 0x1.000000fffffffffffffffce7b8p+0L,
+ 0x1.000000fffffffffffffffce7b78p+0L,
+ 0x1.000000fffffffffffffffce7b8p+0L,
+ 0x1.000000fffffffffffffffce7b7e7p+0L,
+ 0x1.000000fffffffffffffffce7b7e7p+0L,
+ 0x1.000000fffffffffffffffce7b7e7p+0L,
+ 0x1.000000fffffffffffffffce7b7e8p+0L),
+ TEST ("1.000000059604644775390625",
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ true,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L),
+ TEST ("1.00000005960464477539062501",
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1p+0f,
+ 0x1.000002p+0f,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.000001p+0,
+ 0x1.0000010000001p+0,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.000001p+0L,
+ 0x1.0000010000000002p+0L,
+ false,
+ 0x1.00000100000000000000031848p+0L,
+ 0x1.00000100000000000000031848p+0L,
+ 0x1.00000100000000000000031848p+0L,
+ 0x1.000001000000000000000318488p+0L,
+ 0x1.0000010000000000000003184818p+0L,
+ 0x1.0000010000000000000003184819p+0L,
+ 0x1.0000010000000000000003184818p+0L,
+ 0x1.0000010000000000000003184819p+0L),
+ TEST ("1.00000011920928955078125",
+ 0x1.000002p+0f,
+ 0x1.000002p+0f,
+ 0x1.000002p+0f,
+ 0x1.000002p+0f,
+ 0x1.000002p+0,
+ 0x1.000002p+0,
+ 0x1.000002p+0,
+ 0x1.000002p+0,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ true,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L,
+ 0x1.000002p+0L),
+ TEST ("1.00000017881393432617187499",
+ 0x1.000002p+0f,
+ 0x1.000002p+0f,
+ 0x1.000002p+0f,
+ 0x1.000004p+0f,
+ 0x1.000002fffffffp+0,
+ 0x1.000003p+0,
+ 0x1.000002fffffffp+0,
+ 0x1.000003p+0,
+ 0x1.000002fffffffp+0L,
+ 0x1.000003p+0L,
+ 0x1.000002fffffffp+0L,
+ 0x1.000003p+0L,
+ 0x1.000002fffffffffep+0L,
+ 0x1.000003p+0L,
+ 0x1.000002fffffffffep+0L,
+ 0x1.000003p+0L,
+ false,
+ 0x1.000002fffffffffffffffce7b78p+0L,
+ 0x1.000002fffffffffffffffce7b8p+0L,
+ 0x1.000002fffffffffffffffce7b78p+0L,
+ 0x1.000002fffffffffffffffce7b8p+0L,
+ 0x1.000002fffffffffffffffce7b7e7p+0L,
+ 0x1.000002fffffffffffffffce7b7e7p+0L,
+ 0x1.000002fffffffffffffffce7b7e7p+0L,
+ 0x1.000002fffffffffffffffce7b7e8p+0L),
+ TEST ("1.000000178813934326171875",
+ 0x1.000002p+0f,
+ 0x1.000004p+0f,
+ 0x1.000002p+0f,
+ 0x1.000004p+0f,
+ 0x1.000003p+0,
+ 0x1.000003p+0,
+ 0x1.000003p+0,
+ 0x1.000003p+0,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ true,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L),
+ TEST ("1.00000017881393432617187501",
+ 0x1.000002p+0f,
+ 0x1.000004p+0f,
+ 0x1.000002p+0f,
+ 0x1.000004p+0f,
+ 0x1.000003p+0,
+ 0x1.000003p+0,
+ 0x1.000003p+0,
+ 0x1.0000030000001p+0,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.0000030000001p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.000003p+0L,
+ 0x1.0000030000000002p+0L,
+ false,
+ 0x1.00000300000000000000031848p+0L,
+ 0x1.00000300000000000000031848p+0L,
+ 0x1.00000300000000000000031848p+0L,
+ 0x1.000003000000000000000318488p+0L,
+ 0x1.0000030000000000000003184818p+0L,
+ 0x1.0000030000000000000003184819p+0L,
+ 0x1.0000030000000000000003184818p+0L,
+ 0x1.0000030000000000000003184819p+0L),
+ TEST ("1.0000002384185791015625",
+ 0x1.000004p+0f,
+ 0x1.000004p+0f,
+ 0x1.000004p+0f,
+ 0x1.000004p+0f,
+ 0x1.000004p+0,
+ 0x1.000004p+0,
+ 0x1.000004p+0,
+ 0x1.000004p+0,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ true,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L,
+ 0x1.000004p+0L),
+ TEST ("1.08420217248550443400745280086994171142578125e-19",
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2p-64,
+ 0x2p-64,
+ 0x2p-64,
+ 0x2p-64,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ true,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L,
+ 0x2p-64L),
+ TEST ("1.0842022371089897897127399001987457793916291848290711641311"
+ "645507812499e-19",
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2.000004p-64f,
+ 0x2.000001ffffffep-64,
+ 0x2.000002p-64,
+ 0x2.000001ffffffep-64,
+ 0x2.000002p-64,
+ 0x2.000001ffffffep-64L,
+ 0x2.000002p-64L,
+ 0x2.000001ffffffep-64L,
+ 0x2.000002p-64L,
+ 0x2.000001fffffffffcp-64L,
+ 0x2.000002p-64L,
+ 0x2.000001fffffffffcp-64L,
+ 0x2.000002p-64L,
+ false,
+ 0x2.000001ffffffffffffffffffffp-64L,
+ 0x2.000002p-64L,
+ 0x2.000001ffffffffffffffffffffp-64L,
+ 0x2.000002p-64L,
+ 0x2.000001fffffffffffffffffffffep-64L,
+ 0x2.000002p-64L,
+ 0x2.000001fffffffffffffffffffffep-64L,
+ 0x2.000002p-64L),
+ TEST ("1.0842022371089897897127399001987457793916291848290711641311"
+ "6455078125e-19",
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2p-64f,
+ 0x2.000004p-64f,
+ 0x2.000002p-64,
+ 0x2.000002p-64,
+ 0x2.000002p-64,
+ 0x2.000002p-64,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ true,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L),
+ TEST ("1.0842022371089897897127399001987457793916291848290711641311"
+ "645507812501e-19",
+ 0x2p-64f,
+ 0x2.000004p-64f,
+ 0x2p-64f,
+ 0x2.000004p-64f,
+ 0x2.000002p-64,
+ 0x2.000002p-64,
+ 0x2.000002p-64,
+ 0x2.0000020000002p-64,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.0000020000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.0000020000000004p-64L,
+ false,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.00000200000000000000000001p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.000002p-64L,
+ 0x2.0000020000000000000000000002p-64L),
+ TEST ("1.0842023017324751454180269995275498473574771196581423282623"
+ "291015625e-19",
+ 0x2.000004p-64f,
+ 0x2.000004p-64f,
+ 0x2.000004p-64f,
+ 0x2.000004p-64f,
+ 0x2.000004p-64,
+ 0x2.000004p-64,
+ 0x2.000004p-64,
+ 0x2.000004p-64,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ true,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L,
+ 0x2.000004p-64L),
+ TEST ("1.0842023663559605011233140988563539153233250544872134923934"
+ "936523437499e-19",
+ 0x2.000004p-64f,
+ 0x2.000004p-64f,
+ 0x2.000004p-64f,
+ 0x2.000008p-64f,
+ 0x2.000005ffffffep-64,
+ 0x2.000006p-64,
+ 0x2.000005ffffffep-64,
+ 0x2.000006p-64,
+ 0x2.000005ffffffep-64L,
+ 0x2.000006p-64L,
+ 0x2.000005ffffffep-64L,
+ 0x2.000006p-64L,
+ 0x2.000005fffffffffcp-64L,
+ 0x2.000006p-64L,
+ 0x2.000005fffffffffcp-64L,
+ 0x2.000006p-64L,
+ false,
+ 0x2.000005ffffffffffffffffffffp-64L,
+ 0x2.000006p-64L,
+ 0x2.000005ffffffffffffffffffffp-64L,
+ 0x2.000006p-64L,
+ 0x2.000005fffffffffffffffffffffep-64L,
+ 0x2.000006p-64L,
+ 0x2.000005fffffffffffffffffffffep-64L,
+ 0x2.000006p-64L),
+ TEST ("1.0842023663559605011233140988563539153233250544872134923934"
+ "9365234375e-19",
+ 0x2.000004p-64f,
+ 0x2.000008p-64f,
+ 0x2.000004p-64f,
+ 0x2.000008p-64f,
+ 0x2.000006p-64,
+ 0x2.000006p-64,
+ 0x2.000006p-64,
+ 0x2.000006p-64,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ true,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L),
+ TEST ("1.0842023663559605011233140988563539153233250544872134923934"
+ "936523437501e-19",
+ 0x2.000004p-64f,
+ 0x2.000008p-64f,
+ 0x2.000004p-64f,
+ 0x2.000008p-64f,
+ 0x2.000006p-64,
+ 0x2.000006p-64,
+ 0x2.000006p-64,
+ 0x2.0000060000002p-64,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.0000060000002p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.0000060000000004p-64L,
+ false,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.00000600000000000000000001p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.000006p-64L,
+ 0x2.0000060000000000000000000002p-64L),
+ TEST ("1.0842024309794458568286011981851579832891729893162846565246"
+ "58203125e-19",
+ 0x2.000008p-64f,
+ 0x2.000008p-64f,
+ 0x2.000008p-64f,
+ 0x2.000008p-64f,
+ 0x2.000008p-64,
+ 0x2.000008p-64,
+ 0x2.000008p-64,
+ 0x2.000008p-64,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ true,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L,
+ 0x2.000008p-64L),
+ TEST ("7.5231638452626400509999138382223723380394595633413601376560"
+ "1092018187046051025390625e-37",
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1p-120,
+ 0x1p-120,
+ 0x1p-120,
+ 0x1p-120,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ true,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L,
+ 0x1p-120L),
+ TEST ("7.5231642936781486349413765338158389908126215730251815381410"
+ "578824437213052434003657253924757242202758789062499e-37",
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1.000002p-120f,
+ 0x1.000000fffffffp-120,
+ 0x1.000001p-120,
+ 0x1.000000fffffffp-120,
+ 0x1.000001p-120,
+ 0x1.000000fffffffp-120L,
+ 0x1.000001p-120L,
+ 0x1.000000fffffffp-120L,
+ 0x1.000001p-120L,
+ 0x1.000000fffffffffep-120L,
+ 0x1.000001p-120L,
+ 0x1.000000fffffffffep-120L,
+ 0x1.000001p-120L,
+ false,
+ 0x1.000000ffffffffffffffffffff8p-120L,
+ 0x1.000001p-120L,
+ 0x1.000000ffffffffffffffffffff8p-120L,
+ 0x1.000001p-120L,
+ 0x1.000000ffffffffffffffffffffffp-120L,
+ 0x1.000001p-120L,
+ 0x1.000000ffffffffffffffffffffffp-120L,
+ 0x1.000001p-120L),
+ TEST ("7.5231642936781486349413765338158389908126215730251815381410"
+ "5788244372130524340036572539247572422027587890625e-37",
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1p-120f,
+ 0x1.000002p-120f,
+ 0x1.000001p-120,
+ 0x1.000001p-120,
+ 0x1.000001p-120,
+ 0x1.000001p-120,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ true,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L),
+ TEST ("7.5231642936781486349413765338158389908126215730251815381410"
+ "578824437213052434003657253924757242202758789062501e-37",
+ 0x1p-120f,
+ 0x1.000002p-120f,
+ 0x1p-120f,
+ 0x1.000002p-120f,
+ 0x1.000001p-120,
+ 0x1.000001p-120,
+ 0x1.000001p-120,
+ 0x1.0000010000001p-120,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.0000010000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.0000010000000002p-120L,
+ false,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001000000000000000000008p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.000001p-120L,
+ 0x1.0000010000000000000000000001p-120L),
+ TEST ("7.5231647420936572188828392294093056435857835827090029386261"
+ "048447055721499765468252007849514484405517578125e-37",
+ 0x1.000002p-120f,
+ 0x1.000002p-120f,
+ 0x1.000002p-120f,
+ 0x1.000002p-120f,
+ 0x1.000002p-120,
+ 0x1.000002p-120,
+ 0x1.000002p-120,
+ 0x1.000002p-120,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ true,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L,
+ 0x1.000002p-120L),
+ TEST ("7.5231651905091658028243019250027722963589455923928243391111"
+ "518069674229947096932846761774271726608276367187499e-37",
+ 0x1.000002p-120f,
+ 0x1.000002p-120f,
+ 0x1.000002p-120f,
+ 0x1.000004p-120f,
+ 0x1.000002fffffffp-120,
+ 0x1.000003p-120,
+ 0x1.000002fffffffp-120,
+ 0x1.000003p-120,
+ 0x1.000002fffffffp-120L,
+ 0x1.000003p-120L,
+ 0x1.000002fffffffp-120L,
+ 0x1.000003p-120L,
+ 0x1.000002fffffffffep-120L,
+ 0x1.000003p-120L,
+ 0x1.000002fffffffffep-120L,
+ 0x1.000003p-120L,
+ false,
+ 0x1.000002ffffffffffffffffffff8p-120L,
+ 0x1.000003p-120L,
+ 0x1.000002ffffffffffffffffffff8p-120L,
+ 0x1.000003p-120L,
+ 0x1.000002ffffffffffffffffffffffp-120L,
+ 0x1.000003p-120L,
+ 0x1.000002ffffffffffffffffffffffp-120L,
+ 0x1.000003p-120L),
+ TEST ("7.5231651905091658028243019250027722963589455923928243391111"
+ "5180696742299470969328467617742717266082763671875e-37",
+ 0x1.000002p-120f,
+ 0x1.000004p-120f,
+ 0x1.000002p-120f,
+ 0x1.000004p-120f,
+ 0x1.000003p-120,
+ 0x1.000003p-120,
+ 0x1.000003p-120,
+ 0x1.000003p-120,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ true,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L),
+ TEST ("7.5231651905091658028243019250027722963589455923928243391111"
+ "518069674229947096932846761774271726608276367187501e-37",
+ 0x1.000002p-120f,
+ 0x1.000004p-120f,
+ 0x1.000002p-120f,
+ 0x1.000004p-120f,
+ 0x1.000003p-120,
+ 0x1.000003p-120,
+ 0x1.000003p-120,
+ 0x1.0000030000001p-120,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.0000030000001p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.0000030000000002p-120L,
+ false,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003000000000000000000008p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.000003p-120L,
+ 0x1.0000030000000000000000000001p-120L),
+ TEST ("7.5231656389246743867657646205962389491321076020766457395961"
+ "98769229273839442839744151569902896881103515625e-37",
+ 0x1.000004p-120f,
+ 0x1.000004p-120f,
+ 0x1.000004p-120f,
+ 0x1.000004p-120f,
+ 0x1.000004p-120,
+ 0x1.000004p-120,
+ 0x1.000004p-120,
+ 0x1.000004p-120,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ true,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L,
+ 0x1.000004p-120L),
+ TEST ("340282356779733661637539395458142568447.999",
+ 0xf.fffffp+124f,
+ 0xf.fffffp+124f,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffff7ffffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff7ffffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff7ffffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7ffffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7fffffffffp+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7fffffffffp+124L,
+ 0xf.fffff8p+124L,
+ false,
+ 0xf.fffff7fffffffffffffffffffcp+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7fffffffffffffffffffcp+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7fffffffffffffffffffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff7fffffffffffffffffffff8p+124L,
+ 0xf.fffff8p+124L),
+ TEST ("340282356779733661637539395458142568448",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ true,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L),
+ TEST ("340282356779733661637539395458142568448.001",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff8p+124,
+ 0xf.fffff80000008p+124,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff80000008p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8000000001p+124L,
+ false,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff800000000000000000004p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff8p+124L,
+ 0xf.fffff80000000000000000000008p+124L),
+ TEST ("-340282356779733661637539395458142568447.999",
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff7ffffff8p+124,
+ -0xf.fffff7ffffff8p+124,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff7ffffff8p+124L,
+ -0xf.fffff7ffffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff7fffffffffp+124L,
+ -0xf.fffff7fffffffffp+124L,
+ false,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff7fffffffffffffffffffcp+124L,
+ -0xf.fffff7fffffffffffffffffffcp+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff7fffffffffffffffffffff8p+124L,
+ -0xf.fffff7fffffffffffffffffffff8p+124L),
+ TEST ("-340282356779733661637539395458142568448",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ true,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L),
+ TEST ("-340282356779733661637539395458142568448.001",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -0xf.fffff80000008p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff8p+124,
+ -0xf.fffff80000008p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8000000001p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ false,
+ -0xf.fffff800000000000000000004p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff80000000000000000000008p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L,
+ -0xf.fffff8p+124L),
+ TEST ("179769313486231580793728971405303415079934132710037826936173"
+ "778980444968292764750946649017977587207096330286416692887910"
+ "946555547851940402630657488671505820681908902000708383676273"
+ "854845817711531764475730270069855571366959622842914819860834"
+ "936475292719074168444365510704342711559699508093042880177904"
+ "174497791.999",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ 0xf.ffffffffffff8p+1020,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ 0xf.ffffffffffff8p+1020L,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffffbffp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffbffp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ false,
+ 0xf.ffffffffffffbffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffbffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffbffffffffffffff8p+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffbffffffffffffff8p+1020L,
+ 0xf.ffffffffffffcp+1020L),
+ TEST ("179769313486231580793728971405303415079934132710037826936173"
+ "778980444968292764750946649017977587207096330286416692887910"
+ "946555547851940402630657488671505820681908902000708383676273"
+ "854845817711531764475730270069855571366959622842914819860834"
+ "936475292719074168444365510704342711559699508093042880177904"
+ "174497792",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ true,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L),
+ TEST ("179769313486231580793728971405303415079934132710037826936173"
+ "778980444968292764750946649017977587207096330286416692887910"
+ "946555547851940402630657488671505820681908902000708383676273"
+ "854845817711531764475730270069855571366959622842914819860834"
+ "936475292719074168444365510704342711559699508093042880177904"
+ "174497792.001",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffc01p+1020L,
+ false,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffc0000000000004p+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffcp+1020L,
+ 0xf.ffffffffffffc000000000000008p+1020L),
+ TEST ("-17976931348623158079372897140530341507993413271003782693617"
+ "377898044496829276475094664901797758720709633028641669288791"
+ "094655554785194040263065748867150582068190890200070838367627"
+ "385484581771153176447573027006985557136695962284291481986083"
+ "493647529271907416844436551070434271155969950809304288017790"
+ "4174497791.999",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffbffp+1020L,
+ -0xf.ffffffffffffbffp+1020L,
+ false,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffbffffffffffffcp+1020L,
+ -0xf.ffffffffffffbffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffbffffffffffffff8p+1020L,
+ -0xf.ffffffffffffbffffffffffffff8p+1020L),
+ TEST ("-17976931348623158079372897140530341507993413271003782693617"
+ "377898044496829276475094664901797758720709633028641669288791"
+ "094655554785194040263065748867150582068190890200070838367627"
+ "385484581771153176447573027006985557136695962284291481986083"
+ "493647529271907416844436551070434271155969950809304288017790"
+ "4174497792",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ true,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L),
+ TEST ("-17976931348623158079372897140530341507993413271003782693617"
+ "377898044496829276475094664901797758720709633028641669288791"
+ "094655554785194040263065748867150582068190890200070838367627"
+ "385484581771153176447573027006985557136695962284291481986083"
+ "493647529271907416844436551070434271155969950809304288017790"
+ "4174497792.001",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffffc01p+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ false,
+ -0xf.ffffffffffffc0000000000004p+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffc000000000000008p+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L,
+ -0xf.ffffffffffffcp+1020L),
+ TEST ("118973149535723176505351158982948866796625400469556721895649"
+ "927756249918185172720476044944290457046138433056764616744328"
+ "666255526748948793023632513609765434237723241753648908036202"
+ "958495124648560574092817813661123067421904850038181180520787"
+ "720310726881239888580817051703268776757919551260442611296993"
+ "969730906497042135737359373754818979106457807539652027804156"
+ "491987771033211787185996492320631117543475322122625353433719"
+ "930462950413766867781210335973022293561007134342532563356262"
+ "609267460063335819387905541393759243547993474715549691352074"
+ "891450084783459970660481689991674771307443551458551137274603"
+ "094678907537177579699931235422786658780337099286207273033150"
+ "295133847635735008945346069635452157254692607776538304457707"
+ "598289220004738023060594798392660507455937428888763514661408"
+ "758068906506527143720723156203739676372818578090840614216621"
+ "704787774611256823213431325634056809505691175988424606654072"
+ "823115950827627377808673574181547198668714142143234447550206"
+ "269197545774263993130119778810659043621312707109068433886162"
+ "877222844491518930341896313561238988520360803607534987178305"
+ "043520937299838173444083502027340452162582038296009574808809"
+ "658742434897860755961343752419543802653239216337103370292742"
+ "935497502474626454559729017094560234867236701379230234809843"
+ "263739640909561388493227725171983531003154799850580375254640"
+ "686684370650275318316632539920970969803838872914424760535111"
+ "444864748847573042963569291679400178896696862026500700279826"
+ "635302471702206627303799047632971460017199544567373231610376"
+ "256879987134317934150014443436145710546137924490489525241523"
+ "018271239906743645663976778059895127442517397682525944430951"
+ "907648109952479454685655581652571021331761401038962049122047"
+ "111009185757383743827811254014770944602713378187451095200132"
+ "611700632386420792585207954137064426995712656449343534120120"
+ "770857498813673742586478583964512406030930704197486727636333"
+ "837001863610516286928300891774383071105022919314408502968809"
+ "463848377324668014115592383521324785361676372582468085716775"
+ "183709078048790084022838728361454734650904480489014369184979"
+ "256497738392744524915616501449487520501300124861778269881261"
+ "335544037735715125808986359728419859776521586683035924100574"
+ "850554368935873803132428446524362913648833348768663733118103"
+ "918959060412499201797234385239260504905744357611987327994540"
+ "083286019952793692265006211633524675976369938866409689573287"
+ "599490442761701229217689614343727392339547174221615984024864"
+ "635625680108391566720681134647098412863051374760613506003971"
+ "759070209697293081442875903240426975910170967179075646317814"
+ "394978762382183679266247724762405284284971833355044962214065"
+ "895558105408175131247181971272672247996246595857705695208092"
+ "816044125822560989770526261449460733912621692806952140652061"
+ "911968824328747339453822511902787546522099225623311147726504"
+ "972617425102845212076162056723650625826928778132002074035405"
+ "250631109426611640681070927283430486232053929420514345435713"
+ "131387967949326001734866894273047449417824913738789829732833"
+ "683358900903818016968127085077418070951770702999663693968324"
+ "004781728763310108379440442854174041581191669623267749855519"
+ "774427387794278666183504498843857475877442235608736818515722"
+ "862733587905866015455830953591207040129558473662150426884726"
+ "759522376583586317425575669726781893104752341432891868770513"
+ "406836036136374264038296610854599454591170582569741798904328"
+ "676755131072831974295435585611673171096113833795735888591844"
+ "569864166955969416680807491722688418115891753669917660968752"
+ "228842669182040018336152355940915579955628386232949747891257"
+ "526145783057949776122896048841308261113063674538553146663451"
+ "574384023903569848640351704415703922683108552880537081027404"
+ "397775617608412295293311763789489900990611859125572525530349"
+ "278319943261304784125553748811339225969956465404836696490782"
+ "500903694674135036899321686023782466034636817818347651623601"
+ "663129318574761269352028560641266614840108083315301260274558"
+ "575087296910384815285134460531715154639604115052348665171547"
+ "251609075784863196403541944155425166776423403472211742139313"
+ "210299896884252707306862499895115691675551238140467142819537"
+ "867343414276518703858928008759955391140729958278175965217739"
+ "826511218924463113077693598006228365514899236789515147503266"
+ "616268809617626228164916917150602464494142485507467876173251"
+ "398398846807079309227567538802476335624194115637802439400050"
+ "221934368975949846684026462252790745597563393487879954351820"
+ "652138303761879543933808642920064500206512003954563931569820"
+ "114768348051593629274325149906343853129692245386396887281599"
+ "735312588117968646270517005121997466606469447530616465384255"
+ "826304380842850779833108567141643769616400809617173972138187"
+ "711971431230616321035038259922624655396612597024040812967444"
+ "207673594478417900666764580589685104809363813759667069693701"
+ "069921295791929938093722225050956280798177934138468414654728"
+ "631498256418191041953123619406060363406390776140155709737059"
+ "125898120366007955506160309553860446596202876233728025871625"
+ "578031503869424406179027994752890226443351619365453243328968"
+ "8740976918527.999",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ 0xf.fffffffffffffffp+16380L,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffff7fffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff7fffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L),
+ TEST ("118973149535723176505351158982948866796625400469556721895649"
+ "927756249918185172720476044944290457046138433056764616744328"
+ "666255526748948793023632513609765434237723241753648908036202"
+ "958495124648560574092817813661123067421904850038181180520787"
+ "720310726881239888580817051703268776757919551260442611296993"
+ "969730906497042135737359373754818979106457807539652027804156"
+ "491987771033211787185996492320631117543475322122625353433719"
+ "930462950413766867781210335973022293561007134342532563356262"
+ "609267460063335819387905541393759243547993474715549691352074"
+ "891450084783459970660481689991674771307443551458551137274603"
+ "094678907537177579699931235422786658780337099286207273033150"
+ "295133847635735008945346069635452157254692607776538304457707"
+ "598289220004738023060594798392660507455937428888763514661408"
+ "758068906506527143720723156203739676372818578090840614216621"
+ "704787774611256823213431325634056809505691175988424606654072"
+ "823115950827627377808673574181547198668714142143234447550206"
+ "269197545774263993130119778810659043621312707109068433886162"
+ "877222844491518930341896313561238988520360803607534987178305"
+ "043520937299838173444083502027340452162582038296009574808809"
+ "658742434897860755961343752419543802653239216337103370292742"
+ "935497502474626454559729017094560234867236701379230234809843"
+ "263739640909561388493227725171983531003154799850580375254640"
+ "686684370650275318316632539920970969803838872914424760535111"
+ "444864748847573042963569291679400178896696862026500700279826"
+ "635302471702206627303799047632971460017199544567373231610376"
+ "256879987134317934150014443436145710546137924490489525241523"
+ "018271239906743645663976778059895127442517397682525944430951"
+ "907648109952479454685655581652571021331761401038962049122047"
+ "111009185757383743827811254014770944602713378187451095200132"
+ "611700632386420792585207954137064426995712656449343534120120"
+ "770857498813673742586478583964512406030930704197486727636333"
+ "837001863610516286928300891774383071105022919314408502968809"
+ "463848377324668014115592383521324785361676372582468085716775"
+ "183709078048790084022838728361454734650904480489014369184979"
+ "256497738392744524915616501449487520501300124861778269881261"
+ "335544037735715125808986359728419859776521586683035924100574"
+ "850554368935873803132428446524362913648833348768663733118103"
+ "918959060412499201797234385239260504905744357611987327994540"
+ "083286019952793692265006211633524675976369938866409689573287"
+ "599490442761701229217689614343727392339547174221615984024864"
+ "635625680108391566720681134647098412863051374760613506003971"
+ "759070209697293081442875903240426975910170967179075646317814"
+ "394978762382183679266247724762405284284971833355044962214065"
+ "895558105408175131247181971272672247996246595857705695208092"
+ "816044125822560989770526261449460733912621692806952140652061"
+ "911968824328747339453822511902787546522099225623311147726504"
+ "972617425102845212076162056723650625826928778132002074035405"
+ "250631109426611640681070927283430486232053929420514345435713"
+ "131387967949326001734866894273047449417824913738789829732833"
+ "683358900903818016968127085077418070951770702999663693968324"
+ "004781728763310108379440442854174041581191669623267749855519"
+ "774427387794278666183504498843857475877442235608736818515722"
+ "862733587905866015455830953591207040129558473662150426884726"
+ "759522376583586317425575669726781893104752341432891868770513"
+ "406836036136374264038296610854599454591170582569741798904328"
+ "676755131072831974295435585611673171096113833795735888591844"
+ "569864166955969416680807491722688418115891753669917660968752"
+ "228842669182040018336152355940915579955628386232949747891257"
+ "526145783057949776122896048841308261113063674538553146663451"
+ "574384023903569848640351704415703922683108552880537081027404"
+ "397775617608412295293311763789489900990611859125572525530349"
+ "278319943261304784125553748811339225969956465404836696490782"
+ "500903694674135036899321686023782466034636817818347651623601"
+ "663129318574761269352028560641266614840108083315301260274558"
+ "575087296910384815285134460531715154639604115052348665171547"
+ "251609075784863196403541944155425166776423403472211742139313"
+ "210299896884252707306862499895115691675551238140467142819537"
+ "867343414276518703858928008759955391140729958278175965217739"
+ "826511218924463113077693598006228365514899236789515147503266"
+ "616268809617626228164916917150602464494142485507467876173251"
+ "398398846807079309227567538802476335624194115637802439400050"
+ "221934368975949846684026462252790745597563393487879954351820"
+ "652138303761879543933808642920064500206512003954563931569820"
+ "114768348051593629274325149906343853129692245386396887281599"
+ "735312588117968646270517005121997466606469447530616465384255"
+ "826304380842850779833108567141643769616400809617173972138187"
+ "711971431230616321035038259922624655396612597024040812967444"
+ "207673594478417900666764580589685104809363813759667069693701"
+ "069921295791929938093722225050956280798177934138468414654728"
+ "631498256418191041953123619406060363406390776140155709737059"
+ "125898120366007955506160309553860446596202876233728025871625"
+ "578031503869424406179027994752890226443351619365453243328968"
+ "8740976918528",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L),
+ TEST ("118973149535723176505351158982948866796625400469556721895649"
+ "927756249918185172720476044944290457046138433056764616744328"
+ "666255526748948793023632513609765434237723241753648908036202"
+ "958495124648560574092817813661123067421904850038181180520787"
+ "720310726881239888580817051703268776757919551260442611296993"
+ "969730906497042135737359373754818979106457807539652027804156"
+ "491987771033211787185996492320631117543475322122625353433719"
+ "930462950413766867781210335973022293561007134342532563356262"
+ "609267460063335819387905541393759243547993474715549691352074"
+ "891450084783459970660481689991674771307443551458551137274603"
+ "094678907537177579699931235422786658780337099286207273033150"
+ "295133847635735008945346069635452157254692607776538304457707"
+ "598289220004738023060594798392660507455937428888763514661408"
+ "758068906506527143720723156203739676372818578090840614216621"
+ "704787774611256823213431325634056809505691175988424606654072"
+ "823115950827627377808673574181547198668714142143234447550206"
+ "269197545774263993130119778810659043621312707109068433886162"
+ "877222844491518930341896313561238988520360803607534987178305"
+ "043520937299838173444083502027340452162582038296009574808809"
+ "658742434897860755961343752419543802653239216337103370292742"
+ "935497502474626454559729017094560234867236701379230234809843"
+ "263739640909561388493227725171983531003154799850580375254640"
+ "686684370650275318316632539920970969803838872914424760535111"
+ "444864748847573042963569291679400178896696862026500700279826"
+ "635302471702206627303799047632971460017199544567373231610376"
+ "256879987134317934150014443436145710546137924490489525241523"
+ "018271239906743645663976778059895127442517397682525944430951"
+ "907648109952479454685655581652571021331761401038962049122047"
+ "111009185757383743827811254014770944602713378187451095200132"
+ "611700632386420792585207954137064426995712656449343534120120"
+ "770857498813673742586478583964512406030930704197486727636333"
+ "837001863610516286928300891774383071105022919314408502968809"
+ "463848377324668014115592383521324785361676372582468085716775"
+ "183709078048790084022838728361454734650904480489014369184979"
+ "256497738392744524915616501449487520501300124861778269881261"
+ "335544037735715125808986359728419859776521586683035924100574"
+ "850554368935873803132428446524362913648833348768663733118103"
+ "918959060412499201797234385239260504905744357611987327994540"
+ "083286019952793692265006211633524675976369938866409689573287"
+ "599490442761701229217689614343727392339547174221615984024864"
+ "635625680108391566720681134647098412863051374760613506003971"
+ "759070209697293081442875903240426975910170967179075646317814"
+ "394978762382183679266247724762405284284971833355044962214065"
+ "895558105408175131247181971272672247996246595857705695208092"
+ "816044125822560989770526261449460733912621692806952140652061"
+ "911968824328747339453822511902787546522099225623311147726504"
+ "972617425102845212076162056723650625826928778132002074035405"
+ "250631109426611640681070927283430486232053929420514345435713"
+ "131387967949326001734866894273047449417824913738789829732833"
+ "683358900903818016968127085077418070951770702999663693968324"
+ "004781728763310108379440442854174041581191669623267749855519"
+ "774427387794278666183504498843857475877442235608736818515722"
+ "862733587905866015455830953591207040129558473662150426884726"
+ "759522376583586317425575669726781893104752341432891868770513"
+ "406836036136374264038296610854599454591170582569741798904328"
+ "676755131072831974295435585611673171096113833795735888591844"
+ "569864166955969416680807491722688418115891753669917660968752"
+ "228842669182040018336152355940915579955628386232949747891257"
+ "526145783057949776122896048841308261113063674538553146663451"
+ "574384023903569848640351704415703922683108552880537081027404"
+ "397775617608412295293311763789489900990611859125572525530349"
+ "278319943261304784125553748811339225969956465404836696490782"
+ "500903694674135036899321686023782466034636817818347651623601"
+ "663129318574761269352028560641266614840108083315301260274558"
+ "575087296910384815285134460531715154639604115052348665171547"
+ "251609075784863196403541944155425166776423403472211742139313"
+ "210299896884252707306862499895115691675551238140467142819537"
+ "867343414276518703858928008759955391140729958278175965217739"
+ "826511218924463113077693598006228365514899236789515147503266"
+ "616268809617626228164916917150602464494142485507467876173251"
+ "398398846807079309227567538802476335624194115637802439400050"
+ "221934368975949846684026462252790745597563393487879954351820"
+ "652138303761879543933808642920064500206512003954563931569820"
+ "114768348051593629274325149906343853129692245386396887281599"
+ "735312588117968646270517005121997466606469447530616465384255"
+ "826304380842850779833108567141643769616400809617173972138187"
+ "711971431230616321035038259922624655396612597024040812967444"
+ "207673594478417900666764580589685104809363813759667069693701"
+ "069921295791929938093722225050956280798177934138468414654728"
+ "631498256418191041953123619406060363406390776140155709737059"
+ "125898120366007955506160309553860446596202876233728025871625"
+ "578031503869424406179027994752890226443351619365453243328968"
+ "8740976918528.001",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8p+16380L,
+ 0xf.fffffffffffffff8000000000008p+16380L),
+ TEST ("-11897314953572317650535115898294886679662540046955672189564"
+ "992775624991818517272047604494429045704613843305676461674432"
+ "866625552674894879302363251360976543423772324175364890803620"
+ "295849512464856057409281781366112306742190485003818118052078"
+ "772031072688123988858081705170326877675791955126044261129699"
+ "396973090649704213573735937375481897910645780753965202780415"
+ "649198777103321178718599649232063111754347532212262535343371"
+ "993046295041376686778121033597302229356100713434253256335626"
+ "260926746006333581938790554139375924354799347471554969135207"
+ "489145008478345997066048168999167477130744355145855113727460"
+ "309467890753717757969993123542278665878033709928620727303315"
+ "029513384763573500894534606963545215725469260777653830445770"
+ "759828922000473802306059479839266050745593742888876351466140"
+ "875806890650652714372072315620373967637281857809084061421662"
+ "170478777461125682321343132563405680950569117598842460665407"
+ "282311595082762737780867357418154719866871414214323444755020"
+ "626919754577426399313011977881065904362131270710906843388616"
+ "287722284449151893034189631356123898852036080360753498717830"
+ "504352093729983817344408350202734045216258203829600957480880"
+ "965874243489786075596134375241954380265323921633710337029274"
+ "293549750247462645455972901709456023486723670137923023480984"
+ "326373964090956138849322772517198353100315479985058037525464"
+ "068668437065027531831663253992097096980383887291442476053511"
+ "144486474884757304296356929167940017889669686202650070027982"
+ "663530247170220662730379904763297146001719954456737323161037"
+ "625687998713431793415001444343614571054613792449048952524152"
+ "301827123990674364566397677805989512744251739768252594443095"
+ "190764810995247945468565558165257102133176140103896204912204"
+ "711100918575738374382781125401477094460271337818745109520013"
+ "261170063238642079258520795413706442699571265644934353412012"
+ "077085749881367374258647858396451240603093070419748672763633"
+ "383700186361051628692830089177438307110502291931440850296880"
+ "946384837732466801411559238352132478536167637258246808571677"
+ "518370907804879008402283872836145473465090448048901436918497"
+ "925649773839274452491561650144948752050130012486177826988126"
+ "133554403773571512580898635972841985977652158668303592410057"
+ "485055436893587380313242844652436291364883334876866373311810"
+ "391895906041249920179723438523926050490574435761198732799454"
+ "008328601995279369226500621163352467597636993886640968957328"
+ "759949044276170122921768961434372739233954717422161598402486"
+ "463562568010839156672068113464709841286305137476061350600397"
+ "175907020969729308144287590324042697591017096717907564631781"
+ "439497876238218367926624772476240528428497183335504496221406"
+ "589555810540817513124718197127267224799624659585770569520809"
+ "281604412582256098977052626144946073391262169280695214065206"
+ "191196882432874733945382251190278754652209922562331114772650"
+ "497261742510284521207616205672365062582692877813200207403540"
+ "525063110942661164068107092728343048623205392942051434543571"
+ "313138796794932600173486689427304744941782491373878982973283"
+ "368335890090381801696812708507741807095177070299966369396832"
+ "400478172876331010837944044285417404158119166962326774985551"
+ "977442738779427866618350449884385747587744223560873681851572"
+ "286273358790586601545583095359120704012955847366215042688472"
+ "675952237658358631742557566972678189310475234143289186877051"
+ "340683603613637426403829661085459945459117058256974179890432"
+ "867675513107283197429543558561167317109611383379573588859184"
+ "456986416695596941668080749172268841811589175366991766096875"
+ "222884266918204001833615235594091557995562838623294974789125"
+ "752614578305794977612289604884130826111306367453855314666345"
+ "157438402390356984864035170441570392268310855288053708102740"
+ "439777561760841229529331176378948990099061185912557252553034"
+ "927831994326130478412555374881133922596995646540483669649078"
+ "250090369467413503689932168602378246603463681781834765162360"
+ "166312931857476126935202856064126661484010808331530126027455"
+ "857508729691038481528513446053171515463960411505234866517154"
+ "725160907578486319640354194415542516677642340347221174213931"
+ "321029989688425270730686249989511569167555123814046714281953"
+ "786734341427651870385892800875995539114072995827817596521773"
+ "982651121892446311307769359800622836551489923678951514750326"
+ "661626880961762622816491691715060246449414248550746787617325"
+ "139839884680707930922756753880247633562419411563780243940005"
+ "022193436897594984668402646225279074559756339348787995435182"
+ "065213830376187954393380864292006450020651200395456393156982"
+ "011476834805159362927432514990634385312969224538639688728159"
+ "973531258811796864627051700512199746660646944753061646538425"
+ "582630438084285077983310856714164376961640080961717397213818"
+ "771197143123061632103503825992262465539661259702404081296744"
+ "420767359447841790066676458058968510480936381375966706969370"
+ "106992129579192993809372222505095628079817793413846841465472"
+ "863149825641819104195312361940606036340639077614015570973705"
+ "912589812036600795550616030955386044659620287623372802587162"
+ "557803150386942440617902799475289022644335161936545324332896"
+ "88740976918527.999",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff7fffffffffff8p+16380L,
+ -0xf.fffffffffffffff7fffffffffff8p+16380L),
+ TEST ("-11897314953572317650535115898294886679662540046955672189564"
+ "992775624991818517272047604494429045704613843305676461674432"
+ "866625552674894879302363251360976543423772324175364890803620"
+ "295849512464856057409281781366112306742190485003818118052078"
+ "772031072688123988858081705170326877675791955126044261129699"
+ "396973090649704213573735937375481897910645780753965202780415"
+ "649198777103321178718599649232063111754347532212262535343371"
+ "993046295041376686778121033597302229356100713434253256335626"
+ "260926746006333581938790554139375924354799347471554969135207"
+ "489145008478345997066048168999167477130744355145855113727460"
+ "309467890753717757969993123542278665878033709928620727303315"
+ "029513384763573500894534606963545215725469260777653830445770"
+ "759828922000473802306059479839266050745593742888876351466140"
+ "875806890650652714372072315620373967637281857809084061421662"
+ "170478777461125682321343132563405680950569117598842460665407"
+ "282311595082762737780867357418154719866871414214323444755020"
+ "626919754577426399313011977881065904362131270710906843388616"
+ "287722284449151893034189631356123898852036080360753498717830"
+ "504352093729983817344408350202734045216258203829600957480880"
+ "965874243489786075596134375241954380265323921633710337029274"
+ "293549750247462645455972901709456023486723670137923023480984"
+ "326373964090956138849322772517198353100315479985058037525464"
+ "068668437065027531831663253992097096980383887291442476053511"
+ "144486474884757304296356929167940017889669686202650070027982"
+ "663530247170220662730379904763297146001719954456737323161037"
+ "625687998713431793415001444343614571054613792449048952524152"
+ "301827123990674364566397677805989512744251739768252594443095"
+ "190764810995247945468565558165257102133176140103896204912204"
+ "711100918575738374382781125401477094460271337818745109520013"
+ "261170063238642079258520795413706442699571265644934353412012"
+ "077085749881367374258647858396451240603093070419748672763633"
+ "383700186361051628692830089177438307110502291931440850296880"
+ "946384837732466801411559238352132478536167637258246808571677"
+ "518370907804879008402283872836145473465090448048901436918497"
+ "925649773839274452491561650144948752050130012486177826988126"
+ "133554403773571512580898635972841985977652158668303592410057"
+ "485055436893587380313242844652436291364883334876866373311810"
+ "391895906041249920179723438523926050490574435761198732799454"
+ "008328601995279369226500621163352467597636993886640968957328"
+ "759949044276170122921768961434372739233954717422161598402486"
+ "463562568010839156672068113464709841286305137476061350600397"
+ "175907020969729308144287590324042697591017096717907564631781"
+ "439497876238218367926624772476240528428497183335504496221406"
+ "589555810540817513124718197127267224799624659585770569520809"
+ "281604412582256098977052626144946073391262169280695214065206"
+ "191196882432874733945382251190278754652209922562331114772650"
+ "497261742510284521207616205672365062582692877813200207403540"
+ "525063110942661164068107092728343048623205392942051434543571"
+ "313138796794932600173486689427304744941782491373878982973283"
+ "368335890090381801696812708507741807095177070299966369396832"
+ "400478172876331010837944044285417404158119166962326774985551"
+ "977442738779427866618350449884385747587744223560873681851572"
+ "286273358790586601545583095359120704012955847366215042688472"
+ "675952237658358631742557566972678189310475234143289186877051"
+ "340683603613637426403829661085459945459117058256974179890432"
+ "867675513107283197429543558561167317109611383379573588859184"
+ "456986416695596941668080749172268841811589175366991766096875"
+ "222884266918204001833615235594091557995562838623294974789125"
+ "752614578305794977612289604884130826111306367453855314666345"
+ "157438402390356984864035170441570392268310855288053708102740"
+ "439777561760841229529331176378948990099061185912557252553034"
+ "927831994326130478412555374881133922596995646540483669649078"
+ "250090369467413503689932168602378246603463681781834765162360"
+ "166312931857476126935202856064126661484010808331530126027455"
+ "857508729691038481528513446053171515463960411505234866517154"
+ "725160907578486319640354194415542516677642340347221174213931"
+ "321029989688425270730686249989511569167555123814046714281953"
+ "786734341427651870385892800875995539114072995827817596521773"
+ "982651121892446311307769359800622836551489923678951514750326"
+ "661626880961762622816491691715060246449414248550746787617325"
+ "139839884680707930922756753880247633562419411563780243940005"
+ "022193436897594984668402646225279074559756339348787995435182"
+ "065213830376187954393380864292006450020651200395456393156982"
+ "011476834805159362927432514990634385312969224538639688728159"
+ "973531258811796864627051700512199746660646944753061646538425"
+ "582630438084285077983310856714164376961640080961717397213818"
+ "771197143123061632103503825992262465539661259702404081296744"
+ "420767359447841790066676458058968510480936381375966706969370"
+ "106992129579192993809372222505095628079817793413846841465472"
+ "863149825641819104195312361940606036340639077614015570973705"
+ "912589812036600795550616030955386044659620287623372802587162"
+ "557803150386942440617902799475289022644335161936545324332896"
+ "88740976918528",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L),
+ TEST ("-11897314953572317650535115898294886679662540046955672189564"
+ "992775624991818517272047604494429045704613843305676461674432"
+ "866625552674894879302363251360976543423772324175364890803620"
+ "295849512464856057409281781366112306742190485003818118052078"
+ "772031072688123988858081705170326877675791955126044261129699"
+ "396973090649704213573735937375481897910645780753965202780415"
+ "649198777103321178718599649232063111754347532212262535343371"
+ "993046295041376686778121033597302229356100713434253256335626"
+ "260926746006333581938790554139375924354799347471554969135207"
+ "489145008478345997066048168999167477130744355145855113727460"
+ "309467890753717757969993123542278665878033709928620727303315"
+ "029513384763573500894534606963545215725469260777653830445770"
+ "759828922000473802306059479839266050745593742888876351466140"
+ "875806890650652714372072315620373967637281857809084061421662"
+ "170478777461125682321343132563405680950569117598842460665407"
+ "282311595082762737780867357418154719866871414214323444755020"
+ "626919754577426399313011977881065904362131270710906843388616"
+ "287722284449151893034189631356123898852036080360753498717830"
+ "504352093729983817344408350202734045216258203829600957480880"
+ "965874243489786075596134375241954380265323921633710337029274"
+ "293549750247462645455972901709456023486723670137923023480984"
+ "326373964090956138849322772517198353100315479985058037525464"
+ "068668437065027531831663253992097096980383887291442476053511"
+ "144486474884757304296356929167940017889669686202650070027982"
+ "663530247170220662730379904763297146001719954456737323161037"
+ "625687998713431793415001444343614571054613792449048952524152"
+ "301827123990674364566397677805989512744251739768252594443095"
+ "190764810995247945468565558165257102133176140103896204912204"
+ "711100918575738374382781125401477094460271337818745109520013"
+ "261170063238642079258520795413706442699571265644934353412012"
+ "077085749881367374258647858396451240603093070419748672763633"
+ "383700186361051628692830089177438307110502291931440850296880"
+ "946384837732466801411559238352132478536167637258246808571677"
+ "518370907804879008402283872836145473465090448048901436918497"
+ "925649773839274452491561650144948752050130012486177826988126"
+ "133554403773571512580898635972841985977652158668303592410057"
+ "485055436893587380313242844652436291364883334876866373311810"
+ "391895906041249920179723438523926050490574435761198732799454"
+ "008328601995279369226500621163352467597636993886640968957328"
+ "759949044276170122921768961434372739233954717422161598402486"
+ "463562568010839156672068113464709841286305137476061350600397"
+ "175907020969729308144287590324042697591017096717907564631781"
+ "439497876238218367926624772476240528428497183335504496221406"
+ "589555810540817513124718197127267224799624659585770569520809"
+ "281604412582256098977052626144946073391262169280695214065206"
+ "191196882432874733945382251190278754652209922562331114772650"
+ "497261742510284521207616205672365062582692877813200207403540"
+ "525063110942661164068107092728343048623205392942051434543571"
+ "313138796794932600173486689427304744941782491373878982973283"
+ "368335890090381801696812708507741807095177070299966369396832"
+ "400478172876331010837944044285417404158119166962326774985551"
+ "977442738779427866618350449884385747587744223560873681851572"
+ "286273358790586601545583095359120704012955847366215042688472"
+ "675952237658358631742557566972678189310475234143289186877051"
+ "340683603613637426403829661085459945459117058256974179890432"
+ "867675513107283197429543558561167317109611383379573588859184"
+ "456986416695596941668080749172268841811589175366991766096875"
+ "222884266918204001833615235594091557995562838623294974789125"
+ "752614578305794977612289604884130826111306367453855314666345"
+ "157438402390356984864035170441570392268310855288053708102740"
+ "439777561760841229529331176378948990099061185912557252553034"
+ "927831994326130478412555374881133922596995646540483669649078"
+ "250090369467413503689932168602378246603463681781834765162360"
+ "166312931857476126935202856064126661484010808331530126027455"
+ "857508729691038481528513446053171515463960411505234866517154"
+ "725160907578486319640354194415542516677642340347221174213931"
+ "321029989688425270730686249989511569167555123814046714281953"
+ "786734341427651870385892800875995539114072995827817596521773"
+ "982651121892446311307769359800622836551489923678951514750326"
+ "661626880961762622816491691715060246449414248550746787617325"
+ "139839884680707930922756753880247633562419411563780243940005"
+ "022193436897594984668402646225279074559756339348787995435182"
+ "065213830376187954393380864292006450020651200395456393156982"
+ "011476834805159362927432514990634385312969224538639688728159"
+ "973531258811796864627051700512199746660646944753061646538425"
+ "582630438084285077983310856714164376961640080961717397213818"
+ "771197143123061632103503825992262465539661259702404081296744"
+ "420767359447841790066676458058968510480936381375966706969370"
+ "106992129579192993809372222505095628079817793413846841465472"
+ "863149825641819104195312361940606036340639077614015570973705"
+ "912589812036600795550616030955386044659620287623372802587162"
+ "557803150386942440617902799475289022644335161936545324332896"
+ "88740976918528.001",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffff8000000000008p+16380L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L,
+ -0xf.fffffffffffffff8p+16380L),
+ TEST ("118973149535723176508575932662800707347995686986910214150118"
+ "685272271246896789803961473130416053705672050873552479421805"
+ "932646640744124594447361172514341324846716679654551308018400"
+ "452551246797021031695590308415421099521962856162050274568841"
+ "297915828747574343774874752902176710049525787625138678906010"
+ "048638212027057374683542842282633896097240913572043788690878"
+ "561421008447838407815393303366617352859876685151925036335142"
+ "606462825839541908847139311166770091872983498508632067665424"
+ "131663456011801988221011933744533095583591952713287509471572"
+ "005635584655570174753698625195967118200265238753375268656404"
+ "300638718932246773699829720984119713851462400809295266529707"
+ "450603039675996477317034685632764277790214944500590950459817"
+ "905458649624723235138950801408157339866516893477731877579183"
+ "713595679581558427625325833939652897845282019149923069371763"
+ "621014587926698827182969408373803807712292191282429102445352"
+ "493434039402290243933941906906661090602900960765874258303002"
+ "994639315656152078708796474719793763077934223746582725715380"
+ "546621026022818892467551940977566283266498758568504813830755"
+ "715585325649227824857891916443381390920079346240984072859876"
+ "394789650127468861490822526766717770136680743866932662343305"
+ "821821344306240809967537078707691232937387041140557168161956"
+ "672595323950666742010786584275766171661791973302251394804664"
+ "351065107886557299707326005651230394674710597929211000345040"
+ "748992483614253006562424867893567074606589931788062200063807"
+ "336740036940230215831403322125165368742446805152078682411506"
+ "081843753974005583111391605547148303480887461773984314393817"
+ "233328426227146997925421743280885595916487699461777590949432"
+ "536021389649845214065322016198143547250143861460313408300535"
+ "800647014276175548485543791298383644643679669618879907720347"
+ "361578030001247419574448359597988425487829219851305162204925"
+ "876422580754230478244492592334149461342828532046897137732862"
+ "560405101567370570895662663174689131741739602970845694214086"
+ "383402465037069569640956912385125748139813888875258203003486"
+ "978747055202810394072908580324008598756993885667142200558137"
+ "216665049755676940757442911860295559656788759871904662758651"
+ "106796978788783386988295123326864580419821595430891867179378"
+ "372968821128698879468814267529461494723425453808822356093436"
+ "114567635804621183162768389034017821036515461700163537265334"
+ "837042272659885702600247792917728828912373907035369136531164"
+ "551871575024551077026080114197652598224677403885378544255851"
+ "452142889211152237506343909351748731538683443195842912801950"
+ "740929058503113127929421291089844021925400931905939216271347"
+ "501989193058654389516377770771439860033940981826669939750630"
+ "966060749188986231404992238674933998516958950824840538996637"
+ "227947236848099456610159878061379742621311380927234118601003"
+ "068752002060437285024623575047782086630607224900910789188204"
+ "422115342157245494745974521832782208601602710639261482504706"
+ "793704189474198047840288064399210243702202724597107455534275"
+ "321401119382263147115748905050195256886082040192083380490209"
+ "648570353905656303876661710430922155024620842080323610266391"
+ "819853291160589645614945256684769911320943457402697573094119"
+ "430125589389298495428377185239916427991844172165080029177729"
+ "625180644077484441695092005844026411665118679537869781924378"
+ "377060887769389297625907410934020531742739577183152327119791"
+ "567636713426904553654134937766951789571845662564530364234831"
+ "655818811851573018210173773037253988893680153247404060131255"
+ "432297982534770778617218088583998040670598195597843579610890"
+ "315316606725381521608825464438386306376596459107591134507541"
+ "153403024199191222328259713530472683187873517955642380703639"
+ "029816037096049042094836437281075965243968431839386959736989"
+ "889027924230006904683050305965712585804355337311372959487108"
+ "794286031594805559334414767793211932142402860019029250966461"
+ "933621763149049802791695077716375242516443825235146860078555"
+ "453142397983479144560015010889077242726183149587493050950967"
+ "941488752366197740591478464591650201477772717579831983405962"
+ "171742164889284586217913115136227964861078958766284010901639"
+ "781256012341028188155836968476480842715858962105341815444164"
+ "696766584018508513610260777540911573496315580383328678958350"
+ "148157337222619548467971967434956296433870815461340134721800"
+ "205755114983399523323106573720732056659216468891205124203527"
+ "449961814733926916757607468806003312492414061695431041238453"
+ "023522795690830184799840657478014435335788410588338795921829"
+ "674102072285495410088727730494748054715270026371111466557692"
+ "092596172401951206117443077191868585496116051853795368595736"
+ "003882511620497061598923985774687093334185939744167238203676"
+ "453052472980823976562293117120372063945943890666325365061961"
+ "022928215929070357135085816756816486043117613837876554929621"
+ "856269743752885605649447338817178927896144473776360438797900"
+ "366212779802747593450564030114752479071739585723270865632758"
+ "495434839556211713523098602573445161475191311400514062427097"
+ "780117858230840648695846140902244217544683559565818359212130"
+ "972233447491583165728635513802591543441145939539353470970452"
+ "5536550715391.999",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ INFINITY),
+ TEST ("118973149535723176508575932662800707347995686986910214150118"
+ "685272271246896789803961473130416053705672050873552479421805"
+ "932646640744124594447361172514341324846716679654551308018400"
+ "452551246797021031695590308415421099521962856162050274568841"
+ "297915828747574343774874752902176710049525787625138678906010"
+ "048638212027057374683542842282633896097240913572043788690878"
+ "561421008447838407815393303366617352859876685151925036335142"
+ "606462825839541908847139311166770091872983498508632067665424"
+ "131663456011801988221011933744533095583591952713287509471572"
+ "005635584655570174753698625195967118200265238753375268656404"
+ "300638718932246773699829720984119713851462400809295266529707"
+ "450603039675996477317034685632764277790214944500590950459817"
+ "905458649624723235138950801408157339866516893477731877579183"
+ "713595679581558427625325833939652897845282019149923069371763"
+ "621014587926698827182969408373803807712292191282429102445352"
+ "493434039402290243933941906906661090602900960765874258303002"
+ "994639315656152078708796474719793763077934223746582725715380"
+ "546621026022818892467551940977566283266498758568504813830755"
+ "715585325649227824857891916443381390920079346240984072859876"
+ "394789650127468861490822526766717770136680743866932662343305"
+ "821821344306240809967537078707691232937387041140557168161956"
+ "672595323950666742010786584275766171661791973302251394804664"
+ "351065107886557299707326005651230394674710597929211000345040"
+ "748992483614253006562424867893567074606589931788062200063807"
+ "336740036940230215831403322125165368742446805152078682411506"
+ "081843753974005583111391605547148303480887461773984314393817"
+ "233328426227146997925421743280885595916487699461777590949432"
+ "536021389649845214065322016198143547250143861460313408300535"
+ "800647014276175548485543791298383644643679669618879907720347"
+ "361578030001247419574448359597988425487829219851305162204925"
+ "876422580754230478244492592334149461342828532046897137732862"
+ "560405101567370570895662663174689131741739602970845694214086"
+ "383402465037069569640956912385125748139813888875258203003486"
+ "978747055202810394072908580324008598756993885667142200558137"
+ "216665049755676940757442911860295559656788759871904662758651"
+ "106796978788783386988295123326864580419821595430891867179378"
+ "372968821128698879468814267529461494723425453808822356093436"
+ "114567635804621183162768389034017821036515461700163537265334"
+ "837042272659885702600247792917728828912373907035369136531164"
+ "551871575024551077026080114197652598224677403885378544255851"
+ "452142889211152237506343909351748731538683443195842912801950"
+ "740929058503113127929421291089844021925400931905939216271347"
+ "501989193058654389516377770771439860033940981826669939750630"
+ "966060749188986231404992238674933998516958950824840538996637"
+ "227947236848099456610159878061379742621311380927234118601003"
+ "068752002060437285024623575047782086630607224900910789188204"
+ "422115342157245494745974521832782208601602710639261482504706"
+ "793704189474198047840288064399210243702202724597107455534275"
+ "321401119382263147115748905050195256886082040192083380490209"
+ "648570353905656303876661710430922155024620842080323610266391"
+ "819853291160589645614945256684769911320943457402697573094119"
+ "430125589389298495428377185239916427991844172165080029177729"
+ "625180644077484441695092005844026411665118679537869781924378"
+ "377060887769389297625907410934020531742739577183152327119791"
+ "567636713426904553654134937766951789571845662564530364234831"
+ "655818811851573018210173773037253988893680153247404060131255"
+ "432297982534770778617218088583998040670598195597843579610890"
+ "315316606725381521608825464438386306376596459107591134507541"
+ "153403024199191222328259713530472683187873517955642380703639"
+ "029816037096049042094836437281075965243968431839386959736989"
+ "889027924230006904683050305965712585804355337311372959487108"
+ "794286031594805559334414767793211932142402860019029250966461"
+ "933621763149049802791695077716375242516443825235146860078555"
+ "453142397983479144560015010889077242726183149587493050950967"
+ "941488752366197740591478464591650201477772717579831983405962"
+ "171742164889284586217913115136227964861078958766284010901639"
+ "781256012341028188155836968476480842715858962105341815444164"
+ "696766584018508513610260777540911573496315580383328678958350"
+ "148157337222619548467971967434956296433870815461340134721800"
+ "205755114983399523323106573720732056659216468891205124203527"
+ "449961814733926916757607468806003312492414061695431041238453"
+ "023522795690830184799840657478014435335788410588338795921829"
+ "674102072285495410088727730494748054715270026371111466557692"
+ "092596172401951206117443077191868585496116051853795368595736"
+ "003882511620497061598923985774687093334185939744167238203676"
+ "453052472980823976562293117120372063945943890666325365061961"
+ "022928215929070357135085816756816486043117613837876554929621"
+ "856269743752885605649447338817178927896144473776360438797900"
+ "366212779802747593450564030114752479071739585723270865632758"
+ "495434839556211713523098602573445161475191311400514062427097"
+ "780117858230840648695846140902244217544683559565818359212130"
+ "972233447491583165728635513802591543441145939539353470970452"
+ "5536550715392",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ INFINITY),
+ TEST ("118973149535723176508575932662800707347995686986910214150118"
+ "685272271246896789803961473130416053705672050873552479421805"
+ "932646640744124594447361172514341324846716679654551308018400"
+ "452551246797021031695590308415421099521962856162050274568841"
+ "297915828747574343774874752902176710049525787625138678906010"
+ "048638212027057374683542842282633896097240913572043788690878"
+ "561421008447838407815393303366617352859876685151925036335142"
+ "606462825839541908847139311166770091872983498508632067665424"
+ "131663456011801988221011933744533095583591952713287509471572"
+ "005635584655570174753698625195967118200265238753375268656404"
+ "300638718932246773699829720984119713851462400809295266529707"
+ "450603039675996477317034685632764277790214944500590950459817"
+ "905458649624723235138950801408157339866516893477731877579183"
+ "713595679581558427625325833939652897845282019149923069371763"
+ "621014587926698827182969408373803807712292191282429102445352"
+ "493434039402290243933941906906661090602900960765874258303002"
+ "994639315656152078708796474719793763077934223746582725715380"
+ "546621026022818892467551940977566283266498758568504813830755"
+ "715585325649227824857891916443381390920079346240984072859876"
+ "394789650127468861490822526766717770136680743866932662343305"
+ "821821344306240809967537078707691232937387041140557168161956"
+ "672595323950666742010786584275766171661791973302251394804664"
+ "351065107886557299707326005651230394674710597929211000345040"
+ "748992483614253006562424867893567074606589931788062200063807"
+ "336740036940230215831403322125165368742446805152078682411506"
+ "081843753974005583111391605547148303480887461773984314393817"
+ "233328426227146997925421743280885595916487699461777590949432"
+ "536021389649845214065322016198143547250143861460313408300535"
+ "800647014276175548485543791298383644643679669618879907720347"
+ "361578030001247419574448359597988425487829219851305162204925"
+ "876422580754230478244492592334149461342828532046897137732862"
+ "560405101567370570895662663174689131741739602970845694214086"
+ "383402465037069569640956912385125748139813888875258203003486"
+ "978747055202810394072908580324008598756993885667142200558137"
+ "216665049755676940757442911860295559656788759871904662758651"
+ "106796978788783386988295123326864580419821595430891867179378"
+ "372968821128698879468814267529461494723425453808822356093436"
+ "114567635804621183162768389034017821036515461700163537265334"
+ "837042272659885702600247792917728828912373907035369136531164"
+ "551871575024551077026080114197652598224677403885378544255851"
+ "452142889211152237506343909351748731538683443195842912801950"
+ "740929058503113127929421291089844021925400931905939216271347"
+ "501989193058654389516377770771439860033940981826669939750630"
+ "966060749188986231404992238674933998516958950824840538996637"
+ "227947236848099456610159878061379742621311380927234118601003"
+ "068752002060437285024623575047782086630607224900910789188204"
+ "422115342157245494745974521832782208601602710639261482504706"
+ "793704189474198047840288064399210243702202724597107455534275"
+ "321401119382263147115748905050195256886082040192083380490209"
+ "648570353905656303876661710430922155024620842080323610266391"
+ "819853291160589645614945256684769911320943457402697573094119"
+ "430125589389298495428377185239916427991844172165080029177729"
+ "625180644077484441695092005844026411665118679537869781924378"
+ "377060887769389297625907410934020531742739577183152327119791"
+ "567636713426904553654134937766951789571845662564530364234831"
+ "655818811851573018210173773037253988893680153247404060131255"
+ "432297982534770778617218088583998040670598195597843579610890"
+ "315316606725381521608825464438386306376596459107591134507541"
+ "153403024199191222328259713530472683187873517955642380703639"
+ "029816037096049042094836437281075965243968431839386959736989"
+ "889027924230006904683050305965712585804355337311372959487108"
+ "794286031594805559334414767793211932142402860019029250966461"
+ "933621763149049802791695077716375242516443825235146860078555"
+ "453142397983479144560015010889077242726183149587493050950967"
+ "941488752366197740591478464591650201477772717579831983405962"
+ "171742164889284586217913115136227964861078958766284010901639"
+ "781256012341028188155836968476480842715858962105341815444164"
+ "696766584018508513610260777540911573496315580383328678958350"
+ "148157337222619548467971967434956296433870815461340134721800"
+ "205755114983399523323106573720732056659216468891205124203527"
+ "449961814733926916757607468806003312492414061695431041238453"
+ "023522795690830184799840657478014435335788410588338795921829"
+ "674102072285495410088727730494748054715270026371111466557692"
+ "092596172401951206117443077191868585496116051853795368595736"
+ "003882511620497061598923985774687093334185939744167238203676"
+ "453052472980823976562293117120372063945943890666325365061961"
+ "022928215929070357135085816756816486043117613837876554929621"
+ "856269743752885605649447338817178927896144473776360438797900"
+ "366212779802747593450564030114752479071739585723270865632758"
+ "495434839556211713523098602573445161475191311400514062427097"
+ "780117858230840648695846140902244217544683559565818359212130"
+ "972233447491583165728635513802591543441145939539353470970452"
+ "5536550715392.001",
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.fffffp+124f,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.ffffffffffff8p+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffp+16380L,
+ INFINITY,
+ false,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffcp+1020L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ INFINITY,
+ 0xf.fffffffffffffffffffffffffff8p+16380L,
+ INFINITY),
+ TEST ("-11897314953572317650857593266280070734799568698691021415011"
+ "868527227124689678980396147313041605370567205087355247942180"
+ "593264664074412459444736117251434132484671667965455130801840"
+ "045255124679702103169559030841542109952196285616205027456884"
+ "129791582874757434377487475290217671004952578762513867890601"
+ "004863821202705737468354284228263389609724091357204378869087"
+ "856142100844783840781539330336661735285987668515192503633514"
+ "260646282583954190884713931116677009187298349850863206766542"
+ "413166345601180198822101193374453309558359195271328750947157"
+ "200563558465557017475369862519596711820026523875337526865640"
+ "430063871893224677369982972098411971385146240080929526652970"
+ "745060303967599647731703468563276427779021494450059095045981"
+ "790545864962472323513895080140815733986651689347773187757918"
+ "371359567958155842762532583393965289784528201914992306937176"
+ "362101458792669882718296940837380380771229219128242910244535"
+ "249343403940229024393394190690666109060290096076587425830300"
+ "299463931565615207870879647471979376307793422374658272571538"
+ "054662102602281889246755194097756628326649875856850481383075"
+ "571558532564922782485789191644338139092007934624098407285987"
+ "639478965012746886149082252676671777013668074386693266234330"
+ "582182134430624080996753707870769123293738704114055716816195"
+ "667259532395066674201078658427576617166179197330225139480466"
+ "435106510788655729970732600565123039467471059792921100034504"
+ "074899248361425300656242486789356707460658993178806220006380"
+ "733674003694023021583140332212516536874244680515207868241150"
+ "608184375397400558311139160554714830348088746177398431439381"
+ "723332842622714699792542174328088559591648769946177759094943"
+ "253602138964984521406532201619814354725014386146031340830053"
+ "580064701427617554848554379129838364464367966961887990772034"
+ "736157803000124741957444835959798842548782921985130516220492"
+ "587642258075423047824449259233414946134282853204689713773286"
+ "256040510156737057089566266317468913174173960297084569421408"
+ "638340246503706956964095691238512574813981388887525820300348"
+ "697874705520281039407290858032400859875699388566714220055813"
+ "721666504975567694075744291186029555965678875987190466275865"
+ "110679697878878338698829512332686458041982159543089186717937"
+ "837296882112869887946881426752946149472342545380882235609343"
+ "611456763580462118316276838903401782103651546170016353726533"
+ "483704227265988570260024779291772882891237390703536913653116"
+ "455187157502455107702608011419765259822467740388537854425585"
+ "145214288921115223750634390935174873153868344319584291280195"
+ "074092905850311312792942129108984402192540093190593921627134"
+ "750198919305865438951637777077143986003394098182666993975063"
+ "096606074918898623140499223867493399851695895082484053899663"
+ "722794723684809945661015987806137974262131138092723411860100"
+ "306875200206043728502462357504778208663060722490091078918820"
+ "442211534215724549474597452183278220860160271063926148250470"
+ "679370418947419804784028806439921024370220272459710745553427"
+ "532140111938226314711574890505019525688608204019208338049020"
+ "964857035390565630387666171043092215502462084208032361026639"
+ "181985329116058964561494525668476991132094345740269757309411"
+ "943012558938929849542837718523991642799184417216508002917772"
+ "962518064407748444169509200584402641166511867953786978192437"
+ "837706088776938929762590741093402053174273957718315232711979"
+ "156763671342690455365413493776695178957184566256453036423483"
+ "165581881185157301821017377303725398889368015324740406013125"
+ "543229798253477077861721808858399804067059819559784357961089"
+ "031531660672538152160882546443838630637659645910759113450754"
+ "115340302419919122232825971353047268318787351795564238070363"
+ "902981603709604904209483643728107596524396843183938695973698"
+ "988902792423000690468305030596571258580435533731137295948710"
+ "879428603159480555933441476779321193214240286001902925096646"
+ "193362176314904980279169507771637524251644382523514686007855"
+ "545314239798347914456001501088907724272618314958749305095096"
+ "794148875236619774059147846459165020147777271757983198340596"
+ "217174216488928458621791311513622796486107895876628401090163"
+ "978125601234102818815583696847648084271585896210534181544416"
+ "469676658401850851361026077754091157349631558038332867895835"
+ "014815733722261954846797196743495629643387081546134013472180"
+ "020575511498339952332310657372073205665921646889120512420352"
+ "744996181473392691675760746880600331249241406169543104123845"
+ "302352279569083018479984065747801443533578841058833879592182"
+ "967410207228549541008872773049474805471527002637111146655769"
+ "209259617240195120611744307719186858549611605185379536859573"
+ "600388251162049706159892398577468709333418593974416723820367"
+ "645305247298082397656229311712037206394594389066632536506196"
+ "102292821592907035713508581675681648604311761383787655492962"
+ "185626974375288560564944733881717892789614447377636043879790"
+ "036621277980274759345056403011475247907173958572327086563275"
+ "849543483955621171352309860257344516147519131140051406242709"
+ "778011785823084064869584614090224421754468355956581835921213"
+ "097223344749158316572863551380259154344114593953935347097045"
+ "25536550715391.999",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffff8p+16380L,
+ -0xf.fffffffffffffffffffffffffff8p+16380L,
+ -0xf.fffffffffffffffffffffffffff8p+16380L),
+ TEST ("-11897314953572317650857593266280070734799568698691021415011"
+ "868527227124689678980396147313041605370567205087355247942180"
+ "593264664074412459444736117251434132484671667965455130801840"
+ "045255124679702103169559030841542109952196285616205027456884"
+ "129791582874757434377487475290217671004952578762513867890601"
+ "004863821202705737468354284228263389609724091357204378869087"
+ "856142100844783840781539330336661735285987668515192503633514"
+ "260646282583954190884713931116677009187298349850863206766542"
+ "413166345601180198822101193374453309558359195271328750947157"
+ "200563558465557017475369862519596711820026523875337526865640"
+ "430063871893224677369982972098411971385146240080929526652970"
+ "745060303967599647731703468563276427779021494450059095045981"
+ "790545864962472323513895080140815733986651689347773187757918"
+ "371359567958155842762532583393965289784528201914992306937176"
+ "362101458792669882718296940837380380771229219128242910244535"
+ "249343403940229024393394190690666109060290096076587425830300"
+ "299463931565615207870879647471979376307793422374658272571538"
+ "054662102602281889246755194097756628326649875856850481383075"
+ "571558532564922782485789191644338139092007934624098407285987"
+ "639478965012746886149082252676671777013668074386693266234330"
+ "582182134430624080996753707870769123293738704114055716816195"
+ "667259532395066674201078658427576617166179197330225139480466"
+ "435106510788655729970732600565123039467471059792921100034504"
+ "074899248361425300656242486789356707460658993178806220006380"
+ "733674003694023021583140332212516536874244680515207868241150"
+ "608184375397400558311139160554714830348088746177398431439381"
+ "723332842622714699792542174328088559591648769946177759094943"
+ "253602138964984521406532201619814354725014386146031340830053"
+ "580064701427617554848554379129838364464367966961887990772034"
+ "736157803000124741957444835959798842548782921985130516220492"
+ "587642258075423047824449259233414946134282853204689713773286"
+ "256040510156737057089566266317468913174173960297084569421408"
+ "638340246503706956964095691238512574813981388887525820300348"
+ "697874705520281039407290858032400859875699388566714220055813"
+ "721666504975567694075744291186029555965678875987190466275865"
+ "110679697878878338698829512332686458041982159543089186717937"
+ "837296882112869887946881426752946149472342545380882235609343"
+ "611456763580462118316276838903401782103651546170016353726533"
+ "483704227265988570260024779291772882891237390703536913653116"
+ "455187157502455107702608011419765259822467740388537854425585"
+ "145214288921115223750634390935174873153868344319584291280195"
+ "074092905850311312792942129108984402192540093190593921627134"
+ "750198919305865438951637777077143986003394098182666993975063"
+ "096606074918898623140499223867493399851695895082484053899663"
+ "722794723684809945661015987806137974262131138092723411860100"
+ "306875200206043728502462357504778208663060722490091078918820"
+ "442211534215724549474597452183278220860160271063926148250470"
+ "679370418947419804784028806439921024370220272459710745553427"
+ "532140111938226314711574890505019525688608204019208338049020"
+ "964857035390565630387666171043092215502462084208032361026639"
+ "181985329116058964561494525668476991132094345740269757309411"
+ "943012558938929849542837718523991642799184417216508002917772"
+ "962518064407748444169509200584402641166511867953786978192437"
+ "837706088776938929762590741093402053174273957718315232711979"
+ "156763671342690455365413493776695178957184566256453036423483"
+ "165581881185157301821017377303725398889368015324740406013125"
+ "543229798253477077861721808858399804067059819559784357961089"
+ "031531660672538152160882546443838630637659645910759113450754"
+ "115340302419919122232825971353047268318787351795564238070363"
+ "902981603709604904209483643728107596524396843183938695973698"
+ "988902792423000690468305030596571258580435533731137295948710"
+ "879428603159480555933441476779321193214240286001902925096646"
+ "193362176314904980279169507771637524251644382523514686007855"
+ "545314239798347914456001501088907724272618314958749305095096"
+ "794148875236619774059147846459165020147777271757983198340596"
+ "217174216488928458621791311513622796486107895876628401090163"
+ "978125601234102818815583696847648084271585896210534181544416"
+ "469676658401850851361026077754091157349631558038332867895835"
+ "014815733722261954846797196743495629643387081546134013472180"
+ "020575511498339952332310657372073205665921646889120512420352"
+ "744996181473392691675760746880600331249241406169543104123845"
+ "302352279569083018479984065747801443533578841058833879592182"
+ "967410207228549541008872773049474805471527002637111146655769"
+ "209259617240195120611744307719186858549611605185379536859573"
+ "600388251162049706159892398577468709333418593974416723820367"
+ "645305247298082397656229311712037206394594389066632536506196"
+ "102292821592907035713508581675681648604311761383787655492962"
+ "185626974375288560564944733881717892789614447377636043879790"
+ "036621277980274759345056403011475247907173958572327086563275"
+ "849543483955621171352309860257344516147519131140051406242709"
+ "778011785823084064869584614090224421754468355956581835921213"
+ "097223344749158316572863551380259154344114593953935347097045"
+ "25536550715392",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffff8p+16380L,
+ -0xf.fffffffffffffffffffffffffff8p+16380L),
+ TEST ("-11897314953572317650857593266280070734799568698691021415011"
+ "868527227124689678980396147313041605370567205087355247942180"
+ "593264664074412459444736117251434132484671667965455130801840"
+ "045255124679702103169559030841542109952196285616205027456884"
+ "129791582874757434377487475290217671004952578762513867890601"
+ "004863821202705737468354284228263389609724091357204378869087"
+ "856142100844783840781539330336661735285987668515192503633514"
+ "260646282583954190884713931116677009187298349850863206766542"
+ "413166345601180198822101193374453309558359195271328750947157"
+ "200563558465557017475369862519596711820026523875337526865640"
+ "430063871893224677369982972098411971385146240080929526652970"
+ "745060303967599647731703468563276427779021494450059095045981"
+ "790545864962472323513895080140815733986651689347773187757918"
+ "371359567958155842762532583393965289784528201914992306937176"
+ "362101458792669882718296940837380380771229219128242910244535"
+ "249343403940229024393394190690666109060290096076587425830300"
+ "299463931565615207870879647471979376307793422374658272571538"
+ "054662102602281889246755194097756628326649875856850481383075"
+ "571558532564922782485789191644338139092007934624098407285987"
+ "639478965012746886149082252676671777013668074386693266234330"
+ "582182134430624080996753707870769123293738704114055716816195"
+ "667259532395066674201078658427576617166179197330225139480466"
+ "435106510788655729970732600565123039467471059792921100034504"
+ "074899248361425300656242486789356707460658993178806220006380"
+ "733674003694023021583140332212516536874244680515207868241150"
+ "608184375397400558311139160554714830348088746177398431439381"
+ "723332842622714699792542174328088559591648769946177759094943"
+ "253602138964984521406532201619814354725014386146031340830053"
+ "580064701427617554848554379129838364464367966961887990772034"
+ "736157803000124741957444835959798842548782921985130516220492"
+ "587642258075423047824449259233414946134282853204689713773286"
+ "256040510156737057089566266317468913174173960297084569421408"
+ "638340246503706956964095691238512574813981388887525820300348"
+ "697874705520281039407290858032400859875699388566714220055813"
+ "721666504975567694075744291186029555965678875987190466275865"
+ "110679697878878338698829512332686458041982159543089186717937"
+ "837296882112869887946881426752946149472342545380882235609343"
+ "611456763580462118316276838903401782103651546170016353726533"
+ "483704227265988570260024779291772882891237390703536913653116"
+ "455187157502455107702608011419765259822467740388537854425585"
+ "145214288921115223750634390935174873153868344319584291280195"
+ "074092905850311312792942129108984402192540093190593921627134"
+ "750198919305865438951637777077143986003394098182666993975063"
+ "096606074918898623140499223867493399851695895082484053899663"
+ "722794723684809945661015987806137974262131138092723411860100"
+ "306875200206043728502462357504778208663060722490091078918820"
+ "442211534215724549474597452183278220860160271063926148250470"
+ "679370418947419804784028806439921024370220272459710745553427"
+ "532140111938226314711574890505019525688608204019208338049020"
+ "964857035390565630387666171043092215502462084208032361026639"
+ "181985329116058964561494525668476991132094345740269757309411"
+ "943012558938929849542837718523991642799184417216508002917772"
+ "962518064407748444169509200584402641166511867953786978192437"
+ "837706088776938929762590741093402053174273957718315232711979"
+ "156763671342690455365413493776695178957184566256453036423483"
+ "165581881185157301821017377303725398889368015324740406013125"
+ "543229798253477077861721808858399804067059819559784357961089"
+ "031531660672538152160882546443838630637659645910759113450754"
+ "115340302419919122232825971353047268318787351795564238070363"
+ "902981603709604904209483643728107596524396843183938695973698"
+ "988902792423000690468305030596571258580435533731137295948710"
+ "879428603159480555933441476779321193214240286001902925096646"
+ "193362176314904980279169507771637524251644382523514686007855"
+ "545314239798347914456001501088907724272618314958749305095096"
+ "794148875236619774059147846459165020147777271757983198340596"
+ "217174216488928458621791311513622796486107895876628401090163"
+ "978125601234102818815583696847648084271585896210534181544416"
+ "469676658401850851361026077754091157349631558038332867895835"
+ "014815733722261954846797196743495629643387081546134013472180"
+ "020575511498339952332310657372073205665921646889120512420352"
+ "744996181473392691675760746880600331249241406169543104123845"
+ "302352279569083018479984065747801443533578841058833879592182"
+ "967410207228549541008872773049474805471527002637111146655769"
+ "209259617240195120611744307719186858549611605185379536859573"
+ "600388251162049706159892398577468709333418593974416723820367"
+ "645305247298082397656229311712037206394594389066632536506196"
+ "102292821592907035713508581675681648604311761383787655492962"
+ "185626974375288560564944733881717892789614447377636043879790"
+ "036621277980274759345056403011475247907173958572327086563275"
+ "849543483955621171352309860257344516147519131140051406242709"
+ "778011785823084064869584614090224421754468355956581835921213"
+ "097223344749158316572863551380259154344114593953935347097045"
+ "25536550715392.001",
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffp+124f,
+ -0xf.fffffp+124f,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020,
+ -0xf.ffffffffffff8p+1020,
+ -INFINITY,
+ -INFINITY,
+ -0xf.ffffffffffff8p+1020L,
+ -0xf.ffffffffffff8p+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffp+16380L,
+ -0xf.fffffffffffffffp+16380L,
+ false,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -0xf.fffffffffffffffffffffffffcp+1020L,
+ -INFINITY,
+ -INFINITY,
+ -0xf.fffffffffffffffffffffffffff8p+16380L,
+ -0xf.fffffffffffffffffffffffffff8p+16380L),
+ TEST ("2.1019476964872256063855943749348741969203929128147736576356"
+ "0242583468662402879090222995728254318237304687499e-45",
+ 0x8p-152f,
+ 0x8p-152f,
+ 0x8p-152f,
+ 0x1p-148f,
+ 0xb.ffffffffffff8p-152,
+ 0xcp-152,
+ 0xb.ffffffffffff8p-152,
+ 0xcp-152,
+ 0xb.ffffffffffff8p-152L,
+ 0xcp-152L,
+ 0xb.ffffffffffff8p-152L,
+ 0xcp-152L,
+ 0xb.fffffffffffffffp-152L,
+ 0xcp-152L,
+ 0xb.fffffffffffffffp-152L,
+ 0xcp-152L,
+ false,
+ 0xb.fffffffffffffffffffffffffcp-152L,
+ 0xcp-152L,
+ 0xb.fffffffffffffffffffffffffcp-152L,
+ 0xcp-152L,
+ 0xb.fffffffffffffffffffffffffff8p-152L,
+ 0xcp-152L,
+ 0xb.fffffffffffffffffffffffffff8p-152L,
+ 0xcp-152L),
+ TEST ("2.1019476964872256063855943749348741969203929128147736576356"
+ "02425834686624028790902229957282543182373046875e-45",
+ 0x8p-152f,
+ 0x1p-148f,
+ 0x8p-152f,
+ 0x1p-148f,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ true,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L),
+ TEST ("2.1019476964872256063855943749348741969203929128147736576356"
+ "0242583468662402879090222995728254318237304687501e-45",
+ 0x8p-152f,
+ 0x1p-148f,
+ 0x8p-152f,
+ 0x1p-148f,
+ 0xcp-152,
+ 0xcp-152,
+ 0xcp-152,
+ 0xc.0000000000008p-152,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xc.0000000000008p-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xc.000000000000001p-152L,
+ false,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xc.00000000000000000000000004p-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xcp-152L,
+ 0xc.0000000000000000000000000008p-152L),
+ TEST ("-2.101947696487225606385594374934874196920392912814773657635"
+ "60242583468662402879090222995728254318237304687499e-45",
+ -0x1p-148f,
+ -0x8p-152f,
+ -0x8p-152f,
+ -0x8p-152f,
+ -0xcp-152,
+ -0xcp-152,
+ -0xb.ffffffffffff8p-152,
+ -0xb.ffffffffffff8p-152,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xb.ffffffffffff8p-152L,
+ -0xb.ffffffffffff8p-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xb.fffffffffffffffp-152L,
+ -0xb.fffffffffffffffp-152L,
+ false,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xb.fffffffffffffffffffffffffcp-152L,
+ -0xb.fffffffffffffffffffffffffcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xb.fffffffffffffffffffffffffff8p-152L,
+ -0xb.fffffffffffffffffffffffffff8p-152L),
+ TEST ("-2.101947696487225606385594374934874196920392912814773657635"
+ "602425834686624028790902229957282543182373046875e-45",
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x8p-152f,
+ -0x8p-152f,
+ -0xcp-152,
+ -0xcp-152,
+ -0xcp-152,
+ -0xcp-152,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ true,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L),
+ TEST ("-2.101947696487225606385594374934874196920392912814773657635"
+ "60242583468662402879090222995728254318237304687501e-45",
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x8p-152f,
+ -0x8p-152f,
+ -0xc.0000000000008p-152,
+ -0xcp-152,
+ -0xcp-152,
+ -0xcp-152,
+ -0xc.0000000000008p-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xc.000000000000001p-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ false,
+ -0xc.00000000000000000000000004p-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xc.0000000000000000000000000008p-152L,
+ -0xcp-152L,
+ -0xcp-152L,
+ -0xcp-152L),
+ TEST ("3.5032461608120426773093239582247903282006548546912894293926"
+ "7070972447770671465150371659547090530395507812499e-45",
+ 0x1p-148f,
+ 0x1p-148f,
+ 0x1p-148f,
+ 0x1.8p-148f,
+ 0x1.3ffffffffffffp-148,
+ 0x1.4p-148,
+ 0x1.3ffffffffffffp-148,
+ 0x1.4p-148,
+ 0x1.3ffffffffffffp-148L,
+ 0x1.4p-148L,
+ 0x1.3ffffffffffffp-148L,
+ 0x1.4p-148L,
+ 0x1.3ffffffffffffffep-148L,
+ 0x1.4p-148L,
+ 0x1.3ffffffffffffffep-148L,
+ 0x1.4p-148L,
+ false,
+ 0x1.3fffffffffffffffffffffffff8p-148L,
+ 0x1.4p-148L,
+ 0x1.3fffffffffffffffffffffffff8p-148L,
+ 0x1.4p-148L,
+ 0x1.3fffffffffffffffffffffffffffp-148L,
+ 0x1.4p-148L,
+ 0x1.3fffffffffffffffffffffffffffp-148L,
+ 0x1.4p-148L),
+ TEST ("3.5032461608120426773093239582247903282006548546912894293926"
+ "70709724477706714651503716595470905303955078125e-45",
+ 0x1p-148f,
+ 0x1p-148f,
+ 0x1p-148f,
+ 0x1.8p-148f,
+ 0x1.4p-148,
+ 0x1.4p-148,
+ 0x1.4p-148,
+ 0x1.4p-148,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ true,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L),
+ TEST ("3.5032461608120426773093239582247903282006548546912894293926"
+ "7070972447770671465150371659547090530395507812501e-45",
+ 0x1p-148f,
+ 0x1.8p-148f,
+ 0x1p-148f,
+ 0x1.8p-148f,
+ 0x1.4p-148,
+ 0x1.4p-148,
+ 0x1.4p-148,
+ 0x1.4000000000001p-148,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4000000000001p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4000000000000002p-148L,
+ false,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.400000000000000000000000008p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4p-148L,
+ 0x1.4000000000000000000000000001p-148L),
+ TEST ("-3.503246160812042677309323958224790328200654854691289429392"
+ "67070972447770671465150371659547090530395507812499e-45",
+ -0x1.8p-148f,
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.3ffffffffffffp-148,
+ -0x1.3ffffffffffffp-148,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.3ffffffffffffp-148L,
+ -0x1.3ffffffffffffp-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.3ffffffffffffffep-148L,
+ -0x1.3ffffffffffffffep-148L,
+ false,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.3fffffffffffffffffffffffff8p-148L,
+ -0x1.3fffffffffffffffffffffffff8p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.3fffffffffffffffffffffffffffp-148L,
+ -0x1.3fffffffffffffffffffffffffffp-148L),
+ TEST ("-3.503246160812042677309323958224790328200654854691289429392"
+ "670709724477706714651503716595470905303955078125e-45",
+ -0x1.8p-148f,
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ true,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L),
+ TEST ("-3.503246160812042677309323958224790328200654854691289429392"
+ "67070972447770671465150371659547090530395507812501e-45",
+ -0x1.8p-148f,
+ -0x1.8p-148f,
+ -0x1p-148f,
+ -0x1p-148f,
+ -0x1.4000000000001p-148,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.4p-148,
+ -0x1.4000000000001p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4000000000000002p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ false,
+ -0x1.400000000000000000000000008p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4000000000000000000000000001p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L,
+ -0x1.4p-148L),
+ TEST ("7.4109846876186981626485318930233205854758970392148714663837"
+ "852375101326090531312779794975454245398856969484704316857659"
+ "638998506553390969459816219401617281718945106978546710679176"
+ "872575177347315553307795408549809608457500958111373034747658"
+ "096871009590975442271004757307809711118935784838675653998783"
+ "503015228055934046593739791790738723868299395818481660169122"
+ "019456499931289798411362062484498678713572180352209017023903"
+ "285791732520220528974020802906854021606612375549983402671300"
+ "035812486479041385743401875520901590172592547146296175134159"
+ "774938718574737870961645638908718119841271673056017045493004"
+ "705269590165763776884908267986972573366521765567941072508764"
+ "337560846003984904972149117463085539556354188641513168478436"
+ "31308023759629577398300170898437499e-324",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x4p-1076,
+ 0x4p-1076,
+ 0x4p-1076,
+ 0x8p-1076,
+ 0x4p-1076L,
+ 0x4p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x5.fffffffffffffff8p-1076L,
+ 0x6p-1076L,
+ 0x5.fffffffffffffff8p-1076L,
+ 0x6p-1076L,
+ false,
+ 0x4p-1076L,
+ 0x4p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x5.fffffffffffffffffffffffffffcp-1076L,
+ 0x6p-1076L,
+ 0x5.fffffffffffffffffffffffffffcp-1076L,
+ 0x6p-1076L),
+ TEST ("7.4109846876186981626485318930233205854758970392148714663837"
+ "852375101326090531312779794975454245398856969484704316857659"
+ "638998506553390969459816219401617281718945106978546710679176"
+ "872575177347315553307795408549809608457500958111373034747658"
+ "096871009590975442271004757307809711118935784838675653998783"
+ "503015228055934046593739791790738723868299395818481660169122"
+ "019456499931289798411362062484498678713572180352209017023903"
+ "285791732520220528974020802906854021606612375549983402671300"
+ "035812486479041385743401875520901590172592547146296175134159"
+ "774938718574737870961645638908718119841271673056017045493004"
+ "705269590165763776884908267986972573366521765567941072508764"
+ "337560846003984904972149117463085539556354188641513168478436"
+ "313080237596295773983001708984375e-324",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x4p-1076,
+ 0x8p-1076,
+ 0x4p-1076,
+ 0x8p-1076,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ true,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L),
+ TEST ("7.4109846876186981626485318930233205854758970392148714663837"
+ "852375101326090531312779794975454245398856969484704316857659"
+ "638998506553390969459816219401617281718945106978546710679176"
+ "872575177347315553307795408549809608457500958111373034747658"
+ "096871009590975442271004757307809711118935784838675653998783"
+ "503015228055934046593739791790738723868299395818481660169122"
+ "019456499931289798411362062484498678713572180352209017023903"
+ "285791732520220528974020802906854021606612375549983402671300"
+ "035812486479041385743401875520901590172592547146296175134159"
+ "774938718574737870961645638908718119841271673056017045493004"
+ "705269590165763776884908267986972573366521765567941072508764"
+ "337560846003984904972149117463085539556354188641513168478436"
+ "31308023759629577398300170898437501e-324",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x4p-1076,
+ 0x8p-1076,
+ 0x4p-1076,
+ 0x8p-1076,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6.0000000000000008p-1076L,
+ false,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x4p-1076L,
+ 0x8p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6p-1076L,
+ 0x6.0000000000000000000000000004p-1076L),
+ TEST ("-7.410984687618698162648531893023320585475897039214871466383"
+ "785237510132609053131277979497545424539885696948470431685765"
+ "963899850655339096945981621940161728171894510697854671067917"
+ "687257517734731555330779540854980960845750095811137303474765"
+ "809687100959097544227100475730780971111893578483867565399878"
+ "350301522805593404659373979179073872386829939581848166016912"
+ "201945649993128979841136206248449867871357218035220901702390"
+ "328579173252022052897402080290685402160661237554998340267130"
+ "003581248647904138574340187552090159017259254714629617513415"
+ "977493871857473787096164563890871811984127167305601704549300"
+ "470526959016576377688490826798697257336652176556794107250876"
+ "433756084600398490497214911746308553955635418864151316847843"
+ "631308023759629577398300170898437499e-324",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x8p-1076,
+ -0x4p-1076,
+ -0x4p-1076,
+ -0x4p-1076,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x5.fffffffffffffff8p-1076L,
+ -0x5.fffffffffffffff8p-1076L,
+ false,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x5.fffffffffffffffffffffffffffcp-1076L,
+ -0x5.fffffffffffffffffffffffffffcp-1076L),
+ TEST ("-7.410984687618698162648531893023320585475897039214871466383"
+ "785237510132609053131277979497545424539885696948470431685765"
+ "963899850655339096945981621940161728171894510697854671067917"
+ "687257517734731555330779540854980960845750095811137303474765"
+ "809687100959097544227100475730780971111893578483867565399878"
+ "350301522805593404659373979179073872386829939581848166016912"
+ "201945649993128979841136206248449867871357218035220901702390"
+ "328579173252022052897402080290685402160661237554998340267130"
+ "003581248647904138574340187552090159017259254714629617513415"
+ "977493871857473787096164563890871811984127167305601704549300"
+ "470526959016576377688490826798697257336652176556794107250876"
+ "433756084600398490497214911746308553955635418864151316847843"
+ "6313080237596295773983001708984375e-324",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x8p-1076,
+ -0x8p-1076,
+ -0x4p-1076,
+ -0x4p-1076,
+ -0x8p-1076L,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ true,
+ -0x8p-1076L,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L),
+ TEST ("-7.410984687618698162648531893023320585475897039214871466383"
+ "785237510132609053131277979497545424539885696948470431685765"
+ "963899850655339096945981621940161728171894510697854671067917"
+ "687257517734731555330779540854980960845750095811137303474765"
+ "809687100959097544227100475730780971111893578483867565399878"
+ "350301522805593404659373979179073872386829939581848166016912"
+ "201945649993128979841136206248449867871357218035220901702390"
+ "328579173252022052897402080290685402160661237554998340267130"
+ "003581248647904138574340187552090159017259254714629617513415"
+ "977493871857473787096164563890871811984127167305601704549300"
+ "470526959016576377688490826798697257336652176556794107250876"
+ "433756084600398490497214911746308553955635418864151316847843"
+ "631308023759629577398300170898437501e-324",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x8p-1076,
+ -0x8p-1076,
+ -0x4p-1076,
+ -0x4p-1076,
+ -0x8p-1076L,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6.0000000000000008p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ false,
+ -0x8p-1076L,
+ -0x8p-1076L,
+ -0x4p-1076L,
+ -0x4p-1076L,
+ -0x6.0000000000000000000000000004p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L,
+ -0x6p-1076L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "683343374046671669930219650268554687499e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x8p-16448L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xb.fffffffffffcp-16448L,
+ 0xcp-16448L,
+ 0xb.fffffffffffcp-16448L,
+ 0xcp-16448L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "6833433740466716699302196502685546875e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "683343374046671669930219650268554687501e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xc.000000000004p-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "2683343374046671669930219650268554687499e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xb.fffffffffffcp-16448L,
+ -0xb.fffffffffffcp-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "26833433740466716699302196502685546875e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "2683343374046671669930219650268554687501e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xc.000000000004p-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "683343374046671669930219650268554687499e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x8p-16448L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xb.fffffffffffcp-16448L,
+ 0xcp-16448L,
+ 0xb.fffffffffffcp-16448L,
+ 0xcp-16448L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "6833433740466716699302196502685546875e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L),
+ TEST ("5.4677992978237119037926089004291297245985762235403450155814"
+ "707305425575329500966052143410629387408077958710210208052966"
+ "529504784489330482549602621133847135082257338717668975178538"
+ "378957084503396349323438489751160934104796903302909028868611"
+ "999312592165232778075745690821530731336739429587895774023213"
+ "939331012985331912661021188896306095323395084578542200319963"
+ "179359407180003251440084380484161504585462684082946932782829"
+ "488183829817567452314437076943950532707791252404699268678810"
+ "198502871250235796855577909830559749628817599194837522029036"
+ "891995648803056846354520653635957919882905363521007017169741"
+ "463296044392266269433408052686419017699718627761948763856040"
+ "592690841721239300491445991666051031755802326720329666454066"
+ "568630314348735511753639418257984253319063825247065727664852"
+ "328745422305642626091617823968872438962470092440688372515677"
+ "832232712866924800106797113478024083516199991991274936894113"
+ "006233377518471389394984262004503058455485659100090665241525"
+ "454803628182902241401701783637353179296850056973639305945938"
+ "813428953287892593620291195986011128990061888798763718548789"
+ "025717537674780281005583347165047846045925077914824515331335"
+ "131286063574407181821236377907693209224423490663289916878620"
+ "725507793163931390372011875799729330162278748985052557432333"
+ "005334989519381566364065326138465761456173231416844807264090"
+ "741841972247545424908843928136253653308813487994328446248389"
+ "608261444391573619177442907290731163188581917588219420107047"
+ "265367485141413919810885909689112244064797106324295291545892"
+ "937991321479061743491490060940946128274533657682130125169586"
+ "930571899403551122506297763180795732325134340989331155893724"
+ "289358918212707392997768032299997207208451112971425779939507"
+ "837165263255764268971211819536322993221774123134726665579460"
+ "265871378186589562858761835613344584269098062275786969729830"
+ "545786485401407774313414954958161677096004701941411411592755"
+ "485864471870515173326244464631295701572087440183178339987662"
+ "926763241220698078822661709054601073523477544653542795020468"
+ "256078409306409100874886828781860529824879343987945751252081"
+ "314345990313550683792348814627862441324030155730592166581251"
+ "009922787324590431548734575328663628650380722603024383412564"
+ "651446272117561042207738413114131099731016728935023152239431"
+ "311619533848376583687509108453086730196255111695352464186678"
+ "221927564757730319825223049341618853631333478241227227268084"
+ "583396688436229936266854011427192767039363517491659523133852"
+ "472534104124441112346615696891097070121463652258681270378076"
+ "538381697594264658479637863087159293838880752928175545408262"
+ "813403793568695416998388572304528748824756265665683890518422"
+ "696169422338806137532304784682662448207928681740476188343739"
+ "117833525916386815135793034906806117413105008719197882837614"
+ "738262050320291539494104952056471606645482046176634075459021"
+ "552555959590354956262127809953013679512507451424271839221946"
+ "794056861055980558363033732905772356986051180966474116423192"
+ "194741572438649215204229781279620370445373851348786918527399"
+ "785630808242657122705381806661616271132182017797793661244078"
+ "445747547535623384548769818529655539279036503234072455810991"
+ "588075181817695975173110136482659854557506203058080551018873"
+ "203138260451109855100526720073566126209666125604482413705611"
+ "996796777927332827103568863352291499261312290355143742018042"
+ "254470707107847293593205234049774839191754781030496978091006"
+ "099559675240966730110167624903610656473267105556155633783594"
+ "089546261107653110531808279445757724399186120387548675148632"
+ "176049190701680305210224388072261974806791922636412897526952"
+ "793677946622674149577084803568051242934076450942927092705684"
+ "547042915490323112457971853658760725588190377666477106903106"
+ "693847278847646032201293023329503348730723947218797410452333"
+ "910847913892827195814551858335519518939031446093385329182820"
+ "714173657946661746005901866885589732922652604573972842197231"
+ "187365263381958925227970038358064987248233271706462687651143"
+ "350472018043321314534759819524203308490914358596886150053406"
+ "629512434788155355109100540319857813535695923273426256911552"
+ "977539394209918630668466632881929661971212772444625151371953"
+ "428875491139683919687008724010475217255347915698820960215217"
+ "257390308560235323463096946442080548018754166369706161589705"
+ "215873687166365628787796501470056870127729464714362172216802"
+ "441045276911597009443281135389729130222603185665646434661947"
+ "627628077723219376892727386120519287577405410510114936151502"
+ "752997122750262781911372625997223415283516995479265631485799"
+ "456782561734766648462849641064097181818204279498552827825384"
+ "186202065516999362573388136163077477126602169410435905014077"
+ "049808497409025369325795765272066650278004200357878990911374"
+ "982857977108488482528354406313893864211497105765030504600982"
+ "253488805474531798742143374465080240030582370086699167937651"
+ "038307909706139327119325418854546478285735654541635477790346"
+ "964782617354265050767878335230272194896680141986745074630225"
+ "893106573559558843545841186025169531604151588481389164948914"
+ "823593944287133336263680358191369540321930649824471425485137"
+ "777984823525402115151171093313613251350685343824859052220126"
+ "891551966018355920872775724807128769003243129486808733796350"
+ "497668255116485157191011858830643898323628223472099280243583"
+ "164434348347014910398004439821970508280440872759395827943270"
+ "985008769143562351938091476215083548164137333541883808870019"
+ "116234099013452929807950151652297436436006149684939775781234"
+ "660954156154478642694176038524277810483833149798681345708089"
+ "152179193979463169402340611793486272301808073267534612685593"
+ "859596787866884211031341417903391749825320454663508370385251"
+ "831778477311017089729361152161928815389818579983544490982891"
+ "734081131312309744330960666031291451740885503458543884956367"
+ "654943799264600314531815427932691107874782328654759293575803"
+ "481929361961781073958502075438499070633193799699311694287183"
+ "299423475339817655608058724723221867087563064557636112380829"
+ "514501382073257737022472866608244164310385205213523702910787"
+ "182472517125030106491031844871593141759729773907719510044049"
+ "352857426592936763727969496103940591601975078602859660478614"
+ "119405428212830134490731706220583788265344728818766885126977"
+ "588151111984290444321648931907188080336064713873288834096229"
+ "203276676119810521851726133377700616341304257822975788967472"
+ "152742255041912584197045423031298506219011800240120182445838"
+ "590696647416285334515631019799007515682004250060857020904012"
+ "215375170479800482680554499806010766109655061507421747722461"
+ "180617361402575082294678925605271083587897845390768226405648"
+ "508518103525778638618195775128516073959272990148239415346263"
+ "486966573934577450787243667063244378381883115827207605856174"
+ "876350045086885320626669331311880593775916269643646395423220"
+ "549940790476989709243027420158390806135690975149384714684219"
+ "964938182719962913931464979458639185519531490009437619838306"
+ "362365453754807654884704163490469296444427144778593725687358"
+ "437087390151990694667516279202024332494828210657618261952038"
+ "597230263799412584275851667403910657370879707181053365818502"
+ "680037431560091209982641738995652793235851569372314130107647"
+ "166085235615697257094269133100914135783178856280392139325001"
+ "352841718610484616627448189556913621837791650699820323059708"
+ "766420810133584841826718631681683381743511974264126250984214"
+ "812397119978273917903889865891718836792263377888052458189238"
+ "746074986456016681098722869419588274020181430652732817858728"
+ "473849369539367463917171317324882099804999043054467247785592"
+ "038464723442276239896066431580123756428540074945472427752568"
+ "981171400621705853374875885943072600692576914790467205905272"
+ "372594740187988081900317493185005142913607163380720069786786"
+ "782095331840893694073778325119471833528492917081008547303414"
+ "509381563617864195257751546539575461435803625993888325647883"
+ "541039192368366987400263049681218831477776345118518503709588"
+ "840859023379762456561030683928115349942393963185677123055324"
+ "771693784214924931737043793679546051454845624150270955450608"
+ "318747395755728950832754611277041359602301205138509175543313"
+ "522772786504141007552691902249572375175731740923618769197304"
+ "652898352694386665448260033458575323252814233868098279476166"
+ "764258284911434288072243178941698347365985427696983129579496"
+ "059032032841281149923518087084876885114369033227736521245740"
+ "554711771423492719899982357711910225545480424688322195336240"
+ "492253136281857837808491795993788199125205555222116581071134"
+ "476787468430539307909617442106685159519071053844987343666452"
+ "494280317720153567054364117244775141336558406098548803924509"
+ "496052261825198043140272655303625315605326569530252885854991"
+ "822289219201218313590745412010446642247111703901991591338062"
+ "693320157180618736569439969283245279430312651192668788340033"
+ "626825194260296262959884258597703584888770801961209652822982"
+ "322376122303586169861685106043820510444293432856251210395693"
+ "261264867823980172683352796141772210301725997652373804152525"
+ "037162852291403804455997331367378463632437773242905518075065"
+ "414724295857460288225400061608664961649196400079359622673770"
+ "607898395269075056596627116148289491042491764170924014885106"
+ "158235482774778418134123293974436877051995673618683751115353"
+ "808771434984204447736174758316063096245047311279841579995578"
+ "186609402864244042751443128536278453430633423118662852688374"
+ "229600894418958824842459450540826176452145829389286103522774"
+ "101195556029650753254244433565937938526828990893149766298997"
+ "738359913887178888607190765709867052470880785937935110091424"
+ "743449966353497865681753841380246075612094033617488674676296"
+ "822570077027076266879557913673839341012099558043806442348798"
+ "053951239274913334631522409564461770434875790402230022872647"
+ "568436177018658068697071731879399180374560963492726714528729"
+ "224208938589940272515747888379118461617702271694075087419634"
+ "147298076764775745707026934442908236664400557265527951453482"
+ "191684597674273691978253678690951178777239573925410438679099"
+ "374700609973920128201422381329108236575369403675960765238333"
+ "778127017096574296148321075566959285042221837159799800133563"
+ "239963969638610872680393210300180152020613051613414547163713"
+ "772512617757277955979895866367571776456268564191092477027650"
+ "135832200376440239783726540552694851717269598489288851529660"
+ "975027775639565229734596726205832668434979354541943345062977"
+ "891187146561050118118108223323735210843681128615413601091222"
+ "007912350536959777114306541514511332368936078560929788143798"
+ "814391221507522370648646767364209132147312407014953113532379"
+ "838195728491128536978285918066991040993153064356179903885952"
+ "027952713749653604502053512355449916680887234238773855581636"
+ "172479594866871765094513940103284167914110196720261110812716"
+ "776424260154507395050380575452850420730818412994731079307343"
+ "538376880280124019321040198038723558784544408584344466090982"
+ "802067326529000931562048932875469079874956595180595395347093"
+ "285140279165467965596318365749701535812384333240968283640721"
+ "344003442002691613772056762099098025739332715913970186225176"
+ "459563484134139746647940170537900275350480490468851439300771"
+ "949915194703080576611022590670399844931867609777417528903454"
+ "731922206378932141464755402629420074293816349270038351339419"
+ "146768473851353171629153912238797141905920143036064131705230"
+ "421762305232861503856799511155936565169005916711845389135580"
+ "928162511912438531204156138447775120789548666143600293412065"
+ "767167106888509172568003530668539460588248316513392652567856"
+ "224602697296203328920073354425994044956624831346979458846837"
+ "597950064151867164583749203433942592178528868981311575331848"
+ "941597492470436782387502687532649093096498315347403977436001"
+ "399982102030846763698994785054617523241463186980898394504211"
+ "430763617825306895065661536045431497903759118007934839122881"
+ "885863091769469883539876840543521295706315919855784493235603"
+ "866268925981702690270202829595794350800918257913991744455922"
+ "683343374046671669930219650268554687501e-4951",
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x0p+0f,
+ 0x8p-152f,
+ 0x0p+0,
+ 0x0p+0,
+ 0x0p+0,
+ 0x4p-1076,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ 0x8p-16448L,
+ 0x1p-16444L,
+ false,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x0p+0L,
+ 0x4p-1076L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xcp-16448L,
+ 0xc.000000000004p-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "2683343374046671669930219650268554687499e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xb.fffffffffffcp-16448L,
+ -0xb.fffffffffffcp-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "26833433740466716699302196502685546875e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L),
+ TEST ("-5.467799297823711903792608900429129724598576223540345015581"
+ "470730542557532950096605214341062938740807795871021020805296"
+ "652950478448933048254960262113384713508225733871766897517853"
+ "837895708450339634932343848975116093410479690330290902886861"
+ "199931259216523277807574569082153073133673942958789577402321"
+ "393933101298533191266102118889630609532339508457854220031996"
+ "317935940718000325144008438048416150458546268408294693278282"
+ "948818382981756745231443707694395053270779125240469926867881"
+ "019850287125023579685557790983055974962881759919483752202903"
+ "689199564880305684635452065363595791988290536352100701716974"
+ "146329604439226626943340805268641901769971862776194876385604"
+ "059269084172123930049144599166605103175580232672032966645406"
+ "656863031434873551175363941825798425331906382524706572766485"
+ "232874542230564262609161782396887243896247009244068837251567"
+ "783223271286692480010679711347802408351619999199127493689411"
+ "300623337751847138939498426200450305845548565910009066524152"
+ "545480362818290224140170178363735317929685005697363930594593"
+ "881342895328789259362029119598601112899006188879876371854878"
+ "902571753767478028100558334716504784604592507791482451533133"
+ "513128606357440718182123637790769320922442349066328991687862"
+ "072550779316393139037201187579972933016227874898505255743233"
+ "300533498951938156636406532613846576145617323141684480726409"
+ "074184197224754542490884392813625365330881348799432844624838"
+ "960826144439157361917744290729073116318858191758821942010704"
+ "726536748514141391981088590968911224406479710632429529154589"
+ "293799132147906174349149006094094612827453365768213012516958"
+ "693057189940355112250629776318079573232513434098933115589372"
+ "428935891821270739299776803229999720720845111297142577993950"
+ "783716526325576426897121181953632299322177412313472666557946"
+ "026587137818658956285876183561334458426909806227578696972983"
+ "054578648540140777431341495495816167709600470194141141159275"
+ "548586447187051517332624446463129570157208744018317833998766"
+ "292676324122069807882266170905460107352347754465354279502046"
+ "825607840930640910087488682878186052982487934398794575125208"
+ "131434599031355068379234881462786244132403015573059216658125"
+ "100992278732459043154873457532866362865038072260302438341256"
+ "465144627211756104220773841311413109973101672893502315223943"
+ "131161953384837658368750910845308673019625511169535246418667"
+ "822192756475773031982522304934161885363133347824122722726808"
+ "458339668843622993626685401142719276703936351749165952313385"
+ "247253410412444111234661569689109707012146365225868127037807"
+ "653838169759426465847963786308715929383888075292817554540826"
+ "281340379356869541699838857230452874882475626566568389051842"
+ "269616942233880613753230478468266244820792868174047618834373"
+ "911783352591638681513579303490680611741310500871919788283761"
+ "473826205032029153949410495205647160664548204617663407545902"
+ "155255595959035495626212780995301367951250745142427183922194"
+ "679405686105598055836303373290577235698605118096647411642319"
+ "219474157243864921520422978127962037044537385134878691852739"
+ "978563080824265712270538180666161627113218201779779366124407"
+ "844574754753562338454876981852965553927903650323407245581099"
+ "158807518181769597517311013648265985455750620305808055101887"
+ "320313826045110985510052672007356612620966612560448241370561"
+ "199679677792733282710356886335229149926131229035514374201804"
+ "225447070710784729359320523404977483919175478103049697809100"
+ "609955967524096673011016762490361065647326710555615563378359"
+ "408954626110765311053180827944575772439918612038754867514863"
+ "217604919070168030521022438807226197480679192263641289752695"
+ "279367794662267414957708480356805124293407645094292709270568"
+ "454704291549032311245797185365876072558819037766647710690310"
+ "669384727884764603220129302332950334873072394721879741045233"
+ "391084791389282719581455185833551951893903144609338532918282"
+ "071417365794666174600590186688558973292265260457397284219723"
+ "118736526338195892522797003835806498724823327170646268765114"
+ "335047201804332131453475981952420330849091435859688615005340"
+ "662951243478815535510910054031985781353569592327342625691155"
+ "297753939420991863066846663288192966197121277244462515137195"
+ "342887549113968391968700872401047521725534791569882096021521"
+ "725739030856023532346309694644208054801875416636970616158970"
+ "521587368716636562878779650147005687012772946471436217221680"
+ "244104527691159700944328113538972913022260318566564643466194"
+ "762762807772321937689272738612051928757740541051011493615150"
+ "275299712275026278191137262599722341528351699547926563148579"
+ "945678256173476664846284964106409718181820427949855282782538"
+ "418620206551699936257338813616307747712660216941043590501407"
+ "704980849740902536932579576527206665027800420035787899091137"
+ "498285797710848848252835440631389386421149710576503050460098"
+ "225348880547453179874214337446508024003058237008669916793765"
+ "103830790970613932711932541885454647828573565454163547779034"
+ "696478261735426505076787833523027219489668014198674507463022"
+ "589310657355955884354584118602516953160415158848138916494891"
+ "482359394428713333626368035819136954032193064982447142548513"
+ "777798482352540211515117109331361325135068534382485905222012"
+ "689155196601835592087277572480712876900324312948680873379635"
+ "049766825511648515719101185883064389832362822347209928024358"
+ "316443434834701491039800443982197050828044087275939582794327"
+ "098500876914356235193809147621508354816413733354188380887001"
+ "911623409901345292980795015165229743643600614968493977578123"
+ "466095415615447864269417603852427781048383314979868134570808"
+ "915217919397946316940234061179348627230180807326753461268559"
+ "385959678786688421103134141790339174982532045466350837038525"
+ "183177847731101708972936115216192881538981857998354449098289"
+ "173408113131230974433096066603129145174088550345854388495636"
+ "765494379926460031453181542793269110787478232865475929357580"
+ "348192936196178107395850207543849907063319379969931169428718"
+ "329942347533981765560805872472322186708756306455763611238082"
+ "951450138207325773702247286660824416431038520521352370291078"
+ "718247251712503010649103184487159314175972977390771951004404"
+ "935285742659293676372796949610394059160197507860285966047861"
+ "411940542821283013449073170622058378826534472881876688512697"
+ "758815111198429044432164893190718808033606471387328883409622"
+ "920327667611981052185172613337770061634130425782297578896747"
+ "215274225504191258419704542303129850621901180024012018244583"
+ "859069664741628533451563101979900751568200425006085702090401"
+ "221537517047980048268055449980601076610965506150742174772246"
+ "118061736140257508229467892560527108358789784539076822640564"
+ "850851810352577863861819577512851607395927299014823941534626"
+ "348696657393457745078724366706324437838188311582720760585617"
+ "487635004508688532062666933131188059377591626964364639542322"
+ "054994079047698970924302742015839080613569097514938471468421"
+ "996493818271996291393146497945863918551953149000943761983830"
+ "636236545375480765488470416349046929644442714477859372568735"
+ "843708739015199069466751627920202433249482821065761826195203"
+ "859723026379941258427585166740391065737087970718105336581850"
+ "268003743156009120998264173899565279323585156937231413010764"
+ "716608523561569725709426913310091413578317885628039213932500"
+ "135284171861048461662744818955691362183779165069982032305970"
+ "876642081013358484182671863168168338174351197426412625098421"
+ "481239711997827391790388986589171883679226337788805245818923"
+ "874607498645601668109872286941958827402018143065273281785872"
+ "847384936953936746391717131732488209980499904305446724778559"
+ "203846472344227623989606643158012375642854007494547242775256"
+ "898117140062170585337487588594307260069257691479046720590527"
+ "237259474018798808190031749318500514291360716338072006978678"
+ "678209533184089369407377832511947183352849291708100854730341"
+ "450938156361786419525775154653957546143580362599388832564788"
+ "354103919236836698740026304968121883147777634511851850370958"
+ "884085902337976245656103068392811534994239396318567712305532"
+ "477169378421492493173704379367954605145484562415027095545060"
+ "831874739575572895083275461127704135960230120513850917554331"
+ "352277278650414100755269190224957237517573174092361876919730"
+ "465289835269438666544826003345857532325281423386809827947616"
+ "676425828491143428807224317894169834736598542769698312957949"
+ "605903203284128114992351808708487688511436903322773652124574"
+ "055471177142349271989998235771191022554548042468832219533624"
+ "049225313628185783780849179599378819912520555522211658107113"
+ "447678746843053930790961744210668515951907105384498734366645"
+ "249428031772015356705436411724477514133655840609854880392450"
+ "949605226182519804314027265530362531560532656953025288585499"
+ "182228921920121831359074541201044664224711170390199159133806"
+ "269332015718061873656943996928324527943031265119266878834003"
+ "362682519426029626295988425859770358488877080196120965282298"
+ "232237612230358616986168510604382051044429343285625121039569"
+ "326126486782398017268335279614177221030172599765237380415252"
+ "503716285229140380445599733136737846363243777324290551807506"
+ "541472429585746028822540006160866496164919640007935962267377"
+ "060789839526907505659662711614828949104249176417092401488510"
+ "615823548277477841813412329397443687705199567361868375111535"
+ "380877143498420444773617475831606309624504731127984157999557"
+ "818660940286424404275144312853627845343063342311866285268837"
+ "422960089441895882484245945054082617645214582938928610352277"
+ "410119555602965075325424443356593793852682899089314976629899"
+ "773835991388717888860719076570986705247088078593793511009142"
+ "474344996635349786568175384138024607561209403361748867467629"
+ "682257007702707626687955791367383934101209955804380644234879"
+ "805395123927491333463152240956446177043487579040223002287264"
+ "756843617701865806869707173187939918037456096349272671452872"
+ "922420893858994027251574788837911846161770227169407508741963"
+ "414729807676477574570702693444290823666440055726552795145348"
+ "219168459767427369197825367869095117877723957392541043867909"
+ "937470060997392012820142238132910823657536940367596076523833"
+ "377812701709657429614832107556695928504222183715979980013356"
+ "323996396963861087268039321030018015202061305161341454716371"
+ "377251261775727795597989586636757177645626856419109247702765"
+ "013583220037644023978372654055269485171726959848928885152966"
+ "097502777563956522973459672620583266843497935454194334506297"
+ "789118714656105011811810822332373521084368112861541360109122"
+ "200791235053695977711430654151451133236893607856092978814379"
+ "881439122150752237064864676736420913214731240701495311353237"
+ "983819572849112853697828591806699104099315306435617990388595"
+ "202795271374965360450205351235544991668088723423877385558163"
+ "617247959486687176509451394010328416791411019672026111081271"
+ "677642426015450739505038057545285042073081841299473107930734"
+ "353837688028012401932104019803872355878454440858434446609098"
+ "280206732652900093156204893287546907987495659518059539534709"
+ "328514027916546796559631836574970153581238433324096828364072"
+ "134400344200269161377205676209909802573933271591397018622517"
+ "645956348413413974664794017053790027535048049046885143930077"
+ "194991519470308057661102259067039984493186760977741752890345"
+ "473192220637893214146475540262942007429381634927003835133941"
+ "914676847385135317162915391223879714190592014303606413170523"
+ "042176230523286150385679951115593656516900591671184538913558"
+ "092816251191243853120415613844777512078954866614360029341206"
+ "576716710688850917256800353066853946058824831651339265256785"
+ "622460269729620332892007335442599404495662483134697945884683"
+ "759795006415186716458374920343394259217852886898131157533184"
+ "894159749247043678238750268753264909309649831534740397743600"
+ "139998210203084676369899478505461752324146318698089839450421"
+ "143076361782530689506566153604543149790375911800793483912288"
+ "188586309176946988353987684054352129570631591985578449323560"
+ "386626892598170269027020282959579435080091825791399174445592"
+ "2683343374046671669930219650268554687501e-4951",
+ -0x8p-152f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x0p+0f,
+ -0x4p-1076,
+ -0x0p+0,
+ -0x0p+0,
+ -0x0p+0,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x1p-16444L,
+ -0x1p-16444L,
+ -0x8p-16448L,
+ -0x8p-16448L,
+ false,
+ -0x4p-1076L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0x0p+0L,
+ -0xc.000000000004p-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L,
+ -0xcp-16448L),
+};
+
+static int
+do_test (void)
+{
+ int result = 0;
+ for (size_t i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
+ {
+ float f = strtof (tests[i].s, NULL);
+ double d = strtod (tests[i].s, NULL);
+ long double ld = strtold (tests[i].s, NULL);
+ if (f != tests[i].f
+ || copysignf (1.0f, f) != copysignf (1.0f, tests[i].f))
+ {
+ printf ("strtof (%s) returned %a not %a\n", tests[i].s, f,
+ tests[i].f);
+ result = 1;
+ }
+ if (d != tests[i].d
+ || copysign (1.0, d) != copysign (1.0, tests[i].d))
+ {
+ printf ("strtod (%s) returned %a not %a\n", tests[i].s, d,
+ tests[i].d);
+ result = 1;
+ }
+ if (ld != tests[i].ld
+ || copysignl (1.0L, ld) != copysignl (1.0L, tests[i].ld))
+ {
+ printf ("strtold (%s) returned %La not %La\n", tests[i].s, ld,
+ tests[i].ld);
+ if (tests[i].ld_ok)
+ result = 1;
+ else
+ printf ("ignoring this inexact long double result\n");
+ }
+ }
+ return result;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"